machineconfig 6.62__py3-none-any.whl → 6.64__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.

@@ -7,7 +7,6 @@
7
7
  # from math import ceil, floor
8
8
  # from enum import Enum
9
9
  # from dataclasses import dataclass
10
- # import psutil
11
10
 
12
11
  # from machineconfig.utils.utils2 import randstr
13
12
  # from machineconfig.utils.io_save import save_pickle
@@ -85,7 +85,6 @@
85
85
  # self.execution_log_dir.expanduser().joinpath("status.txt").write_text(status)
86
86
  # return status
87
87
  # pid: int = int(pid_path.read_text(encoding="utf-8").rstrip())
88
- # import psutil
89
88
  # try: proc = psutil.Process(pid=pid)
90
89
  # except psutil.NoSuchProcess:
91
90
  # print(f"Something wrong happened to job `{self.job_id}`.. Its status log file says `{status}`, but its declared `{pid=}` is dead. Moving to failed.")
@@ -142,7 +141,6 @@
142
141
  # break
143
142
 
144
143
  # # --------------- Clearning up queue_file from dead processes -----------------
145
- # import psutil
146
144
  # next_job_in_queue = queue_file[0] # only consider the first job in the queue
147
145
  # try: _ = psutil.Process(next_job_in_queue.pid)
148
146
  # except psutil.NoSuchProcess:
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=6.61",
5
+ # "machineconfig>=6.64",
6
6
  # "textual",
7
7
  # "pyperclip",
8
8
  # ]
@@ -46,7 +46,7 @@ def path():
46
46
  uv_with = ["textual"]
47
47
  uv_project_dir = None
48
48
  if not Path.home().joinpath("code/machineconfig").exists():
49
- uv_with.append("machineconfig>=6.61")
49
+ uv_with.append("machineconfig>=6.64")
50
50
  else:
51
51
  uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
52
52
  run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
@@ -41,9 +41,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
41
41
  else:
42
42
  import platform
43
43
  if platform.system() == "Windows":
44
- run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.61" """)
44
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.64" """)
45
45
  else:
46
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.61" """)
46
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.64" """)
47
47
  from machineconfig.profile.create_shell_profile import create_default_shell_profile
48
48
  if not no_copy_assets:
49
49
  create_default_shell_profile() # involves copying assets too
@@ -68,7 +68,7 @@ def navigate():
68
68
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
69
69
  from machineconfig.utils.code import run_shell_script
70
70
  if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
71
- else: executable = """--with "machineconfig>=6.61,textual" """
71
+ else: executable = """--with "machineconfig>=6.64,textual" """
72
72
  run_shell_script(f"""uv run {executable} {path}""")
73
73
 
74
74
 
@@ -80,7 +80,7 @@ git pull originEnc master
80
80
  uv_project_dir = f"""{str(Path.home().joinpath("code/machineconfig"))}"""
81
81
  uv_with = None
82
82
  else:
83
- uv_with = ["machineconfig>=6.61"]
83
+ uv_with = ["machineconfig>=6.64"]
84
84
  uv_project_dir = None
85
85
 
86
86
  import tempfile
@@ -5,7 +5,7 @@
5
5
  # mkdir ~/data/local
6
6
  # sudo mount -o nolock,noatime,nodiratime,proto=tcp,timeo=600,retrans=2,noac alex-p51s-5:/home/alex/data/local ./data/local
7
7
 
8
- uv run --python 3.14 --with "machineconfig>=6.61" python -m machineconfig.scripts.python.mount_nfs
8
+ uv run --python 3.14 --with "machineconfig>=6.64" python -m machineconfig.scripts.python.mount_nfs
9
9
  # Check if remote server is reachable and share folder exists
10
10
  if ! ping -c 1 "$remote_server" &> /dev/null; then
11
11
  echo "💥 Error: Remote server $remote_server is not reachable."
