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

@@ -149,7 +149,7 @@ from pathlib import Path
149
149
  else:
150
150
  console.print(Panel("❌ Could not determine the local machineconfig repo root. Please ensure the `REPO_ROOT` in `source_of_truth.py` is correctly set to the local path of the machineconfig repo, or do not use the `--local` flag.", title="Error", border_style="red"))
151
151
  return
152
- else: ve_line = """--with "machineconfig[plot]>=6.34" """
152
+ else: ve_line = """--with "machineconfig[plot]>=6.36" """
153
153
  fire_line = f"uv run --python 3.14 {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
154
154
 
155
155
  from machineconfig.utils.code import run_shell_script
@@ -42,7 +42,7 @@ def path():
42
42
  from pathlib import Path
43
43
  path = Path(navigator.__file__).resolve().parent.joinpath("path_manager_tui.py")
44
44
  from machineconfig.utils.code import run_shell_script
45
- run_shell_script(f"""uv run --with "machineconfig>=6.34,textual" {path}""")
45
+ run_shell_script(f"""uv run --with "machineconfig>=6.36,textual" {path}""")
46
46
 
47
47
  def pwsh_theme():
48
48
  """🔗 Select powershell prompt theme."""
@@ -64,9 +64,9 @@ def get_app():
64
64
  nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
65
65
  nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
66
66
  nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
