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

@@ -95,17 +95,15 @@ def enhanced_zellij_session_start(session_name: str, layout_path: str) -> Dict[s
95
95
  # Start new session (use -b for background to avoid hanging)
96
96
  start_cmd = f"zellij --layout {layout_path} a -b {session_name}"
97
97
  start_result = run_enhanced_command(
98
- start_cmd,
99
- f"Starting session '{session_name}' with layout",
100
- False,
101
- 10, # Add timeout to prevent hanging
98
+ command=start_cmd, description=f"Starting session '{session_name}' with layout", show_progress=False,
99
+ timeout=10, # Add timeout to prevent hanging
102
100
  )
103
-
104
101
  if start_result["success"]:
105
102
  console.print(Panel(f"[bold green]✅ Session '{session_name}' is now running![/bold green]\n[dim]Layout: {layout_path}[/dim]", style="green", title="🎉 Success"))
106
103
  else:
107
104
  console.print(Panel(f"[bold red]❌ Failed to start session '{session_name}'[/bold red]\n[red]{start_result.get('stderr', 'Unknown error')}[/red]", style="red", title="💥 Error"))
108
-
105
+ # print("Sleeping for 3 seconds to allow zellij to initialize...")
106
+ # time.sleep(3) # Brief pause for readability
109
107
  return start_result
110
108
 
111
109
 
@@ -4,9 +4,9 @@ from typing import Optional, Literal
4
4
  from machineconfig.utils.schemas.layouts.layout_types import TabConfig, LayoutConfig
5
5
  from pathlib import Path
6
6
 
7
- def get_fire_tab_using_uv(func: FunctionType, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> tuple[TabConfig, Path]:
7
+ def get_fire_tab_using_uv(func: FunctionType, import_module: bool, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> tuple[TabConfig, Path]:
8
8
  from machineconfig.utils.meta import lambda_to_python_script
9
- py_script = lambda_to_python_script(lmb=lambda: func, in_global=True)
9
+ py_script = lambda_to_python_script(lmb=lambda: func, in_global=True, import_module=import_module)
10
10
  from machineconfig.utils.code import get_uv_command_executing_python_script
11
11
  command_to_run, py_script_path = get_uv_command_executing_python_script(python_script=py_script, uv_with=uv_with, uv_project_dir=uv_project_dir)
12
12
  tab_config: TabConfig = {
@@ -28,12 +28,12 @@ def get_fire_tab_using_fire(func: FunctionType):
28
28
  return tab_config
29
29
 
30
30
 
31
- def make_layout_from_functions(functions: list[FunctionType], tab_configs: list[TabConfig], layout_name: str, method: Literal["script", "fire"]="fire") -> LayoutConfig:
31
+ def make_layout_from_functions(functions: list[FunctionType], import_module: bool, tab_configs: list[TabConfig], layout_name: str, method: Literal["script", "fire"]="fire") -> LayoutConfig:
32
32
  tabs2artifacts: list[tuple[TabConfig, list[Path]]] = []
33
33
  for a_func in functions:
34
34
  match method:
35
35
  case "script":
36
- tab_config, artifact_files_1 = get_fire_tab_using_uv(a_func, uv_with=None, uv_project_dir=None)
36
+ tab_config, artifact_files_1 = get_fire_tab_using_uv(a_func, import_module=import_module, uv_with=None, uv_project_dir=None)
37
37
  artifact_files = [artifact_files_1]
38
38
  case "fire":
39
39
  tab_config = get_fire_tab_using_fire(a_func)
@@ -61,7 +61,7 @@ def croshell(
61
61
  print("Streamlit viewer is not yet implemented in this version.")
62
62
  return None
63
63
  file_obj = PathExtended(str(path).lstrip()).expanduser().absolute()
64
- program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(file_obj)), in_global=True)
64
+ program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(file_obj)), in_global=True, import_module=False)
65
65
  text = f"📄 Reading data from: {file_obj.name}"
66
66
  console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
67
67
  else: # if nothing is specified, then run in interactive mode.
@@ -91,7 +91,7 @@ def croshell(
91
91
  pyfile.parent.mkdir(parents=True, exist_ok=True)
92
92
 
93
93
  title = "Reading Data"
94
- def_code = lambda_to_python_script(lambda: code(path=str(pyfile), title=title), in_global=False)
94
+ def_code = lambda_to_python_script(lambda: code(path=str(pyfile), title=title), in_global=False, import_module=False)
95
95
  # print(def_code)
96
96
  python_program = preprogram + "\n\n" + def_code + program
97
97
  pyfile.write_text(python_program, encoding="utf-8")
@@ -2,7 +2,7 @@
2
2
  # /// script
3
3
  # requires-python = ">=3.13"
4
4
  # dependencies = [
5
- # "machineconfig>=6.64",
5
+ # "machineconfig>=6.65",
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.64")
49
+ uv_with.append("machineconfig>=6.65")
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.64" """)
44
+ run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.65" """)
45
45
  else:
