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

Files changed (50) hide show
  1. machineconfig/jobs/installer/custom/hx.py +1 -1
  2. machineconfig/jobs/installer/custom_dev/alacritty.py +4 -4
  3. machineconfig/jobs/installer/installer_data.json +17 -0
  4. machineconfig/jobs/installer/linux_scripts/wezterm.sh +1 -1
  5. machineconfig/jobs/installer/package_groups.py +70 -111
  6. machineconfig/scripts/python/agents.py +4 -4
  7. machineconfig/scripts/python/choose_wezterm_theme.py +2 -2
  8. machineconfig/scripts/python/devops.py +6 -6
  9. machineconfig/scripts/python/{devops_update_repos.py → devops_helpers/devops_update_repos.py} +1 -1
  10. machineconfig/scripts/python/fire_jobs.py +3 -3
  11. machineconfig/scripts/python/helpers/repo_sync_helpers.py +14 -1
  12. machineconfig/scripts/python/helpers_fire/__init__.py +0 -0
  13. machineconfig/scripts/python/{fire_agents_help_launch.py → helpers_fire/fire_agents_help_launch.py} +1 -1
  14. machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
  15. machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
  16. machineconfig/scripts/python/helpers_repos/grource.py +341 -0
  17. machineconfig/scripts/python/interactive.py +1 -1
  18. machineconfig/scripts/python/repos.py +75 -73
  19. machineconfig/scripts/python/{count_lines_frontend.py → repos_helpers/count_lines_frontend.py} +1 -1
  20. machineconfig/scripts/python/{repos_helper.py → repos_helpers/repos_helper.py} +4 -12
  21. machineconfig/scripts/python/{repos_helper_action.py → repos_helpers/repos_helper_action.py} +1 -1
  22. machineconfig/scripts/python/sessions_multiprocess.py +1 -1
  23. machineconfig/utils/files/ouch/__init__.py +0 -0
  24. machineconfig/utils/files/ouch/decompress.py +45 -0
  25. machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
  26. machineconfig/utils/source_of_truth.py +0 -1
  27. machineconfig/utils/ssh.py +33 -19
  28. {machineconfig-5.25.dist-info → machineconfig-5.27.dist-info}/METADATA +3 -1
  29. {machineconfig-5.25.dist-info → machineconfig-5.27.dist-info}/RECORD +48 -44
  30. machineconfig/scripts/python/get_zellij_cmd.py +0 -15
  31. machineconfig/scripts/python/t4.py +0 -17
  32. /machineconfig/jobs/{python → installer}/check_installations.py +0 -0
  33. /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → devops_helpers/__init__.py} +0 -0
  34. /machineconfig/scripts/python/{devops_add_identity.py → devops_helpers/devops_add_identity.py} +0 -0
  35. /machineconfig/scripts/python/{devops_add_ssh_key.py → devops_helpers/devops_add_ssh_key.py} +0 -0
  36. /machineconfig/scripts/python/{devops_backup_retrieve.py → devops_helpers/devops_backup_retrieve.py} +0 -0
  37. /machineconfig/scripts/python/{devops_status.py → devops_helpers/devops_status.py} +0 -0
  38. /machineconfig/scripts/python/{fire_agents_help_search.py → helpers_fire/fire_agents_help_search.py} +0 -0
  39. /machineconfig/scripts/python/{fire_agents_helper_types.py → helpers_fire/fire_agents_helper_types.py} +0 -0
  40. /machineconfig/scripts/python/{fire_agents_load_balancer.py → helpers_fire/fire_agents_load_balancer.py} +0 -0
  41. /machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -0
  42. /machineconfig/scripts/python/{fire_jobs_args_helper.py → helpers_fire_command/fire_jobs_args_helper.py} +0 -0
  43. /machineconfig/scripts/python/{fire_jobs_route_helper.py → helpers_fire_command/fire_jobs_route_helper.py} +0 -0
  44. /machineconfig/scripts/python/{count_lines.py → repos_helpers/count_lines.py} +0 -0
  45. /machineconfig/scripts/python/{repos_helper_clone.py → repos_helpers/repos_helper_clone.py} +0 -0
  46. /machineconfig/scripts/python/{repos_helper_record.py → repos_helpers/repos_helper_record.py} +0 -0
  47. /machineconfig/scripts/python/{repos_helper_update.py → repos_helpers/repos_helper_update.py} +0 -0
  48. {machineconfig-5.25.dist-info → machineconfig-5.27.dist-info}/WHEEL +0 -0
  49. {machineconfig-5.25.dist-info → machineconfig-5.27.dist-info}/entry_points.txt +0 -0
  50. {machineconfig-5.25.dist-info → machineconfig-5.27.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,45 @@
1
+
2
+
3
+ from pathlib import Path
4
+ from zipfile import ZipFile, BadZipFile
5
+ from typing import Union
6
+
7
+
8
+ def decompress_and_remove_zip(zip_path: Union[str, Path]) -> None:
9
+ """
10
+ Decompress a ZIP file and remove it after extraction.
11
+
12
+ Args:
13
+ zip_path (Union[str, Path]): Path to the ZIP file.
14
+
15
+ Raises:
16
+ FileNotFoundError: If the zip file does not exist.
17
+ BadZipFile: If the file is not a valid ZIP archive.
18
+ PermissionError: If the file cannot be deleted due to permission issues.
19
+ Exception: For other unexpected errors.
20
+ """
21
+ zip_path = Path(zip_path)
22
+
23
+ if not zip_path.exists():
24
+ raise FileNotFoundError(f"The file '{zip_path}' does not exist.")
25
+
26
+ if not zip_path.is_file():
27
+ raise FileNotFoundError(f"The path '{zip_path}' is not a file.")
28
+
29
+ extract_dir = zip_path.parent
30
+
31
+ try:
32
+ with ZipFile(zip_path, 'r') as zip_ref:
33
+ zip_ref.extractall(extract_dir)
34
+ except BadZipFile as e:
35
+ raise BadZipFile(f"The file '{zip_path}' is not a valid zip archive.") from e
36
+ except Exception as e:
37
+ raise Exception(f"Failed to extract '{zip_path}': {e}") from e
38
+
39
+ try:
40
+ zip_path.unlink()
41
+ except PermissionError as e:
42
+ raise PermissionError(f"Permission denied when deleting '{zip_path}'.") from e
43
+ except Exception as e:
44
+ raise Exception(f"Failed to delete '{zip_path}': {e}") from e
45
+
@@ -6,7 +6,7 @@ capturing all user inputs collected during interactive execution.
6
6
 
7
7
  from pathlib import Path
8
8
  from typing import TypedDict, Literal, NotRequired
9
- from machineconfig.scripts.python.fire_agents_help_launch import AGENTS
9
+ from machineconfig.scripts.python.helpers_fire.fire_agents_help_launch import AGENTS
10
10
 
11
11
  SEARCH_STRATEGIES = Literal["file_path", "keyword_search", "filename_pattern"]
12
12
 
@@ -17,7 +17,6 @@ INSTALL_VERSION_ROOT = CONFIG_PATH.joinpath("cli_tools_installers/versions")
17
17
  INSTALL_TMP_DIR = Path.home().joinpath("tmp_results", "tmp_installers")
18
18
 
19
19
  # LINUX_INSTALL_PATH = '/usr/local/bin'
20
- # LINUX_INSTALL_PATH = '~/.local/bin'
21
20
  LINUX_INSTALL_PATH = Path.home().joinpath(".local/bin").__str__()
22
21
  WINDOWS_INSTALL_PATH = Path.home().joinpath("AppData/Local/Microsoft/WindowsApps").__str__()
23
22
 
@@ -8,12 +8,7 @@ from machineconfig.utils.accessories import pprint
8
8
  # from machineconfig.utils.ve import get_ve_activate_line
9
9
 
10
10
 
11
- def get_header(wdir: OPLike):
12
- return f"""
13
- # >> Code prepended
14
- {'''sys.path.insert(0, r'{wdir}') ''' if wdir is not None else "# No path insertion."}
15
- # >> End of header, start of script passed
16
- """
11
+ def get_header(wdir: str): return f"""import sys; sys.path.insert(0, r'{wdir}')"""
17
12
 
18
13
 
19
14
  @dataclass
@@ -165,7 +160,6 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
165
160
  if self._local_distro is None:
166
161
  command = """uv run --with distro python -c "import distro; print(distro.name(pretty=True))" """
167
162
  import subprocess
168
-
169
163
  res = subprocess.run(command, shell=True, capture_output=True, text=True).stdout.strip()
170
164
  self._local_distro = res
171
165
  return res
@@ -173,7 +167,7 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
173
167
 
174
168
  def get_remote_distro(self):
175
169
  if self._remote_distro is None:
176
- res = self.run("""~/.local/bin/uv run --with distro python -c "import distro; print(distro.name(pretty=True))" """)
170
+ res = self.run("""$HOME/.local/bin/uv run --with distro python -c "import distro; print(distro.name(pretty=True))" """)
177
171
  self._remote_distro = res.op_if_successfull_or_default() or ""
178
172
  return self._remote_distro
179
173
 
@@ -225,17 +219,22 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
225
219
  assert '"' not in cmd, 'Avoid using `"` in your command. I dont know how to handle this when passing is as command to python in pwsh command.'
226
220
  if not return_obj:
227
221
  return self.run(
228
- cmd=f"""uv run --no-dev --project $HOME/code/machineconfig -c "{get_header(wdir=None)}{cmd}\n""" + '"',
222
+ cmd=f"""$HOME/.local/bin/uv run --no-dev --project $HOME/code/machineconfig python -c "{cmd}\n""" + '"',
229
223
  desc=desc or f"run_py on {self.get_remote_repr()}",
230
224
  verbose=verbose,
231
225
  strict_err=strict_err,
232
226
  strict_returncode=strict_returncode,
233
227
  )
234
228
  assert "obj=" in cmd, "The command sent to run_py must have `obj=` statement if return_obj is set to True"
235
- source_file = self.run_py(f"""{cmd}\npath = Save.pickle(obj=obj, path=P.tmpfile(suffix='.pkl'))\nprint(path)""", desc=desc, verbose=verbose, strict_err=True, strict_returncode=True).op.split("\n")[-1]
229
+ source_file = self.run_py(f"""{cmd}
230
+ import pickle
231
+ import tempfile
232
+ from pathlib import Path
233
+ path = tempfile.emkstemp(suffix=".pkl")[1]
234
+ Path(path).write_bytes(pickle.dumps(obj))
235
+ print(path)""", desc=desc, verbose=verbose, strict_err=True, strict_returncode=True).op.split("\n")[-1]
236
236
  res = self.copy_to_here(source=source_file, target=PathExtended.tmpfile(suffix=".pkl"))
237
237
  import pickle
238
-
239
238
  return pickle.loads(res.read_bytes())
240
239
 
241
240
  def copy_from_here(self, source: PLike, target: OPLike = None, z: bool = False, r: bool = False, overwrite: bool = False, init: bool = True) -> Union[PathExtended, list[PathExtended]]:
@@ -255,7 +254,11 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
255
254
  source_list: list[PathExtended] = source_obj.search("*", folders=False, files=True, r=True)
256
255
  remote_root = (
257
256
  self.run_py(
258
- f"path=P(r'{PathExtended(target).as_posix()}').expanduser()\n{'path.delete(sure=True)' if overwrite else ''}\nprint(path.create())",
257
+ f"""
258
+ from machineconfig.utils.path_extended import PathExtended as P
259
+ path=P(r'{PathExtended(target).as_posix()}').expanduser()
260
+ {'path.delete(sure=True)' if overwrite else ''}
261
+ print(path.create())""",
259
262
  desc=f"Creating Target directory `{PathExtended(target).as_posix()}` @ {self.get_remote_repr()}",
260
263
  verbose=False,
261
264
  ).op
@@ -272,7 +275,10 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
272
275
  source_obj = PathExtended(source_obj).expanduser().zip(content=True) # .append(f"_{randstr()}", inplace=True) # eventually, unzip will raise content flag, so this name doesn't matter.
273
276
  remotepath = (
274
277
  self.run_py(
275
- f"path=P(r'{PathExtended(target).as_posix()}').expanduser()\n{'path.delete(sure=True)' if overwrite else ''}\nprint(path.parent.create())",
278
+ f"""
279
+ path=P(r'{PathExtended(target).as_posix()}').expanduser()
280
+ {'path.delete(sure=True)' if overwrite else ''}
281
+ print(path.parent.create())""",
276
282
  desc=f"Creating Target directory `{PathExtended(target).parent.as_posix()}` @ {self.get_remote_repr()}",
277
283
  verbose=False,
278
284
  ).op
@@ -283,7 +289,9 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
283
289
  with self.tqdm_wrap(ascii=True, unit="b", unit_scale=True) as pbar:
284
290
  self.sftp.put(localpath=PathExtended(source_obj).expanduser(), remotepath=remotepath.as_posix(), callback=pbar.view_bar) # type: ignore # pylint: disable=E1129
285
291
  if z:
286
- _resp = self.run_py(f"""P(r'{remotepath.as_posix()}').expanduser().unzip(content=False, inplace=True, overwrite={overwrite})""", desc=f"UNZIPPING {remotepath.as_posix()}", verbose=False, strict_err=True, strict_returncode=True)
292
+ _resp = self.run_py(f"""
293
+ from machineconfig.utils.path_extended import PathExtended as P;
294
+ P(r'{remotepath.as_posix()}').expanduser().unzip(content=False, inplace=True, overwrite={overwrite})""", desc=f"UNZIPPING {remotepath.as_posix()}", verbose=False, strict_err=True, strict_returncode=True)
287
295
  source_obj.delete(sure=True)
288
296
  print("\n")
289
297
  return source_obj
@@ -291,15 +299,20 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
291
299
  def copy_to_here(self, source: PLike, target: OPLike = None, z: bool = False, r: bool = False, init: bool = True) -> PathExtended:
292
300
  if init:
293
301
  print(f"{'⬇️' * 5} SFTP DOWNLOADING FROM `{source}` TO `{target}`")
294
- if not z and self.run_py(f"print(P(r'{source}').expanduser().absolute().is_dir())", desc=f"Check if source `{source}` is a dir", verbose=False, strict_returncode=True, strict_err=True).op.split("\n")[-1] == "True":
302
+ if not z and self.run_py(f"""
303
+ from machineconfig.utils.path_extended import PathExtended as P
304
+ print(P(r'{source}').expanduser().absolute().is_dir())""", desc=f"Check if source `{source}` is a dir", verbose=False, strict_returncode=True, strict_err=True).op.split("\n")[-1] == "True":
295
305
  if r is False:
296
306
  raise RuntimeError(f"source `{source}` is a directory! either set r=True for recursive sending or raise zip_first flag.")
297
- source_list = self.run_py(f"obj=P(r'{source}').search(folders=False, r=True).collapseuser(strict=False)", desc="Searching for files in source", return_obj=True, verbose=False)
307
+ source_list = self.run_py(f"""
308
+ from machineconfig.utils.path_extended import PathExtended as P
309
+ obj=P(r'{source}').search(folders=False, r=True).collapseuser(strict=False)
310
+ """, desc="Searching for files in source", return_obj=True, verbose=False)
298
311
  assert isinstance(source_list, List), f"Could not resolve source path {source} due to error"
299
312
  for file in source_list:
300
313
  self.copy_to_here(source=file.as_posix(), target=PathExtended(target).joinpath(PathExtended(file).relative_to(source)) if target else None, r=False)
301
314
  if z:
302
- tmp: Response = self.run_py(f"print(P(r'{source}').expanduser().zip(inplace=False, verbose=False))", desc=f"Zipping source file {source}", verbose=False)
315
+ tmp: Response = self.run_py(f"from machineconfig.utils.path_extended import PathExtended as P; print(P(r'{source}').expanduser().zip(inplace=False, verbose=False))", desc=f"Zipping source file {source}", verbose=False)
303
316
  tmp2 = tmp.op2path(strict_returncode=True, strict_err=True)
304
317
  if not isinstance(tmp2, PathExtended):
305
318
  raise RuntimeError(f"Could not zip {source} due to {tmp.err}")
@@ -330,7 +343,7 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
330
343
  self.sftp.get(remotepath=source.as_posix(), localpath=str(target_obj), callback=pbar.view_bar) # type: ignore
331
344
  if z:
332
345
  target_obj = target_obj.unzip(inplace=True, content=True)
333
- self.run_py(f"P(r'{source.as_posix()}').delete(sure=True)", desc="Cleaning temp zip files @ remote.", strict_returncode=True, strict_err=True, verbose=False)
346
+ self.run_py(f"from machineconfig.utils.path_extended import PathExtended as P; P(r'{source.as_posix()}').delete(sure=True)", desc="Cleaning temp zip files @ remote.", strict_returncode=True, strict_err=True, verbose=False)
334
347
  print("\n")
335
348
  return target_obj
336
349
 
@@ -355,6 +368,7 @@ class SSH: # inferior alternative: https://github.com/fabric/fabric
355
368
  self.sftp.get(remotepath=source.as_posix(), localpath=target.as_posix(), callback=pbar.view_bar) # type: ignore # pylint: disable=E1129
356
369
  if z:
357
370
  target = target.unzip(inplace=True, content=True)
358
- self.run_py(f"P(r'{source.as_posix()}').delete(sure=True)", desc="Cleaning temp zip files @ remote.", strict_returncode=True, strict_err=True)
371
+ self.run_py(f"""
372
+ from machineconfig.utils.path_extended import PathExtended as P; P(r'{source.as_posix()}').delete(sure=True)""", desc="Cleaning temp zip files @ remote.", strict_returncode=True, strict_err=True)
359
373
  print("\n")
360
374
  return target
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.25
3
+ Version: 5.27
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -60,11 +60,13 @@ Additionally, files that contain data, sensitive information that should not be
60
60
 
61
61
 
62
62
  # Windows:
63
+
63
64
  ```powershell
64
65
  iex (iwr bit.ly/cfgiawindows).Content
65
66
  ```
66
67
 
67
68
  # Linux and MacOS
69
+
68
70
  ```bash
69
71
  . <(curl -sL bit.ly/cfgialinux)
70
72
  ```
@@ -45,12 +45,13 @@ machineconfig/cluster/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
45
45
  machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQwzAHH_04stPuV5bY,647
46
46
  machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- machineconfig/jobs/installer/installer_data.json,sha256=K6B6EPD8IXIeOzkY7sIIpphBmDVwnV_tczULAx-Y2ps,72114
49
- machineconfig/jobs/installer/package_groups.py,sha256=7LLrbs_yc4dkttIhZ5cR3zAZHMuBV5Gt0zN6t3J_jqg,6822
48
+ machineconfig/jobs/installer/check_installations.py,sha256=wOtvWzyJSxbuFueFfcOc4gX_UbTRWv6tWpRcG-3Ml_8,10780
49
+ machineconfig/jobs/installer/installer_data.json,sha256=ExwnBwbnk_RzBa-aIqk5JTPdO_qWpuLuV6gMALQ1b4w,72527
50
+ machineconfig/jobs/installer/package_groups.py,sha256=IuF6FBVMs4jGsoSZZZdzaBO0wfA3ef2ZmgP8gFdBAl8,5361
50
51
  machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
51
- machineconfig/jobs/installer/custom/hx.py,sha256=ahtnne0zLvnBDjbKPaEk987R_mub8KJhwWpe4fe0kCU,5824
52
+ machineconfig/jobs/installer/custom/hx.py,sha256=YQClQXqWtGvon8BLFGf1Fp20JPkHgZeEZ6ebmCJQQfI,5838
52
53
  machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=dQJ7EZ-23N3UOeWwccC-HTbrpfKDRxrzdmfqeIPKwQE,2738
54
+ machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=STXertp5pE6VVhcjAfZSKBxAC94S2HAzas646jwd4ow,2754
54
55
  machineconfig/jobs/installer/custom_dev/brave.py,sha256=kHgGRwgKrvpIlGzmdnWO6HJnSrnj8RlBEV_1Zz4s_Hw,2829
55
56
  machineconfig/jobs/installer/custom_dev/bypass_paywall.py,sha256=ZF8yF2srljLChe1tOw_fEsalOkts4RpNwlzX9GtWh2g,1888
56
57
  machineconfig/jobs/installer/custom_dev/code.py,sha256=0Hb4ToMLQX4WWyG4xfUEJMTwN01ad5VZGogu3Llqtbc,2480
@@ -75,13 +76,12 @@ machineconfig/jobs/installer/linux_scripts/redis.sh,sha256=XNsnypuP0UQDdNnLQ1rHC
75
76
  machineconfig/jobs/installer/linux_scripts/timescaledb.sh,sha256=-thz4K7Eo_4IsNTQMLsmQdyMdVhW7NAMn5S2CB3-blE,3530
76
77
  machineconfig/jobs/installer/linux_scripts/vscode.sh,sha256=8S0nZpOeAdhpVHvygt6rs1sywCtjHNECfNNRhXMHWW8,5417
77
78
  machineconfig/jobs/installer/linux_scripts/warp-cli.sh,sha256=PVNLeYWdh3XEFllCVZDYIHBI42btjGlH5jbyXjJGz-Y,3033
78
- machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=m697rRoIIVk-f8JdI1YQmphk-JWpMc5IYbD5YaQ3SeQ,1874
79
+ machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=rfEcFHjsel-93A8qL1x3PJOKlgHoDjz5efE657Ozj_M,1878
79
80
  machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1,sha256=JsQfGAMkvirhiUmBNOifMlbum2PfHSs0-Akgj-J-WZw,3177
80
81
  machineconfig/jobs/linux/msc/cli_agents.sh,sha256=MMa_cd4yijI69c7tztTY1b0tl9I1ECTbxqLCShElhFU,184
81
82
  machineconfig/jobs/linux/msc/lid.sh,sha256=09LeoSaXCGjCn7YxPcIFQpHroYdglJlEtFU2agarh3I,1302
82
83
  machineconfig/jobs/linux/msc/network.sh,sha256=dmISsh0hioDheinqee3qHfo2k7ClFx6G_GfGDxuflmc,1796
83
84
  machineconfig/jobs/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- machineconfig/jobs/python/check_installations.py,sha256=wOtvWzyJSxbuFueFfcOc4gX_UbTRWv6tWpRcG-3Ml_8,10780
85
85
  machineconfig/jobs/python/python_ve_symlink.py,sha256=Mw2SK_TDLK5Ct_mEESh_Pd-Rn-B1oBSp7a_9y_eZbqw,1140
86
86
  machineconfig/jobs/python/vscode/api.py,sha256=Et0G-VUj13D1rshYMdDrw_CUYSO7Q6XRrEQO0WjVIKU,1683
87
87
  machineconfig/jobs/python/vscode/sync_code.py,sha256=f9hxMg_nkIsC0xvfQMboJbc-Jhap9YQrV7k7a5YSI1c,2333
@@ -139,54 +139,32 @@ machineconfig/scripts/linux/warp-cli.sh,sha256=shFFZ9viet_DSEEHT8kxlGRHoJpO6o85p
139
139
  machineconfig/scripts/linux/wifi_conn,sha256=X4TH3OvcVZfOveSbF9WW8uXb4U_G7ZSnCERc7VYAqkc,95
140
140
  machineconfig/scripts/linux/z_ls,sha256=ATZtu0ccN3AKvAOxkwLq1xgQjJ3en5byEWJ3Q8afnNg,3340
141
141
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
- machineconfig/scripts/python/agents.py,sha256=iMR-lpkdIzpm1CEin092IRCq2RbXLD-8Z_SOcV0g33Q,9897
143
- machineconfig/scripts/python/choose_wezterm_theme.py,sha256=Hlu_EOQhLM6wYdAdY25jcqEK11BkVwQYwkz04xnIBVU,3397
142
+ machineconfig/scripts/python/agents.py,sha256=JUrywdrPP-N4RAndTth_TQ-gIYbiHm92OdSkkPoI-gM,9949
143
+ machineconfig/scripts/python/choose_wezterm_theme.py,sha256=pRXAGe2IpysYshsaF8CKEwHI8EGPtLcM8PtiAqM7vmM,3425
144
144
  machineconfig/scripts/python/cloud_copy.py,sha256=fcWbSo2nGiubtMYjGci8s5tVjZ9D-u8mteCawZmbw3I,8379
145
- machineconfig/scripts/python/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
146
145
  machineconfig/scripts/python/cloud_mount.py,sha256=GwcXbd5ohoHGESfX5edtCEl2-umDDxH_AZapmFSzc9E,6740
147
146
  machineconfig/scripts/python/cloud_repo_sync.py,sha256=8VZa95YN8_pcY8k5KRDQAXxDTAMhOjnuXsT6NNnjUzg,9664
148
147
  machineconfig/scripts/python/cloud_sync.py,sha256=RWGpAfJ9fnN18yNBSgN44dzA38Hmd4879JL5r2pcyrM,3514
149
- machineconfig/scripts/python/count_lines.py,sha256=ZLEajCLmlFFY969BehabqGOB9_kkpATO3Lt09L7KULk,15968
150
- machineconfig/scripts/python/count_lines_frontend.py,sha256=HlzPLU9_oJYqPNbnoQ0Hm4CuYy1UUlkZPcE5tFBSEbo,545
151
148
  machineconfig/scripts/python/croshell.py,sha256=LgmwB17EVgNgRkXgwLOZPQWrHqSYDo7Kd-d6vkqA3PY,6459
152
- machineconfig/scripts/python/devops.py,sha256=VWdoSf0MxMl1e-egKn4mAm_gQ43OFDwhS8PCXZy3l3M,7341
153
- machineconfig/scripts/python/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
154
- machineconfig/scripts/python/devops_add_ssh_key.py,sha256=BXB-9RvuSZO0YTbnM2azeABW2ngLW4SKhhAGAieMzfw,6873
155
- machineconfig/scripts/python/devops_backup_retrieve.py,sha256=JLJHmi8JmZ_qVTeMW-qBEAYGt1fmfWXzZ7Gm-Q-GDcU,5585
156
- machineconfig/scripts/python/devops_status.py,sha256=qSmDCNopKq8DLcx3u1sLhCIZtILP2ZzdGYZuA7fvrJ8,22487
157
- machineconfig/scripts/python/devops_update_repos.py,sha256=9p21ckEfqyiCoLWgNgkE1RSswb6b9YPeCf5lmBtudsQ,9393
149
+ machineconfig/scripts/python/devops.py,sha256=wrjPaW_uSBfdjIpTqqA7MUL4khznCejnPSgKJyumYqA,7431
158
150
  machineconfig/scripts/python/dotfile.py,sha256=9W9i8Qbs6i2NfTq0knywB3StvE_sHaZYZ0RslTyoVz8,2734
159
- machineconfig/scripts/python/fire_agents_help_launch.py,sha256=Lkxpdf6oCHsfyHUVoZJ0aqOU8baD7RkcKEODgVEkcsg,5053
160
- machineconfig/scripts/python/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
161
- machineconfig/scripts/python/fire_agents_helper_types.py,sha256=zKu8Vr6iucaGSkCm_Tkt_WrYU7-6Nript3coYyzTXzY,295
162
- machineconfig/scripts/python/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
163
- machineconfig/scripts/python/fire_jobs.py,sha256=r_iJbjdktxpgtQV7N4Smc1MMw6ssYUByIlQDNyIrW5A,13413
164
- machineconfig/scripts/python/fire_jobs_args_helper.py,sha256=UUrGB2N_pR7PxFKtKTJxIUiS58WjQX0U50y2ft8Ul4w,4334
165
- machineconfig/scripts/python/fire_jobs_route_helper.py,sha256=9zGuh_bMkQgfMS0nnFoa2oIWdmLAkSNtlEH4H-FprmM,5373
166
- machineconfig/scripts/python/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
+ machineconfig/scripts/python/fire_jobs.py,sha256=iHcuADhRFlN2wgr7zUV1RAacfUPnnvvOGbEDzFM61gs,13476
167
152
  machineconfig/scripts/python/ftpx.py,sha256=QfQTp-6jQP6yxfbLc5sKxiMtTgAgc8sjN7d17_uLiZc,9400
168
- machineconfig/scripts/python/get_zellij_cmd.py,sha256=e35-18hoXM9N3PFbvbizfkNY_-63iMicieWE3TbGcCQ,576
169
153
  machineconfig/scripts/python/gh_models.py,sha256=3BLfW25mBRiPO5VKtVm-nMlKLv-PaZDw7mObajq6F6M,5538
170
- machineconfig/scripts/python/interactive.py,sha256=wz6LRdSF76a-e5Lgd_T37JBgko5zfkgqtx6VQHy9H8A,13194
154
+ machineconfig/scripts/python/interactive.py,sha256=AeK4GoYpCOi8khAOKTpWZy4P53uYP2kxArFqXRpdvHI,13209
171
155
  machineconfig/scripts/python/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
172
156
  machineconfig/scripts/python/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
173
157
  machineconfig/scripts/python/mount_ssh.py,sha256=k2fKq3f5dKq_7anrFOlqvJoI_3U4EWNHLRZ1o3Lsy6M,2268
174
158
  machineconfig/scripts/python/onetimeshare.py,sha256=xRd8by6qUm-od2Umty2MYsXyJwzXw-CBTd7VellNaKY,2498
175
159
  machineconfig/scripts/python/pomodoro.py,sha256=SPkfeoZGv8rylGiOyzQ7UK3aXZ3G2FIOuGkSuBUggOI,2019
176
- machineconfig/scripts/python/repos.py,sha256=7OwnQVedmLVgDnIY-OJ9epa1AcmRoUptu8ihyRNe_u4,5105
177
- machineconfig/scripts/python/repos_helper.py,sha256=3jLdnNf1canpzi3JXiz5VA6UTUmLeNHuhjOWVl_thP0,3006
178
- machineconfig/scripts/python/repos_helper_action.py,sha256=sXeOw5uHaK2GJixYW8qU_PD24mruGcQ59uf68ELC76A,14846
179
- machineconfig/scripts/python/repos_helper_clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
180
- machineconfig/scripts/python/repos_helper_record.py,sha256=dtnnInQPn00u1cyr0oOgJ_jB12O3bSiNctwzC3W7_3w,10994
181
- machineconfig/scripts/python/repos_helper_update.py,sha256=AYyKIB7eQ48yoYmFjydIhRI1lV39TBv_S4_LCa-oKuQ,11042
160
+ machineconfig/scripts/python/repos.py,sha256=gxjLTOpccJBiyh1w9pIAztflo1BZzzuazmYJD_CZiww,8000
182
161
  machineconfig/scripts/python/scheduler.py,sha256=rKhssuxkD697EY6qaV6CSdNhxpAQLDWO4fE8GMCQ9FA,3061
183
162
  machineconfig/scripts/python/sessions.py,sha256=oCNGhhAYxr5DFyGCkL7jup3hPb4qCdBome2Qr9Evwao,8694
184
- machineconfig/scripts/python/sessions_multiprocess.py,sha256=HLfVpPnlMdqehfK3_p1WCpVWMQldVWoGziSZ-Fb_7uY,2893
163
+ machineconfig/scripts/python/sessions_multiprocess.py,sha256=jtFci9vugJ8sMiw3qupUtANICy2RSorT2W8sdppkRN4,2914
185
164
  machineconfig/scripts/python/share_terminal.py,sha256=-SNCDrQHBDUZw2cNNrEw3K3owzmZASBjd5deBKB49YY,5358
186
165
  machineconfig/scripts/python/snapshot.py,sha256=aDvKeoniZaeTSNv9zWBUajaj2yagAxVdfuvO1_tgq5Y,1026
187
166
  machineconfig/scripts/python/start_slidev.py,sha256=FAJ1_WkAQ7KcbRZ3cSN_72NDgV_flRrwxmXv1imyulI,4897
188
167
  machineconfig/scripts/python/start_terminals.py,sha256=DRWbMZumhPmL0DvvsCsbRNFL5AVQn1SgaziafTio3YQ,6149
189
- machineconfig/scripts/python/t4.py,sha256=cZ45iWzS254V5pmVvq8wCw7jAuDhzr8G2Arzay76saU,316
190
168
  machineconfig/scripts/python/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
191
169
  machineconfig/scripts/python/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
192
170
  machineconfig/scripts/python/wifi_conn.py,sha256=4GdLhgma9GRmZ6OFg3oxOX-qY3sr45njPckozlpM_A0,15566
@@ -218,12 +196,36 @@ machineconfig/scripts/python/ai/solutions/gemini/settings.json,sha256=tFdtqZkyti
218
196
  machineconfig/scripts/python/ai/solutions/kilocode/privacy.md,sha256=oKOXnfFOdUuMlKwVf5MqeqCc24hZcjKE_e1MEXpijJI,117
219
197
  machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1dNzkUCS_vCX_fy2TisRtfg8DXH-D4N1iUVU,99
220
198
  machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
199
+ machineconfig/scripts/python/devops_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ machineconfig/scripts/python/devops_helpers/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
201
+ machineconfig/scripts/python/devops_helpers/devops_add_ssh_key.py,sha256=BXB-9RvuSZO0YTbnM2azeABW2ngLW4SKhhAGAieMzfw,6873
202
+ machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py,sha256=JLJHmi8JmZ_qVTeMW-qBEAYGt1fmfWXzZ7Gm-Q-GDcU,5585
203
+ machineconfig/scripts/python/devops_helpers/devops_status.py,sha256=qSmDCNopKq8DLcx3u1sLhCIZtILP2ZzdGYZuA7fvrJ8,22487
204
+ machineconfig/scripts/python/devops_helpers/devops_update_repos.py,sha256=OarxDD532sA0Tk4Ek2I9J_dAV0MgiV9mUG4hQZBpF6Y,9407
221
205
  machineconfig/scripts/python/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
206
  machineconfig/scripts/python/helpers/cloud_helpers.py,sha256=GA-bxXouUmknk9fyQAsPT-Xl3RG9-yBed71a2tu9Pig,4914
223
207
  machineconfig/scripts/python/helpers/helpers2.py,sha256=2QeQ2aii6hVc4S-oi3SVTSyPxKPTDUWBD7GnkCEr7Qs,7304
224
208
  machineconfig/scripts/python/helpers/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
225
209
  machineconfig/scripts/python/helpers/helpers5.py,sha256=dPBvA9Tcyx9TMgM6On49A1CueGMhBdRzikDnlJGf3J0,1123
226
- machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=im-VaWde7zdQlxUVxLE2KqBG_y8kyoDXc85kl9CvNOA,3427
210
+ machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=lc5d2eBiqlqDcTSR2hi_ifVUDj_E1G1foaIA2wARUJk,3931
211
+ machineconfig/scripts/python/helpers_fire/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
+ machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py,sha256=T1idFLOwOOxi2Q820vfseS2JgDdNkgt8TMgCXzeQahM,5066
213
+ machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
214
+ machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py,sha256=zKu8Vr6iucaGSkCm_Tkt_WrYU7-6Nript3coYyzTXzY,295
215
+ machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
216
+ machineconfig/scripts/python/helpers_fire_command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
+ machineconfig/scripts/python/helpers_fire_command/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
218
+ machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=UUrGB2N_pR7PxFKtKTJxIUiS58WjQX0U50y2ft8Ul4w,4334
219
+ machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py,sha256=9zGuh_bMkQgfMS0nnFoa2oIWdmLAkSNtlEH4H-FprmM,5373
220
+ machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
+ machineconfig/scripts/python/helpers_repos/grource.py,sha256=qIe2L5U15cUw9rVfDz6fKUiC4PN6boZItcRhyoscBRc,14589
222
+ machineconfig/scripts/python/repos_helpers/count_lines.py,sha256=ZLEajCLmlFFY969BehabqGOB9_kkpATO3Lt09L7KULk,15968
223
+ machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=jOlMCcVgE2a-NhdUtzNK1wKMf-VGldwGHR6QA1tnFa8,559
224
+ machineconfig/scripts/python/repos_helpers/repos_helper.py,sha256=aP-Cy0V-4fj2dDHGdI72vPkBj33neOK_GvBgMD43dKg,2853
225
+ machineconfig/scripts/python/repos_helpers/repos_helper_action.py,sha256=byWcGh_6EqineSSb8papiY7k11VCJBZ2noaxIgaIX8k,14860
226
+ machineconfig/scripts/python/repos_helpers/repos_helper_clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
227
+ machineconfig/scripts/python/repos_helpers/repos_helper_record.py,sha256=dtnnInQPn00u1cyr0oOgJ_jB12O3bSiNctwzC3W7_3w,10994
228
+ machineconfig/scripts/python/repos_helpers/repos_helper_update.py,sha256=AYyKIB7eQ48yoYmFjydIhRI1lV39TBv_S4_LCa-oKuQ,11042
227
229
  machineconfig/scripts/windows/agents.ps1,sha256=DqdrC_Xc2rwQ6kGzT0xh5CJz4B_0p5ZwB7s8XE6rPCM,77
228
230
  machineconfig/scripts/windows/choose_wezterm_theme.ps1,sha256=LiXJ0a4LKjb6E-oH_bAg6DjegV4SqDUdiMp_svGCFlI,95
229
231
  machineconfig/scripts/windows/cloud_copy.ps1,sha256=llTFhN2uInZTcoZYZuuhJcf5Ifo5MF226I5MpOzvc3A,82
@@ -400,8 +402,8 @@ machineconfig/utils/path_helper.py,sha256=0e3Xh3BAEv27oqcezNeVLHJllGmLEgLH4T1l90
400
402
  machineconfig/utils/procs.py,sha256=w75oGKfR7FpT1pGTGd2XscnEOO0IHBWxohLbi69hLqg,11418
401
403
  machineconfig/utils/scheduler.py,sha256=GbprwuxoJYdtkCsg7JZPXM8un9Z7v9tPjUoQjtS0oHU,14955
402
404
  machineconfig/utils/scheduling.py,sha256=RF1iXJpqf4Dg18jdZWtBixz97KAHC6VKYqTFSpdLWuc,11188
403
- machineconfig/utils/source_of_truth.py,sha256=G3incuMzxOY1HjhNKIFnIRk-r7QGyZ6xYj0JLhCCh0A,842
404
- machineconfig/utils/ssh.py,sha256=wIoIdeeTYCLvfdtFojUrKTlMRKUdf-eMqYae6g915w0,20666
405
+ machineconfig/utils/source_of_truth.py,sha256=WwaI0T3Z9Tf0pFqJcHnEK53DvD8ILcgWYTyyRPHtEeI,804
406
+ machineconfig/utils/ssh.py,sha256=gWFCRephneMZhj-b_DOOb3Pbl7r3aE4Xjt5NEcJHRMA,21118
405
407
  machineconfig/utils/terminal.py,sha256=IlmOByfQG-vjhaFFxxzU5rWzP5_qUzmalRfuey3PAmc,11801
406
408
  machineconfig/utils/upgrade_packages.py,sha256=H96zVJEWXJW07nh5vhjuSCrPtXGqoUb7xeJsFYYdmCI,3330
407
409
  machineconfig/utils/ve.py,sha256=L-6PBXnQGXThiwWgheJMQoisAZOZA6SVCbGw2J-GFnI,2414
@@ -413,17 +415,19 @@ machineconfig/utils/files/ascii_art.py,sha256=cNJaJC07vx94fS44-tzgfbfBeCwXVrgpnW
413
415
  machineconfig/utils/files/dbms.py,sha256=xJTg6H_AvZWsduuDaSs4_KdUu__rO8LXrE_hrcXTgNM,17203
414
416
  machineconfig/utils/files/headers.py,sha256=L54G11DfLadyZGyQXSQ7y8UI_tNvlld7zqP4qEAWL88,3647
415
417
  machineconfig/utils/files/read.py,sha256=VGraV3_73gGFwqYZ-GJzsfERsmO21n2JkFLKvck4fmc,4561
418
+ machineconfig/utils/files/ouch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
419
+ machineconfig/utils/files/ouch/decompress.py,sha256=7qPaEkMerBBXzeZyFn8hLODHZJv1aty-yGgwBxLgVys,1413
416
420
  machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
417
421
  machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
418
422
  machineconfig/utils/installer_utils/installer.py,sha256=H9wukQBSZDLlpB6Xn4Sa2hSV8iCUr9UQChcgOa3u-L8,9278
419
423
  machineconfig/utils/installer_utils/installer_abc.py,sha256=VTHe5O3jA6k6rnUnXhgnEf6mVvkVQlEuXjzYLEDgEAs,11140
420
424
  machineconfig/utils/installer_utils/installer_class.py,sha256=fN4Nfqn4tlSfQGW52A_Ipi6GT6utC30ZuSj5WM_yxIY,20252
421
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=pTxvLzIpD5RF508lUUBBkWcc4V1B10J4ylvVgVGkcM0,2037
425
+ machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=Xbi59rU35AzR7HZZ8ZQ8aUu_FjSgijNqc8Sme0rCk2Y,2050
422
426
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
423
427
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
424
428
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
425
- machineconfig-5.25.dist-info/METADATA,sha256=UMq5KBkb50xmihhaEDp_z3JgobmM2JI0ogvWhPZFWtM,2497
426
- machineconfig-5.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
- machineconfig-5.25.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
428
- machineconfig-5.25.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
429
- machineconfig-5.25.dist-info/RECORD,,
429
+ machineconfig-5.27.dist-info/METADATA,sha256=sYYuJDVjKlKL9-2rzI_-KkWQxxnb3os78fPYPyPe17o,2499
430
+ machineconfig-5.27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
431
+ machineconfig-5.27.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
432
+ machineconfig-5.27.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
433
+ machineconfig-5.27.dist-info/RECORD,,
@@ -1,15 +0,0 @@
1
- from pathlib import Path
2
-
3
-
4
- def get_zellij_cmd(wd1: Path, wd2: Path) -> str:
5
- _ = wd1, wd2
6
- lines = [
7
- """ zellij action new-tab --name gitdiff""",
8
- """zellij action new-pane --direction down --name local --cwd ./data """,
9
- """zellij action write-chars "cd '{wd1}'; git status" """,
10
- """zellij action move-focus up; zellij action close-pane """,
11
- """zellij action new-pane --direction down --name remote --cwd code """,
12
- """zellij action write-chars "cd '{wd2}' """,
13
- """git status" """,
14
- ]
15
- return "; ".join(lines)
@@ -1,17 +0,0 @@
1
-
2
- import typer
3
- from typing import Annotated
4
-
5
- def func(name: str):
6
- print(f"Hello, {name}! from func")
7
-
8
- def hello(*, name: Annotated[str, typer.Option(..., help="Name to greet")]):
9
- print(f"Hello, {name}!")
10
-
11
- def main():
12
- typer.run(hello)
13
-
14
- if __name__ == "__main__":
15
- # typer.run(hello)
16
- main()
17
- pass