machineconfig 6.54__py3-none-any.whl → 6.55__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/cluster/sessions_managers/utils/maker.py +2 -2
- machineconfig/scripts/python/croshell.py +3 -3
- machineconfig/scripts/python/helpers_devops/cli_config.py +8 -4
- machineconfig/scripts/python/helpers_devops/cli_utils.py +6 -8
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +12 -12
- machineconfig/utils/code.py +10 -3
- machineconfig/utils/meta.py +2 -1
- machineconfig/utils/ssh.py +20 -20
- {machineconfig-6.54.dist-info → machineconfig-6.55.dist-info}/METADATA +1 -1
- {machineconfig-6.54.dist-info → machineconfig-6.55.dist-info}/RECORD +13 -13
- {machineconfig-6.54.dist-info → machineconfig-6.55.dist-info}/WHEEL +0 -0
- {machineconfig-6.54.dist-info → machineconfig-6.55.dist-info}/entry_points.txt +0 -0
- {machineconfig-6.54.dist-info → machineconfig-6.55.dist-info}/top_level.txt +0 -0
|
@@ -5,8 +5,8 @@ from machineconfig.utils.schemas.layouts.layout_types import TabConfig, LayoutCo
|
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
7
|
def get_fire_tab_using_uv(func: FunctionType, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> tuple[TabConfig, Path]:
|
|
8
|
-
from machineconfig.utils.meta import
|
|
9
|
-
py_script =
|
|
8
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
9
|
+
py_script = lambda_to_python_script(lmb=lambda: func, in_global=True)
|
|
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 = {
|
|
@@ -6,7 +6,7 @@ croshell
|
|
|
6
6
|
|
|
7
7
|
from typing import Annotated, Optional
|
|
8
8
|
from machineconfig.scripts.python.helpers_croshell.crosh import code, get_read_data_pycode
|
|
9
|
-
from machineconfig.utils.meta import
|
|
9
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
10
10
|
import typer
|
|
11
11
|
from machineconfig.utils.path_extended import PathExtended
|
|
12
12
|
from pathlib import Path
|
|
@@ -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 =
|
|
64
|
+
program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(file_obj)), in_global=True)
|
|
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 =
|
|
94
|
+
def_code = lambda_to_python_script(lambda: code(path=str(pyfile), title=title), in_global=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")
|
|
@@ -42,10 +42,14 @@ def path():
|
|
|
42
42
|
from machineconfig.scripts.python import env_manager as navigator
|
|
43
43
|
from pathlib import Path
|
|
44
44
|
path = Path(navigator.__file__).resolve().parent.joinpath("path_manager_tui.py")
|
|
45
|
-
from machineconfig.utils.code import run_shell_script
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
|
|
46
|
+
uv_with = ["textual"]
|
|
47
|
+
uv_project_dir = None
|
|
48
|
+
if not Path.home().joinpath("code/machineconfig").exists():
|
|
49
|
+
uv_with.append("machineconfig>=6.52")
|
|
50
|
+
else:
|
|
51
|
+
uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
|
|
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])
|
|
49
53
|
|
|
50
54
|
|
|
51
55
|
def pwsh_theme():
|
|
@@ -84,7 +84,7 @@ def merge_pdfs(
|
|
|
84
84
|
output: Annotated[Optional[str], typer.Option("--output", "-o", help="Output merged PDF file path.")] = None,
|
|
85
85
|
compress: Annotated[bool, typer.Option("--compress", "-c", help="Compress the output PDF.")] = False,
|
|
86
86
|
) -> None:
|
|
87
|
-
def merge_pdfs_internal(pdf1: str, pdf2: str, output:
|
|
87
|
+
def merge_pdfs_internal(pdf1: str, pdf2: str, output: str | None, compress: bool) -> None:
|
|
88
88
|
from pypdf import PdfReader, PdfWriter
|
|
89
89
|
writer = PdfWriter()
|
|
90
90
|
for pdf_path in [pdf1, pdf2]:
|
|
@@ -110,13 +110,11 @@ def merge_pdfs(
|
|
|
110
110
|
pass
|
|
111
111
|
writer.write(output_path)
|
|
112
112
|
print(f"✅ Merged PDF saved to: {output_path}")
|
|
113
|
-
from machineconfig.utils.meta import
|
|
114
|
-
code =
|
|
115
|
-
import
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
from machineconfig.utils.code import run_shell_script
|
|
119
|
-
run_shell_script(f"""uv run --with pypdf {tmp_py_file} """)
|
|
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)
|
|
115
|
+
from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
|
|
116
|
+
uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=["pypdf"], uv_project_dir=None)
|
|
117
|
+
run_shell_script(uv_command)
|
|
120
118
|
|
|
121
119
|
|
|
122
120
|
def get_app() -> typer.Typer:
|
|
@@ -107,12 +107,12 @@ git pull originEnc master
|
|
|
107
107
|
|
|
108
108
|
# ================================================================================
|
|
109
109
|
option1 = "Delete remote copy and push local:"
|
|
110
|
-
from machineconfig.utils.meta import
|
|
110
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
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 =
|
|
115
|
-
|
|
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)
|
|
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:"
|
|
118
118
|
program_2 = f"""
|
|
@@ -136,8 +136,8 @@ 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 =
|
|
140
|
-
|
|
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)
|
|
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
|
|
|
143
143
|
option4 = "Remove problematic rclone file from repo and replace with remote:"
|
|
@@ -146,7 +146,7 @@ rm $HOME/dotfiles/creds/rclone/rclone.conf
|
|
|
146
146
|
cp $HOME/.config/machineconfig/remote/dotfiles/creds/rclone/rclone.conf $HOME/dotfiles/creds/rclone
|
|
147
147
|
cd $HOME/dotfiles
|
|
148
148
|
git commit -am "finished merging"
|
|
149
|
-
{
|
|
149
|
+
{program1}
|
|
150
150
|
"""
|
|
151
151
|
shell_file_4 = Path(tempfile.mkstemp(suffix=".ps1" if platform.system() == "Windows" else ".sh")[1])
|
|
152
152
|
shell_file_4.write_text(program_4, encoding="utf-8")
|
|
@@ -154,9 +154,9 @@ git commit -am "finished merging"
|
|
|
154
154
|
|
|
155
155
|
console.print(Panel("🔄 RESOLVE MERGE CONFLICT\nChoose an option to resolve the conflict:", title_align="left", border_style="blue"))
|
|
156
156
|
|
|
157
|
-
print(f"• {option1:75} 👉 {
|
|
157
|
+
print(f"• {option1:75} 👉 {program1}")
|
|
158
158
|
print(f"• {option2:75} 👉 {shell_file_2}")
|
|
159
|
-
print(f"• {option3:75} 👉 {
|
|
159
|
+
print(f"• {option3:75} 👉 {program3}")
|
|
160
160
|
print(f"• {option4:75} 👉 {shell_file_4}")
|
|
161
161
|
print("\n\n")
|
|
162
162
|
|
|
@@ -166,21 +166,21 @@ git commit -am "finished merging"
|
|
|
166
166
|
import questionary
|
|
167
167
|
choice = questionary.select("Choose one option:", choices=[option1, option2, option3, option4]).ask()
|
|
168
168
|
if choice == option1:
|
|
169
|
-
program_content =
|
|
169
|
+
program_content = program1
|
|
170
170
|
elif choice == option2:
|
|
171
171
|
program_content = program_2
|
|
172
172
|
elif choice == option3:
|
|
173
|
-
program_content =
|
|
173
|
+
program_content = program3
|
|
174
174
|
elif choice == option4:
|
|
175
175
|
program_content = program_4
|
|
176
176
|
else:
|
|
177
177
|
raise NotImplementedError(f"Choice {choice} not implemented.")
|
|
178
178
|
case "push-local-merge":
|
|
179
|
-
program_content =
|
|
179
|
+
program_content = program1
|
|
180
180
|
case "overwrite-local":
|
|
181
181
|
program_content = program_2
|
|
182
182
|
case "stop-on-conflict":
|
|
183
|
-
program_content =
|
|
183
|
+
program_content = program3
|
|
184
184
|
case "remove-rclone-conflict":
|
|
185
185
|
program_content = program_4
|
|
186
186
|
case _:
|
machineconfig/utils/code.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import atexit
|
|
3
3
|
# import platform
|
|
4
|
-
from typing import Optional
|
|
4
|
+
from typing import Any, Optional, Callable
|
|
5
5
|
import subprocess
|
|
6
6
|
from machineconfig.utils.accessories import randstr
|
|
7
7
|
from machineconfig.utils.path_extended import PathExtended
|
|
@@ -36,13 +36,20 @@ def get_uv_command_executing_python_script(python_script: str, uv_with: Optional
|
|
|
36
36
|
uv_project_dir_arg = "--project" + f' "{uv_project_dir}"'
|
|
37
37
|
else:
|
|
38
38
|
uv_project_dir_arg = ""
|
|
39
|
-
from machineconfig.utils.meta import
|
|
40
|
-
print_code_string =
|
|
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)
|
|
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
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def run_lambda_function(lmb: Callable[[], Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> None:
|
|
47
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
48
|
+
code = lambda_to_python_script(lmb, in_global=True)
|
|
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
|
+
run_shell_script(uv_command)
|
|
51
|
+
|
|
52
|
+
|
|
46
53
|
def run_shell_script(script: str, display_script: bool = True, clean_env: bool = False):
|
|
47
54
|
import tempfile
|
|
48
55
|
import platform
|
machineconfig/utils/meta.py
CHANGED
|
@@ -4,10 +4,11 @@ from collections.abc import Callable
|
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
def
|
|
7
|
+
def lambda_to_python_script(lmb: Callable[[], Any], in_global: bool) -> str:
|
|
8
8
|
"""
|
|
9
9
|
caveats: always use keyword arguments in the lambda call for best results.
|
|
10
10
|
return statement not allowed in the wrapped function (otherwise it can be put in the global space)
|
|
11
|
+
type hint in kwargs has nothing that is not built in, e.g. Optional will not work as it requires an import.
|
|
11
12
|
|
|
12
13
|
Given a no-arg lambda like `lambda: func(a=var1, b=var2)`,
|
|
13
14
|
return a string containing the full function definition of `func`
|
machineconfig/utils/ssh.py
CHANGED
|
@@ -205,8 +205,8 @@ class SSH:
|
|
|
205
205
|
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)
|
|
206
206
|
|
|
207
207
|
def run_py_func(self, func: Callable[..., Any], uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> Response:
|
|
208
|
-
from machineconfig.utils.meta import
|
|
209
|
-
command =
|
|
208
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
209
|
+
command = lambda_to_python_script(lmb=lambda: func, in_global=True)
|
|
210
210
|
return self.run_py(python_code=command, uv_with=uv_with, uv_project_dir=uv_project_dir,
|
|
211
211
|
description=f"run_py_func {func.__name__} on {self.get_remote_repr(add_machine=False)}",
|
|
212
212
|
verbose_output=True, strict_stderr=True, strict_return_code=True)
|
|
@@ -237,11 +237,11 @@ class SSH:
|
|
|
237
237
|
json_result_path.write_text(json.dumps(result_path_posix, indent=2), encoding="utf-8")
|
|
238
238
|
print(json_result_path.as_posix())
|
|
239
239
|
return result_path_posix
|
|
240
|
-
from machineconfig.utils.meta import
|
|
240
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
241
241
|
from machineconfig.utils.accessories import randstr
|
|
242
242
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
243
243
|
# command = function_to_script(func=create_target_dir, call_with_kwargs={"target_dir_path": Path(target_path).as_posix(), "overwrite": overwrite_existing, "json_output_path": remote_json_output})
|
|
244
|
-
command =
|
|
244
|
+
command = lambda_to_python_script(lmb=lambda: create_target_dir(target_dir_path=str(target_path), overwrite=overwrite_existing, json_output_path=remote_json_output), in_global=True)
|
|
245
245
|
response = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None,
|
|
246
246
|
description=f"Creating target directory `{Path(target_path).parent.as_posix()}` @ {self.get_remote_repr(add_machine=False)}",
|
|
247
247
|
verbose_output=False, strict_stderr=False, strict_return_code=False)
|
|
@@ -325,8 +325,8 @@ class SSH:
|
|
|
325
325
|
with zipfile.ZipFile(archive_path, "r") as archive_handle:
|
|
326
326
|
archive_handle.extractall(extraction_directory)
|
|
327
327
|
archive_path.unlink()
|
|
328
|
-
from machineconfig.utils.meta import
|
|
329
|
-
command =
|
|
328
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
329
|
+
command = lambda_to_python_script(lmb=lambda: unzip_archive(zip_file_path=remotepath.as_posix(), overwrite_flag=overwrite_existing), in_global=True)
|
|
330
330
|
_resp = self.run_py(python_code=command, uv_with=[MACHINECONFIG_VERSION], uv_project_dir=None, description=f"UNZIPPING {remotepath.as_posix()}", verbose_output=False, strict_stderr=True, strict_return_code=True)
|
|
331
331
|
source_obj.unlink()
|
|
332
332
|
return source_obj
|
|
@@ -343,10 +343,10 @@ class SSH:
|
|
|
343
343
|
print(json_result_path.as_posix())
|
|
344
344
|
return is_directory
|
|
345
345
|
|
|
346
|
-
from machineconfig.utils.meta import
|
|
346
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
347
347
|
from machineconfig.utils.accessories import randstr
|
|
348
348
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
349
|
-
command =
|
|
349
|
+
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)
|
|
350
350
|
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)
|
|
351
351
|
remote_json_path = response.op.strip()
|
|
352
352
|
if not remote_json_path:
|
|
@@ -377,10 +377,10 @@ class SSH:
|
|
|
377
377
|
print(json_result_path.as_posix())
|
|
378
378
|
return expanded_path_posix
|
|
379
379
|
|
|
380
|
-
from machineconfig.utils.meta import
|
|
380
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
381
381
|
from machineconfig.utils.accessories import randstr
|
|
382
382
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
383
|
-
command =
|
|
383
|
+
command = lambda_to_python_script(lmb=lambda: expand_source(path_to_expand=str(source_path), json_output_path=remote_json_output), in_global=True)
|
|
384
384
|
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)
|
|
385
385
|
remote_json_path = response.op.strip()
|
|
386
386
|
if not remote_json_path:
|
|
@@ -426,10 +426,10 @@ class SSH:
|
|
|
426
426
|
print(json_result_path.as_posix())
|
|
427
427
|
return file_paths_list
|
|
428
428
|
|
|
429
|
-
from machineconfig.utils.meta import
|
|
429
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
430
430
|
from machineconfig.utils.accessories import randstr
|
|
431
431
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
432
|
-
command =
|
|
432
|
+
command = lambda_to_python_script(lmb=lambda: search_files(directory_path=expanded_source, json_output_path=remote_json_output), in_global=True)
|
|
433
433
|
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)
|
|
434
434
|
remote_json_path = response.op.strip()
|
|
435
435
|
if not remote_json_path:
|
|
@@ -464,10 +464,10 @@ class SSH:
|
|
|
464
464
|
except ValueError:
|
|
465
465
|
raise RuntimeError(f"Source path must be relative to home directory: {source_absolute_path}")
|
|
466
466
|
|
|
467
|
-
from machineconfig.utils.meta import
|
|
467
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
468
468
|
from machineconfig.utils.accessories import randstr
|
|
469
469
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
470
|
-
command =
|
|
470
|
+
command = lambda_to_python_script(lmb=lambda: collapse_to_home_dir(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True)
|
|
471
471
|
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)
|
|
472
472
|
remote_json_path_dir = response.op.strip()
|
|
473
473
|
if not remote_json_path_dir:
|
|
@@ -516,10 +516,10 @@ class SSH:
|
|
|
516
516
|
print(json_result_path.as_posix())
|
|
517
517
|
return zip_file_path
|
|
518
518
|
|
|
519
|
-
from machineconfig.utils.meta import
|
|
519
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
520
520
|
from machineconfig.utils.accessories import randstr
|
|
521
521
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
522
|
-
command =
|
|
522
|
+
command = lambda_to_python_script(lmb=lambda: zip_source(path_to_zip=expanded_source, json_output_path=remote_json_output), in_global=True)
|
|
523
523
|
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)
|
|
524
524
|
remote_json_path = response.op.strip()
|
|
525
525
|
if not remote_json_path:
|
|
@@ -555,10 +555,10 @@ class SSH:
|
|
|
555
555
|
except ValueError:
|
|
556
556
|
raise RuntimeError(f"Source path must be relative to home directory: {source_absolute_path}")
|
|
557
557
|
|
|
558
|
-
from machineconfig.utils.meta import
|
|
558
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
559
559
|
from machineconfig.utils.accessories import randstr
|
|
560
560
|
remote_json_output = Path.home().joinpath(f"{DEFAULT_PICKLE_SUBDIR}/return_{randstr()}.json").as_posix()
|
|
561
|
-
command =
|
|
561
|
+
command = lambda_to_python_script(lmb=lambda: collapse_to_home(absolute_path=expanded_source, json_output_path=remote_json_output), in_global=True)
|
|
562
562
|
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)
|
|
563
563
|
remote_json_path = response.op.strip()
|
|
564
564
|
if not remote_json_path:
|
|
@@ -613,8 +613,8 @@ class SSH:
|
|
|
613
613
|
else:
|
|
614
614
|
file_or_dir_path.unlink()
|
|
615
615
|
|
|
616
|
-
from machineconfig.utils.meta import
|
|
617
|
-
command =
|
|
616
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
617
|
+
command = lambda_to_python_script(lmb=lambda: delete_temp_zip(path_to_delete=expanded_source), in_global=True)
|
|
618
618
|
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)
|
|
619
619
|
|
|
620
620
|
print("\n")
|
|
@@ -25,7 +25,7 @@ machineconfig/cluster/sessions_managers/zellij_remote_manager.py,sha256=xzih0y8_
|
|
|
25
25
|
machineconfig/cluster/sessions_managers/helpers/enhanced_command_runner.py,sha256=3vcQVg-HHa_WTxBGPtKMAdoSqJVa2EO5KAtrY8a6I3c,5264
|
|
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=
|
|
28
|
+
machineconfig/cluster/sessions_managers/utils/maker.py,sha256=rEw11vY_EkTOl-l8a7ApieWFeksTT7dhwjWGOXxJRpY,2110
|
|
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=
|
|
125
|
+
machineconfig/scripts/python/croshell.py,sha256=UvQs3so3FvsC0gK3_3bxACsb4UJcNLdmQ0V0eoQ_cYg,8075
|
|
126
126
|
machineconfig/scripts/python/devops.py,sha256=LGra1YiLEQYjaRevNjJB51Bia81IgjrvUQkA6z8wq8I,2440
|
|
127
127
|
machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
|
|
128
128
|
machineconfig/scripts/python/entry.py,sha256=a0Zk_3RnIFTQ55zSQrvOOiKom_SaoxElPMmWQgGy4V0,2221
|
|
@@ -178,7 +178,7 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
178
178
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
179
179
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
180
180
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
181
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
181
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=BXN4z_O49Ju0IjYVldBYAKL4jE4nW5MdqRwV-oC03e0,5815
|
|
182
182
|
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
|
|
183
183
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
184
184
|
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=B5Xa9pV5MdC4vPo3EmKaHvNMlThsY3c5F92YPE5j3rI,4176
|
|
@@ -186,7 +186,7 @@ machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSP
|
|
|
186
186
|
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=-IyJpuw8Wnttls8y2vcNNkxtI9jUveROMPT-eudOoC4,6171
|
|
187
187
|
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=q9pFJ6AxPuygMr3onMNOKEuuQHbVE_6Qoyo7xRT5FX0,4196
|
|
188
188
|
machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
189
|
-
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=
|
|
189
|
+
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=518qiKRorTWDcOJkN0LFLAKNBZSzOXczTAD9ljc7oS8,5633
|
|
190
190
|
machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
|
|
191
191
|
machineconfig/scripts/python/helpers_devops/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
|
|
192
192
|
machineconfig/scripts/python/helpers_devops/devops_update_repos.py,sha256=kSln8_-Wn7Qu0NaKdt-QTN_bBVyTIAWHH8xVYKK-vCM,10133
|
|
@@ -222,7 +222,7 @@ machineconfig/scripts/python/helpers_navigator/main_app.py,sha256=R1vOBMUKaiFHOg
|
|
|
222
222
|
machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wdm7YpDBtfhwcPnSqDPFrV2LqbcSBWMT4,414
|
|
223
223
|
machineconfig/scripts/python/helpers_repos/action.py,sha256=9AxWy8mB9HFeV5t11-qD_l-KA5jkUmm0pXVKT1L6-Qk,14894
|
|
224
224
|
machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
|
|
225
|
-
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=
|
|
225
|
+
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=QF01q1d7EhlV4BE5UEbZ6GqikTDgvYg7mImcR7HyFDQ,10408
|
|
226
226
|
machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
|
|
227
227
|
machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=epbXDwuXe_9jXaX3KA2JlG1sPXybdGq1NX4dRljHpF8,607
|
|
228
228
|
machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
|
|
@@ -390,11 +390,11 @@ machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
|
|
|
390
390
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
391
391
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
392
392
|
machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
|
|
393
|
-
machineconfig/utils/code.py,sha256=
|
|
393
|
+
machineconfig/utils/code.py,sha256=BOswTOV3iGCPJkUZtSPSs92XxfyZQpm4ihiu-ut1q14,5775
|
|
394
394
|
machineconfig/utils/installer.py,sha256=UzI_DtTcKbgvkAkWkNLAPUtx-RVqITHCpvZyLiCpD9g,10377
|
|
395
395
|
machineconfig/utils/io.py,sha256=4dSieoqZO8Vvi4vW8lLoITDHBvmFp4dtl3kyeZHQ6Co,2528
|
|
396
396
|
machineconfig/utils/links.py,sha256=KM6vIn3hag9FYEzLSHP5MAM9tU_RStw2mCq2_OvmmZA,23672
|
|
397
|
-
machineconfig/utils/meta.py,sha256
|
|
397
|
+
machineconfig/utils/meta.py,sha256=JBr32VDXzl5eQs89QgCt9cKfFpqmGVvHXRAdj_uqSQU,7561
|
|
398
398
|
machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
|
|
399
399
|
machineconfig/utils/options.py,sha256=vUO4Kej-vDOv64wHr2HNDyu6PATURpjd7xp6N8OOoJg,7083
|
|
400
400
|
machineconfig/utils/path_extended.py,sha256=WyJwoHnXdvSQQJ-yrxTX78FpqYmgVeKDYpNEB9UsRck,53223
|
|
@@ -403,7 +403,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
|
|
|
403
403
|
machineconfig/utils/scheduler.py,sha256=44CASABJg3epccxhAwv2CX7TVgZh6zVy3K4vqHKTuf4,14228
|
|
404
404
|
machineconfig/utils/scheduling.py,sha256=6x5zLA7sY5gohrEtN6zGrXIqNFasMoyBfwLcOjrjiME,11109
|
|
405
405
|
machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
|
|
406
|
-
machineconfig/utils/ssh.py,sha256=
|
|
406
|
+
machineconfig/utils/ssh.py,sha256=yihEBMmVI85VRgh-zmc8VcbFl-JPd4CVWGYamsACCeM,39390
|
|
407
407
|
machineconfig/utils/terminal.py,sha256=IlmOByfQG-vjhaFFxxzU5rWzP5_qUzmalRfuey3PAmc,11801
|
|
408
408
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
409
409
|
machineconfig/utils/upgrade_packages.py,sha256=mSFyKvB3JhHte_x1dtmEgrJZCAXgTUQoaJUSx1OXQ3Y,4145
|
|
@@ -432,8 +432,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
432
432
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
433
433
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
434
434
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
435
|
-
machineconfig-6.
|
|
436
|
-
machineconfig-6.
|
|
437
|
-
machineconfig-6.
|
|
438
|
-
machineconfig-6.
|
|
439
|
-
machineconfig-6.
|
|
435
|
+
machineconfig-6.55.dist-info/METADATA,sha256=ui_ZRrAkleozbHc5trAWu-1szNaUecJkMJbg1f0fzhc,2928
|
|
436
|
+
machineconfig-6.55.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
437
|
+
machineconfig-6.55.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
|
|
438
|
+
machineconfig-6.55.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
439
|
+
machineconfig-6.55.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|