46
- run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.64" """)
46
+ run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.65" """)
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.64,textual" """
71
+ else: executable = """--with "machineconfig>=6.65,textual" """
72
72
  run_shell_script(f"""uv run {executable} {path}""")
73
73
 
74
74
 
@@ -111,7 +111,7 @@ def merge_pdfs(
111
111
  writer.write(output_path)
112
112
  print(f"✅ Merged PDF saved to: {output_path}")
113
113
  from machineconfig.utils.meta import lambda_to_python_script
114
- code = lambda_to_python_script(lambda : merge_pdfs_internal(pdf1=pdf1, pdf2=pdf2, output=output, compress=compress), in_global=True)
114
+ code = lambda_to_python_script(lambda : merge_pdfs_internal(pdf1=pdf1, pdf2=pdf2, output=output, compress=compress), in_global=True, import_module=False)
115
115
  from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
116
116
  uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=["pypdf"], uv_project_dir=None)
117
117
  run_shell_script(uv_command)
@@ -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.64"]
83
+ uv_with = ["machineconfig>=6.65"]
84
84
  uv_project_dir = None
85
85
 
86
86
  import tempfile
@@ -111,7 +111,7 @@ git pull originEnc master
111
111
  def func2(remote_repo: str, local_repo: str, cloud: str):
112
112
  from machineconfig.scripts.python.helpers_repos.sync import delete_remote_repo_copy_and_push_local
113
113
  delete_remote_repo_copy_and_push_local(remote_repo=remote_repo, local_repo=local_repo, cloud=cloud)
114
- program_1_py = lambda_to_python_script(lambda: func2(remote_repo=str(repo_remote_root), local_repo=str(repo_local_root), cloud=str(cloud_resolved)), in_global=True)
114
+ program_1_py = lambda_to_python_script(lambda: func2(remote_repo=str(repo_remote_root), local_repo=str(repo_local_root), cloud=str(cloud_resolved)), in_global=True, import_module=False)
115
115
  program1, _pyfile1 = get_uv_command_executing_python_script(python_script=program_1_py, uv_with=uv_with, uv_project_dir=uv_project_dir)
116
116
  # ================================================================================
117
117
  option2 = "Delete local repo and replace it with remote copy:"
@@ -136,7 +136,7 @@ sudo chmod +x $HOME/dotfiles/scripts/linux -R
136
136
  inspect_repos(repo_local_root=repo_local_root, repo_remote_root=repo_remote_root)
137
137
  # program_3_py = function_to_script(func=func, call_with_kwargs={"repo_local_root": str(repo_local_root), "repo_remote_root": str(repo_remote_root)})
138
138
  # shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_path=None, executable=executable)
139
- program_3_py = lambda_to_python_script(lambda: func(repo_local_root=str(repo_local_root), repo_remote_root=str(repo_remote_root)), in_global=True)
139
+ program_3_py = lambda_to_python_script(lambda: func(repo_local_root=str(repo_local_root), repo_remote_root=str(repo_remote_root)), in_global=True, import_module=False)
140
140
  program3, _pyfile3 = get_uv_command_executing_python_script(python_script=program_3_py, uv_with=uv_with, uv_project_dir=uv_project_dir)
141
141
  # ================================================================================
142
142
 