67
- nw_apps.command(name="add-ssh-identity", help="🗝️ [a] Add SSH identity (private key) to this machine")(add_ssh_identity)
68
- nw_apps.command(name="a", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
69
- nw_apps.command(name="show-address", help="[A] Show this computer addresses on network")(show_address)
67
+ nw_apps.command(name="add-ssh-identity", help="🗝️ [A] Add SSH identity (private key) to this machine")(add_ssh_identity)
68
+ nw_apps.command(name="A", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
69
+ nw_apps.command(name="show-address", help="📌 [a] Show this computer addresses on network")(show_address)
70
70
  nw_apps.command(name="a", help="Show this computer addresses on network", hidden=True)(show_address)
71
71
  nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
72
72
  nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
@@ -54,9 +54,9 @@ def install():
54
54
  # main_public_from_parser()
55
55
  import platform
56
56
  if platform.system() == "Windows":
57
- run_shell_script(r"""$HOME\.local\bin\uv.exe tool install "machineconfig>=6.34" """)
57
+ run_shell_script(r"""$HOME\.local\bin\uv.exe tool install "machineconfig>=6.36" """)
58
58
  else:
59
- run_shell_script("""$HOME/.local/bin/uv tool install "machineconfig>=6.34" """)
59
+ run_shell_script("""$HOME/.local/bin/uv tool install "machineconfig>=6.36" """)
60
60
 
61
61
  def navigate():
62
62
  """📚 NAVIGATE command structure with TUI"""
@@ -64,7 +64,7 @@ def navigate():
64
64
  from pathlib import Path
65
65
  path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
66
66
  from machineconfig.utils.code import run_shell_script
67
- run_shell_script(f"""uv run --with "machineconfig>=6.34,textual" {path}""")
67
+ run_shell_script(f"""uv run --with "machineconfig>=6.36,textual" {path}""")
68
68
 
69
69
 
70
70
  def run_python(ip: Annotated[str, typer.Argument(..., help="Python command to run in the machineconfig environment")],
@@ -101,7 +101,7 @@ git pull originEnc master
101
101
  return "done"
102
102
  from machineconfig.utils.meta import function_to_script
103
103
  program_1_py = function_to_script(func=func2, call_with_args=None, call_with_kwargs={"remote_repo": str(repo_remote_root), "local_repo": str(repo_local_root), "cloud": cloud_resolved})
104
- shell_file_1 = get_shell_file_executing_python_script(python_script=program_1_py, ve_path=None, executable="""uv run --with "machineconfig>=6.34" """)
104
+ shell_file_1 = get_shell_file_executing_python_script(python_script=program_1_py, ve_path=None, executable="""uv run --with "machineconfig>=6.36" """)
105
105
  # ================================================================================
106
106
  option2 = "Delete local repo and replace it with remote copy:"
107
107
  program_2 = f"""
@@ -122,7 +122,7 @@ sudo chmod +x $HOME/dotfiles/scripts/linux -R
122
122
  inspect_repos(repo_local_root=repo_local_root, repo_remote_root=repo_remote_root)
123
123
  return "done"
124
124
  program_3_py = function_to_script(func=func, call_with_args=None, call_with_kwargs={"repo_local_root": str(repo_local_root), "repo_remote_root": str(repo_remote_root)})
125
- shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_path=None, executable="""uv run --with "machineconfig>=6.34" """)
125
+ shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_path=None, executable="""uv run --with "machineconfig>=6.36" """)
126
126
  # ================================================================================
127
127
 
128
128
  option4 = "Remove problematic rclone file from repo and replace with remote:"
@@ -130,9 +130,9 @@ def execute_installations(selected_options: list[str]) -> None:
130
130
  console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
131
131
  import platform
132
132
  if platform.system() == "Windows":
133
- run_shell_script(r"""$HOME\.local\bin\uv.exe tool install "machineconfig>=6.34" """)
133
+ run_shell_script(r"""$HOME\.local\bin\uv.exe tool install "machineconfig>=6.36" """)
134
134
  else:
135
- run_shell_script("""$HOME/.local/bin/uv tool install "machineconfig>=6.34" """)
135
+ run_shell_script("""$HOME/.local/bin/uv tool install "machineconfig>=6.36" """)
136
136
  if "install_ssh_server" in selected_options:
137
137
  console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
138
138
  import platform
@@ -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.34" python -m machineconfig.scripts.python.mount_nfs
8
+ uv run --python 3.14 --with "machineconfig>=6.36" 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."
@@ -8,7 +8,7 @@ def analyze_repo_development(repo_path: Annotated[str, typer.Argument(..., help=
8
8
  from pathlib import Path
9
9
  count_lines_path = Path(count_lines.__file__)
10
10
  # --project $HOME/code/ machineconfig --group plot
11
- cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=6.34" {count_lines_path} analyze-over-time {repo_path}"""
11
+ cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=6.36" {count_lines_path} analyze-over-time {repo_path}"""
12
12
  from machineconfig.utils.code import run_shell_script
13
13
  run_shell_script(cmd)
14
14
 
@@ -7,7 +7,7 @@ $user = ''
7
7
  $sharePath = ''
8
8
  $driveLetter = ''
9
9
 
10
- uv run --python 3.14 --with "machineconfig>=6.34" python -m machineconfig.scripts.python.mount_ssh
10
+ uv run --python 3.14 --with "machineconfig>=6.36" 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.34" mcfg "$@"
4
+ "$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.36" 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.34" mcfg $args
5
+ & "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.36" mcfg $args
6
6
  }
7
7
  function d { mcfg devops @args }
8
8
  function c { mcfg cloud @args }
@@ -1,4 +1,3 @@
1
-
2
1
  from pathlib import Path
3
2
  from typing import Callable, Optional, Union, Any, Protocol, List, TypeVar
4
3
  import logging
@@ -152,6 +151,64 @@ def to_pickle(obj: Any, path: Path) -> None:
152
151
  path.write_bytes(pickle.dumps(obj))
153
152
 
154
153
 
154
+ class CacheMemory[T]():
155
+ def __init__(
156
+ self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None
157
+ ) -> None:
158
+ self.cache: T
159
+ self.source_func = source_func
160
+ self.time_produced = datetime.now()
161
+ self.logger = logger
162
+ self.expire = expire
163
+ self.name = name if isinstance(name, str) else str(self.source_func)
164
+ self.last_call_is_fresh = False
165
+
166
+ @property
167
+ def age(self) -> timedelta:
168
+ return datetime.now() - self.time_produced
169
+
170
+ def __call__(self, fresh: bool = False) -> T:
171
+ self.last_call_is_fresh = False
172
+ if fresh or not hasattr(self, "cache"):
173
+ if self.logger:
174
+ why = "There was an explicit fresh order." if fresh else "Previous cache never existed."
175
+ self.logger.warning(f"""
176
+ 🆕 ════════════════════ NEW CACHE ════════════════════
177
+ 🔄 {self.name} cache: Populating fresh cache from source func
178
+ ℹ️ Reason: {why}
179
+ ════════════════════════════════════════════════════════""")
180
+ self.cache = self.source_func()
181
+ self.last_call_is_fresh = True
182
+ self.time_produced = datetime.now()
183
+ else:
184
+ age = self.age
185
+ if age > self.expire:
186
+ if self.logger:
187
+ self.logger.warning(f"""
188
+ 🔄 ════════════════════ CACHE UPDATE ════════════════════
189
+ ⚠️ {self.name} cache: Updating cache from source func
190
+ ⏱️ Age = {age} > {self.expire}
191
+ ════════════════════════════════════════════════════════""")
192
+ self.cache = self.source_func()
193
+ self.last_call_is_fresh = True
194
+ self.time_produced = datetime.now()
195
+ else:
196
+ if self.logger:
197
+ self.logger.warning(f"""
198
+ ✅ ════════════════════ USING CACHE ════════════════════
199
+ 📦 {self.name} cache: Using cached values
200
+ ⏱️ Lag = {age}
201
+ ════════════════════════════════════════════════════════""")
202
+ return self.cache
203
+
204
+ @staticmethod
205
+ def as_decorator(expire: timedelta, logger: LoggerTemplate, name: Optional[str] = None):
206
+ def decorator(source_func: Callable[[], T2]) -> CacheMemory["T2"]:
207
+ res = CacheMemory(source_func=source_func, expire=expire, logger=logger, name=name)
208
+ return res
209
+ return decorator
210
+
211
+
155
212
  class Cache[T](): # This class helps to accelrate access to latest data coming from expensive function. The class has two flavours, memory-based and disk-based variants."""
156
213
  def __init__(
157
214
  self, source_func: Callable[[], T], expire: timedelta, logger: LoggerTemplate, path: Path, saver: Callable[[T, Path], Any] = to_pickle, reader: Callable[[Path], T] = from_pickle, name: Optional[str] = None
@@ -180,8 +237,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
180
237
  📦 ════════════════════ CACHE OPERATION ════════════════════
181
238
  🔄 {self.name} cache: Reading cached values from `{self.path}`
182
239
  ⏱️ Lag = {age}
183
- ════════════════════════════════════════════════════════════
184
- """
240
+ ════════════════════════════════════════════════════════════"""
185
241
  try:
186
242
  self.cache = self.reader(self.path)
187
243
  except Exception as ex:
@@ -190,8 +246,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
190
246
  ❌ ════════════════════ CACHE ERROR ════════════════════
191
247
  ⚠️ {self.name} cache: Cache file is corrupted
192
248
  🔍 Error: {ex}
193
- ════════════════════════════════════════════════════════
194
- """
249
+ ════════════════════════════════════════════════════════"""
195
250
  self.logger.warning(msg1 + msg2)
196
251
  self.cache = self.source_func()
197
252
  self.last_call_is_fresh = True
@@ -208,8 +263,7 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
208
263
  🆕 ════════════════════ NEW CACHE ════════════════════
209
264
  🔄 {self.name} cache: Populating fresh cache from source func
210
265
  ℹ️ Reason: {why}
211
- ════════════════════════════════════════════════════════
212
- """)
266
+ ════════════════════════════════════════════════════════""")
213
267
  self.cache = self.source_func() # fresh data.
214
268
  self.last_call_is_fresh = True
215
269
  self.time_produced = datetime.now()
@@ -248,21 +302,3 @@ class Cache[T](): # This class helps to accelrate access to latest data coming
248
302
  return res
249
303
 
250
304
  return decorator
251
-
252
- # def from_cloud(self, cloud: str, rel2home: bool = True, root: Optional[str] = None):
253
- # assert self.path is not None
254
- # exists = self.path.exists()
255
- # exists_but_old = exists and ((datetime.now() - datetime.fromtimestamp(self.path.stat().st_mtime)) > self.expire)
256
- # if not exists or exists_but_old:
257
- # returned_path = self.path.from_cloud(cloud=cloud, rel2home=rel2home, root=root)
258
- # if returned_path is None and not exists:
259
- # raise FileNotFoundError(f"❌ Failed to get @ {self.path}. Build the cache first with signed API.")
260
- # elif returned_path is None and exists:
261
- # self.logger.warning(f"""
262
- # ⚠️ ════════════════════ CLOUD FETCH WARNING ════════════════════
263
- # 🔄 Failed to get fresh data from cloud
264
- # 📦 Using old cache @ {self.path}
265
- # ════════════════════════════════════════════════════════════════""")
266
- # else:
267
- # pass # maybe we don't need to fetch it from cloud, if its too hot
268
- # return self.reader(self.path)
@@ -6,7 +6,7 @@ from machineconfig.utils.terminal import Response, MACHINE
6
6
  from machineconfig.utils.accessories import pprint
7
7
 
8
8
  UV_RUN_CMD = "$HOME/.local/bin/uv run"
9
- MACHINECONFIG_VERSION = "machineconfig>=6.34"
9
+ MACHINECONFIG_VERSION = "machineconfig>=6.36"
10
10
  DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
11
11
 
12
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 6.35
3
+ Version: 6.37
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -122,13 +122,13 @@ 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=f5UxgXjGlEypoNFqK0uHKO0UkbV_wUmPiPzotL2yapM,10677
124
124
  machineconfig/scripts/python/cloud.py,sha256=ubLmf06FSdi1NawpQDgUDAtYb9cZSQqHbSUHzAwRIas,1199
125
- machineconfig/scripts/python/croshell.py,sha256=_G3q8g-i987wqXZtVN7qkMrIxJvhd5R0i7tEAkdoXZg,7083
125
+ machineconfig/scripts/python/croshell.py,sha256=tt2-Y2UKXfrtI4IQxgZBgn_k5bY0OJx41NEAcvJo1PE,7083
126
126
  machineconfig/scripts/python/devops.py,sha256=FjsUBr8mFBTgjtesAiRaBXYpWWHqAxcMC6Naka8HTFk,2175
127
127
  machineconfig/scripts/python/devops_navigator.py,sha256=4O9_-ACeP748NcMjWQXZF7mBQpMPxqCGhLvPG3DMi4Q,236
128
128
  machineconfig/scripts/python/entry.py,sha256=Az7dK1eXHGW5l46Yg10Cd88VChCdhvLAzO3e1A3r56A,2176
129
129
  machineconfig/scripts/python/fire_jobs.py,sha256=O5DrckUGLxGblOcLf_iXU31pmCSpTg-c0hQZxQKD1os,13591
130
130
  machineconfig/scripts/python/ftpx.py,sha256=UBDP6IIfWkaML1uZT1FrfGUUy_Of5LI82IdqEzo05_U,9760
131
- machineconfig/scripts/python/interactive.py,sha256=CJyF8f1PZol5S3KbVi2Pz5NMOJxTNW8utKJfgOl4vMk,11820
131
+ machineconfig/scripts/python/interactive.py,sha256=4rzOmSsUUvqAKa8EAPjoGLDlL7LVN4P-6W6SEuUN9Ek,11820
132
132
  machineconfig/scripts/python/sessions.py,sha256=l0NhO8kLtpDHdvNTlZ-Stt0VqARZqKUqiJlKvGIqCC0,9778
133
133
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
134
  machineconfig/scripts/python/ai/generate_files.py,sha256=VfjKdwgF8O6E4oiRtfWNliibLmmwGe7f9ld6wpOsXTw,14498
@@ -174,12 +174,12 @@ machineconfig/scripts/python/croshell_helpers/start_slidev.py,sha256=HfJReOusTPh
174
174
  machineconfig/scripts/python/croshell_helpers/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
175
175
  machineconfig/scripts/python/croshell_helpers/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
176
176
  machineconfig/scripts/python/devops_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
- machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=bihfY31WyuS9JqQf2WhsG7i42ySNE6o6Jz0pV0ZkgCY,5402
177
+ machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=B48SZzei0WG04GqvYfu3qyfcCIFqD3sfoXfcZJylYy4,5402
178
178
  machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
179
179
  machineconfig/scripts/python/devops_helpers/cli_data.py,sha256=2OWwp86-ncpGoSP9IblW7Jjej-wc-PuS8KRZ5xh0l1c,1774
180
- machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=nI_zmcmUvijVeXIWT2dN5onoy3ou-lub1cL-SJImmDA,4125
180
+ machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=1slGev50V3sHlVSt6mnFSV9faIzrnvtwXmJxnCnVJJ0,4131
181
181
  machineconfig/scripts/python/devops_helpers/cli_repos.py,sha256=Y5HgbNUyt7iehXyfmqPjVVjCsbZI-1Q6w1XwKQb_FkU,12331
182
- machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=F6k2f85WAu8NCCSj0HOXRqEoTsDNjbch7dSK8Grz6Dk,5739
182
+ machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=iMHmfK1uIXot9hbM44Ocy8jr5_QgayrO7SvQ8PMIL2E,5739
183
183
  machineconfig/scripts/python/devops_helpers/cli_share_server.py,sha256=q9pFJ6AxPuygMr3onMNOKEuuQHbVE_6Qoyo7xRT5FX0,4196
184
184
  machineconfig/scripts/python/devops_helpers/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
185
185
  machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py,sha256=8VpnWytbJYdZZfeLmULgGeGuV5BlHrzdcbGtSsmU-EA,5598
@@ -219,7 +219,7 @@ machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha25
219
219
  machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py,sha256=4MrlCVijbx7GQyAN9s5LDh-7heSjMXYrXdqiP6uC3ug,5378
220
220
  machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
221
  machineconfig/scripts/python/helpers_repos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=OkvviSqDLUdXxEiF3gxr9i1SYHT8cmzkmUvuGPEjOlk,9700
222
+ machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=9J-CR2OcbSSsyYufL_pye0DhuNbjtSpBZuX56p6Fbm8,9700
223
223
  machineconfig/scripts/python/helpers_repos/grource.py,sha256=zDKWAO24aA0HlpcKFgBH4Lh_eqWp9KTEqnbUnX6I2pk,14611
224
224
  machineconfig/scripts/python/helpers_repos/secure_repo.py,sha256=fW_GyHqWrpnf7nexHojfWHv4eLBa71IhVL_LSVMyGnE,1115
225
225
  machineconfig/scripts/python/nw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -227,7 +227,7 @@ machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdC
227
227
  machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
228
228
  machineconfig/scripts/python/nw/devops_add_ssh_key.py,sha256=CkIl85hZLtG9k7yXLSzqi88YrilHV4hIUWHAPBwxWjw,8922
229
229
  machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
230
- machineconfig/scripts/python/nw/mount_nfs,sha256=GwPNtya2OQQOURyfHNosayyy9sKN3anh7ltw62MtXsM,1855
230
+ machineconfig/scripts/python/nw/mount_nfs,sha256=vrOo-PfRVM-lK70ppjVviq8FDaRhOT9BRcLvmwNp5Ec,1855
231
231
  machineconfig/scripts/python/nw/mount_nfs.py,sha256=lOMDY4RS7tx8gsCazVR5tNNwFbaRyO2PJlnwBCDQgCM,3573
232
232
  machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
233
233
  machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
@@ -241,7 +241,7 @@ machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=1ab9l-8MtAxofW5nG
241
241
  machineconfig/scripts/python/repos_helpers/action.py,sha256=pl0U53FAGoH2yk-CGNIy3aggImXY5ZVz28-XVFHDvfA,14862
242
242
  machineconfig/scripts/python/repos_helpers/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
243
243
  machineconfig/scripts/python/repos_helpers/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
244
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=2flFykAp0fugzNeUHJjeznizcuYPWIndZK8-xHD7M_U,607
244
+ machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=SBVtfnL_EkBiN2GhgFHPOgBUXjWe5xtqB1bXyhM-f0M,607
245
245
  machineconfig/scripts/python/repos_helpers/entrypoint.py,sha256=UagEar85QCAXX7oOqJjDJp2Vds5UQxehYPmckL_S0oI,2836
246
246
  machineconfig/scripts/python/repos_helpers/record.py,sha256=FQo0swuJZOp0I2XGK-t1OQU4zJHmQ2z9zTpDD30Tmg4,11001
247
247
  machineconfig/scripts/python/repos_helpers/sync.py,sha256=CLLWy2n2gY9beXPF-mblOQ6R7cKoenkJjMiX7tHQsBk,3091
@@ -254,7 +254,7 @@ machineconfig/scripts/windows/fzfrga.bat,sha256=rU_KBMO6ii2EZ0akMnmDk9vpuhKSUZqk
254
254
  machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
255
255
  machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
256
256
  machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
257
- machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=824SH8Pvygzr2bIgHWw2xlOGgccGg0lgU7dlusC4Xvs,322
257
+ machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=YD5Pt0ncHV5Y_0pAH3hYcLuKS_y4YuGGIXT4I4IFuaU,322
258
258
  machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
259
259
  machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
260
260
  machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
@@ -369,7 +369,7 @@ machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKG
369
369
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
370
370
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
371
371
  machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
372
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=FF2JdaG1dkk1r8s1z8LOv9aLNyKlsm15ouKqWnLy-6Y,442
372
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=fHhoNbuNz7NOriXe8MLOnh5Nk7YsrNeu5xxWjzQ1jNE,442
373
373
  machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
374
374
  machineconfig/setup_windows/apps.ps1,sha256=dmZQZD4ZlNZo9jYkjIS3ag4qDAYZvaLysjmo9ELwBA4,11218
375
375
  machineconfig/setup_windows/uv.ps1,sha256=ukk1Abh-q-RfpoEqI2XTE2dcQJmHk0VFF6WqkK3TW8Q,350
@@ -379,7 +379,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
379
379
  machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
380
380
  machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
381
381
  machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
382
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=ZhKn4HDriweRY2alKp-3189byWVRZlryx_Ily9stULs,548
382
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=JrQOheE3EzH3d82INdJSfgkZUg93hTs996D8tsSYUkI,548
383
383
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
384
384
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
385
385
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -394,10 +394,10 @@ machineconfig/utils/options.py,sha256=vUO4Kej-vDOv64wHr2HNDyu6PATURpjd7xp6N8OOoJ
394
394
  machineconfig/utils/path_extended.py,sha256=WyJwoHnXdvSQQJ-yrxTX78FpqYmgVeKDYpNEB9UsRck,53223
395
395
  machineconfig/utils/path_helper.py,sha256=0e3Xh3BAEv27oqcezNeVLHJllGmLEgLH4T1l90m-650,8014
396
396
  machineconfig/utils/procs.py,sha256=rw8LR8MjGgvtrpcgxb3hudq2B9fkkpYUXe9x5-FgHuc,10694
397
- machineconfig/utils/scheduler.py,sha256=u56Y0UOIq-0WcwzScwjoiKFzBV47Lx--4lR52UD3y0M,14089
397
+ machineconfig/utils/scheduler.py,sha256=Uk6VT-gG7cOevnsKRcQPobTdr5zUZF0kLkdieByReMU,15749
398
398
  machineconfig/utils/scheduling.py,sha256=RF1iXJpqf4Dg18jdZWtBixz97KAHC6VKYqTFSpdLWuc,11188
399
399
  machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
400
- machineconfig/utils/ssh.py,sha256=jQejq2sxfi5LA3bTEePMSsuUwF7e0HduqsJaNcVM1kw,39079
400
+ machineconfig/utils/ssh.py,sha256=6Iy3Zlq3ByY_tafiVkRBLIB5Bi-5Eoyb675MsSP3xgw,39079
401
401
  machineconfig/utils/terminal.py,sha256=IlmOByfQG-vjhaFFxxzU5rWzP5_qUzmalRfuey3PAmc,11801
402
402
  machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
403
403
  machineconfig/utils/upgrade_packages.py,sha256=H96zVJEWXJW07nh5vhjuSCrPtXGqoUb7xeJsFYYdmCI,3330
@@ -422,8 +422,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
422
422
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
423
423
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
424
424
  machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
425
- machineconfig-6.35.dist-info/METADATA,sha256=ugVi8GQ2bua3wbhFLhBWSDpu_irOdKdVzk_sBydqKMQ,2928
426
- machineconfig-6.35.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
- machineconfig-6.35.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
428
- machineconfig-6.35.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
429
- machineconfig-6.35.dist-info/RECORD,,
425
+ machineconfig-6.37.dist-info/METADATA,sha256=b51_ax1f6DD0BoSyi02WShSamZFEf47NEx7gBTD2YCg,2928
426
+ machineconfig-6.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
+ machineconfig-6.37.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
428
+ machineconfig-6.37.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
429
+ machineconfig-6.37.dist-info/RECORD,,