@@ -54,7 +54,7 @@ def main(
54
54
  hostname = platform.node()
55
55
  ssh = SSH(host=None, username=username, hostname=hostname, ssh_key_path=sshkey, password=pwd, port=port_int, enable_compression=False)
56
56
  print("🌐 Initiating SSH transfer...")
57
- ssh.copy_from_here(source_path=path_obj, target_path=Path(destination) if destination else None, compress_with_zip=zip_first, recursive=False, overwrite_existing=False)
57
+ ssh.copy_from_here(source_path=str(path_obj), target_rel2home=destination, compress_with_zip=zip_first, recursive=False, overwrite_existing=False)
58
58
  print("✅ SSH transfer completed successfully!\n")
59
59
 
60
60
 
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=6.61" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=6.64" python -m machineconfig.scripts.python.mount_ssh
11
11
 
12
12
  net use T: \\sshfs.kr\$user@$host.local
13
13
  # this worked: net use T: \\sshfs\alex@alex-p51s-5.local
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
3
3
  mcfg() {
4
- "$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.61" mcfg "$@"
4
+ "$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.64" mcfg "$@"
5
5
  }
6
6
  alias d="mcfg devops"
7
7
  alias c="mcfg cloud"
@@ -2,7 +2,7 @@
2
2
 
3
3
  iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
4
4
  function mcfg {
5
- & "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.61" mcfg $args
5
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.64" mcfg $args
6
6
  }
7
7
  function d { mcfg devops @args }
8
8
  function c { mcfg cloud @args }
@@ -4,7 +4,32 @@ from collections.abc import Callable
4
4
  from typing import Any
5
5
 
6
6
 
7
- def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool) -> str:
7
+ def get_import_module_string(py_file: str):
8
+ from machineconfig.scripts.python.helpers_fire.helpers4 import get_import_module_code
9
+ from machineconfig.utils.accessories import get_repo_root
10
+ from pathlib import Path
11
+ repo_root = get_repo_root(Path(py_file))
12
+ import_line = get_import_module_code(py_file)
13
+ if repo_root is not None:
14
+ repo_root_add = f"""sys.path.append(r'{repo_root}')"""
15
+ else:
16
+ repo_root_add = ""
17
+ txt: str = f"""
18
+ try:
19
+ {import_line}
20
+ except (ImportError, ModuleNotFoundError) as ex:
21
+ print(fr"❌ Failed to import `{py_file}` as a module: {{ex}} ")
22
+ print(fr"⚠️ Attempting import with ad-hoc `$PATH` manipulation. DO NOT pickle any objects in this session as correct deserialization cannot be guaranteed.")
23
+ import sys
24
+ sys.path.append(r'{Path(py_file).parent}')
25
+ {repo_root_add}
26
+ from {Path(py_file).stem} import *
27
+ print(fr"✅ Successfully imported `{py_file}`")
28
+ """
29
+ return txt
30
+
31
+
32
+ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool, import_module: bool = False) -> str:
8
33
  """
9
34
  caveats: always use keyword arguments in the lambda call for best results.
10
35
  return statement not allowed in the wrapped function (otherwise it can be put in the global space)
@@ -20,13 +45,15 @@ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool) -> str:
20
45
  Args:
21
46
  lmb: A lambda function with no arguments
22
47
  in_global: If True, return kwargs as global variable assignments followed by dedented body.
23
- If False (default), return the full function definition with updated defaults.
48
+ If False, return the full function definition with updated defaults.
49
+ import_module: When True, prepend module import bootstrap code for the function's source file.
24
50
  """
25
51
  # local imports
26
52
  import inspect as _inspect
27
53
  import ast as _ast
28
54
  import textwrap as _textwrap
29
55
  import types as _types
56
+ from pathlib import Path as _Path
30
57
 
31
58
  # sanity checks
32
59
  if not (callable(lmb) and isinstance(lmb, _types.LambdaType)):
@@ -77,6 +104,14 @@ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool) -> str:
77
104
 
78
105
  func_name = getattr(func_obj, "__name__", "<unknown>")
79
106
 
