machineconfig 1.92__py3-none-any.whl → 1.94__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/__init__.py +0 -8
- machineconfig/cluster/__init__.py +0 -0
- machineconfig/cluster/cloud_manager.py +359 -0
- machineconfig/cluster/data_transfer.py +56 -0
- machineconfig/cluster/distribute.py +280 -0
- machineconfig/cluster/file_manager.py +238 -0
- machineconfig/cluster/job_params.py +148 -0
- machineconfig/cluster/loader_runner.py +150 -0
- machineconfig/cluster/remote_machine.py +281 -0
- machineconfig/cluster/script_execution.py +209 -0
- machineconfig/cluster/script_notify_upon_completion.py +63 -0
- machineconfig/cluster/self_ssh.py +59 -0
- machineconfig/cluster/session_managers.py +183 -0
- machineconfig/cluster/templates/__init__.py +0 -0
- machineconfig/cluster/templates/cli_click.py +104 -0
- machineconfig/cluster/templates/cli_gooey.py +119 -0
- machineconfig/cluster/templates/cli_trogon.py +21 -0
- machineconfig/cluster/templates/f.py +4 -0
- machineconfig/cluster/templates/run_cloud.py +52 -0
- machineconfig/cluster/templates/run_cluster.py +69 -0
- machineconfig/cluster/templates/run_remote.py +67 -0
- machineconfig/cluster/templates/utils.py +37 -0
- machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/linux/msc/lid.sh +26 -0
- machineconfig/jobs/linux/msc/network.sh +39 -0
- machineconfig/jobs/python/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python/__pycache__/check_installations.cpython-311.pyc +0 -0
- machineconfig/jobs/python/__pycache__/checkout_version.cpython-311.pyc +0 -0
- machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
- machineconfig/jobs/python/archive/python_tools.txt +12 -0
- machineconfig/jobs/python/check_installations.py +26 -11
- machineconfig/jobs/python/checkout_version.py +24 -13
- machineconfig/jobs/python/create_zellij_template.py +4 -4
- machineconfig/jobs/python/python_cargo_build_share.py +13 -4
- machineconfig/jobs/python/python_ve_symlink.py +15 -4
- machineconfig/jobs/python/vscode/__pycache__/api.cpython-311.pyc +0 -0
- machineconfig/jobs/python/vscode/__pycache__/link_ve.cpython-311.pyc +0 -0
- machineconfig/jobs/python/vscode/api.py +48 -0
- machineconfig/jobs/python/vscode/link_ve.py +64 -0
- machineconfig/jobs/python/vscode/select_interpreter.py +84 -0
- machineconfig/jobs/python/vscode/sync_code.py +60 -0
- machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_custom_installers/__pycache__/hx.cpython-311.pyc +0 -0
- machineconfig/jobs/python_custom_installers/archive/ngrok.py +62 -0
- machineconfig/jobs/python_custom_installers/dev/aider.py +37 -0
- machineconfig/jobs/python_custom_installers/dev/alacritty.py +72 -0
- machineconfig/jobs/python_custom_installers/dev/brave.py +67 -0
- machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +50 -0
- machineconfig/jobs/python_custom_installers/dev/code.py +62 -0
- machineconfig/jobs/python_custom_installers/dev/cursor.py +67 -0
- machineconfig/jobs/python_custom_installers/dev/docker.py +70 -0
- machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +77 -0
- machineconfig/jobs/python_custom_installers/dev/espanso.py +82 -0
- machineconfig/jobs/python_custom_installers/dev/goes.py +59 -0
- machineconfig/jobs/python_custom_installers/dev/lvim.py +76 -0
- machineconfig/jobs/python_custom_installers/dev/nerdfont.py +67 -0
- machineconfig/jobs/python_custom_installers/dev/redis.py +69 -0
- machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +31 -0
- machineconfig/jobs/python_custom_installers/dev/warp-cli.py +71 -0
- machineconfig/jobs/python_custom_installers/dev/wezterm.py +71 -0
- machineconfig/jobs/python_custom_installers/gh.py +46 -4
- machineconfig/jobs/python_custom_installers/hx.py +103 -18
- machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +52 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +140 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +48 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +47 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +64 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +53 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +76 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +91 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +66 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +77 -0
- machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +43 -0
- machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_generic_installers/config.json +267 -0
- machineconfig/jobs/python_generic_installers/dev/config.archive.json +18 -0
- machineconfig/jobs/python_generic_installers/dev/config.json +394 -0
- machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_linux_installers/archive/config.json +10 -0
- machineconfig/jobs/python_linux_installers/config.json +74 -0
- machineconfig/jobs/python_linux_installers/dev/config.json +138 -0
- machineconfig/jobs/python_windows_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_windows_installers/archive/file.json +11 -0
- machineconfig/jobs/python_windows_installers/config.json +50 -0
- machineconfig/jobs/python_windows_installers/dev/config.json +3 -0
- machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +14 -0
- machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +7 -0
- machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +14 -0
- machineconfig/jobs/windows/start_terminal.ps1 +6 -0
- machineconfig/jobs/windows/startup_file.cmd +2 -0
- machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
- machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
- machineconfig/profile/create.py +47 -13
- machineconfig/profile/create_hardlinks.py +42 -12
- machineconfig/profile/records/generic/shares.toml +5 -0
- machineconfig/profile/records/linux/apps_summary_report.csv +48 -0
- machineconfig/profile/records/linux/apps_summary_report.md +49 -0
- machineconfig/profile/records/windows/apps_summary_report.csv +1 -0
- machineconfig/profile/records/windows/apps_summary_report.md +2 -0
- machineconfig/profile/shell.py +62 -11
- machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/cloud/init.sh +128 -0
- machineconfig/scripts/linux/activate_ve +87 -0
- machineconfig/scripts/linux/archive/tmate_conn +12 -0
- machineconfig/scripts/linux/archive/tmate_start +12 -0
- machineconfig/scripts/linux/archive/transfer_wsl_win +5 -0
- machineconfig/scripts/linux/checkout_versions +8 -0
- machineconfig/scripts/linux/choose_wezterm_theme +9 -0
- machineconfig/scripts/linux/cloud_copy +9 -0
- machineconfig/scripts/linux/cloud_manager +8 -0
- machineconfig/scripts/linux/cloud_mount +24 -0
- machineconfig/scripts/linux/cloud_repo_sync +22 -0
- machineconfig/scripts/linux/cloud_sync +24 -0
- machineconfig/scripts/linux/croshell +24 -0
- machineconfig/scripts/linux/devops +24 -0
- machineconfig/scripts/linux/fire +46 -0
- machineconfig/scripts/linux/ftpx +8 -0
- machineconfig/scripts/linux/fzf2g +21 -0
- machineconfig/scripts/linux/fzfag +17 -0
- machineconfig/scripts/linux/fzffg +25 -0
- machineconfig/scripts/linux/fzfg +23 -0
- machineconfig/scripts/linux/fzfrga +21 -0
- machineconfig/scripts/linux/gh_models +11 -0
- machineconfig/scripts/linux/kill_process +10 -0
- machineconfig/scripts/linux/mount_drive +128 -0
- machineconfig/scripts/linux/mount_nfs +62 -0
- machineconfig/scripts/linux/mount_nw_drive +72 -0
- machineconfig/scripts/linux/mount_smb +3 -0
- machineconfig/scripts/linux/programs +21 -0
- machineconfig/scripts/linux/repos +24 -0
- machineconfig/scripts/linux/scheduler +8 -0
- machineconfig/scripts/linux/share_cloud.sh +81 -0
- machineconfig/scripts/linux/share_nfs +49 -0
- machineconfig/scripts/linux/share_smb +1 -0
- machineconfig/scripts/linux/skrg +4 -0
- machineconfig/scripts/linux/start_docker +23 -0
- machineconfig/scripts/linux/start_slidev +23 -0
- machineconfig/scripts/linux/start_terminals +12 -0
- machineconfig/scripts/linux/switch_ip +20 -0
- machineconfig/scripts/linux/url2md +10 -0
- machineconfig/scripts/linux/z_ls +104 -0
- machineconfig/scripts/python/.mypy_cache/.gitignore +2 -0
- machineconfig/scripts/python/.mypy_cache/3.11/@plugins_snapshot.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/__future__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/__future__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_ast.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_ast.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_bz2.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_bz2.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_codecs.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_codecs.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_compression.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_compression.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_decimal.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_decimal.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_io.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_io.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_locale.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_locale.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_stat.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_stat.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_struct.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_struct.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_thread.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_thread.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_warnings.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_warnings.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_weakref.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_weakref.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/argparse.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/argparse.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/ast.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/ast.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/binascii.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/binascii.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/builtins.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/builtins.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/bz2.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/bz2.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/calendar.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/calendar.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/codecs.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/codecs.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/configparser.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/configparser.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/contextlib.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/contextlib.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/datetime.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/datetime.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/decimal.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/decimal.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/dis.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/dis.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/charset.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/charset.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/errors.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/errors.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/header.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/header.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/message.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/message.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/policy.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/email/policy.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/enum.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/enum.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/functools.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/functools.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/gc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/gc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/genericpath.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/genericpath.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/getpass.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/getpass.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/compat.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/compat.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/config.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/config.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/db.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/db.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/diff.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/diff.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/exc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/exc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/remote.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/remote.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/types.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/types.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/util.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/git/util.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/glob.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/glob.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/gzip.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/gzip.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/inspect.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/inspect.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/io.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/io.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/itertools.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/itertools.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/locale.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/locale.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/mmap.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/mmap.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/numbers.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/numbers.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/opcode.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/opcode.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/os/path.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/os/path.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/pathlib.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/pathlib.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/platform.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/platform.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/posixpath.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/posixpath.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/re.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/re.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/resource.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/resource.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/shlex.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/shlex.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/shutil.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/shutil.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/signal.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/signal.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/stat.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/stat.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/string.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/string.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/struct.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/struct.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/subprocess.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/subprocess.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/tarfile.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/tarfile.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/tempfile.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/tempfile.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/textwrap.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/textwrap.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/threading.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/threading.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/time.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/time.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/types.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/types.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/typing.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/typing.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/uuid.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/uuid.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/warnings.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/warnings.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/weakref.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/weakref.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/zlib.data.json +1 -0
- machineconfig/scripts/python/.mypy_cache/3.11/zlib.meta.json +1 -0
- machineconfig/scripts/python/.mypy_cache/CACHEDIR.TAG +3 -0
- machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/gh_models.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/url2md.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/viewer.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/vscode_api.cpython-311.pyc +0 -0
- machineconfig/scripts/python/archive/im2text.py +36 -0
- machineconfig/scripts/python/archive/tmate_conn.py +44 -0
- machineconfig/scripts/python/archive/tmate_start.py +48 -0
- machineconfig/scripts/python/choose_wezterm_theme.py +23 -4
- machineconfig/scripts/python/cloud_copy.py +131 -29
- machineconfig/scripts/python/cloud_manager.py +55 -2
- machineconfig/scripts/python/cloud_mount.py +43 -4
- machineconfig/scripts/python/cloud_repo_sync.py +114 -103
- machineconfig/scripts/python/cloud_sync.py +36 -220
- machineconfig/scripts/python/croshell.py +102 -32
- machineconfig/scripts/python/devops.py +143 -42
- machineconfig/scripts/python/devops_add_identity.py +112 -9
- machineconfig/scripts/python/devops_add_ssh_key.py +170 -15
- machineconfig/scripts/python/devops_backup_retrieve.py +132 -14
- machineconfig/scripts/python/devops_devapps_install.py +33 -11
- machineconfig/scripts/python/devops_update_repos.py +36 -29
- machineconfig/scripts/python/dotfile.py +8 -3
- machineconfig/scripts/python/fire_jobs.py +145 -289
- machineconfig/scripts/python/ftpx.py +76 -18
- machineconfig/scripts/python/get_zellij_cmd.py +14 -0
- machineconfig/scripts/python/gh_models.py +72 -25
- machineconfig/scripts/python/helpers/__init__.py +0 -0
- machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/cloud_helpers.py +134 -0
- machineconfig/scripts/python/helpers/helpers2.py +149 -0
- machineconfig/scripts/python/helpers/helpers4.py +178 -0
- machineconfig/scripts/python/helpers/helpers5.py +50 -0
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +126 -0
- machineconfig/scripts/python/mount_nfs.py +46 -15
- machineconfig/scripts/python/mount_nw_drive.py +22 -10
- machineconfig/scripts/python/mount_ssh.py +28 -12
- machineconfig/scripts/python/onetimeshare.py +23 -15
- machineconfig/scripts/python/pomodoro.py +38 -24
- machineconfig/scripts/python/repos.py +29 -32
- machineconfig/scripts/python/scheduler.py +19 -18
- machineconfig/scripts/python/snapshot.py +14 -6
- machineconfig/scripts/python/start_slidev.py +24 -32
- machineconfig/scripts/python/start_terminals.py +23 -10
- machineconfig/scripts/python/viewer.py +53 -0
- machineconfig/scripts/python/viewer_template.py +140 -0
- machineconfig/scripts/python/wifi_conn.py +20 -12
- machineconfig/scripts/python/wsl_windows_transfer.py +18 -10
- machineconfig/scripts/windows/activate_ve.ps1 +54 -0
- machineconfig/scripts/windows/archive/gource2vid.ps1 +14 -0
- machineconfig/scripts/windows/archive/im2text.ps1 +27 -0
- machineconfig/scripts/windows/archive/secure_pull.ps1 +46 -0
- machineconfig/scripts/windows/archive/secure_push.ps1 +85 -0
- machineconfig/scripts/windows/archive/tmate_conn.ps1 +7 -0
- machineconfig/scripts/windows/checkout_version.ps1 +6 -0
- machineconfig/scripts/windows/choose_wezterm_theme.ps1 +20 -0
- machineconfig/scripts/windows/cloud_copy.ps1 +17 -0
- machineconfig/scripts/windows/cloud_manager.ps1 +8 -0
- machineconfig/scripts/windows/cloud_mount.ps1 +25 -0
- machineconfig/scripts/windows/cloud_repo_sync.ps1 +8 -0
- machineconfig/scripts/windows/cloud_sync.ps1 +21 -0
- machineconfig/scripts/windows/croshell.ps1 +40 -0
- machineconfig/scripts/windows/devops.ps1 +32 -0
- machineconfig/scripts/windows/dotfile.ps1 +9 -0
- machineconfig/scripts/windows/fire.ps1 +33 -0
- machineconfig/scripts/windows/ftpx.ps1 +5 -0
- machineconfig/scripts/windows/fzfb.ps1 +3 -0
- machineconfig/scripts/windows/fzfg.ps1 +2 -0
- machineconfig/scripts/windows/fzfrga.bat +20 -0
- machineconfig/scripts/windows/gpt.ps1 +23 -0
- machineconfig/scripts/windows/grep.ps1 +2 -0
- machineconfig/scripts/windows/kill_process.ps1 +8 -0
- machineconfig/scripts/windows/mount_nfs.ps1 +44 -0
- machineconfig/scripts/windows/mount_nw.ps1 +9 -0
- machineconfig/scripts/windows/mount_smb.ps1 +2 -0
- machineconfig/scripts/windows/mount_ssh.ps1 +17 -0
- machineconfig/scripts/windows/nano.ps1 +3 -0
- machineconfig/scripts/windows/neofetch.ps1 +2 -0
- machineconfig/scripts/windows/pomodoro.ps1 +8 -0
- machineconfig/scripts/windows/py2exe.ps1 +12 -0
- machineconfig/scripts/windows/reload_path.ps1 +3 -0
- machineconfig/scripts/windows/repos.ps1 +27 -0
- machineconfig/scripts/windows/scheduler.ps1 +6 -0
- machineconfig/scripts/windows/share_cloud.cmd +34 -0
- machineconfig/scripts/windows/share_nfs.ps1 +0 -0
- machineconfig/scripts/windows/share_smb.ps1 +22 -0
- machineconfig/scripts/windows/snapshot.ps1 +5 -0
- machineconfig/scripts/windows/start_slidev.ps1 +21 -0
- machineconfig/scripts/windows/start_terminals.ps1 +22 -0
- machineconfig/scripts/windows/unlock_bitlocker.ps1 +10 -0
- machineconfig/scripts/windows/utils/op_script_delete.ps1 +7 -0
- machineconfig/scripts/windows/wifi_conn.ps1 +7 -0
- machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +46 -0
- machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +76 -0
- machineconfig/scripts/windows/wsl_windows_transfer.ps1 +7 -0
- machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/broot/br.sh +51 -0
- machineconfig/settings/broot/brootcd.ps1 +32 -0
- machineconfig/settings/broot/conf.toml +5 -0
- machineconfig/settings/glow/glow.yml +11 -0
- machineconfig/settings/gromit-mpx/gromit-mpx.cfg +34 -0
- machineconfig/settings/helix/config.toml +27 -0
- machineconfig/settings/helix/languages.toml +22 -0
- machineconfig/settings/keras/keras.json +6 -0
- machineconfig/settings/keyboard/espanso/config/default.yml +45 -0
- machineconfig/settings/keyboard/espanso/match/base.yml +57 -0
- machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- machineconfig/settings/lf/linux/colors +196 -0
- machineconfig/settings/lf/linux/exe/cleaner.sh +7 -0
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +16 -0
- machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +5 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +32 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +37 -0
- machineconfig/settings/lf/linux/exe/previewer_archive.sh +155 -0
- machineconfig/settings/lf/linux/icons +357 -0
- machineconfig/settings/lf/linux/lfrc +226 -0
- machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- machineconfig/settings/lf/windows/cd_tere.ps1 +4 -0
- machineconfig/settings/lf/windows/cd_zoxide.ps1 +4 -0
- machineconfig/settings/lf/windows/cd_zoxide2.ps1 +4 -0
- machineconfig/settings/lf/windows/colors +159 -0
- machineconfig/settings/lf/windows/fzf_edit.ps1 +6 -0
- machineconfig/settings/lf/windows/icons +357 -0
- machineconfig/settings/lf/windows/leftpane_previewer.ps1 +3 -0
- machineconfig/settings/lf/windows/lfcd.ps1 +35 -0
- machineconfig/settings/lf/windows/lfrc +133 -0
- machineconfig/settings/lf/windows/mkdir.ps1 +3 -0
- machineconfig/settings/lf/windows/mkfile.ps1 +3 -0
- machineconfig/settings/lf/windows/previewer.ps1 +7 -0
- machineconfig/settings/lf/windows/tst.ps1 +1 -0
- machineconfig/settings/linters/.flake8 +24 -0
- machineconfig/settings/linters/.mypy.ini +29 -0
- machineconfig/settings/linters/.pylintrc +91 -0
- machineconfig/settings/linters/.ruff.toml +77 -0
- machineconfig/settings/linters/.ruff_cache/.gitignore +2 -0
- machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +1 -0
- machineconfig/settings/lvim/linux/config.lua +0 -0
- machineconfig/settings/lvim/windows/archive/config_additional.lua +39 -0
- machineconfig/settings/lvim/windows/lua/user/custom_config.lua +13 -0
- machineconfig/settings/mprocs/windows/mprocs.yaml +55 -0
- machineconfig/settings/mprocs/windows/other +12 -0
- machineconfig/settings/pistol/pistol.conf +8 -0
- machineconfig/settings/presenterm/config.yaml +76 -0
- machineconfig/settings/procs/.procs.toml +142 -0
- machineconfig/settings/pudb/pudb.cfg +25 -0
- machineconfig/settings/rofi/config.rasi +4 -0
- machineconfig/settings/rofi/config_default.rasi +147 -0
- machineconfig/settings/shells/alacritty/alacritty.toml +40 -0
- machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- machineconfig/settings/shells/bash/.inputrc +3 -0
- machineconfig/settings/shells/bash/init.sh +66 -0
- machineconfig/settings/shells/hyper/.hyper.js +201 -0
- machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +83 -0
- machineconfig/settings/shells/kitty/kitty.conf +1476 -0
- machineconfig/settings/shells/nushell/config.nu +36 -0
- machineconfig/settings/shells/nushell/env.nu +13 -0
- machineconfig/settings/shells/pwsh/init.ps1 +88 -0
- machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- machineconfig/settings/shells/starship/starship.toml +58 -0
- machineconfig/settings/shells/vtm/settings.xml +297 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +193 -0
- machineconfig/settings/shells/wt/settings.json +526 -0
- machineconfig/settings/streamlit/config.toml +22 -0
- machineconfig/settings/svim/linux/init.toml +48 -0
- machineconfig/settings/svim/windows/init.toml +48 -0
- machineconfig/settings/tere/terecd.ps1 +8 -0
- machineconfig/settings/tere/terecd.sh +8 -0
- machineconfig/settings/tmux/.tmate.conf +3 -0
- machineconfig/settings/tmux/.tmux.conf +6 -0
- machineconfig/settings/wsl/.wslconfig +35 -0
- machineconfig/settings/yazi/keymap.toml +0 -0
- machineconfig/settings/yazi/theme.toml +0 -0
- machineconfig/settings/yazi/yazi.toml +4 -0
- machineconfig/settings/zed/settings.json +35 -0
- machineconfig/settings/zellij/commands/monitor +9 -0
- machineconfig/settings/zellij/commands/standard_panes +33 -0
- machineconfig/settings/zellij/config.kdl +295 -0
- machineconfig/settings/zellij/config.orig.kdl +295 -0
- machineconfig/settings/zellij/layouts/hist +13 -0
- machineconfig/settings/zellij/layouts/panes.kdl +20 -0
- machineconfig/settings/zellij/layouts/st.kdl +21 -0
- machineconfig/settings/zellij/layouts/st2.kdl +59 -0
- machineconfig/settings/zellij/layouts/stacked_panes.kdl +11 -0
- machineconfig/setup_linux/nix/cli_installation.sh +166 -0
- machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +30 -0
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +60 -0
- machineconfig/setup_linux/web_shortcuts/all.sh +53 -0
- machineconfig/setup_linux/web_shortcuts/ascii_art.sh +100 -0
- machineconfig/setup_linux/web_shortcuts/croshell.sh +66 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +241 -0
- machineconfig/setup_linux/web_shortcuts/ssh.sh +64 -0
- machineconfig/setup_linux/web_shortcuts/update_system.sh +55 -0
- machineconfig/setup_windows/others/docker.ps1 +7 -0
- machineconfig/setup_windows/others/obs.ps1 +4 -0
- machineconfig/setup_windows/web_shortcuts/all.ps1 +18 -0
- machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +36 -0
- machineconfig/setup_windows/web_shortcuts/croshell.ps1 +16 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +200 -0
- machineconfig/setup_windows/web_shortcuts/ssh.ps1 +11 -0
- machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +27 -0
- machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +12 -2
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +45 -9
- machineconfig/utils/ai/__init__.py +0 -0
- machineconfig/utils/ai/browser_user_wrapper.py +51 -0
- machineconfig/utils/ai/generate_file_checklist.py +74 -0
- machineconfig/utils/ai/url2md.py +75 -0
- machineconfig/utils/installer.py +101 -253
- machineconfig/utils/installer_utils/__init__.py +0 -0
- machineconfig/utils/installer_utils/installer_abc.py +100 -0
- machineconfig/utils/installer_utils/installer_class.py +253 -0
- machineconfig/utils/procs.py +69 -16
- machineconfig/utils/scheduling.py +47 -13
- machineconfig/utils/utils.py +39 -371
- machineconfig/utils/utils_code.py +82 -0
- machineconfig/utils/utils_links.py +88 -0
- machineconfig/utils/utils_options.py +163 -0
- machineconfig/utils/utils_path.py +151 -0
- machineconfig/utils/ve.py +37 -225
- machineconfig/utils/ve_utils/ve1.py +111 -0
- machineconfig/utils/ve_utils/ve2.py +142 -0
- {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/METADATA +25 -21
- machineconfig-1.94.dist-info/RECORD +710 -0
- {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/WHEEL +1 -1
- machineconfig-1.92.dist-info/LICENSE +0 -201
- machineconfig-1.92.dist-info/RECORD +0 -70
- {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
|
|
2
|
+
"""
|
|
3
|
+
Notify User Upon Completion
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from crocodile.comms.notification import Email
|
|
7
|
+
from crocodile.core import Struct as S
|
|
8
|
+
from crocodile.file_management import P
|
|
9
|
+
from machineconfig.cluster.file_manager import FileManager
|
|
10
|
+
from machineconfig.cluster.loader_runner import EmailParams
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
error_message = ''
|
|
14
|
+
exec_times = S()
|
|
15
|
+
res_folder = P()
|
|
16
|
+
|
|
17
|
+
email_params = EmailParams.from_empty()
|
|
18
|
+
manager = FileManager.from_pickle(email_params.file_manager_path)
|
|
19
|
+
|
|
20
|
+
print(f'SENDING notification email using `{email_params.email_config_name}` email configuration ...')
|
|
21
|
+
|
|
22
|
+
sep = "\n" * 2 # SyntaxError: f-string expression part cannot include a backslash, keep it here outside fstring.
|
|
23
|
+
msg = f'''
|
|
24
|
+
|
|
25
|
+
Hi `{email_params.addressee}`, I'm `{email_params.speaker}`, this is a notification that I have completed running the script you sent to me.
|
|
26
|
+
|
|
27
|
+
``` {email_params.executed_obj} ```
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
#### Error Message:
|
|
31
|
+
`{error_message}`
|
|
32
|
+
#### Execution Times
|
|
33
|
+
{exec_times.print(as_config=True, return_str=True)}
|
|
34
|
+
#### Executed Shell Script:
|
|
35
|
+
`{manager.shell_script_path}`
|
|
36
|
+
#### Executed Python Script:
|
|
37
|
+
`{manager.py_script_path}`
|
|
38
|
+
|
|
39
|
+
#### Pull results using this script:
|
|
40
|
+
`ftprx {email_params.ssh_conn_str} {res_folder.collapseuser().as_posix()} -r`
|
|
41
|
+
Or, using croshell,
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
|
|
45
|
+
ssh = SSH(r'{email_params.ssh_conn_str}')
|
|
46
|
+
ssh.copy_to_here(r'{res_folder.collapseuser().as_posix()}', r=False, zip_first=False)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### Results folder contents:
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
{res_folder.search().print(return_str=True, sep=sep)}
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
'''
|
|
58
|
+
|
|
59
|
+
try:
|
|
60
|
+
Email.send_and_close(config_name=email_params.email_config_name, to=email_params.to_email,
|
|
61
|
+
subject=f"Execution Completion Notification, job_id = {manager.job_id}", body=msg)
|
|
62
|
+
print(f'FINISHED sending notification email to `{email_params.to_email}`')
|
|
63
|
+
except Exception as e: print(f"Error sending email: {e}")
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
|
|
2
|
+
"""SelfSSh
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
from crocodile.file_management import PLike
|
|
7
|
+
from crocodile.meta import MACHINE, Terminal
|
|
8
|
+
from typing import Optional, Any
|
|
9
|
+
import getpass
|
|
10
|
+
import platform
|
|
11
|
+
import subprocess
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SelfSSH:
|
|
15
|
+
"""Instead of SSH'ing to the same machine, one can use this interface.
|
|
16
|
+
"""
|
|
17
|
+
def __init__(self):
|
|
18
|
+
self.hostname = "localhost"
|
|
19
|
+
self._remote_machine: Optional[MACHINE] = None
|
|
20
|
+
self.remote_env_cmd = ". activate_ve"
|
|
21
|
+
self.sftp: Any
|
|
22
|
+
def __getstate__(self) -> object: return {}
|
|
23
|
+
def __setstate__(self, state: dict[str, Any]) -> None:
|
|
24
|
+
"""This behaviour makes SelfSSH dynamic, even if it was pickled from windows machine, when unpickled on Linux, it will behave as a Linux machine instance."""
|
|
25
|
+
_ = state
|
|
26
|
+
new_instance = SelfSSH()
|
|
27
|
+
self.__dict__.update(new_instance.__dict__)
|
|
28
|
+
return None
|
|
29
|
+
def run(self, cmd: str, desc: str = "", verbose: bool = False):
|
|
30
|
+
_ = desc, verbose
|
|
31
|
+
return Terminal().run(cmd, shell="powershell")
|
|
32
|
+
def run_py(self, cmd: str, verbose: bool = False, desc: str = ''):
|
|
33
|
+
_ = verbose, cmd, desc
|
|
34
|
+
exec(cmd) # type: ignore # pylint: disable=exec-used
|
|
35
|
+
return None
|
|
36
|
+
def get_ssh_conn_str(self): return "ssh localhost"
|
|
37
|
+
def get_remote_machine(self) -> MACHINE:
|
|
38
|
+
if self._remote_machine is None:
|
|
39
|
+
self._remote_machine = "Windows" if (self.run("$env:OS").op.rstrip("\n") == "Windows_NT" or self.run("echo %OS%").op == "Windows_NT") else "Linux"
|
|
40
|
+
return self._remote_machine
|
|
41
|
+
def get_remote_repr(self, add_machine: bool = False):
|
|
42
|
+
_ = add_machine
|
|
43
|
+
host = f"{getpass.getuser()}@{platform.node()}"
|
|
44
|
+
return f"SelfSSH({host}) REMOTE"
|
|
45
|
+
def get_local_repr(self, add_machine: bool = False): return self.get_remote_repr(add_machine=add_machine).replace("REMOTE", "LOCAL")
|
|
46
|
+
def open_console(self, cmd: str = '', new_window: bool = True, terminal: Optional[str] = None, shell: str = "pwsh"):
|
|
47
|
+
_ = cmd, shell, new_window, terminal
|
|
48
|
+
# return Terminal().run_async("", new_window=True, shell=shell)
|
|
49
|
+
# Terminal().run_async(*(self.get_ssh_conn_str(cmd=cmd).split(" ")), new_window=new_window, terminal=terminal, shell=shell)
|
|
50
|
+
if platform.system() == "Windows":
|
|
51
|
+
subprocess.Popen(["wt", "--profile", "pwsh"], stdin=subprocess.PIPE, shell=True)
|
|
52
|
+
elif platform.system() == "Linux":
|
|
53
|
+
subprocess.Popen(["zellij --session haha"], shell=True, stdin=None, stdout=None, stderr=None)
|
|
54
|
+
def copy_to_here(self, source: PLike = '', target: Optional[str] = '', z: bool = True, r: bool = True, desc: str = '', overwrite: bool = False):
|
|
55
|
+
_ = source, target, z, r, desc, overwrite
|
|
56
|
+
return None
|
|
57
|
+
def copy_from_here(self, source: PLike = '', target: Optional[str] = '', z: bool = True, r: bool = True, desc: str = '', overwrite: bool = False):
|
|
58
|
+
_ = source, target, z, r, desc, overwrite
|
|
59
|
+
return None
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
|
|
2
|
+
"""
|
|
3
|
+
Session Manager
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from machineconfig.cluster.self_ssh import SelfSSH
|
|
7
|
+
from crocodile.core import List as L
|
|
8
|
+
from crocodile.file_management import P, Save
|
|
9
|
+
from crocodile.meta import SSH, Response, Terminal
|
|
10
|
+
import time
|
|
11
|
+
import subprocess
|
|
12
|
+
from typing import Union
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Zellij:
|
|
16
|
+
@staticmethod
|
|
17
|
+
def get_current_zellij_session() -> str:
|
|
18
|
+
try:
|
|
19
|
+
return L(Terminal().run("zellij ls --no-formatting").op.split("\n")).filter(lambda x: "(current)" in x).list[0].split(" [Created")[0]
|
|
20
|
+
except IndexError as ie:
|
|
21
|
+
print("""Fails if there is no zellij session running, fails if there is no (current) suffix against the session name.""")
|
|
22
|
+
raise ie
|
|
23
|
+
@staticmethod
|
|
24
|
+
def get_new_session_command(sess_name: str) -> str: return f"zellij attach {sess_name} -c " # -c means create if not exists.
|
|
25
|
+
@staticmethod
|
|
26
|
+
def get_new_session_ssh_command(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
27
|
+
if isinstance(ssh, SelfSSH): return Zellij.get_new_session_command(sess_name=sess_name)
|
|
28
|
+
return f"{ssh.get_ssh_conn_str()} -t {Zellij.get_new_session_command(sess_name=sess_name)}"
|
|
29
|
+
@staticmethod
|
|
30
|
+
def open_console(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
31
|
+
if isinstance(ssh, SelfSSH):
|
|
32
|
+
# return Terminal().run_async(Zellij.get_new_session_command(sess_name=sess_name), shell="powershell")
|
|
33
|
+
# currently, there is a limitation in zellij on creating a detached sessions, there is no way to fix this now.
|
|
34
|
+
# this will get stuck in the new session and won't run parallel.
|
|
35
|
+
return subprocess.Popen(["zellij", "--session", sess_name], shell=True, stdin=None, stdout=None, stderr=None)
|
|
36
|
+
return Terminal().run_async(Zellij.get_new_session_ssh_command(ssh=ssh, sess_name=sess_name))
|
|
37
|
+
@staticmethod
|
|
38
|
+
def asssert_session_started(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
39
|
+
while True:
|
|
40
|
+
raw_resp = ssh.run("zellij ls --no-formatting", verbose=False).op.split("\n")
|
|
41
|
+
current_sessions = [item.split(" [Created")[0] for item in raw_resp if "EXITED" not in item]
|
|
42
|
+
if sess_name in current_sessions:
|
|
43
|
+
print(f"--> Session {sess_name} has started at the remote.")
|
|
44
|
+
time.sleep(6)
|
|
45
|
+
break
|
|
46
|
+
time.sleep(2)
|
|
47
|
+
print(f"--> Waiting for zellij session {sess_name} to start before sending fire commands ...")
|
|
48
|
+
|
|
49
|
+
@staticmethod
|
|
50
|
+
def close_tab(sess_name: str, tab_name: str):
|
|
51
|
+
cmd = f"""
|
|
52
|
+
zellij --session {sess_name} action close-tab --tab-name '{tab_name}'
|
|
53
|
+
zellij --session {sess_name} action new-tab --name '🖥️{tab_name}'
|
|
54
|
+
zellij --session {sess_name} action new-tab --name '🔍{tab_name}'
|
|
55
|
+
zellij --session {sess_name} action new-tab --name '🪪{tab_name}'
|
|
56
|
+
zellij --session {sess_name} action new-tab --name '🧑💻{tab_name}'
|
|
57
|
+
"""
|
|
58
|
+
print(f"Closing tab `{tab_name}` in zellij session `{sess_name}` with command \n{cmd}")
|
|
59
|
+
return Terminal().run_script(cmd)
|
|
60
|
+
|
|
61
|
+
@staticmethod
|
|
62
|
+
def setup_layout(ssh: Union[SSH, SelfSSH], sess_name: str, cmd: str = "", run: bool = False, job_wd: str = "$HOME/tmp_results/remote_machines", tab_name: str = "", compact: bool = False):
|
|
63
|
+
sleep = 0.9
|
|
64
|
+
if run:
|
|
65
|
+
if cmd.startswith(". "): cmd = cmd[2:]
|
|
66
|
+
elif cmd.startswith("source "): cmd = cmd[7:]
|
|
67
|
+
else: pass
|
|
68
|
+
exe = f"""
|
|
69
|
+
zellij --session {sess_name} action new-tab --name '{tab_name}'; sleep {sleep}
|
|
70
|
+
zellij --session {sess_name} run -d down -- /bin/bash {cmd}; sleep {sleep}
|
|
71
|
+
zellij --session {sess_name} action move-focus up; sleep {sleep}
|
|
72
|
+
zellij --session {sess_name} action close-pane; sleep {sleep}
|
|
73
|
+
"""
|
|
74
|
+
else: exe = f"""
|
|
75
|
+
zellij --session {sess_name} action write-chars "{cmd}"
|
|
76
|
+
"""
|
|
77
|
+
if not compact: cmd = f"""
|
|
78
|
+
zellij --session {sess_name} action new-tab --name '{tab_name}'; sleep {sleep}
|
|
79
|
+
zellij --session {sess_name} action rename-tab '🖥️{tab_name}'; sleep {sleep} # rename the focused first tab
|
|
80
|
+
zellij --session {sess_name} action new-tab --name '🔍{tab_name}'; sleep {sleep}
|
|
81
|
+
zellij --session {sess_name} action write-chars htop; sleep {sleep}
|
|
82
|
+
|
|
83
|
+
zellij --session {sess_name} action new-tab --name '📁{tab_name}'; sleep {sleep}
|
|
84
|
+
zellij --session {sess_name} run --direction down --cwd {job_wd} -- lf; sleep {sleep}
|
|
85
|
+
zellij --session {sess_name} action move-focus up; sleep {sleep}
|
|
86
|
+
zellij --session {sess_name} action close-pane; sleep {sleep}
|
|
87
|
+
|
|
88
|
+
zellij --session {sess_name} action new-tab --name '🪪{tab_name}'; sleep {sleep}
|
|
89
|
+
zellij --session {sess_name} run --direction down -- neofetch;cpufetch; sleep {sleep}
|
|
90
|
+
zellij --session {sess_name} action move-focus up; sleep {sleep}
|
|
91
|
+
zellij --session {sess_name} action close-pane; sleep {sleep}
|
|
92
|
+
|
|
93
|
+
zellij --session {sess_name} action new-tab --name '🧑💻{tab_name}'; sleep {sleep}
|
|
94
|
+
zellij --session {sess_name} action write-chars "cd {job_wd}"; sleep {sleep}
|
|
95
|
+
zellij --session {sess_name} action go-to-tab 1; sleep {sleep}
|
|
96
|
+
{exe}
|
|
97
|
+
|
|
98
|
+
"""
|
|
99
|
+
else: cmd = exe
|
|
100
|
+
if isinstance(ssh, SelfSSH):
|
|
101
|
+
# print(1)
|
|
102
|
+
print(f"Setting up zellij layout `{sess_name}` on `{ssh.get_remote_repr()}` to run `{P(job_wd).name}`")
|
|
103
|
+
# return Terminal().run_script(cmd) # Zellij not happy with launching scripts of zellij commands.
|
|
104
|
+
return Response.from_completed_process(subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True))
|
|
105
|
+
# print(2)
|
|
106
|
+
return ssh.run(cmd, desc=f"Setting up zellij layout on `{ssh.get_remote_repr()}`", verbose=False)
|
|
107
|
+
@staticmethod
|
|
108
|
+
def kill_session(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
109
|
+
cmd = f'zellij kill-session {sess_name}'
|
|
110
|
+
return ssh.run(cmd, desc=f"Killing zellij session `{sess_name}` on `{ssh.get_remote_repr()}`", verbose=False)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class WindowsTerminal:
|
|
114
|
+
@staticmethod
|
|
115
|
+
def kill_session(sess_name: str):
|
|
116
|
+
from machineconfig.utils.procs import ProcessManager
|
|
117
|
+
pm = ProcessManager()
|
|
118
|
+
pm.kill(commands=[sess_name])
|
|
119
|
+
@staticmethod
|
|
120
|
+
def open_reference(): P(r"https://learn.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows")()
|
|
121
|
+
@staticmethod
|
|
122
|
+
def get_new_session_command(sess_name: str): return f"wt -w {sess_name} -d ."
|
|
123
|
+
@staticmethod
|
|
124
|
+
def get_new_session_ssh_command(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
125
|
+
if isinstance(ssh, SelfSSH): return WindowsTerminal.get_new_session_command(sess_name=sess_name)
|
|
126
|
+
return f"{ssh.get_ssh_conn_str()} -t {WindowsTerminal.get_new_session_command(sess_name=sess_name)}"
|
|
127
|
+
@staticmethod
|
|
128
|
+
def open_console(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
129
|
+
if isinstance(ssh, SelfSSH):
|
|
130
|
+
# return Terminal().run_async(WindowsTerminal.get_new_session_command(sess_name=sess_name), shell="powershell")
|
|
131
|
+
return subprocess.Popen(["wt", "--window", sess_name], shell=True, stdin=None, stdout=None, stderr=None)
|
|
132
|
+
return Terminal().run_async(WindowsTerminal.get_new_session_ssh_command(ssh=ssh, sess_name=sess_name), shell="pwsh")
|
|
133
|
+
@staticmethod
|
|
134
|
+
def asssert_session_started(ssh: Union[SSH, SelfSSH], sess_name: str):
|
|
135
|
+
_ = sess_name, ssh
|
|
136
|
+
time.sleep(6)
|
|
137
|
+
return True
|
|
138
|
+
@staticmethod
|
|
139
|
+
def setup_layout(ssh: Union[SSH, SelfSSH], sess_name: str, tab_name: str = "", cmd: str = "", run: bool = True, job_wd: str = "$HOME/tmp_results/remote_machines", compact: bool = True):
|
|
140
|
+
if run:
|
|
141
|
+
if cmd.startswith(". "): cmd = cmd[2:]
|
|
142
|
+
elif cmd.startswith("source "): cmd = cmd[7:]
|
|
143
|
+
else: pass
|
|
144
|
+
exe: str = f"""
|
|
145
|
+
wt --window {sess_name} new-tab --title '{tab_name}' pwsh -noExit -Command {cmd}
|
|
146
|
+
"""
|
|
147
|
+
else: raise NotImplementedError("I don't know how to write-chars in Windows Terminal") # exe = f""" wt --window {sess_name} action write-chars "{cmd}" """
|
|
148
|
+
sleep = 0.9
|
|
149
|
+
if compact: cmd = f"""
|
|
150
|
+
wt --window {sess_name} new-tab --title '💻{tab_name}' htop `; split-pane --horizontal --title '📁{tab_name}' --startingDirectory {job_wd} --profile pwsh lf `; split-pane --vertical --title '🪪{tab_name}' powershell -noExit "$HOME/scripts/neofetch.ps1" `; move-focus up `; split-pane --vertical --startingDirectory {job_wd} --title '🧑💻{tab_name}' --profile pwsh
|
|
151
|
+
""" # when pane-splitting, the tab title goes to the last pane declared.
|
|
152
|
+
else: cmd = f"""'
|
|
153
|
+
wt --window {sess_name} new-tab --title '💻{tab_name}' htop; sleep {sleep}
|
|
154
|
+
wt --window {sess_name} new-tab --title '📁{tab_name}' --startingDirectory {job_wd} lf; sleep {sleep}
|
|
155
|
+
wt --window {sess_name} new-tab --title '🪪{tab_name}' powershell -noExit "$HOME/scripts/neofetch.ps1"; sleep {sleep}
|
|
156
|
+
wt --window {sess_name} new-tab --title '🧑💻{tab_name}' --startingDirectory {job_wd} --profile pwsh; sleep {sleep}
|
|
157
|
+
"""
|
|
158
|
+
cmd = cmd + f"\nsleep {sleep};" + exe
|
|
159
|
+
# print(cmd)
|
|
160
|
+
if isinstance(ssh, SelfSSH):
|
|
161
|
+
print(f"Firing WindowsTerminal Session `{sess_name}` on `{ssh.get_remote_repr()}` to run `{P(job_wd).name}`")
|
|
162
|
+
return Terminal().run_script(cmd, shell="pwsh")
|
|
163
|
+
return ssh.run(cmd, desc=f"Setting up WindowsTerminal layout on `{ssh.get_remote_repr()}`", verbose=False)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class Mprocs:
|
|
167
|
+
@staticmethod
|
|
168
|
+
def get_template():
|
|
169
|
+
import machineconfig
|
|
170
|
+
return P(machineconfig.__file__).parent.joinpath(r"settings/mprocs/windows/mprocs.yaml").readit()
|
|
171
|
+
# def get_new_session_name(self): return f"mprocs{self.id}"
|
|
172
|
+
@staticmethod
|
|
173
|
+
def get_ssh_command(): return ""
|
|
174
|
+
def open_console(self, cmd: str, shell: str = "powershell"):
|
|
175
|
+
_ = cmd, shell
|
|
176
|
+
return "wt -w 0 -d ."
|
|
177
|
+
def get_layout(self):
|
|
178
|
+
temp = self.get_template()
|
|
179
|
+
temp.procs['main']['shell']['windows'] = "croshell"
|
|
180
|
+
_template_file = Save.yaml(obj=temp, path=P.tmpfile(suffix=".yaml"))
|
|
181
|
+
def asssert_session_started(self):
|
|
182
|
+
time.sleep(3)
|
|
183
|
+
return True
|
|
File without changes
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
|
|
2
|
+
# """Trogon
|
|
3
|
+
# """
|
|
4
|
+
|
|
5
|
+
# #
|
|
6
|
+
# # from machineconfig.cluster.distribute import Cluster, WorkloadParams
|
|
7
|
+
# from machineconfig.cluster.remote_machine import RemoteMachineConfig, RemoteMachine, CloudManager
|
|
8
|
+
# from crocodile.file_management import Read
|
|
9
|
+
# from machineconfig.cluster.templates.run_cloud import to_email_default, email_config_name_default, default_cloud
|
|
10
|
+
# import click
|
|
11
|
+
# # from trogon import tui
|
|
12
|
+
# from typing import Any, Optional
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# @click.command()
|
|
16
|
+
# @click.option('--file', prompt="Py File: ", help="The file to run.", default="")
|
|
17
|
+
# @click.option('--function', prompt="Function: ", help="The function to run.", default=None)
|
|
18
|
+
# @click.pass_context
|
|
19
|
+
# def main2(ctx: Any, file: str, function: Optional[str] = None):
|
|
20
|
+
# ctx.obj = {'file': file, 'function': function}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# # @tui()
|
|
24
|
+
# # @click.group("gg")
|
|
25
|
+
# @click.command()
|
|
26
|
+
# @click.option('--file', prompt="Py File: ", help="The file to run.", default="")
|
|
27
|
+
# @click.option('--function', prompt="Function: ", help="The function to run.", default=None)
|
|
28
|
+
# @click.option('--description', prompt="Description of the job: ", default=f"Description of running func on remotes", help="Write something that describes what this job is about.")
|
|
29
|
+
# @click.option('--update_repo', prompt="Update repo: ", default=False, help="Update the repo on the remote machine.")
|
|
30
|
+
# @click.option('--update_essential_repos', prompt="Update essential repos: ", default=True, help="Update essential repos on the remote machine.")
|
|
31
|
+
# @click.option('--cloud_name', prompt="Cloud name: ", default=default_cloud, help="The name of the cloud to use.")
|
|
32
|
+
# @click.option('--notify_upon_completion', prompt="Notify upon completion: ", default=False, help="Send an email upon completion.")
|
|
33
|
+
# @click.option('--to_email', prompt="To email: ", default=to_email_default, help="The email to send to.")
|
|
34
|
+
# @click.option('--email_config_name', prompt="Email config name: ", default=email_config_name_default, help="The name of the email config to use.")
|
|
35
|
+
# @click.option('--kill_on_completion', prompt="Kill on completion: ", default=False)
|
|
36
|
+
# @click.option('--ipython', prompt="Use ipython: ", default=False)
|
|
37
|
+
# @click.option('--interactive', prompt="Interactive: ", default=False)
|
|
38
|
+
# @click.option('--pdb', prompt="Use pdb: ", default=False)
|
|
39
|
+
# @click.option('--pudb', prompt="Use pudb: ", default=False)
|
|
40
|
+
# @click.option('--wrap_in_try_except', prompt="Wrap in try except: ", default=False)
|
|
41
|
+
# @click.option('--lock_resources', prompt="Lock resources: ", default=False)
|
|
42
|
+
# @click.option('--max_simulataneous_jobs', prompt="Max simultaneous jobs: ", default=2)
|
|
43
|
+
# @click.option('--split', prompt="Split: ", default=1)
|
|
44
|
+
# @click.option('--reset_cloud', prompt="Reset cloud: ", default=False)
|
|
45
|
+
# @click.option('--reset_local', prompt="Reset local: ", default=False)
|
|
46
|
+
# # @click.pass_context
|
|
47
|
+
# def main(
|
|
48
|
+
# file: str, function: Optional[str],
|
|
49
|
+
# description: str, update_repo: bool, update_essential_repos: bool, cloud_name: str,
|
|
50
|
+
# notify_upon_completion: bool, to_email: str, email_config_name: str, kill_on_completion: bool, ipython: bool, interactive: bool,
|
|
51
|
+
# pdb: bool, pudb: bool, wrap_in_try_except: bool, lock_resources: bool, max_simulataneous_jobs: bool,
|
|
52
|
+
# split: int, reset_cloud: bool, reset_local: bool,
|
|
53
|
+
# ) -> Any:
|
|
54
|
+
|
|
55
|
+
# # function = ctx.obj['function']
|
|
56
|
+
# # description = ctx.obj['file']
|
|
57
|
+
# from machineconfig.cluster.self_ssh import SelfSSH
|
|
58
|
+
# config = RemoteMachineConfig(
|
|
59
|
+
# # connection
|
|
60
|
+
# ssh_obj=SelfSSH(),
|
|
61
|
+
# # ssh_params=None,
|
|
62
|
+
# description=description,
|
|
63
|
+
# # job_id=, base_dir="",
|
|
64
|
+
# # data
|
|
65
|
+
# copy_repo=False, # copy_repo,
|
|
66
|
+
# update_repo=update_repo,
|
|
67
|
+
# install_repo=True, # install_repo,
|
|
68
|
+
# update_essential_repos=update_essential_repos,
|
|
69
|
+
# data=[],
|
|
70
|
+
# transfer_method="cloud", # "transfer_method,
|
|
71
|
+
# cloud_name=cloud_name,
|
|
72
|
+
# # remote machine behaviour
|
|
73
|
+
# # open_console=open_console,
|
|
74
|
+
# notify_upon_completion=notify_upon_completion,
|
|
75
|
+
# to_email=to_email,
|
|
76
|
+
# email_config_name=email_config_name,
|
|
77
|
+
# kill_on_completion=kill_on_completion,
|
|
78
|
+
# workload_params=None,
|
|
79
|
+
# launch_method="cloud_manager",
|
|
80
|
+
# # execution behaviour
|
|
81
|
+
# ipython=ipython,
|
|
82
|
+
# interactive=interactive,
|
|
83
|
+
# pdb=pdb,
|
|
84
|
+
# pudb=pudb,
|
|
85
|
+
# wrap_in_try_except=wrap_in_try_except,
|
|
86
|
+
# # resources
|
|
87
|
+
# lock_resources=lock_resources,
|
|
88
|
+
# max_simulataneous_jobs=max_simulataneous_jobs,
|
|
89
|
+
# parallelize=False, # parallelize,
|
|
90
|
+
# )
|
|
91
|
+
|
|
92
|
+
# if function is not None:
|
|
93
|
+
# module: dict[str, Any] = Read.py(file)
|
|
94
|
+
# func = module[function]
|
|
95
|
+
# else: func = file
|
|
96
|
+
# m = RemoteMachine(func=func, func_kwargs=None, config=config)
|
|
97
|
+
# res = m.submit_to_cloud(split=split, cm=CloudManager(max_jobs=0, reset_local=reset_local), reset_cloud=reset_cloud)
|
|
98
|
+
# return res
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
# if __name__ == '__main__':
|
|
102
|
+
# # conf = get_options(standalone_mode=False) # type: ignore # pylint: disable=no-value-for-parameter
|
|
103
|
+
# # main2() # type: ignore
|
|
104
|
+
# main() # type: ignore
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
|
|
2
|
+
"""Gooey
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from argparse import ArgumentParser
|
|
6
|
+
# from gooey import Gooey #, GooeyParser
|
|
7
|
+
from crocodile.core import install_n_import
|
|
8
|
+
from crocodile.file_management import Read
|
|
9
|
+
# from machineconfig.cluster.distribute import Cluster, WorkloadParams
|
|
10
|
+
from machineconfig.cluster.remote_machine import RemoteMachineConfig
|
|
11
|
+
# from machineconfig.cluster.utils import expensive_function
|
|
12
|
+
from machineconfig.utils.utils import DEFAULTS_PATH
|
|
13
|
+
# from typing import Any, Optional
|
|
14
|
+
|
|
15
|
+
Gooey = install_n_import("gooey").Gooey
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@Gooey(program_name="Cluster Launcher", program_description='Cofigure remote cluster and launch jobs.') # type: ignore
|
|
19
|
+
def main() -> RemoteMachineConfig:
|
|
20
|
+
# parser = GooeyParser(description='Example of Gooey\'s basic functionality')
|
|
21
|
+
parser = ArgumentParser(description='Cluster Launcher')
|
|
22
|
+
from machineconfig.scripts.python.cloud_mount import get_rclone_config
|
|
23
|
+
cloud_names = get_rclone_config().sections()
|
|
24
|
+
# job_id=, base_dir="",
|
|
25
|
+
parser.add_argument('Description', help='The file you want to process', default="Description of running func on remotes")
|
|
26
|
+
|
|
27
|
+
# # execution behaviour
|
|
28
|
+
# wrap_in_try_except=True
|
|
29
|
+
parser.add_argument('-w', '--wrap_in_try_except', help='Wrap in try except', action='store_true', default=False)
|
|
30
|
+
# pudb=False
|
|
31
|
+
parser.add_argument('-p', '--pudb', help='Use pudb', action='store_true', default=False)
|
|
32
|
+
# pdb=False
|
|
33
|
+
parser.add_argument('-d', '--pdb', help='Use pdb', action='store_true', default=False)
|
|
34
|
+
# interactive=True
|
|
35
|
+
parser.add_argument('-i', '--interactive', help='Interactive', action='store_true', default=False)
|
|
36
|
+
# ipython=True
|
|
37
|
+
parser.add_argument('-y', '--ipython', help='Use ipython', action='store_true', default=False)
|
|
38
|
+
|
|
39
|
+
# # resources
|
|
40
|
+
# lock_resources=True
|
|
41
|
+
parser.add_argument('-l', '--lock_resources', help='Lock resources', action='store_true', default=False)
|
|
42
|
+
# max_simulataneous_jobs=2
|
|
43
|
+
parser.add_argument('-m', '--max_simulataneous_jobs', help='Max simultaneous jobs', type=int, default=2)
|
|
44
|
+
# parallelize=False
|
|
45
|
+
# parser.add_argument('-a', '--parallelize', help='Parallelize', action='store_true', default=False)
|
|
46
|
+
|
|
47
|
+
# # data
|
|
48
|
+
# copy_repo = True
|
|
49
|
+
# parser.add_argument('-c', '--copy_repo', help='Copy repo', action='store_true', default=True)
|
|
50
|
+
# update_repo=False
|
|
51
|
+
parser.add_argument('-u', '--update_repo', help='Update repo', action='store_true', default=False)
|
|
52
|
+
# install_repo=False
|
|
53
|
+
# parser.add_argument('-n', '--install_repo', help='Install repo', action='store_true', default=False)
|
|
54
|
+
# update_essential_repos=True
|
|
55
|
+
parser.add_argument('-e', '--update_essential_repos', help='Update essential repos', action='store_true', default=True)
|
|
56
|
+
# transfer_method="sftp"
|
|
57
|
+
# parser.add_argument('-t', '--transfer_method', help='Transfer method', choices=['sftp', 'cloud'], default='sftp')
|
|
58
|
+
# open_console=True
|
|
59
|
+
# parser.add_argument('-o', '--open_console', help='Open console', action='store_true', default=True)
|
|
60
|
+
|
|
61
|
+
# # remote machine behaviour
|
|
62
|
+
parser.add_argument('cloud_name', help='Cloud Rclone Config Name', default="oduq1", choices=cloud_names)
|
|
63
|
+
parser.add_argument('-v', '--notify_upon_completion', help='Notify upon completion', action='store_true', default=True)
|
|
64
|
+
|
|
65
|
+
try:
|
|
66
|
+
section = Read.ini(DEFAULTS_PATH)['general']
|
|
67
|
+
to_email = section['to_email']
|
|
68
|
+
email_config_name = section['email_config_name']
|
|
69
|
+
except (FileNotFoundError, KeyError, IndexError):
|
|
70
|
+
to_email = 'random@email.com'
|
|
71
|
+
email_config_name = 'enaut'
|
|
72
|
+
|
|
73
|
+
parser.add_argument('-z', '--to_email', help='To email', default=to_email)
|
|
74
|
+
parser.add_argument('-f', '--email_config_name', help='Email config name', default=email_config_name)
|
|
75
|
+
parser.add_argument('-k', '--kill_on_completion', help='Kill terminal tab/pane for this job on completion', action='store_true', default=False)
|
|
76
|
+
parser.add_argument('split', help='How many jobs to split into', type=int, default=3)
|
|
77
|
+
|
|
78
|
+
# https://github.com/chriskiehl/GooeyExamples/blob/master/examples/FilterableDropdown.py
|
|
79
|
+
args = parser.parse_args()
|
|
80
|
+
|
|
81
|
+
from machineconfig.cluster.self_ssh import SelfSSH
|
|
82
|
+
config = RemoteMachineConfig(
|
|
83
|
+
# connection
|
|
84
|
+
ssh_obj=SelfSSH(),
|
|
85
|
+
# ssh_params=None,
|
|
86
|
+
description=args.Description,
|
|
87
|
+
# job_id=, base_dir="",
|
|
88
|
+
# data
|
|
89
|
+
copy_repo=False, # args.copy_repo,
|
|
90
|
+
update_repo=args.update_repo,
|
|
91
|
+
install_repo=True, # args.install_repo,
|
|
92
|
+
update_essential_repos=args.update_essential_repos,
|
|
93
|
+
data=[],
|
|
94
|
+
transfer_method="cloud", # "args.transfer_method,
|
|
95
|
+
cloud_name=args.cloud_name,
|
|
96
|
+
# remote machine behaviour
|
|
97
|
+
# open_console=args.open_console,
|
|
98
|
+
notify_upon_completion=args.notify_upon_completion,
|
|
99
|
+
to_email=args.to_email,
|
|
100
|
+
email_config_name=args.email_config_name,
|
|
101
|
+
kill_on_completion=args.kill_on_completion,
|
|
102
|
+
workload_params=None,
|
|
103
|
+
launch_method="cloud_manager",
|
|
104
|
+
# execution behaviour
|
|
105
|
+
ipython=args.ipython,
|
|
106
|
+
interactive=args.interactive,
|
|
107
|
+
pdb=args.pdb,
|
|
108
|
+
pudb=args.pudb,
|
|
109
|
+
wrap_in_try_except=args.wrap_in_try_except,
|
|
110
|
+
# resources
|
|
111
|
+
lock_resources=args.lock_resources,
|
|
112
|
+
max_simulataneous_jobs=args.max_simulataneous_jobs,
|
|
113
|
+
parallelize=False, # args.parallelize,
|
|
114
|
+
)
|
|
115
|
+
return config
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
if __name__ == '__main__':
|
|
119
|
+
main()
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
# """Trogon
|
|
3
|
+
# """
|
|
4
|
+
|
|
5
|
+
# import click
|
|
6
|
+
# from trogon import tui
|
|
7
|
+
# from typing import Any
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# @tui()
|
|
11
|
+
# @click.command()
|
|
12
|
+
# @click.option('--description', prompt="Description of the job: ", default=f"Description of running func on remotes", help="Write something that describes what this job is about.")
|
|
13
|
+
# @click.option('--update_repo', prompt="Update repo: ", default=False, help="Update the repo on the remote machine.")
|
|
14
|
+
# @click.pass_context
|
|
15
|
+
# def get_choices(ctx: Any, description: str, update_repo: bool): # type: ignore
|
|
16
|
+
# return ctx
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# if __name__ == '__main__':
|
|
20
|
+
# res = get_choices(standalone_mode=False) # type: ignore
|
|
21
|
+
# print(res)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
"""Run with sane defaults for a remote machine.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig
|
|
6
|
+
from machineconfig.cluster.cloud_manager import CloudManager
|
|
7
|
+
from machineconfig.cluster.loader_runner import WorkloadParams
|
|
8
|
+
from machineconfig.cluster.self_ssh import SelfSSH
|
|
9
|
+
from crocodile.file_management import Read
|
|
10
|
+
from machineconfig.utils.utils import DEFAULTS_PATH
|
|
11
|
+
from typing import Any, Callable, Union
|
|
12
|
+
|
|
13
|
+
_ = WorkloadParams
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
try:
|
|
17
|
+
section = Read.ini(DEFAULTS_PATH)['general']
|
|
18
|
+
to_email_default = section['to_email']
|
|
19
|
+
email_config_name_default = section['email_config_name']
|
|
20
|
+
except (FileNotFoundError, KeyError, IndexError):
|
|
21
|
+
to_email_default = 'random@email.com'
|
|
22
|
+
email_config_name_default = 'enaut'
|
|
23
|
+
|
|
24
|
+
try: default_cloud: str = Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
|
|
25
|
+
except (FileNotFoundError, KeyError, IndexError): default_cloud = 'gdrive'
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def run_on_cloud(func: Union[str, Callable[[WorkloadParams], Any]], split: int, reset_cloud: bool = False, reset_local: bool = False):
|
|
29
|
+
if hasattr(func, '__doc__'): description = str(func.__doc__)
|
|
30
|
+
else: description = "Description of running an expensive function"
|
|
31
|
+
config = RemoteMachineConfig(
|
|
32
|
+
# connection
|
|
33
|
+
ssh_obj=SelfSSH(), # overrides ssh_params
|
|
34
|
+
description=description, # job_id=, base_dir="",
|
|
35
|
+
# data
|
|
36
|
+
copy_repo=False, update_repo=True, install_repo=False, update_essential_repos=True, data=[], transfer_method="cloud", cloud_name=email_config_name_default,
|
|
37
|
+
# remote machine behaviour
|
|
38
|
+
open_console=True, notify_upon_completion=True, to_email=to_email_default, email_config_name=email_config_name_default,
|
|
39
|
+
kill_on_completion=True,
|
|
40
|
+
launch_method="cloud_manager",
|
|
41
|
+
# execution behaviour
|
|
42
|
+
ipython=False, interactive=False, pdb=False, pudb=False, wrap_in_try_except=True,
|
|
43
|
+
workload_params=None, # to be added later per sub-job.
|
|
44
|
+
# resources
|
|
45
|
+
lock_resources=False, max_simulataneous_jobs=2, parallelize=False, )
|
|
46
|
+
m = RemoteMachine(func=func, func_kwargs=None, config=config)
|
|
47
|
+
res = m.submit_to_cloud(split=split, cm=CloudManager(max_jobs=0, reset_local=reset_local), reset_cloud=reset_cloud)
|
|
48
|
+
return res
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
if __name__ == "__main__":
|
|
52
|
+
pass
|