machineconfig 1.94__py3-none-any.whl → 1.96__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 (529) hide show
  1. machineconfig/cluster/cloud_manager.py +445 -343
  2. machineconfig/cluster/data_transfer.py +63 -56
  3. machineconfig/cluster/distribute.py +284 -280
  4. machineconfig/cluster/file_manager.py +234 -237
  5. machineconfig/cluster/job_params.py +133 -133
  6. machineconfig/cluster/loader_runner.py +183 -149
  7. machineconfig/cluster/remote_machine.py +269 -252
  8. machineconfig/cluster/script_execution.py +215 -209
  9. machineconfig/cluster/script_notify_upon_completion.py +50 -43
  10. machineconfig/cluster/self_ssh.py +52 -54
  11. machineconfig/cluster/sessions_managers/__init__.py +0 -0
  12. machineconfig/cluster/sessions_managers/archive/__init__.py +0 -0
  13. machineconfig/{jobs/python → cluster/sessions_managers/archive}/create_zellij_template.py +5 -3
  14. machineconfig/cluster/sessions_managers/archive/session_managers.py +184 -0
  15. machineconfig/cluster/sessions_managers/demo_rich_zellij.py +0 -0
  16. machineconfig/cluster/sessions_managers/enhanced_command_runner.py +160 -0
  17. machineconfig/cluster/sessions_managers/wt_local.py +494 -0
  18. machineconfig/cluster/sessions_managers/wt_local_manager.py +577 -0
  19. machineconfig/cluster/sessions_managers/wt_remote.py +288 -0
  20. machineconfig/cluster/sessions_managers/wt_remote_manager.py +483 -0
  21. machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +196 -0
  22. machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +418 -0
  23. machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +175 -0
  24. machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +300 -0
  25. machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +228 -0
  26. machineconfig/cluster/sessions_managers/zellij_local.py +418 -0
  27. machineconfig/cluster/sessions_managers/zellij_local_manager.py +533 -0
  28. machineconfig/cluster/sessions_managers/zellij_remote.py +229 -0
  29. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +188 -0
  30. machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +64 -0
  31. machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +126 -0
  32. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +334 -0
  33. machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +68 -0
  34. machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +119 -0
  35. machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +85 -0
  36. machineconfig/cluster/templates/cli_click.py +0 -1
  37. machineconfig/cluster/templates/cli_gooey.py +102 -104
  38. machineconfig/cluster/templates/run_cloud.py +51 -51
  39. machineconfig/cluster/templates/run_cluster.py +103 -59
  40. machineconfig/cluster/templates/run_remote.py +57 -58
  41. machineconfig/cluster/templates/utils.py +69 -36
  42. machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
  43. machineconfig/jobs/linux/msc/lid.sh +2 -4
  44. machineconfig/jobs/linux/msc/network.sh +3 -6
  45. machineconfig/jobs/python/__pycache__/__init__.cpython-311.pyc +0 -0
  46. machineconfig/jobs/python/check_installations.py +258 -190
  47. machineconfig/jobs/python/create_bootable_media.py +7 -3
  48. machineconfig/jobs/python/python_cargo_build_share.py +50 -50
  49. machineconfig/jobs/python/python_ve_symlink.py +10 -10
  50. machineconfig/jobs/python/vscode/__pycache__/select_interpreter.cpython-311.pyc +0 -0
  51. machineconfig/jobs/python/vscode/api.py +3 -3
  52. machineconfig/jobs/python/vscode/link_ve.py +6 -6
  53. machineconfig/jobs/python/vscode/select_interpreter.py +13 -9
  54. machineconfig/jobs/python/vscode/sync_code.py +14 -11
  55. machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  56. machineconfig/jobs/python_custom_installers/archive/ngrok.py +5 -5
  57. machineconfig/jobs/python_custom_installers/dev/aider.py +4 -4
  58. machineconfig/jobs/python_custom_installers/dev/alacritty.py +7 -6
  59. machineconfig/jobs/python_custom_installers/dev/brave.py +11 -7
  60. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +7 -8
  61. machineconfig/jobs/python_custom_installers/dev/code.py +7 -5
  62. machineconfig/jobs/python_custom_installers/dev/cursor.py +66 -5
  63. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +4 -5
  64. machineconfig/jobs/python_custom_installers/dev/espanso.py +21 -17
  65. machineconfig/jobs/python_custom_installers/dev/goes.py +6 -12
  66. machineconfig/jobs/python_custom_installers/dev/lvim.py +7 -6
  67. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +5 -5
  68. machineconfig/jobs/python_custom_installers/dev/redis.py +11 -7
  69. machineconfig/jobs/python_custom_installers/dev/wezterm.py +12 -8
  70. machineconfig/jobs/python_custom_installers/dev/winget.py +194 -0
  71. machineconfig/jobs/python_custom_installers/{dev/docker.py → docker.py} +12 -7
  72. machineconfig/jobs/python_custom_installers/gh.py +10 -9
  73. machineconfig/jobs/python_custom_installers/hx.py +36 -65
  74. machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +4 -8
  75. machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +5 -10
  76. machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +3 -6
  77. machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +3 -6
  78. machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +5 -10
  79. machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +4 -8
  80. machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +5 -10
  81. machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +6 -12
  82. machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +101 -33
  83. machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +5 -10
  84. machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +3 -6
  85. machineconfig/jobs/python_custom_installers/{dev/warp-cli.py → warp-cli.py} +5 -5
  86. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  87. machineconfig/jobs/python_generic_installers/config.json +133 -9
  88. machineconfig/jobs/python_generic_installers/dev/config.json +208 -37
  89. machineconfig/jobs/python_generic_installers/update.py +3 -0
  90. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  91. machineconfig/jobs/python_linux_installers/config.json +42 -6
  92. machineconfig/jobs/python_linux_installers/dev/config.json +79 -11
  93. machineconfig/jobs/python_windows_installers/config.json +6 -0
  94. machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
  95. machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
  96. machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
  97. machineconfig/profile/create.py +5 -5
  98. machineconfig/profile/create_hardlinks.py +5 -5
  99. machineconfig/profile/shell.py +69 -63
  100. machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  101. machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
  102. machineconfig/scripts/cloud/init.sh +9 -18
  103. machineconfig/scripts/linux/fire +5 -24
  104. machineconfig/scripts/linux/fire_agents +27 -0
  105. machineconfig/scripts/linux/share_cloud.sh +6 -12
  106. machineconfig/scripts/linux/wifi_conn +24 -0
  107. machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
  108. machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
  109. machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
  110. machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
  111. machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
  112. machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
  113. machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
  114. machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
  115. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
  116. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
  117. machineconfig/scripts/python/__pycache__/fire_agents.cpython-311.pyc +0 -0
  118. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
  119. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-313.pyc +0 -0
  120. machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-311.pyc +0 -0
  121. machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
  122. machineconfig/scripts/python/archive/im2text.py +28 -30
  123. machineconfig/scripts/python/archive/tmate_conn.py +10 -13
  124. machineconfig/scripts/python/archive/tmate_start.py +12 -16
  125. machineconfig/scripts/python/choose_wezterm_theme.py +12 -21
  126. machineconfig/scripts/python/cloud_copy.py +49 -104
  127. machineconfig/scripts/python/cloud_manager.py +77 -91
  128. machineconfig/scripts/python/cloud_mount.py +36 -46
  129. machineconfig/scripts/python/cloud_repo_sync.py +33 -79
  130. machineconfig/scripts/python/cloud_sync.py +35 -45
  131. machineconfig/scripts/python/croshell.py +70 -92
  132. machineconfig/scripts/python/devops.py +54 -113
  133. machineconfig/scripts/python/devops_add_identity.py +71 -109
  134. machineconfig/scripts/python/devops_add_ssh_key.py +42 -149
  135. machineconfig/scripts/python/devops_backup_retrieve.py +31 -119
  136. machineconfig/scripts/python/devops_devapps_install.py +6 -10
  137. machineconfig/scripts/python/devops_update_repos.py +5 -4
  138. machineconfig/scripts/python/dotfile.py +10 -7
  139. machineconfig/scripts/python/fire_agents.py +69 -0
  140. machineconfig/scripts/python/fire_jobs.py +117 -78
  141. machineconfig/scripts/python/ftpx.py +8 -8
  142. machineconfig/scripts/python/get_zellij_cmd.py +3 -3
  143. machineconfig/scripts/python/gh_models.py +6 -4
  144. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
  145. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
  146. machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
  147. machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
  148. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
  149. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-313.pyc +0 -0
  150. machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-311.pyc +0 -0
  151. machineconfig/scripts/python/helpers/cloud_helpers.py +49 -46
  152. machineconfig/scripts/python/helpers/helpers2.py +26 -39
  153. machineconfig/scripts/python/helpers/helpers4.py +23 -35
  154. machineconfig/scripts/python/helpers/repo_sync_helpers.py +33 -67
  155. machineconfig/scripts/python/mount_nfs.py +8 -11
  156. machineconfig/scripts/python/mount_nw_drive.py +4 -4
  157. machineconfig/scripts/python/mount_ssh.py +2 -2
  158. machineconfig/scripts/python/onetimeshare.py +56 -57
  159. machineconfig/scripts/python/pomodoro.py +55 -55
  160. machineconfig/scripts/python/repos.py +72 -49
  161. machineconfig/scripts/python/scheduler.py +70 -53
  162. machineconfig/scripts/python/snapshot.py +21 -24
  163. machineconfig/scripts/python/start_slidev.py +6 -5
  164. machineconfig/scripts/python/start_terminals.py +3 -1
  165. machineconfig/scripts/python/viewer.py +5 -4
  166. machineconfig/scripts/python/viewer_template.py +138 -140
  167. machineconfig/scripts/python/wifi_conn.py +416 -62
  168. machineconfig/scripts/python/wsl_windows_transfer.py +18 -3
  169. machineconfig/scripts/windows/fire.ps1 +27 -15
  170. machineconfig/settings/linters/.pylintrc +6 -7
  171. machineconfig/settings/lvim/windows/config.lua +0 -0
  172. machineconfig/settings/shells/bash/init.sh +6 -0
  173. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +7 -6
  174. machineconfig/settings/shells/pwsh/init.ps1 +6 -6
  175. machineconfig/settings/shells/wt/settings.json +51 -266
  176. machineconfig/setup_linux/nix/cli_installation.sh +9 -18
  177. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +3 -6
  178. machineconfig/setup_linux/web_shortcuts/all.sh +5 -10
  179. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +7 -14
  180. machineconfig/setup_linux/web_shortcuts/croshell.sh +6 -12
  181. machineconfig/setup_linux/web_shortcuts/interactive.sh +39 -70
  182. machineconfig/setup_linux/web_shortcuts/ssh.sh +8 -16
  183. machineconfig/setup_linux/web_shortcuts/update_system.sh +7 -14
  184. machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +3 -6
  185. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +27 -21
  186. machineconfig/utils/ai/browser_user_wrapper.py +60 -45
  187. machineconfig/utils/ai/generate_file_checklist.py +4 -7
  188. machineconfig/utils/ai/url2md.py +15 -7
  189. machineconfig/utils/cloud/onedrive/setup_oauth.py +59 -0
  190. machineconfig/utils/cloud/onedrive/transaction.py +796 -0
  191. machineconfig/utils/{utils_code.py → code.py} +25 -22
  192. machineconfig/utils/installer.py +81 -44
  193. machineconfig/utils/installer_utils/installer_abc.py +7 -6
  194. machineconfig/utils/installer_utils/installer_class.py +44 -25
  195. machineconfig/utils/io_save.py +107 -0
  196. machineconfig/utils/{utils_links.py → links.py} +28 -35
  197. machineconfig/utils/{utils_options.py → options.py} +14 -28
  198. machineconfig/utils/path.py +112 -0
  199. machineconfig/utils/path_reduced.py +608 -0
  200. machineconfig/utils/procs.py +134 -73
  201. machineconfig/utils/scheduling.py +312 -222
  202. machineconfig/utils/utils.py +19 -26
  203. machineconfig/utils/utils2.py +42 -0
  204. machineconfig/utils/utils5.py +84 -0
  205. machineconfig/utils/ve.py +49 -103
  206. {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/METADATA +5 -3
  207. machineconfig-1.96.dist-info/RECORD +437 -0
  208. {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/WHEEL +1 -1
  209. machineconfig/cluster/session_managers.py +0 -183
  210. machineconfig/cluster/templates/f.py +0 -4
  211. machineconfig/jobs/python/__pycache__/check_installations.cpython-311.pyc +0 -0
  212. machineconfig/jobs/python/__pycache__/checkout_version.cpython-311.pyc +0 -0
  213. machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
  214. machineconfig/jobs/python/checkout_version.py +0 -123
  215. machineconfig/jobs/python/vscode/__pycache__/api.cpython-311.pyc +0 -0
  216. machineconfig/jobs/python/vscode/__pycache__/link_ve.cpython-311.pyc +0 -0
  217. machineconfig/jobs/python_custom_installers/__pycache__/hx.cpython-311.pyc +0 -0
  218. machineconfig/jobs/python_windows_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  219. machineconfig/scripts/python/.mypy_cache/.gitignore +0 -2
  220. machineconfig/scripts/python/.mypy_cache/3.11/@plugins_snapshot.json +0 -1
  221. machineconfig/scripts/python/.mypy_cache/3.11/__future__.data.json +0 -1
  222. machineconfig/scripts/python/.mypy_cache/3.11/__future__.meta.json +0 -1
  223. machineconfig/scripts/python/.mypy_cache/3.11/_ast.data.json +0 -1
  224. machineconfig/scripts/python/.mypy_cache/3.11/_ast.meta.json +0 -1
  225. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.data.json +0 -1
  226. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.meta.json +0 -1
  227. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.data.json +0 -1
  228. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.meta.json +0 -1
  229. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.data.json +0 -1
  230. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.meta.json +0 -1
  231. machineconfig/scripts/python/.mypy_cache/3.11/_compression.data.json +0 -1
  232. machineconfig/scripts/python/.mypy_cache/3.11/_compression.meta.json +0 -1
  233. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.data.json +0 -1
  234. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.meta.json +0 -1
  235. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.data.json +0 -1
  236. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.meta.json +0 -1
  237. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.data.json +0 -1
  238. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.meta.json +0 -1
  239. machineconfig/scripts/python/.mypy_cache/3.11/_io.data.json +0 -1
  240. machineconfig/scripts/python/.mypy_cache/3.11/_io.meta.json +0 -1
  241. machineconfig/scripts/python/.mypy_cache/3.11/_locale.data.json +0 -1
  242. machineconfig/scripts/python/.mypy_cache/3.11/_locale.meta.json +0 -1
  243. machineconfig/scripts/python/.mypy_cache/3.11/_stat.data.json +0 -1
  244. machineconfig/scripts/python/.mypy_cache/3.11/_stat.meta.json +0 -1
  245. machineconfig/scripts/python/.mypy_cache/3.11/_struct.data.json +0 -1
  246. machineconfig/scripts/python/.mypy_cache/3.11/_struct.meta.json +0 -1
  247. machineconfig/scripts/python/.mypy_cache/3.11/_thread.data.json +0 -1
  248. machineconfig/scripts/python/.mypy_cache/3.11/_thread.meta.json +0 -1
  249. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.data.json +0 -1
  250. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.meta.json +0 -1
  251. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.data.json +0 -1
  252. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.meta.json +0 -1
  253. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.data.json +0 -1
  254. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.meta.json +0 -1
  255. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.data.json +0 -1
  256. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.meta.json +0 -1
  257. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.data.json +0 -1
  258. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.meta.json +0 -1
  259. machineconfig/scripts/python/.mypy_cache/3.11/abc.data.json +0 -1
  260. machineconfig/scripts/python/.mypy_cache/3.11/abc.meta.json +0 -1
  261. machineconfig/scripts/python/.mypy_cache/3.11/argparse.data.json +0 -1
  262. machineconfig/scripts/python/.mypy_cache/3.11/argparse.meta.json +0 -1
  263. machineconfig/scripts/python/.mypy_cache/3.11/ast.data.json +0 -1
  264. machineconfig/scripts/python/.mypy_cache/3.11/ast.meta.json +0 -1
  265. machineconfig/scripts/python/.mypy_cache/3.11/binascii.data.json +0 -1
  266. machineconfig/scripts/python/.mypy_cache/3.11/binascii.meta.json +0 -1
  267. machineconfig/scripts/python/.mypy_cache/3.11/builtins.data.json +0 -1
  268. machineconfig/scripts/python/.mypy_cache/3.11/builtins.meta.json +0 -1
  269. machineconfig/scripts/python/.mypy_cache/3.11/bz2.data.json +0 -1
  270. machineconfig/scripts/python/.mypy_cache/3.11/bz2.meta.json +0 -1
  271. machineconfig/scripts/python/.mypy_cache/3.11/calendar.data.json +0 -1
  272. machineconfig/scripts/python/.mypy_cache/3.11/calendar.meta.json +0 -1
  273. machineconfig/scripts/python/.mypy_cache/3.11/codecs.data.json +0 -1
  274. machineconfig/scripts/python/.mypy_cache/3.11/codecs.meta.json +0 -1
  275. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.data.json +0 -1
  276. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.meta.json +0 -1
  277. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.data.json +0 -1
  278. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.meta.json +0 -1
  279. machineconfig/scripts/python/.mypy_cache/3.11/configparser.data.json +0 -1
  280. machineconfig/scripts/python/.mypy_cache/3.11/configparser.meta.json +0 -1
  281. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.data.json +0 -1
  282. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.meta.json +0 -1
  283. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.data.json +0 -1
  284. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.meta.json +0 -1
  285. machineconfig/scripts/python/.mypy_cache/3.11/datetime.data.json +0 -1
  286. machineconfig/scripts/python/.mypy_cache/3.11/datetime.meta.json +0 -1
  287. machineconfig/scripts/python/.mypy_cache/3.11/decimal.data.json +0 -1
  288. machineconfig/scripts/python/.mypy_cache/3.11/decimal.meta.json +0 -1
  289. machineconfig/scripts/python/.mypy_cache/3.11/dis.data.json +0 -1
  290. machineconfig/scripts/python/.mypy_cache/3.11/dis.meta.json +0 -1
  291. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.data.json +0 -1
  292. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.meta.json +0 -1
  293. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.data.json +0 -1
  294. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.meta.json +0 -1
  295. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.data.json +0 -1
  296. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.meta.json +0 -1
  297. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.data.json +0 -1
  298. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.meta.json +0 -1
  299. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.data.json +0 -1
  300. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.meta.json +0 -1
  301. machineconfig/scripts/python/.mypy_cache/3.11/email/header.data.json +0 -1
  302. machineconfig/scripts/python/.mypy_cache/3.11/email/header.meta.json +0 -1
  303. machineconfig/scripts/python/.mypy_cache/3.11/email/message.data.json +0 -1
  304. machineconfig/scripts/python/.mypy_cache/3.11/email/message.meta.json +0 -1
  305. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.data.json +0 -1
  306. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.meta.json +0 -1
  307. machineconfig/scripts/python/.mypy_cache/3.11/enum.data.json +0 -1
  308. machineconfig/scripts/python/.mypy_cache/3.11/enum.meta.json +0 -1
  309. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.data.json +0 -1
  310. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.meta.json +0 -1
  311. machineconfig/scripts/python/.mypy_cache/3.11/functools.data.json +0 -1
  312. machineconfig/scripts/python/.mypy_cache/3.11/functools.meta.json +0 -1
  313. machineconfig/scripts/python/.mypy_cache/3.11/gc.data.json +0 -1
  314. machineconfig/scripts/python/.mypy_cache/3.11/gc.meta.json +0 -1
  315. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.data.json +0 -1
  316. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.meta.json +0 -1
  317. machineconfig/scripts/python/.mypy_cache/3.11/getpass.data.json +0 -1
  318. machineconfig/scripts/python/.mypy_cache/3.11/getpass.meta.json +0 -1
  319. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.data.json +0 -1
  320. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.meta.json +0 -1
  321. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.data.json +0 -1
  322. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.meta.json +0 -1
  323. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.data.json +0 -1
  324. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.meta.json +0 -1
  325. machineconfig/scripts/python/.mypy_cache/3.11/git/config.data.json +0 -1
  326. machineconfig/scripts/python/.mypy_cache/3.11/git/config.meta.json +0 -1
  327. machineconfig/scripts/python/.mypy_cache/3.11/git/db.data.json +0 -1
  328. machineconfig/scripts/python/.mypy_cache/3.11/git/db.meta.json +0 -1
  329. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.data.json +0 -1
  330. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.meta.json +0 -1
  331. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.data.json +0 -1
  332. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.meta.json +0 -1
  333. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.data.json +0 -1
  334. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.meta.json +0 -1
  335. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.data.json +0 -1
  336. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.meta.json +0 -1
  337. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.data.json +0 -1
  338. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.meta.json +0 -1
  339. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.data.json +0 -1
  340. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.meta.json +0 -1
  341. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.data.json +0 -1
  342. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.meta.json +0 -1
  343. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.data.json +0 -1
  344. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.meta.json +0 -1
  345. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.data.json +0 -1
  346. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.meta.json +0 -1
  347. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.data.json +0 -1
  348. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.meta.json +0 -1
  349. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.data.json +0 -1
  350. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.meta.json +0 -1
  351. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.data.json +0 -1
  352. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.meta.json +0 -1
  353. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.data.json +0 -1
  354. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.meta.json +0 -1
  355. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.data.json +0 -1
  356. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.meta.json +0 -1
  357. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.data.json +0 -1
  358. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.meta.json +0 -1
  359. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.data.json +0 -1
  360. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.meta.json +0 -1
  361. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.data.json +0 -1
  362. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.meta.json +0 -1
  363. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.data.json +0 -1
  364. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.meta.json +0 -1
  365. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.data.json +0 -1
  366. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.meta.json +0 -1
  367. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.data.json +0 -1
  368. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.meta.json +0 -1
  369. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.data.json +0 -1
  370. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.meta.json +0 -1
  371. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.data.json +0 -1
  372. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.meta.json +0 -1
  373. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.data.json +0 -1
  374. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.meta.json +0 -1
  375. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.data.json +0 -1
  376. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.meta.json +0 -1
  377. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.data.json +0 -1
  378. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.meta.json +0 -1
  379. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.data.json +0 -1
  380. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.meta.json +0 -1
  381. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.data.json +0 -1
  382. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.meta.json +0 -1
  383. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.data.json +0 -1
  384. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.meta.json +0 -1
  385. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.data.json +0 -1
  386. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.meta.json +0 -1
  387. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.data.json +0 -1
  388. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.meta.json +0 -1
  389. machineconfig/scripts/python/.mypy_cache/3.11/git/types.data.json +0 -1
  390. machineconfig/scripts/python/.mypy_cache/3.11/git/types.meta.json +0 -1
  391. machineconfig/scripts/python/.mypy_cache/3.11/git/util.data.json +0 -1
  392. machineconfig/scripts/python/.mypy_cache/3.11/git/util.meta.json +0 -1
  393. machineconfig/scripts/python/.mypy_cache/3.11/glob.data.json +0 -1
  394. machineconfig/scripts/python/.mypy_cache/3.11/glob.meta.json +0 -1
  395. machineconfig/scripts/python/.mypy_cache/3.11/gzip.data.json +0 -1
  396. machineconfig/scripts/python/.mypy_cache/3.11/gzip.meta.json +0 -1
  397. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.data.json +0 -1
  398. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.meta.json +0 -1
  399. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.data.json +0 -1
  400. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.meta.json +0 -1
  401. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.data.json +0 -1
  402. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.meta.json +0 -1
  403. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.data.json +0 -1
  404. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.meta.json +0 -1
  405. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.data.json +0 -1
  406. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.meta.json +0 -1
  407. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.data.json +0 -1
  408. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.meta.json +0 -1
  409. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.data.json +0 -1
  410. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.meta.json +0 -1
  411. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.data.json +0 -1
  412. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.meta.json +0 -1
  413. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.data.json +0 -1
  414. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.meta.json +0 -1
  415. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.data.json +0 -1
  416. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.meta.json +0 -1
  417. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.data.json +0 -1
  418. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.meta.json +0 -1
  419. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.data.json +0 -1
  420. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.meta.json +0 -1
  421. machineconfig/scripts/python/.mypy_cache/3.11/inspect.data.json +0 -1
  422. machineconfig/scripts/python/.mypy_cache/3.11/inspect.meta.json +0 -1
  423. machineconfig/scripts/python/.mypy_cache/3.11/io.data.json +0 -1
  424. machineconfig/scripts/python/.mypy_cache/3.11/io.meta.json +0 -1
  425. machineconfig/scripts/python/.mypy_cache/3.11/itertools.data.json +0 -1
  426. machineconfig/scripts/python/.mypy_cache/3.11/itertools.meta.json +0 -1
  427. machineconfig/scripts/python/.mypy_cache/3.11/locale.data.json +0 -1
  428. machineconfig/scripts/python/.mypy_cache/3.11/locale.meta.json +0 -1
  429. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.data.json +0 -1
  430. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.meta.json +0 -1
  431. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.data.json +0 -1
  432. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.meta.json +0 -1
  433. machineconfig/scripts/python/.mypy_cache/3.11/mmap.data.json +0 -1
  434. machineconfig/scripts/python/.mypy_cache/3.11/mmap.meta.json +0 -1
  435. machineconfig/scripts/python/.mypy_cache/3.11/numbers.data.json +0 -1
  436. machineconfig/scripts/python/.mypy_cache/3.11/numbers.meta.json +0 -1
  437. machineconfig/scripts/python/.mypy_cache/3.11/opcode.data.json +0 -1
  438. machineconfig/scripts/python/.mypy_cache/3.11/opcode.meta.json +0 -1
  439. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.data.json +0 -1
  440. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.meta.json +0 -1
  441. machineconfig/scripts/python/.mypy_cache/3.11/os/path.data.json +0 -1
  442. machineconfig/scripts/python/.mypy_cache/3.11/os/path.meta.json +0 -1
  443. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.data.json +0 -1
  444. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.meta.json +0 -1
  445. machineconfig/scripts/python/.mypy_cache/3.11/platform.data.json +0 -1
  446. machineconfig/scripts/python/.mypy_cache/3.11/platform.meta.json +0 -1
  447. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.data.json +0 -1
  448. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.meta.json +0 -1
  449. machineconfig/scripts/python/.mypy_cache/3.11/re.data.json +0 -1
  450. machineconfig/scripts/python/.mypy_cache/3.11/re.meta.json +0 -1
  451. machineconfig/scripts/python/.mypy_cache/3.11/resource.data.json +0 -1
  452. machineconfig/scripts/python/.mypy_cache/3.11/resource.meta.json +0 -1
  453. machineconfig/scripts/python/.mypy_cache/3.11/shlex.data.json +0 -1
  454. machineconfig/scripts/python/.mypy_cache/3.11/shlex.meta.json +0 -1
  455. machineconfig/scripts/python/.mypy_cache/3.11/shutil.data.json +0 -1
  456. machineconfig/scripts/python/.mypy_cache/3.11/shutil.meta.json +0 -1
  457. machineconfig/scripts/python/.mypy_cache/3.11/signal.data.json +0 -1
  458. machineconfig/scripts/python/.mypy_cache/3.11/signal.meta.json +0 -1
  459. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.data.json +0 -1
  460. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.meta.json +0 -1
  461. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.data.json +0 -1
  462. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.meta.json +0 -1
  463. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.data.json +0 -1
  464. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.meta.json +0 -1
  465. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.data.json +0 -1
  466. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.meta.json +0 -1
  467. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.data.json +0 -1
  468. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.meta.json +0 -1
  469. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.data.json +0 -1
  470. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.meta.json +0 -1
  471. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.data.json +0 -1
  472. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.meta.json +0 -1
  473. machineconfig/scripts/python/.mypy_cache/3.11/stat.data.json +0 -1
  474. machineconfig/scripts/python/.mypy_cache/3.11/stat.meta.json +0 -1
  475. machineconfig/scripts/python/.mypy_cache/3.11/string.data.json +0 -1
  476. machineconfig/scripts/python/.mypy_cache/3.11/string.meta.json +0 -1
  477. machineconfig/scripts/python/.mypy_cache/3.11/struct.data.json +0 -1
  478. machineconfig/scripts/python/.mypy_cache/3.11/struct.meta.json +0 -1
  479. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.data.json +0 -1
  480. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.meta.json +0 -1
  481. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.data.json +0 -1
  482. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.meta.json +0 -1
  483. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.data.json +0 -1
  484. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.meta.json +0 -1
  485. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.data.json +0 -1
  486. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.meta.json +0 -1
  487. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.data.json +0 -1
  488. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.meta.json +0 -1
  489. machineconfig/scripts/python/.mypy_cache/3.11/threading.data.json +0 -1
  490. machineconfig/scripts/python/.mypy_cache/3.11/threading.meta.json +0 -1
  491. machineconfig/scripts/python/.mypy_cache/3.11/time.data.json +0 -1
  492. machineconfig/scripts/python/.mypy_cache/3.11/time.meta.json +0 -1
  493. machineconfig/scripts/python/.mypy_cache/3.11/types.data.json +0 -1
  494. machineconfig/scripts/python/.mypy_cache/3.11/types.meta.json +0 -1
  495. machineconfig/scripts/python/.mypy_cache/3.11/typing.data.json +0 -1
  496. machineconfig/scripts/python/.mypy_cache/3.11/typing.meta.json +0 -1
  497. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.data.json +0 -1
  498. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.meta.json +0 -1
  499. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.data.json +0 -1
  500. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.meta.json +0 -1
  501. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.data.json +0 -1
  502. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.meta.json +0 -1
  503. machineconfig/scripts/python/.mypy_cache/3.11/uuid.data.json +0 -1
  504. machineconfig/scripts/python/.mypy_cache/3.11/uuid.meta.json +0 -1
  505. machineconfig/scripts/python/.mypy_cache/3.11/warnings.data.json +0 -1
  506. machineconfig/scripts/python/.mypy_cache/3.11/warnings.meta.json +0 -1
  507. machineconfig/scripts/python/.mypy_cache/3.11/weakref.data.json +0 -1
  508. machineconfig/scripts/python/.mypy_cache/3.11/weakref.meta.json +0 -1
  509. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.data.json +0 -1
  510. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.meta.json +0 -1
  511. machineconfig/scripts/python/.mypy_cache/3.11/zlib.data.json +0 -1
  512. machineconfig/scripts/python/.mypy_cache/3.11/zlib.meta.json +0 -1
  513. machineconfig/scripts/python/.mypy_cache/CACHEDIR.TAG +0 -3
  514. machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
  515. machineconfig/scripts/python/__pycache__/gh_models.cpython-311.pyc +0 -0
  516. machineconfig/scripts/python/__pycache__/url2md.cpython-311.pyc +0 -0
  517. machineconfig/scripts/python/__pycache__/viewer.cpython-311.pyc +0 -0
  518. machineconfig/scripts/python/__pycache__/vscode_api.cpython-311.pyc +0 -0
  519. machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
  520. machineconfig/settings/linters/.ruff_cache/.gitignore +0 -2
  521. machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +0 -1
  522. machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
  523. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
  524. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
  525. machineconfig/utils/utils_path.py +0 -151
  526. machineconfig/utils/ve_utils/ve1.py +0 -111
  527. machineconfig/utils/ve_utils/ve2.py +0 -142
  528. machineconfig-1.94.dist-info/RECORD +0 -710
  529. {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/top_level.txt +0 -0
@@ -1,28 +1,27 @@
1
-
2
-
3
- from crocodile.core import Struct
4
- from crocodile.file_management import Read
5
1
  from machineconfig.scripts.python.helpers.cloud_helpers import Args, ArgsDefaults, absolute, find_cloud_config, get_secure_share_cloud_config
6
2
  from machineconfig.utils.utils import DEFAULTS_PATH
3
+ from machineconfig.utils.utils2 import read_ini, pprint
7
4
  from typing import Optional
5
+ from rich.console import Console
6
+ from rich.panel import Panel
8
7
 
9
8
 
10
9
  ES = "^" # chosen carefully to not mean anything on any shell. `$` was a bad choice.
10
+ console = Console()
11
11
 
12
12
 
13
13
  def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str, str, str]:
14
+ print("Source:", source)
15
+ print("Target:", target)
14
16
  config = args.config
15
17
  if config == "ss":
16
18
  cloud_maybe: Optional[str] = target.split(":")[0]
17
- if cloud_maybe == "": cloud_maybe = source.split(":")[0]
19
+ # if cloud_maybe == "": cloud_maybe = source.split(":")[0]
18
20
  if cloud_maybe == "": cloud_maybe = None
21
+ print("cloud_maybe:", cloud_maybe)
19
22
  maybe_config = get_secure_share_cloud_config(interactive=True, cloud=cloud_maybe)
20
23
  elif config is not None:
21
- print(f"""
22
- ╭{'─' * 70}╮
23
- │ 📄 Loading configuration from: {config} │
24
- ╰{'─' * 70}╯
25
- """)
24
+ console.print(Panel(f"📄 Loading configuration from: {config}", width=150, border_style="blue"))
26
25
  maybe_config = Args.from_config(absolute(config))
27
26
  else:
28
27
  maybe_config = None
@@ -54,12 +53,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
54
53
  maybe_config = tmp_maybe_config
55
54
 
56
55
  if maybe_config is None:
57
- default_cloud: str=Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
58
- print(f"""
59
- ╭{'─' * 70}╮
60
- │ ⚠️ No cloud config found. Using default cloud: {default_cloud} │
61
- ╰{'─' * 70}╯
62
- """)
56
+ default_cloud: str=read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
57
+ console.print(Panel(f"⚠️ No cloud config found. Using default cloud: {default_cloud}", width=150, border_style="yellow"))
63
58
  source = default_cloud + ":" + source[1:]
64
59
  else:
65
60
  tmp = maybe_config
@@ -74,18 +69,17 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
74
69
  if target.startswith(":"): # default cloud name is omitted cloud_name: # or ES in target
75
70
  assert ES not in source, "Not Implemented here yet."
76
71
  path = absolute(source)
77
- if maybe_config is None: maybe_config = find_cloud_config(path)
72
+ if maybe_config is None:
73
+ maybe_config = find_cloud_config(path)
78
74
 
79
75
  if maybe_config is None:
80
- default_cloud = Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
81
- print(f"""
82
- ╭{'─' * 70}╮
83
- │ ⚠️ No cloud config found. Using default cloud: {default_cloud} │
84
- ╰{'─' * 70}╯
85
- """)
76
+ default_cloud = read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
77
+ console.print(Panel(f"⚠️ No cloud config found. Using default cloud: {default_cloud}", width=150, border_style="yellow"))
86
78
  target = default_cloud + ":" + target[1:]
79
+ print("target mutated to:", target, f"because of default cloud being {default_cloud}")
87
80
  else:
88
81
  tmp = maybe_config
82
+ # print("target mutated to:", target, f"because of cloud config being {tmp.cloud}")
89
83
  target = f"{tmp.cloud}:" + target[1:]
90
84
  root = tmp.root
91
85
  rel2home = tmp.rel2home
@@ -102,7 +96,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
102
96
  if len(source_parts) > 1 and source_parts[1] == ES: # the source path is to be inferred from target.
103
97
  assert ES not in target, f"You can't use expand symbol `{ES}` in both source and target. Cyclical inference dependency arised."
104
98
  target_obj = absolute(target)
105
- remote_path = target_obj.get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
99
+ from machineconfig.utils.path_reduced import P as PathExtended
100
+ remote_path = PathExtended(target_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
106
101
  source = f"{cloud}:{remote_path.as_posix()}"
107
102
  else: # source path is mentioned, target? maybe.
108
103
  if target == ES: # target path is to be inferred from source.
@@ -120,7 +115,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
120
115
  if len(target_parts) > 1 and target_parts[1] == ES: # the target path is to be inferred from source.
121
116
  assert ES not in source, "You can't use $ in both source and target. Cyclical inference dependency arised."
122
117
  source_obj = absolute(source)
123
- remote_path = source_obj.get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
118
+ from machineconfig.utils.path_reduced import P as PathExtended
119
+ remote_path = PathExtended(source_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
124
120
  target = f"{cloud}:{remote_path.as_posix()}"
125
121
  else: # target path is mentioned, source? maybe.
126
122
  target = str(target)
@@ -131,19 +127,10 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
131
127
  if zip_arg and ".zip" not in target: target += ".zip"
132
128
  if encrypt and ".enc" not in target: target += ".enc"
133
129
  else:
134
- raise ValueError(f"""
135
- {'═' * 70}
136
- ║ ❌ ERROR: Invalid path configuration ║
137
- ╠{'═' * 70}╣
138
- ║ Either source or target must be a remote path (i.e. machine:path) ║
139
- ╚{'═' * 70}╝
140
- """)
130
+ console.print(Panel("❌ ERROR: Invalid path configuration\nEither source or target must be a remote path (i.e. machine:path)", title="[bold red]Error[/bold red]", border_style="red"))
131
+ raise ValueError(f"Either source or target must be a remote path (i.e. machine:path)\nGot: source: `{source}`, target: `{target}`")
141
132
 
142
- print(f"""
143
- {'─' * 70}
144
- │ 🔍 Path resolution complete │
145
- ╰{'─' * 70}╯
146
- """)
147
- Struct({"cloud": cloud, "source": str(source), "target": str(target)}).print(as_config=True, title="CLI Resolution")
133
+ console.print(Panel("🔍 Path resolution complete", title="[bold blue]Resolution[/bold blue]", border_style="blue"))
134
+ pprint({"cloud": cloud, "source": str(source), "target": str(target)}, "CLI Resolution")
148
135
  _ = pwd, encrypt, zip_arg, share
149
- return cloud, str(source), str(target)
136
+ return cloud, str(source), str(target)
@@ -2,16 +2,16 @@
2
2
  from typing import Any, Callable, Optional
3
3
  import inspect
4
4
  import os
5
- import argparse
5
+ # import argparse
6
6
  from crocodile.core import Display
7
- from crocodile.file_management import P
8
- from machineconfig.utils.utils import choose_ssh_host
7
+ from machineconfig.utils.path_reduced import P as PathExtended
8
+ # from machineconfig.utils.utils import choose_ssh_host
9
9
 
10
10
 
11
- def search_for_files_of_interest(path_obj: P):
11
+ def search_for_files_of_interest(path_obj: PathExtended):
12
12
  if path_obj.joinpath(".venv").exists():
13
13
  path_objects = path_obj.search("*", not_in=[".venv"]).list
14
- files: list[P] = []
14
+ files: list[PathExtended] = []
15
15
  for a_path_obj in path_objects:
16
16
  files += search_for_files_of_interest(path_obj=a_path_obj)
17
17
  return files
@@ -28,19 +28,11 @@ def convert_kwargs_to_fire_kwargs_str(kwargs: dict[str, Any]) -> str:
28
28
  if not kwargs: # empty dict
29
29
  kwargs_str = ''
30
30
  else:
31
- if len(kwargs) == 1:
32
- kwargs_str = f""" --{list(kwargs.keys())[0]} {list(kwargs.values())[0]} """
33
- else:
34
- # print(f"len(kwargs) = {len(kwargs)}")
35
- tmp_list: list[str] = []
36
- for k, v in kwargs.items():
37
- if v is not None:
38
- item = f'"{k}": "{v}"'
39
- else:
40
- item = f'"{k}": None'
41
- tmp_list.append(item)
42
- tmp__ = ", ".join(tmp_list)
43
- kwargs_str = "'{" + tmp__ + "}'"
31
+ # For fire module, all keyword arguments should be passed as --key value pairs
32
+ tmp_list: list[str] = []
33
+ for k, v in kwargs.items():
34
+ tmp_list.append(f"--{k} {v}")
35
+ kwargs_str = " " + " ".join(tmp_list) + " "
44
36
  return kwargs_str
45
37
 
46
38
 
@@ -51,7 +43,7 @@ def parse_pyfile(file_path: str):
51
43
  func_args: list[list[args_spec]] = [[]] # this firt prepopulated dict is for the option 'RUN AS MAIN' which has no args
52
44
 
53
45
  import ast
54
- parsed_ast = ast.parse(P(file_path).read_text(encoding='utf-8'))
46
+ parsed_ast = ast.parse(PathExtended(file_path).read_text(encoding='utf-8'))
55
47
  functions = [
56
48
  node
57
49
  for node in ast.walk(parsed_ast)
@@ -73,12 +65,8 @@ def parse_pyfile(file_path: str):
73
65
  if arg.annotation is not None:
74
66
  try: type_ = arg.annotation.__dict__['id']
75
67
  except KeyError as ke:
76
- # type_ = arg.annotation.__name__
77
- # print(f"Failed to get type for {arg.annotation}. {ke}")
78
- # Struct(get_attrs(arg.annotation)).print(as_yaml=True)
79
68
  type_ = "Any" # e.g. a callable object
80
69
  _ = ke
81
- # raise ke
82
70
  else: type_ = "Any"
83
71
  default_tmp = function.args.defaults[idx] if idx < len(function.args.defaults) else None
84
72
  if default_tmp is None: default = None
@@ -123,18 +111,18 @@ def get_attrs_recursively(obj: Any):
123
111
  return obj
124
112
 
125
113
 
126
- def run_on_remote(func_file: str, args: argparse.Namespace):
127
- host = choose_ssh_host(multi=False)
128
- assert isinstance(host, str), f"host must be a string. Got {type(host)}"
129
- from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig
130
- config = RemoteMachineConfig(copy_repo=True, update_repo=False, update_essential_repos=True,
131
- notify_upon_completion=True, ssh_params=dict(host=host),
132
- # to_email=None, email_config_name='enaut',
133
- data=[],
134
- ipython=False, interactive=args.interactive, pdb=False, pudb=args.debug, wrap_in_try_except=False,
135
- transfer_method="sftp")
136
- m = RemoteMachine(func=func_file, func_kwargs=None, config=config)
137
- m.run()
114
+ # def run_on_remote(func_file: str, args: argparse.Namespace):
115
+ # host = choose_ssh_host(multi=False)
116
+ # assert isinstance(host, str), f"host must be a string. Got {type(host)}"
117
+ # from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig
118
+ # config = RemoteMachineConfig(copy_repo=True, update_repo=False, update_essential_repos=True,
119
+ # notify_upon_completion=True, ssh_params=dict(host=host),
120
+ # # to_email=None, email_config_name='enaut',
121
+ # data=[],
122
+ # ipython=False, interactive=args.interactive, pdb=False, pudb=args.debug, wrap_in_try_except=False,
123
+ # transfer_method="sftp")
124
+ # m = RemoteMachine(func=func_file, func_kwargs=None, config=config)
125
+ # m.run()
138
126
 
139
127
 
140
128
  def find_repo_root_path(start_path: str) -> Optional[str]:
@@ -1,47 +1,40 @@
1
-
2
- from crocodile.file_management import P, Read
1
+ from machineconfig.utils.path_reduced import P as PathExtended
3
2
  from crocodile.meta import Terminal
4
3
  from machineconfig.scripts.python.get_zellij_cmd import get_zellij_cmd
5
- from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH, get_shell_script, write_shell_script
4
+ from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH
5
+ from machineconfig.utils.utils2 import read_ini
6
+ from machineconfig.utils.code import write_shell_script_to_file
6
7
  import platform
8
+ from rich.console import Console
9
+ from rich.panel import Panel
10
+
11
+ console = Console()
7
12
 
8
13
 
9
14
  def delete_remote_repo_copy_and_push_local(remote_repo: str, local_repo: str, cloud: str):
10
- print(f"""
11
- ╔{'═' * 70}╗
12
- 🗑️ Deleting remote repo copy and pushing local copy ║
13
- ╚{'═' * 70}╝
14
- """)
15
- repo_sync_root = P(remote_repo).expanduser().absolute()
16
- repo_root_path = P(local_repo).expanduser().absolute()
15
+ console.print(Panel("🗑️ Deleting remote repo copy and pushing local copy", title="[bold blue]Repo Sync[/bold blue]", border_style="blue"))
16
+ repo_sync_root = PathExtended(remote_repo).expanduser().absolute()
17
+ repo_root_path = PathExtended(local_repo).expanduser().absolute()
17
18
  repo_sync_root.delete(sure=True)
18
19
  print("🧹 Removed temporary remote copy")
19
20
  from git.remote import Remote
20
21
  from git.repo import Repo
21
22
  try:
22
23
  Remote.remove(Repo(repo_root_path), "originEnc")
23
- print("🔗 Removed originEnc remote reference")
24
+ console.print(Panel("🔗 Removed originEnc remote reference", border_style="blue"))
24
25
  except Exception: pass # type: ignore
25
- print(f"""
26
- ╭{'─' * 70}╮
27
- │ 📤 Uploading local repository to cloud... │
28
- ╰{'─' * 70}╯
29
- """)
26
+ console.print(Panel("📈 Deleting remote repository copy and pushing local changes", width=150, border_style="blue"))
30
27
 
31
28
  repo_root_path.to_cloud(cloud=cloud, zip=True, encrypt=True, rel2home=True, os_specific=False)
32
29
 
33
- print(f"""
34
- ╔{'═' * 70}╗
35
- ║ ✅ Repository successfully pushed to cloud ║
36
- ╚{'═' * 70}╝
37
- """)
30
+ console.print(Panel("✅ Repository successfully pushed to cloud", title="[bold green]Repo Sync[/bold green]", border_style="green"))
38
31
 
39
32
 
40
33
  # import sys
41
34
  # import subprocess
42
35
 
43
36
 
44
- def get_wt_cmd(wd1: P, wd2: P) -> str:
37
+ def get_wt_cmd(wd1: PathExtended, wd2: PathExtended) -> str:
45
38
  lines = [
46
39
  f"""wt --window 0 new-tab --profile pwsh --title "gitdiff" --tabColor `#3b04d1 --startingDirectory {wd1} ` --colorScheme "Solarized Dark" """,
47
40
  f"""split-pane --horizontal --profile pwsh --startingDirectory {wd2} --size 0.5 --colorScheme "Tango Dark" -- pwsh -Interactive """
@@ -50,62 +43,39 @@ def get_wt_cmd(wd1: P, wd2: P) -> str:
50
43
 
51
44
 
52
45
  def inspect_repos(repo_local_root: str, repo_remote_root: str):
53
- print(f"""
54
- ╔{'═' * 70}╗
55
- ║ 🔍 Inspecting Repositories ║
56
- ╠{'═' * 70}╣
57
- ║ 📂 Local: {repo_local_root}
58
- ║ 📂 Remote: {repo_remote_root}
59
- ╚{'═' * 70}╝
60
- """)
46
+ console.print(Panel(f"📂 Local: {repo_local_root}\n📂 Remote: {repo_remote_root}", title="[bold blue]🔍 Inspecting Repositories[/bold blue]", border_style="blue"))
61
47
 
62
48
  if platform.system() == "Windows":
63
- program = get_wt_cmd(wd1=P(repo_local_root), wd2=P(repo_local_root))
64
- write_shell_script(program=program, execute=True, desc="Inspecting repos ...", preserve_cwd=True, display=True)
49
+ program = get_wt_cmd(wd1=PathExtended(repo_local_root), wd2=PathExtended(repo_local_root))
50
+ write_shell_script_to_file(shell_script=program)
65
51
  return None
66
- elif platform.system() == "Linux":
67
- program = get_zellij_cmd(wd1=P(repo_local_root), wd2=P(repo_remote_root))
68
- write_shell_script(program=program, execute=True, desc="Inspecting repos ...", preserve_cwd=True, display=True)
52
+ elif platform.system() in ["Linux", "Darwin"]:
53
+ program = get_zellij_cmd(wd1=PathExtended(repo_local_root), wd2=PathExtended(repo_remote_root))
54
+ write_shell_script_to_file(shell_script=program)
69
55
  return None
70
56
  else: raise NotImplementedError(f"Platform {platform.system()} not implemented.")
71
57
 
72
58
 
73
59
  def fetch_dotfiles():
74
- print(f"""
75
- ╔{'═' * 70}╗
76
- 📁 Fetching Dotfiles ║
77
- {'═' * 70}
78
- """)
79
-
80
- cloud_resolved = Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
81
- print(f"""
82
- ╭{'─' * 70}╮
83
- │ ⚠️ Using default cloud: `{cloud_resolved}` from {DEFAULTS_PATH} │
84
- ╰{'─' * 70}╯
85
- """)
86
-
87
- dotfiles_local = P.home().joinpath("dotfiles")
88
- CONFIG_PATH.joinpath("remote").create()
60
+ console.print(Panel("📁 Fetching Dotfiles", title="[bold blue]Dotfiles[/bold blue]", border_style="blue"))
61
+
62
+ cloud_resolved = read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
63
+ console.print(Panel(f"⚠️ Using default cloud: `{cloud_resolved}` from {DEFAULTS_PATH}", width=150, border_style="yellow"))
64
+
65
+ dotfiles_local = PathExtended.home().joinpath("dotfiles")
66
+ CONFIG_PATH.joinpath("remote").mkdir(parents=True, exist_ok=True)
89
67
  dotfiles_remote = CONFIG_PATH.joinpath("remote", dotfiles_local.rel2home())
90
68
  remote_path = dotfiles_local.get_remote_path(rel2home=True, os_specific=False, root="myhome") + ".zip.enc"
91
69
 
92
- print(f"""
93
- ╭{'─' * 70}╮
94
- │ 📥 Downloading dotfiles from cloud... │
95
- ╰{'─' * 70}╯
96
- """)
70
+ console.print(Panel("📥 Downloading dotfiles from cloud...", width=150, border_style="blue"))
97
71
 
98
72
  dotfiles_remote.from_cloud(remotepath=remote_path, cloud=cloud_resolved,
99
73
  unzip=True, decrypt=True, rel2home=True, os_specific=False, pwd=None)
100
74
 
101
- print(f"""
102
- ╭{'─' * 70}╮
103
- │ 🗑️ Removing old dotfiles and replacing with cloud version... │
104
- ╰{'─' * 70}╯
105
- """)
75
+ console.print(Panel("🗑️ Removing old dotfiles and replacing with cloud version...", width=150, border_style="blue"))
106
76
 
107
77
  dotfiles_local.delete(sure=True)
108
- dotfiles_remote.move(folder=P.home())
78
+ dotfiles_remote.move(folder=PathExtended.home())
109
79
  script = f"""
110
80
  # rm -rf {dotfiles_local}
111
81
  # mv {dotfiles_remote} {dotfiles_local}
@@ -115,12 +85,8 @@ sudo chmod 600 $HOME/.ssh/*
115
85
  sudo chmod 700 $HOME/.ssh
116
86
  sudo chmod +x $HOME/dotfiles/scripts/linux -R
117
87
  """
118
- shell_path = get_shell_script(shell_script=script)
88
+ shell_path = write_shell_script_to_file(shell_script=script)
119
89
  Terminal().run(f". {shell_path}", shell="bash").capture().print()
120
90
 
121
- print(f"""
122
- ╔{'═' * 70}╗
123
- ║ ✅ Dotfiles successfully fetched and installed ║
124
- ╚{'═' * 70}╝
125
- """)
91
+ console.print(Panel("✅ Dotfiles successfully fetched and installed", title="[bold green]Dotfiles[/bold green]", border_style="green"))
126
92
 
@@ -1,9 +1,8 @@
1
1
  """NFS mounting script
2
2
  """
3
3
 
4
- from crocodile.file_management import P
4
+ from machineconfig.utils.path_reduced import P as PathExtended
5
5
  from crocodile.meta import SSH, Terminal
6
- from crocodile.core import List as L
7
6
  from machineconfig.utils.utils import display_options, PROGRAM_PATH, choose_ssh_host
8
7
  import platform
9
8
 
@@ -21,9 +20,7 @@ def main():
21
20
  default = f"{ssh.hostname}:{ssh.run('echo $HOME').op}/data/share_nfs"
22
21
  share_info = display_options(
23
22
  "📂 Choose a share path:",
24
- options=L(ssh.run("cat /etc/exports").op.split("\n"))
25
- .filter(lambda x: not x.startswith("#"))
26
- .apply(lambda x: f"{ssh.hostname}:{x.split(' ')[0]}").list + [default],
23
+ options=[f"{ssh.hostname}:{item.split(' ')[0]}" for item in ssh.run("cat /etc/exports").op.split("\n") if not item.startswith("#")] + [default],
27
24
  default=default
28
25
  )
29
26
  assert isinstance(share_info, str), f"❌ share_info must be a string. Got {type(share_info)}"
@@ -34,11 +31,11 @@ def main():
34
31
  print(f"\n🌐 Remote Server: {remote_server}")
35
32
  print(f"📁 Share Path: {share_path}\n")
36
33
 
37
- if platform.system() == "Linux":
38
- mount_path_1 = P(share_path)
39
- mount_path_2 = P.home().joinpath(f"data/mount_nfs/{remote_server}")
34
+ if platform.system() in ["Linux", "Darwin"]:
35
+ mount_path_1 = PathExtended(share_path)
36
+ mount_path_2 = PathExtended.home().joinpath(f"data/mount_nfs/{remote_server}")
40
37
  if str(mount_path_1).startswith("/home"):
41
- mount_path_3 = P.home().joinpath(*mount_path_1.parts[3:])
38
+ mount_path_3 = PathExtended.home().joinpath(*mount_path_1.parts[3:])
42
39
  else:
43
40
  mount_path_3 = mount_path_2
44
41
 
@@ -49,8 +46,8 @@ def main():
49
46
  default=mount_path_2,
50
47
  custom_input=True
51
48
  )
52
- assert isinstance(local_mount_point, P), f"❌ local_mount_point must be a pathlib.Path. Got {type(local_mount_point)}"
53
- local_mount_point = P(local_mount_point).expanduser()
49
+ assert isinstance(local_mount_point, PathExtended), f"❌ local_mount_point must be a pathlib.Path. Got {type(local_mount_point)}"
50
+ local_mount_point = PathExtended(local_mount_point).expanduser()
54
51
 
55
52
  PROGRAM_PATH.write_text(f"""
56
53
  share_info={share_info}
@@ -1,5 +1,5 @@
1
1
  from machineconfig.utils.utils import PROGRAM_PATH
2
- from crocodile.file_management import P
2
+ from pathlib import Path
3
3
  import platform
4
4
 
5
5
  def main():
@@ -12,9 +12,9 @@ def main():
12
12
 
13
13
  mount_point = input(f"📂 Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_nw/{machine_name}]: ")
14
14
  if mount_point == "":
15
- mount_point = P.home().joinpath(fr"data/mount_nw/{machine_name}")
15
+ mount_point = Path.home().joinpath(fr"data/mount_nw/{machine_name}")
16
16
  else:
17
- mount_point = P(mount_point).expanduser()
17
+ mount_point = Path(mount_point).expanduser()
18
18
 
19
19
  print(f"\n🌐 Network Drive Location: {drive_location}")
20
20
  print(f"📁 Mount Point: {mount_point}\n")
@@ -22,7 +22,7 @@ def main():
22
22
  username = input("👤 Enter the username: ")
23
23
  password = input("🔒 Enter the password: ")
24
24
 
25
- if platform.system() == "Linux":
25
+ if platform.system() in ["Linux", "Darwin"]:
26
26
  print("\n🔧 Saving configuration for Linux...")
27
27
  PROGRAM_PATH.write_text(f"""
28
28
  drive_location='{drive_location}'
@@ -3,7 +3,7 @@
3
3
 
4
4
  from platform import system
5
5
  from crocodile.meta import SSH, Terminal
6
- from crocodile.file_management import P
6
+ from machineconfig.utils.path_reduced import P as PathExtended
7
7
  from machineconfig.utils.utils import PROGRAM_PATH, choose_ssh_host
8
8
 
9
9
  def main():
@@ -32,7 +32,7 @@ def main():
32
32
 
33
33
  mount_point = input(f"📂 Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_ssh/{ssh.hostname}]: ")
34
34
  if mount_point == "":
35
- mount_point = P.home().joinpath(fr"data/mount_ssh/{ssh.hostname}")
35
+ mount_point = PathExtended.home().joinpath(fr"data/mount_ssh/{ssh.hostname}")
36
36
 
37
37
  print(f"\n📁 Mount Point: {mount_point}")
38
38
 
@@ -1,68 +1,67 @@
1
- """Share
2
- """
1
+ # """Share
2
+ # """
3
3
 
4
- # as per https://github.com/Luzifer/ots
5
- # this script is pure python and connects to server to create a secret
6
- # or use ots executable to do this job
4
+ # # as per https://github.com/Luzifer/ots
5
+ # # this script is pure python and connects to server to create a secret
6
+ # # or use ots executable to do this job
7
7
 
8
- import requests
9
- import crocodile.file_management as fm
10
- from crocodile.core import install_n_import
11
- import base64
12
- from typing import Optional
8
+ # import requests
9
+ # import crocodile.file_management as fm
10
+ # import base64
11
+ # from typing import Optional
13
12
 
14
- def encrypt(key: str, pwd: str):
15
- print("\n🔒 Encrypting the secret...")
16
- install_n_import(library="Crypto.Cipher", package="pycryptodome")
17
- AES = __import__("Crypto", fromlist=["Cipher"]).Cipher.AES
18
- MD5 = __import__("Crypto", fromlist=["Hash"]).Hash.MD5
19
- pwd_enc = pwd.encode("utf-8")
20
- hash_object = MD5.new(key.encode("utf-8"))
21
- key_digest = hash_object.digest()
22
- iv = b'\x00' * 16
23
- cipher = AES.new(key_digest, AES.MODE_CBC, iv)
24
- pad = 16 - (len(pwd_enc) % 16)
25
- pwd_enc += bytes([pad] * pad)
26
- encrypted_password = cipher.encrypt(pwd_enc)
27
- print("✅ Encryption completed successfully!\n")
28
- return base64.b64encode(encrypted_password).decode("utf-8")
13
+ # def encrypt(key: str, pwd: str):
14
+ # print("\n🔒 Encrypting the secret...")
15
+ # import pycryptodome
16
+ # AES = __import__("Crypto", fromlist=["Cipher"]).Cipher.AES
17
+ # MD5 = __import__("Crypto", fromlist=["Hash"]).Hash.MD5
18
+ # pwd_enc = pwd.encode("utf-8")
19
+ # hash_object = MD5.new(key.encode("utf-8"))
20
+ # key_digest = hash_object.digest()
21
+ # iv = b'\x00' * 16
22
+ # cipher = AES.new(key_digest, AES.MODE_CBC, iv)
23
+ # pad = 16 - (len(pwd_enc) % 16)
24
+ # pwd_enc += bytes([pad] * pad)
25
+ # encrypted_password = cipher.encrypt(pwd_enc)
26
+ # print("✅ Encryption completed successfully!\n")
27
+ # return base64.b64encode(encrypted_password).decode("utf-8")
29
28
 
30
- def share(secret: str, password: Optional[str]):
31
- print("\n🚀 Initiating the sharing process...")
32
- if password is not None:
33
- print("🔑 Password provided. Encrypting the secret...")
34
- encoded_secret = encrypt(password, secret)
35
- else:
36
- print("🔓 No password provided. Sharing the secret as is.")
37
- encoded_secret = secret
29
+ # def share(secret: str, password: Optional[str]):
30
+ # print("\n🚀 Initiating the sharing process...")
31
+ # if password is not None:
32
+ # print("🔑 Password provided. Encrypting the secret...")
33
+ # encoded_secret = encrypt(password, secret)
34
+ # else:
35
+ # print("🔓 No password provided. Sharing the secret as is.")
36
+ # encoded_secret = secret
38
37
 
39
- url = "https://ots.fyi/api/create"
38
+ # url = "https://ots.fyi/api/create"
40
39
 
41
- payload = {"secret": encoded_secret}
42
- headers = {'Content-Type': 'application/json'}
40
+ # payload = {"secret": encoded_secret}
41
+ # headers = {'Content-Type': 'application/json'}
43
42
 
44
- print("\n🌐 Sending request to the server...")
45
- response = requests.post(url, json=payload, headers=headers, timeout=10)
43
+ # print("\n🌐 Sending request to the server...")
44
+ # response = requests.post(url, json=payload, headers=headers, timeout=10)
46
45
 
47
- if response.status_code == 201:
48
- res = response.json()
49
- print("✅ Request successful! Response received.")
50
- assert res["success"] is True, "❌ Request failed."
51
- share_url = fm.P(f"https://ots.fyi/#{res['secret_id']}") + (f"|{password}" if password is not None else "")
52
- print(f"\n🔗 Share URL: {repr(share_url)}\n")
53
- return share_url
54
- else:
55
- print("❌ Request failed. Server returned an error.")
56
- raise RuntimeError(response.text)
46
+ # if response.status_code == 201:
47
+ # res = response.json()
48
+ # print("✅ Request successful! Response received.")
49
+ # assert res["success"] is True, "❌ Request failed."
50
+ # share_url = fm.P(f"https://ots.fyi/#{res['secret_id']}") + (f"|{password}" if password is not None else "")
51
+ # print(f"\n🔗 Share URL: {repr(share_url)}\n")
52
+ # return share_url
53
+ # else:
54
+ # print("❌ Request failed. Server returned an error.")
55
+ # raise RuntimeError(response.text)
57
56
 
58
- if __name__ == "__main__":
59
- print("\n" + "=" * 50)
60
- print("🔐 Welcome to the One-Time Secret Sharing Tool")
61
- print("=" * 50 + "\n")
57
+ # if __name__ == "__main__":
58
+ # print("\n" + "=" * 50)
59
+ # print("🔐 Welcome to the One-Time Secret Sharing Tool")
60
+ # print("=" * 50 + "\n")
62
61
 
63
- sc = input("📝 Enter the secret to share: ")
64
- pwdd = input("🔑 Enter a password (optional): ") or None
62
+ # sc = input("📝 Enter the secret to share: ")
63
+ # pwdd = input("🔑 Enter a password (optional): ") or None
65
64
 
66
- print("\n📤 Sharing the secret...")
67
- share(secret=sc, password=pwdd)
68
- print("🎉 Secret shared successfully!\n")
65
+ # print("\n📤 Sharing the secret...")
66
+ # share(secret=sc, password=pwdd)
67
+ # print("🎉 Secret shared successfully!\n")