107
+ import_prefix: str = ""
108
+ if import_module:
109
+ module_file = _inspect.getsourcefile(func_obj)
110
+ module_path_candidate: str | None = module_file if module_file is not None else _inspect.getfile(func_obj)
111
+ if module_path_candidate is None:
112
+ raise RuntimeError("Could not determine source file for function module inspection.")
113
+ import_prefix = get_import_module_string(str(_Path(module_path_candidate)))
114
+
80
115
  # Evaluate each keyword argument value in the lambda's globals to get real Python objects
81
116
  call_kwargs = {}
82
117
  for kw in body.keywords:
@@ -174,15 +209,17 @@ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool) -> str:
174
209
 
175
210
  # Combine global assignments and body
176
211
  if global_assignments:
177
- result_parts = ["\n".join(global_assignments), "", dedented_body]
178
- return "\n".join(result_parts)
212
+ result_parts: list[str] = ["\n".join(global_assignments), "", dedented_body]
213
+ result_text = "\n".join(result_parts)
179
214
  else:
180
- return dedented_body
181
-
182
- # Compose final function definition text
183
- header = f"def {func_name}{new_sig}:\n"
184
- final_src = header + body_text
185
- return final_src
215
+ result_text = dedented_body
216
+ else:
217
+ header = f"def {func_name}{new_sig}:\n"
218
+ result_text = header + body_text
219
+
220
+ if import_prefix:
221
+ return f"{import_prefix}{result_text}"
222
+ return result_text
186
223
 
187
224
 
188
225
  if __name__ == "__main__":
@@ -8,7 +8,7 @@ from machineconfig.utils.terminal import Response
8
8
  from machineconfig.utils.accessories import pprint, randstr
9
9
  from machineconfig.utils.meta import lambda_to_python_script
10
10
  UV_RUN_CMD = "$HOME/.local/bin/uv run" if platform.system() != "Windows" else """& "$env:USERPROFILE/.local/bin/uv" run"""
11
- MACHINECONFIG_VERSION = "machineconfig>=6.61"
11
+ MACHINECONFIG_VERSION = "machineconfig>=6.64"
12
12
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
13
13
 
14
14
  class SSH:
@@ -112,10 +112,11 @@ class SSH:
112
112
  from machineconfig.scripts.python.helpers_devops.cli_utils import get_machine_specs
113
113
  self.local_specs: MachineSpecs = get_machine_specs()
114
114
  resp = self.run_shell(command=f"""~/.local/bin/utils get-machine-specs """, verbose_output=False, description="Getting remote machine specs", strict_stderr=False, strict_return_code=False)
115
- import json
115
+ # import json
116
116
  json_str = resp.op
117
- print(f"Remote machine specs JSON: {resp}")
118
- self.remote_specs: MachineSpecs = cast(MachineSpecs, json.loads(json_str))
117
+ print(f"Remote machine specs JSON: {resp.op}")
118
+ import ast
119
+ self.remote_specs: MachineSpecs = cast(MachineSpecs, ast.literal_eval(json_str))
119
120
  self.terminal_responses: list[Response] = []
120
121
 
121
122
  def __enter__(self) -> "SSH":
@@ -181,7 +182,7 @@ class SSH:
181
182
  uv_cmd = f"""{UV_RUN_CMD} {with_clause} python {py_path.relative_to(Path.home())}"""
182
183
  return self.run_shell(command=uv_cmd, verbose_output=verbose_output, description=description or f"run_py on {self.get_remote_repr(add_machine=False)}", strict_stderr=strict_stderr, strict_return_code=strict_return_code)
183
184
 