@@ -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.64" python -m machineconfig.scripts.python.mount_nfs
8
+ uv run --python 3.14 --with "machineconfig>=6.65" 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."
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=6.64" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=6.65" 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.64" mcfg "$@"
4
+ "$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.65" 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.64" mcfg $args
5
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.65" mcfg $args
6
6
  }
7
7
  function d { mcfg devops @args }
8
8
  function c { mcfg cloud @args }
@@ -37,7 +37,7 @@ def get_uv_command_executing_python_script(python_script: str, uv_with: Optional
37
37
  else:
38
38
  uv_project_dir_arg = ""
39
39
  from machineconfig.utils.meta import lambda_to_python_script
40
- print_code_string = lambda_to_python_script(lambda: print_code(code=python_script, lexer="python", desc="Temporary Python Script", subtitle="Executing via shell script"), in_global=True)
40
+ print_code_string = lambda_to_python_script(lambda: print_code(code=python_script, lexer="python", desc="Temporary Python Script", subtitle="Executing via shell script"), in_global=True, import_module=False)
41
41
  python_file.write_text(print_code_string + "\n" + python_script, encoding="utf-8")
42
42
  shell_script = f"""uv run {uv_with_arg} {uv_project_dir_arg} {str(python_file)} """
43
43
  return shell_script, python_file
@@ -45,7 +45,7 @@ def get_uv_command_executing_python_script(python_script: str, uv_with: Optional
45
45
 
46
46
  def run_lambda_function(lmb: Callable[[], Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> None:
47
47
  from machineconfig.utils.meta import lambda_to_python_script
48
- code = lambda_to_python_script(lmb, in_global=True)
48
+ code = lambda_to_python_script(lmb, in_global=True, import_module=False)
49
49
  uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=uv_with, uv_project_dir=uv_project_dir)
50
50
  run_shell_script(uv_command)
51
51
 
@@ -29,7 +29,7 @@ except (ImportError, ModuleNotFoundError) as ex:
29
29
  return txt
30
30
 
31
31
 
32
- def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool, import_module: bool = False) -> str:
32
+ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool, import_module: bool) -> str:
33
33
  """
34
34
  caveats: always use keyword arguments in the lambda call for best results.
35
35
  return statement not allowed in the wrapped function (otherwise it can be put in the global space)
@@ -107,9 +107,7 @@ def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool, import_modu
107
107
  import_prefix: str = ""
108
108
  if import_module:
109
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.")
110
+ module_path_candidate: str = module_file if module_file is not None else _inspect.getfile(func_obj)
113
111
  import_prefix = get_import_module_string(str(_Path(module_path_candidate)))
114
112
 
115
113
  # Evaluate each keyword argument value in the lambda's globals to get real Python objects
@@ -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.64"
11
+ MACHINECONFIG_VERSION = "machineconfig>=6.65"
12
12
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
13
13
 
14
14
  class SSH:
@@ -182,8 +182,8 @@ class SSH:
182
182
  uv_cmd = f"""{UV_RUN_CMD} {with_clause} python {py_path.relative_to(Path.home())}"""
183
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)
184
184
 
185
- def run_lambda_function(self, func: Callable[..., Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> Response:
186
- command = lambda_to_python_script(lmb=func, in_global=True)
185
+ def run_lambda_function(self, func: Callable[..., Any], import_module: bool, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> Response:
186
+ command = lambda_to_python_script(lmb=func, in_global=True, import_module=import_module)
187
187
  return self.run_py(python_code=command, uv_with=uv_with, uv_project_dir=uv_project_dir,
188
188
  description=f"run_py_func {func.__name__} on {self.get_remote_repr(add_machine=False)}",
189
189
  verbose_output=True, strict_stderr=True, strict_return_code=True)
@@ -207,7 +207,7 @@ class SSH:
207
207
  else:
208
208
  directory_path.unlink()
209
209
  directory_path.parent.mkdir(parents=True, exist_ok=True)
210
- command = lambda_to_python_script(lmb=lambda: create_target_dir(target_rel2home=path_rel2home, overwrite=overwrite_existing), in_global=True)
210
+ command = lambda_to_python_script(lmb=lambda: create_target_dir(target_rel2home=path_rel2home, overwrite=overwrite_existing), in_global=True, import_module=False)
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")
@@ -270,7 +270,7 @@ class SSH:
270
270
  with zipfile.ZipFile(archive_path, "r") as archive_handle:
271
271
  archive_handle.extractall(extraction_directory)
272
272
  archive_path.unlink()
273
- command = lambda_to_python_script(lmb=lambda: unzip_archive(zip_file_path=str(Path(self.remote_specs["home_dir"]).joinpath(target_rel2home)), overwrite_flag=overwrite_existing), in_global=True)
273
+ command = lambda_to_python_script(lmb=lambda: unzip_archive(zip_file_path=str(Path(self.remote_specs["home_dir"]).joinpath(target_rel2home)), overwrite_flag=overwrite_existing), in_global=True, import_module=False)
274
274
  tmp_py_file = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/create_target_dir_{randstr()}.py")
275
275
  tmp_py_file.parent.mkdir(parents=True, exist_ok=True)
276
276
  tmp_py_file.write_text(command, encoding="utf-8")
@@ -291,7 +291,7 @@ class SSH:
291
291
  print(json_result_path.as_posix())
292
292
  return is_directory
293
293
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
294
- command = lambda_to_python_script(lmb=lambda: check_is_dir(path_to_check=str(source_path), json_output_path=remote_json_output), in_global=True)
294
+ command = lambda_to_python_script(lmb=lambda: check_is_dir(path_to_check=str(source_path), json_output_path=remote_json_output), in_global=True, import_module=False)
295
295
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description=f"Check if source `{source_path}` is a dir", verbose_output=False, strict_stderr=False, strict_return_code=False)
296
296
  remote_json_path = response.op.strip()
297
297
  if not remote_json_path:
@@ -325,7 +325,7 @@ class SSH:
325
325
 
326
326
 
327
327
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
328
- command = lambda_to_python_script(lmb=lambda: expand_source(path_to_expand=str(source_path), json_output_path=remote_json_output), in_global=True)
328
+ command = lambda_to_python_script(lmb=lambda: expand_source(path_to_expand=str(source_path), json_output_path=remote_json_output), in_global=True, import_module=False)
329
329
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description="Resolving source path by expanding user", verbose_output=False, strict_stderr=False, strict_return_code=False)
330
330
  remote_json_path = response.op.strip()
331
331
  if not remote_json_path:
@@ -374,7 +374,7 @@ class SSH:
374
374
 
375
375
 
376
376
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
377
- command = lambda_to_python_script(lmb=lambda: search_files(directory_path=expanded_source, json_output_path=remote_json_output), in_global=True)
377
+ command = lambda_to_python_script(lmb=lambda: search_files(directory_path=expanded_source, json_output_path=remote_json_output), in_global=True, import_module=False)
378
378
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description="Searching for files in source", verbose_output=False, strict_stderr=False, strict_return_code=False)
379
379
  remote_json_path = response.op.strip()
380
380
  if not remote_json_path:
@@ -412,7 +412,7 @@ class SSH:
412
412
 
413
413
 
414
414
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
415
- command = lambda_to_python_script(lmb=lambda: collapse_to_home_dir(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True)
415
+ command = lambda_to_python_script(lmb=lambda: collapse_to_home_dir(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True, import_module=False)
416
416
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
417
417
  remote_json_path_dir = response.op.strip()
418
418
  if not remote_json_path_dir:
@@ -464,7 +464,7 @@ class SSH:
464
464
 
465
465
 
466
466
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
467
- command = lambda_to_python_script(lmb=lambda: zip_source(path_to_zip=expanded_source, json_output_path=remote_json_output), in_global=True)
467
+ command = lambda_to_python_script(lmb=lambda: zip_source(path_to_zip=expanded_source, json_output_path=remote_json_output), in_global=True, import_module=False)
468
468
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description=f"Zipping source file {source}", verbose_output=False, strict_stderr=False, strict_return_code=False)
469
469
  remote_json_path = response.op.strip()
470
470
  if not remote_json_path:
@@ -503,7 +503,7 @@ class SSH:
503
503
 
504
504
 
505
505
  remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
506
- command = lambda_to_python_script(lmb=lambda: collapse_to_home(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True)
506
+ command = lambda_to_python_script(lmb=lambda: collapse_to_home(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True, import_module=False)
507
507
  response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description="Finding default target via relative source path", verbose_output=False, strict_stderr=False, strict_return_code=False)
508
508
  remote_json_path = response.op.strip()
509
509
  if not remote_json_path:
@@ -559,7 +559,7 @@ class SSH:
559
559
  file_or_dir_path.unlink()
560
560
 
561
561
 
562
- command = lambda_to_python_script(lmb=lambda: delete_temp_zip(path_to_delete=expanded_source), in_global=True)
562
+ command = lambda_to_python_script(lmb=lambda: delete_temp_zip(path_to_delete=expanded_source), in_global=True, import_module=False)
563
563
  self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description="Cleaning temp zip files @ remote.", verbose_output=False, strict_stderr=True, strict_return_code=True)
564
564
 
565
565
  print("\n")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 6.64
3
+ Version: 6.65
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -22,10 +22,10 @@ machineconfig/cluster/sessions_managers/zellij_local.py,sha256=eI3nLzlg1lrKDBu-R
22
22
  machineconfig/cluster/sessions_managers/zellij_local_manager.py,sha256=YJVhBTWh4FVduvnysMeka_uQ7cckRTLpMrBx5O386zs,17701
23
23
  machineconfig/cluster/sessions_managers/zellij_remote.py,sha256=TFx-Xjmoue8KjbzBFtvFSOSx3zgoTdS_N1WWPPdMBm8,8513
24
24
  machineconfig/cluster/sessions_managers/zellij_remote_manager.py,sha256=xzih0y8_1vMH58kMQE2oFj5sdjDM8lWhe5lbz0U9hZo,8417
25
- machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py,sha256=3vcQVg-HHa_WTxBGPtKMAdoSqJVa2EO5KAtrY8a6I3c,5264
25
+ machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py,sha256=YULt8r3zotkotjdmWRrUq3yGySZW-5e_rQSIZ-IMvjk,5410
26
26
  machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py,sha256=i5TRittC1IWTgMZNyG8AR5qq-3WrGp3xgIx2m5ktT7g,7526
27
27
  machineconfig/cluster/sessions_managers/utils/load_balancer.py,sha256=Y4RQmhROY6o7JXSJXRrBTkoAuEmu1gvmvN_7JKPw5sc,3178
28
- machineconfig/cluster/sessions_managers/utils/maker.py,sha256=rEw11vY_EkTOl-l8a7ApieWFeksTT7dhwjWGOXxJRpY,2110
28
+ machineconfig/cluster/sessions_managers/utils/maker.py,sha256=yLbxT2pFIsgGnU8pHjAdVwVvRNeh74aPtS3AiqNOVZI,2210
29
29
  machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py,sha256=OA50j16uUS9ZTjL38TLuR3jufIOln_EszMZpbWyejTo,6972
30
30
  machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py,sha256=Mitm7mKiKl5lT0OiEUHAqVg2Q21RjsKO1-hpJTHJ5lM,15196
31
31
  machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py,sha256=lApUy67_WhfaBXqt0meZSx_QvwiXjN0YLdyE3c7kP_s,6744
@@ -122,7 +122,7 @@ machineconfig/scripts/linux/other/switch_ip,sha256=NQfeKMBSbFY3eP6M-BadD-TQo5qMP
122
122
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
123
  machineconfig/scripts/python/agents.py,sha256=gGeeWCI0AN_DyDJ3G5KR9qSsXv8zkUd5dBRRWqz-dQE,10722
124
124
  machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
125
- machineconfig/scripts/python/croshell.py,sha256=alixA33il7ssklDY59vb_g31xF9JNe_DP1c89pCg4C4,8205
125
+ machineconfig/scripts/python/croshell.py,sha256=RVGH3ZcuBDnw0oPllNsvZQxJsulVxYNec7rJcvCnBg8,8247
126
126
  machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
127
127
  machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
128
128
  machineconfig/scripts/python/entry.py,sha256=liCf186Msa6R-EjcQ0I6K80Km7Wi8qckJB6rXIHeHU0,2488
@@ -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=Bn2y9FK3Th1ay2YdFMVc2lwjV-CddTqsk8YHqhwfVq8,6932
166
+ machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=hRqisQK8c_9L34DiZx853eKBjK_JEksPxoNZFr2z2Zc,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,15 +179,15 @@ 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=_Xxvj-NuTl7Wvfex54EozaAVv0d2qk57xLGcwExZbpc,7218
182
+ machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=y1unMaxsRayGGfflv8zh6vmQsxUla_G-vEHMYjWWIEU,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=xH2rgQJphfJfSi-BJbAsLbjZuadvKGKTDzA4OGoleEM,6225
187
+ machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=iGCzrt_S1XKKQB76guZZMLNuw3TO7Tu9IqPwMHnMMKQ,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
- machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=jN_GeZyy-9tAJoBoASsmn9_tI7ZgkgXp7Ijgi2x_ssw,6053
190
+ machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=gj9KNY6GyzSflXJRkX0lzyvypvwdgseudXhgJcmAtPY,6074
191
191
  machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
192
192
  machineconfig/scripts/python/helpers_devops/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
193
193
  machineconfig/scripts/python/helpers_devops/devops_update_repos.py,sha256=kSln8_-Wn7Qu0NaKdt-QTN_bBVyTIAWHH8xVYKK-vCM,10133
@@ -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=hhT2lFgCax_TuItDkwOSsnIBbLgxqq4BDH0NwDUb1Yc,10408
228
+ machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=wVU5cKtVnWR-WQUu_k-RI7a6Gfz8F18MZDWp8Hvuwao,10450
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=XVpYupDyjt1bGaHx_YdlXA40pqPqPIMjNdC1JJzdz5M,1855
244
+ machineconfig/scripts/python/nw/mount_nfs,sha256=JfJnyZJ5Xmjbo_x-SlzC8R3jZxqn9zK_QhgKZQ-QVxk,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
@@ -258,7 +258,7 @@ machineconfig/scripts/windows/fzfrga.bat,sha256=rU_KBMO6ii2EZ0akMnmDk9vpuhKSUZqk
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=1GDYfWIGNf9dPUubLlde0eNxWWZ9uR-HhMNBBaZR4bI,322
261
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=xm6cjG_3U5Yclm3GwUX6rn133-XXGL6t50tDCPoTmy8,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=oerfdt3zfj6uv1yr1J3_iG54znqwjXbF0mrftJWVSlU,464
378
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=FoKoirE9kdZcZgNa9y1Jko5Zkiqk15sRhZGiVsYbvVI,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,16 +389,16 @@ 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=ALfz_J88tr8lSqiP3lmvHaw7Pz3AD_S7vLe-XNMDzwA,581
392
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=nTEmNZ5IoBGuffyjdIU9W0fyE-TDj-gpXzACqYKxdAo,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
396
396
  machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
397
- machineconfig/utils/code.py,sha256=BOswTOV3iGCPJkUZtSPSs92XxfyZQpm4ihiu-ut1q14,5775
397
+ machineconfig/utils/code.py,sha256=GWSaKwugLm-r11JA4bnkyrEe1ZyDw0L2mqiGyZqWbS8,5817
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=R8zykEoScxq1H2aTELwJMx6OQN7PDzJyD-TrZ5fLkJw,9208
401
+ machineconfig/utils/meta.py,sha256=wVa4C6wV7pqrpwmQ6IEaPxK3Xew9NxM6HpDMu51q5kI,9053
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=RW6uAAFwdgnAYRINSMHn7zYW3j5bq4Hd2RxYd0EQRdw,36001
410
+ machineconfig/utils/ssh.py,sha256=h8zmGVd80sb2tLQrGLJrw58sDLsHMUG2N_--6cr4QSc,36240
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.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,,
439
+ machineconfig-6.65.dist-info/METADATA,sha256=xKURcrh9FXCSPAFyDfgd10xqJa1euYTg2agCFYO2e9g,2928
440
+ machineconfig-6.65.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
441
+ machineconfig-6.65.dist-info/entry_points.txt,sha256=NTW7hbUlpt5Vx9DdQrONLkYMCuBXpvYh1dt0AtlGxeI,466
442
+ machineconfig-6.65.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
443
+ machineconfig-6.65.dist-info/RECORD,,