184
- def run_py_func(self, func: Callable[..., Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> Response:
185
+ def run_lambda_function(self, func: Callable[..., Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> Response:
185
186
  command = lambda_to_python_script(lmb=func, in_global=True)
186
187
  return self.run_py(python_code=command, uv_with=uv_with, uv_project_dir=uv_project_dir,
187
188
  description=f"run_py_func {func.__name__} on {self.get_remote_repr(add_machine=False)}",
@@ -196,7 +197,7 @@ class SSH:
196
197
 
197
198
  def create_dir(self, path_rel2home: str, overwrite_existing: bool) -> None:
198
199
  """Helper to create a directory on remote machine and return its path."""
199
- def create_target_dir(target_rel2home: str, overwrite: bool) -> None:
200
+ def create_target_dir(target_rel2home: str, overwrite: bool):
200
201
  from pathlib import Path
201
202
  import shutil
202
203
  directory_path = Path(target_rel2home).expanduser()
@@ -206,13 +207,15 @@ class SSH:
206
207
  else:
207
208
  directory_path.unlink()
208
209
  directory_path.parent.mkdir(parents=True, exist_ok=True)
209
- return
210
210
  command = lambda_to_python_script(lmb=lambda: create_target_dir(target_rel2home=path_rel2home, overwrite=overwrite_existing), in_global=True)
211
211
  tmp_py_file = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/create_target_dir_{randstr()}.py")
212
212
  tmp_py_file.parent.mkdir(parents=True, exist_ok=True)
213
213
  tmp_py_file.write_text(command, encoding="utf-8")
214
- self.copy_from_here(source_path=str(tmp_py_file), target_rel2home=None, compress_with_zip=False, recursive=False, overwrite_existing=True)
215
- self.run_shell(command=f"""{UV_RUN_CMD} python {tmp_py_file.as_posix()}""", verbose_output=False, description=f"Creating target dir {path_rel2home}", strict_stderr=True, strict_return_code=True)
214
+ # self.copy_from_here(source_path=str(tmp_py_file), target_rel2home=".tmp_file.py", compress_with_zip=False, recursive=False, overwrite_existing=True)
215
+ assert self.sftp is not None
216
+ tmp_remote_path = ".tmp_pyfile.py"
217
+ self.sftp.put(localpath=str(tmp_py_file), remotepath=str(Path(self.remote_specs["home_dir"]).joinpath(tmp_remote_path)))
218
+ self.run_shell(command=f"""{UV_RUN_CMD} python {tmp_remote_path}""", verbose_output=False, description=f"Creating target dir {path_rel2home}", strict_stderr=True, strict_return_code=True)
216
219
 
217
220
  def copy_from_here(self, source_path: str, target_rel2home: Optional[str], compress_with_zip: bool, recursive: bool, overwrite_existing: bool) -> None:
218
221
  if self.sftp is None: raise RuntimeError(f"SFTP connection not available for {self.hostname}. Cannot transfer files.")
@@ -226,7 +229,7 @@ class SSH:
226
229
  if not recursive:
227
230
  raise RuntimeError(f"SSH Error: source `{source_obj}` is a directory! Set `recursive=True` for recursive sending or `compress_with_zip=True` to zip it first.")
228
231
  file_paths_to_upload: list[Path] = [file_path for file_path in source_obj.rglob("*") if file_path.is_file()]
229
- # self.create_dir(path_rel2home=target_rel2home, overwrite_existing=overwrite_existing)
232
+ self.create_dir(path_rel2home=target_rel2home, overwrite_existing=overwrite_existing)
230
233
  for idx, file_path in enumerate(file_paths_to_upload):
231
234
  print(f" {idx + 1:03d}. {file_path}")
232
235
  for file_path in file_paths_to_upload:
@@ -243,7 +246,7 @@ class SSH:
243
246
  shutil.make_archive(str(zip_path), "zip", source_obj.parent, source_obj.name)
244
247
  source_obj = Path(str(zip_path) + ".zip")
245
248
  if not target_rel2home.endswith(".zip"): target_rel2home = target_rel2home + ".zip"
246
- # remotepath_str = self.create_dir(target_path=target_path, overwrite_existing=overwrite_existing)
249
+ self.create_dir(path_rel2home=target_rel2home, overwrite_existing=overwrite_existing)
247
250
  print(f"""📤 [SFTP UPLOAD] Sending file: {repr(source_obj)} ==> Remote Path: {target_rel2home}""")
248
251
  try:
249
252
  with self.tqdm_wrap(ascii=True, unit="b", unit_scale=True) as pbar:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 6.62
3
+ Version: 6.64
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -3,8 +3,8 @@ machineconfig/logger.py,sha256=XLckvZ8cPDpC5v75ESP3YNTputIrDYuvoYisj0YZtGw,1415
3
3
  machineconfig/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  machineconfig/cluster/remote/cloud_manager.py,sha256=8f5mIkAnXNjhVswlv49bEgAGLJIv_e_tNbI_wgPBo0Q,26041
5
5
  machineconfig/cluster/remote/data_transfer.py,sha256=1QxIUetqlhmyl67icBx0nFZEZ7Z2DRjygXofKLMOz-0,4385
6
- machineconfig/cluster/remote/distribute.py,sha256=TWnOcTcItu3QQTDP3cNsUprnteYYt7WM7oHpNuoPSFo,15273
7
- machineconfig/cluster/remote/file_manager.py,sha256=w1edpBcH8mHDEzRF5tqQDu5MJYsySIQrMCbgN23A4zM,13966
6
+ machineconfig/cluster/remote/distribute.py,sha256=_IJ2h5UugjsUuQxiW4rhiVinlxqqSxu5xKBCPfgEvi0,15257
7
+ machineconfig/cluster/remote/file_manager.py,sha256=-92YhIFNTd5FT9Jg842qISOScnU-x_iRsY0my_2z3ho,13910
8
8
  machineconfig/cluster/remote/job_params.py,sha256=_t5QKqRHReShaBlJfSgVS5E3_oHYcRUIRO_Uz1mbA-k,7698
9
9
  machineconfig/cluster/remote/loader_runner.py,sha256=Ia62ALepM3TP7kHaymfp0jEMuHJ0HjF31VbNJOCYYtM,7061
10
10
  machineconfig/cluster/remote/remote_machine.py,sha256=xRuoHKNsIT0-FTFSvF1q7scnGKz8Qp6bxuzYdQLUOVA,19670
@@ -163,7 +163,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
163
163
  machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
164
164
  machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
165
165
  machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
166
- machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=QxAnIuoen-hmziRoimoZmiO6WxJpCqVTVr_7ny4cVao,6932
166
+ machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=Bn2y9FK3Th1ay2YdFMVc2lwjV-CddTqsk8YHqhwfVq8,6932
167
167
  machineconfig/scripts/python/helpers_cloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
168
  machineconfig/scripts/python/helpers_cloud/cloud_copy.py,sha256=OV1w3ajFVFs6FJytjIPOntYB_aW2ywGohKi73V4Dm2Y,8691
169
169
  machineconfig/scripts/python/helpers_cloud/cloud_helpers.py,sha256=GA-bxXouUmknk9fyQAsPT-Xl3RG9-yBed71a2tu9Pig,4914
@@ -179,12 +179,12 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
179
179
  machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
180
180
  machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
181
181
  machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
- machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=5d0kGMU0AfQExub8af781iX4TJSF3Eb9OdSVFg1lWpk,7218
182
+ machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=_Xxvj-NuTl7Wvfex54EozaAVv0d2qk57xLGcwExZbpc,7218
183
183
  machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
184
184
  machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
185
185
  machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=B5Xa9pV5MdC4vPo3EmKaHvNMlThsY3c5F92YPE5j3rI,4176
186
186
  machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
187
- machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=0-R7YDIQS2cH2n9C7lShFoBRwbytQz3BCuHGQrus7FU,6225
187
+ machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=xH2rgQJphfJfSi-BJbAsLbjZuadvKGKTDzA4OGoleEM,6225
188
188
  machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=q9pFJ6AxPuygMr3onMNOKEuuQHbVE_6Qoyo7xRT5FX0,4196
189
189
  machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
190
190
  machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=jN_GeZyy-9tAJoBoASsmn9_tI7ZgkgXp7Ijgi2x_ssw,6053
@@ -225,7 +225,7 @@ machineconfig/scripts/python/helpers_navigator/main_app.py,sha256=R1vOBMUKaiFHOg
225
225
  machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wdm7YpDBtfhwcPnSqDPFrV2LqbcSBWMT4,414
226
226
  machineconfig/scripts/python/helpers_repos/action.py,sha256=9AxWy8mB9HFeV5t11-qD_l-KA5jkUmm0pXVKT1L6-Qk,14894
227
227
  machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
228
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=vkNFnvtWWb726oIje6Eg2uN34-mmxTmTLZZvrQLnhcs,10408
228
+ machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=hhT2lFgCax_TuItDkwOSsnIBbLgxqq4BDH0NwDUb1Yc,10408
229
229
  machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
230
230
  machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=vSDtrF4829jziwp6WZmGt9G8MJ9jY4hfXqtf0vhkYSE,607
231
231
  machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
@@ -241,7 +241,7 @@ machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdC
241
241
  machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
242
242
  machineconfig/scripts/python/nw/devops_add_ssh_key.py,sha256=CkIl85hZLtG9k7yXLSzqi88YrilHV4hIUWHAPBwxWjw,8922
243
243
  machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
244
- machineconfig/scripts/python/nw/mount_nfs,sha256=SRTinu_1lRrUpn6G_HXcT_cWD99u5kMWZ4C2GGWbCvE,1855
244
+ machineconfig/scripts/python/nw/mount_nfs,sha256=XVpYupDyjt1bGaHx_YdlXA40pqPqPIMjNdC1JJzdz5M,1855
245
245
  machineconfig/scripts/python/nw/mount_nfs.py,sha256=lOMDY4RS7tx8gsCazVR5tNNwFbaRyO2PJlnwBCDQgCM,3573
246
246
  machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
247
247
  machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
@@ -251,14 +251,14 @@ machineconfig/scripts/python/nw/onetimeshare.py,sha256=xRd8by6qUm-od2Umty2MYsXyJ
251
251
  machineconfig/scripts/python/nw/ssh_debug_linux.py,sha256=VSFhyzYQeLIoSwsUFJFW1Wc89DinrpZ_YxyYB2Ndy-4,30966
252
252
  machineconfig/scripts/python/nw/ssh_debug_windows.py,sha256=2prJs3PMsoAUu5LlZhHIKGVgqj7h6OviGEjAMJLJ7LI,29986
253
253
  machineconfig/scripts/python/nw/wifi_conn.py,sha256=4GdLhgma9GRmZ6OFg3oxOX-qY3sr45njPckozlpM_A0,15566
254
- machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=1ab9l-8MtAxofW5nGH9G2-BjlszaiLETu6WBECcNNhA,3546
254
+ machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=jHJyFTuks_Kw4cgE8xuGDVjO_71JgICrsV9ZQt53meY,3524
255
255
  machineconfig/scripts/windows/fzfb.ps1,sha256=Bmngm2aY8hnPa3iKAOK6EPDYdKzGLUc81wYOnJhNoqg,149
256
256
  machineconfig/scripts/windows/fzfg.ps1,sha256=CHJbMrMuZePd4dxwIwz3g4XWAEmWmckuX-Nrx2xgRkg,27
257
257
  machineconfig/scripts/windows/fzfrga.bat,sha256=rU_KBMO6ii2EZ0akMnmDk9vpuhKSUZqkV0o8a8ywXcM,488
258
258
  machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
259
259
  machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
260
260
  machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
261
- machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=UlfzENsubfyBBHfkbuEsL9IkmJgzbb4Przc8GoTCcIg,322
261
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=1GDYfWIGNf9dPUubLlde0eNxWWZ9uR-HhMNBBaZR4bI,322
262
262
  machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
263
263
  machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
264
264
  machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
@@ -375,7 +375,7 @@ machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKG
375
375
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
376
376
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
377
377
  machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
378
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=IK7v55VGTGpBt5imTtFkqwuRVbpWGenigVaczX2vefo,464
378
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=oerfdt3zfj6uv1yr1J3_iG54znqwjXbF0mrftJWVSlU,464
379
379
  machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
380
380
  machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
381
381
  machineconfig/setup_mac/uv.sh,sha256=CSN8oCBKS-LK1vJJqYOhAMcrouTf4Q_F3cpplc_ddMA,1157
@@ -389,7 +389,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
389
389
  machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
390
390
  machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
391
391
  machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
392
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=Q-LfSjqEpI5ODQceycTA1b-OsMw1bXDBD26YBnIA4Cs,581
392
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=ALfz_J88tr8lSqiP3lmvHaw7Pz3AD_S7vLe-XNMDzwA,581
393
393
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
394
394
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
395
395
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -398,7 +398,7 @@ machineconfig/utils/code.py,sha256=BOswTOV3iGCPJkUZtSPSs92XxfyZQpm4ihiu-ut1q14,5
398
398
  machineconfig/utils/installer.py,sha256=UzI_DtTcKbgvkAkWkNLAPUtx-RVqITHCpvZyLiCpD9g,10377
399
399
  machineconfig/utils/io.py,sha256=4dSieoqZO8Vvi4vW8lLoITDHBvmFp4dtl3kyeZHQ6Co,2528
400
400
  machineconfig/utils/links.py,sha256=KM6vIn3hag9FYEzLSHP5MAM9tU_RStw2mCq2_OvmmZA,23672
401
- machineconfig/utils/meta.py,sha256=JBr32VDXzl5eQs89QgCt9cKfFpqmGVvHXRAdj_uqSQU,7561
401
+ machineconfig/utils/meta.py,sha256=R8zykEoScxq1H2aTELwJMx6OQN7PDzJyD-TrZ5fLkJw,9208
402
402
  machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
403
403
  machineconfig/utils/options.py,sha256=vUO4Kej-vDOv64wHr2HNDyu6PATURpjd7xp6N8OOoJg,7083
404
404
  machineconfig/utils/path_extended.py,sha256=WyJwoHnXdvSQQJ-yrxTX78FpqYmgVeKDYpNEB9UsRck,53223
@@ -407,7 +407,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
407
407
  machineconfig/utils/scheduler.py,sha256=44CASABJg3epccxhAwv2CX7TVgZh6zVy3K4vqHKTuf4,14228
408
408
  machineconfig/utils/scheduling.py,sha256=6x5zLA7sY5gohrEtN6zGrXIqNFasMoyBfwLcOjrjiME,11109
409
409
  machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
410
- machineconfig/utils/ssh.py,sha256=lTvhFr9A2yNe6MbtcBMSl_d3wjeIfrkMUrREgMcZ7zk,35791
410
+ machineconfig/utils/ssh.py,sha256=RW6uAAFwdgnAYRINSMHn7zYW3j5bq4Hd2RxYd0EQRdw,36001
411
411
  machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
412
412
  machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
413
413
  machineconfig/utils/upgrade_packages.py,sha256=mSFyKvB3JhHte_x1dtmEgrJZCAXgTUQoaJUSx1OXQ3Y,4145
@@ -436,8 +436,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
436
436
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
437
437
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
438
438
  machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
439
- machineconfig-6.62.dist-info/METADATA,sha256=VjucUVQDh7RyqFcRHJooUz1f528jVpPQ6_ilmkmPrVo,2928
440
- machineconfig-6.62.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
441
- machineconfig-6.62.dist-info/entry_points.txt,sha256=NTW7hbUlpt5Vx9DdQrONLkYMCuBXpvYh1dt0AtlGxeI,466
442
- machineconfig-6.62.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
443
- machineconfig-6.62.dist-info/RECORD,,
439
+ machineconfig-6.64.dist-info/METADATA,sha256=SY_9gjzC6b3wF8BqpyY39r8baMeKiIaYQHsbioLEx0Y,2928
440
+ machineconfig-6.64.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
441
+ machineconfig-6.64.dist-info/entry_points.txt,sha256=NTW7hbUlpt5Vx9DdQrONLkYMCuBXpvYh1dt0AtlGxeI,466
442
+ machineconfig-6.64.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
443
+ machineconfig-6.64.dist-info/RECORD,,