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,55 +1,55 @@
1
- """Pomodoro
2
- """
3
-
4
- from crocodile.toolbox import Log, install_n_import, Scheduler, P
5
- import time
6
- from datetime import datetime
7
-
8
- def pomodoro(work: int = 25, rest: int = 5, repeats: int = 4):
9
- print("\n" + "=" * 50)
10
- print("🍅 Welcome to the Pomodoro Timer")
11
- print("=" * 50 + "\n")
12
-
13
- logger = Log(name="pomodoro", file=False, stream=True)
14
-
15
- def loop(sched: Scheduler):
16
- speak("Alright, time to start working...")
17
- print("\n⏳ Work session started! Stay focused.")
18
- start = datetime.now()
19
- _ = sched
20
- while (diff := work - ((datetime.now() - start).seconds / 60)) > 0:
21
- logger.debug(f"💼 Keep working. Time Left: {round(diff)} minutes")
22
- time.sleep(60 * 1)
23
-
24
- speak("Now, it's time to take a break.")
25
- print("\n☕ Break time! Relax and recharge.")
26
- start = datetime.now()
27
- while (diff := rest - ((datetime.now() - start).seconds / 60)) > 0:
28
- logger.critical(f"🛋️ Keep resting. Time Left: {round(diff)} minutes")
29
- time.sleep(60 * 1)
30
-
31
- def speak(txt: str):
32
- print(f"🔊 Speaking: {txt}")
33
- install_n_import("gtts").gTTS(txt, lang='en', tld='com.au').save(tmp := P.tmpfile(suffix=".mp3"))
34
- time.sleep(0.5)
35
- pyglet = install_n_import("pyglet")
36
- pyglet.resource.path = [tmp.parent.to_str()]
37
- pyglet.resource.reindex()
38
- pyglet.resource.media(tmp.name).play()
39
-
40
- def beep(duration: int = 1, frequency: int = 3000):
41
- print(f"🔔 Beeping with duration {duration}s and frequency {frequency}Hz")
42
- try:
43
- import winsound
44
- except ImportError:
45
- __import__("os").system(f'beep -f {frequency} -l {1000 * duration}')
46
- else:
47
- winsound.Beep(frequency, 1000 * duration) # type: ignore
48
-
49
- _ = beep
50
-
51
- print("\n🎯 Starting the Pomodoro routine...")
52
- return Scheduler(routine=loop, max_cycles=repeats, logger=logger, wait="0.1m").run()
53
-
54
- if __name__ == '__main__':
55
- pomodoro()
1
+ # """Pomodoro
2
+ # """
3
+
4
+ # import time
5
+ # from datetime import datetime
6
+
7
+ # def pomodoro(work: int = 25, rest: int = 5, repeats: int = 4):
8
+ # print("\n" + "=" * 50)
9
+ # print("🍅 Welcome to the Pomodoro Timer")
10
+ # print("=" * 50 + "\n")
11
+
12
+ # logger = Log(name="pomodoro", file=False, stream=True)
13
+
14
+ # def loop(sched: Scheduler):
15
+ # speak("Alright, time to start working...")
16
+ # print("\n⏳ Work session started! Stay focused.")
17
+ # start = datetime.now()
18
+ # _ = sched
19
+ # while (diff := work - ((datetime.now() - start).seconds / 60)) > 0:
20
+ # logger.debug(f"💼 Keep working. Time Left: {round(diff)} minutes")
21
+ # time.sleep(60 * 1)
22
+
23
+ # speak("Now, it's time to take a break.")
24
+ # print("\n☕ Break time! Relax and recharge.")
25
+ # start = datetime.now()
26
+ # while (diff := rest - ((datetime.now() - start).seconds / 60)) > 0:
27
+ # logger.critical(f"🛋️ Keep resting. Time Left: {round(diff)} minutes")
28
+ # time.sleep(60 * 1)
29
+
30
+ # def speak(txt: str):
31
+ # print(f"🔊 Speaking: {txt}")
32
+ # import pyglet
33
+ # import gtts
34
+ # gtts.gTTS(txt, lang='en', tld='com.au').save(tmp := PathExtended.tmpfile(suffix=".mp3"))
35
+ # time.sleep(0.5)
36
+ # pyglet.resource.path = [str(tmp.parent)]
37
+ # pyglet.resource.reindex()
38
+ # pyglet.resource.media(tmp.name).play()
39
+
40
+ # def beep(duration: int = 1, frequency: int = 3000):
41
+ # print(f"🔔 Beeping with duration {duration}s and frequency {frequency}Hz")
42
+ # try:
43
+ # import winsound
44
+ # except ImportError:
45
+ # __import__("os").system(f'beep -f {frequency} -l {1000 * duration}')
46
+ # else:
47
+ # winsound.Beep(frequency, 1000 * duration) # type: ignore
48
+
49
+ # _ = beep
50
+
51
+ # print("\n🎯 Starting the Pomodoro routine...")
52
+ # return Scheduler(routine=loop, max_cycles=repeats, logger=logger, wait="0.1m").run()
53
+
54
+ # if __name__ == '__main__':
55
+ # pomodoro()
@@ -7,8 +7,9 @@ in the event that username@github.com is not mentioned in the remote url.
7
7
 
8
8
  from rich import print as pprint
9
9
  from machineconfig.utils.utils import write_shell_script_to_default_program_path, CONFIG_PATH, DEFAULTS_PATH
10
- from crocodile.file_management import P, Read, Save
11
- from crocodile.core import randstr
10
+ from machineconfig.utils.path_reduced import P as PathExtended
11
+ from machineconfig.utils.io_save import save_json
12
+ from machineconfig.utils.utils2 import randstr, read_json, read_ini
12
13
  import argparse
13
14
  from dataclasses import dataclass
14
15
  from enum import Enum
@@ -25,11 +26,11 @@ class GitAction(Enum):
25
26
  class RepoRecord:
26
27
  name: str
27
28
  parent_dir: str
28
- remotes: list[str]
29
+ remotes: dict[str, str] # Fixed: should be dict mapping remote name to URL
29
30
  version: dict[str, str]
30
31
 
31
32
 
32
- def git_action(path: P, action: GitAction, mess: Optional[str] = None, r: bool=False) -> str:
33
+ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None, r: bool = False, uv_sync: bool = False) -> str:
33
34
  from git.exc import InvalidGitRepositoryError
34
35
  from git.repo import Repo
35
36
  try:
@@ -37,25 +38,27 @@ def git_action(path: P, action: GitAction, mess: Optional[str] = None, r: bool=F
37
38
  except InvalidGitRepositoryError:
38
39
  pprint(f"⚠️ Skipping {path} because it is not a git repository.")
39
40
  if r:
40
- prgs = [git_action(path=sub_path, action=action, mess=mess, r=r) for sub_path in path.search()]
41
+ prgs = [git_action(path=sub_path, action=action, mess=mess, r=r, uv_sync=uv_sync) for sub_path in path.search()]
41
42
  return "\n".join(prgs)
42
43
  else: return "\necho 'skipped because not a git repo'\n\n"
43
44
 
44
45
  program = f'''
45
- 🔧 echo '>>>>>>>>> {action}'
46
+ echo '>>>>>>>>> 🔧{action}'
46
47
  cd '{path}'
47
48
  '''
48
49
  if action == GitAction.commit:
49
50
  if mess is None: mess = "auto_commit_" + randstr()
50
51
  program += f'''
51
- 🔄 git add .; git commit -am "{mess}"
52
+ git commit -am "{mess}"
52
53
  '''
53
54
  if action == GitAction.push or action == GitAction.pull:
54
55
  action_name = "pull" if action == GitAction.pull else "push"
55
56
  cmds = [f'echo "🔄 {action_name.capitalize()}ing from {remote.url}" ; git {action_name} {remote.name} {repo.active_branch.name}' for remote in repo.remotes]
56
57
  program += '\n' + '\n'.join(cmds) + '\n'
57
- program = program + '''
58
- echo ""; echo ""
58
+ uv_sync_cmd = "uv sync" if uv_sync else ""
59
+ program = program + f'''
60
+ {uv_sync_cmd}
61
+ echo "✅"; echo ""
59
62
  '''
60
63
  return program
61
64
 
@@ -70,6 +73,7 @@ def main():
70
73
  parser.add_argument("directory", help="📁 Folder containing repos to record or a specs JSON file to follow.", default="")
71
74
  # FLAGS
72
75
  parser.add_argument("--push", help="🚀 Push changes.", action="store_true")
76
+ parser.add_argument("--uv_sync", help="🔄 Sync UV dependencies.", action="store_true")
73
77
  parser.add_argument("--pull", help="⬇️ Pull changes.", action="store_true")
74
78
  parser.add_argument("--commit", help="💾 Commit changes.", action="store_true")
75
79
  parser.add_argument("--all", help="🔄 Pull, commit, and push changes.", action="store_true")
@@ -82,8 +86,8 @@ def main():
82
86
  parser.add_argument("--cloud", "-c", help="☁️ Cloud storage option.", default=None)
83
87
  args = parser.parse_args()
84
88
 
85
- if args.directory == "": repos_root = P.home().joinpath("code") # it is a positional argument, can never be empty.
86
- else: repos_root = P(args.directory).expanduser().absolute()
89
+ if args.directory == "": repos_root = PathExtended.home().joinpath("code") # it is a positional argument, can never be empty.
90
+ else: repos_root = PathExtended(args.directory).expanduser().absolute()
87
91
 
88
92
  program = ""
89
93
  if args.record:
@@ -91,18 +95,18 @@ def main():
91
95
  res = record_repos(repos_root=str(repos_root))
92
96
  pprint("✅ Recorded repositories:\n", res)
93
97
  save_path = CONFIG_PATH.joinpath("repos").joinpath(repos_root.rel2home()).joinpath("repos.json")
94
- Save.json(obj=res, path=save_path, indent=4)
95
- pprint(f"📁 Result saved at {P(save_path)}")
96
- if args.cloud is not None: P(save_path).to_cloud(rel2home=True, cloud=args.cloud)
98
+ save_json(obj=res, path=save_path, indent=4)
99
+ pprint(f"📁 Result saved at {PathExtended(save_path)}")
100
+ if args.cloud is not None: PathExtended(save_path).to_cloud(rel2home=True, cloud=args.cloud)
97
101
  program += """\necho '>>>>>>>>> Finished Recording'\n"""
98
102
  elif args.clone or args.checkout or args.checkout_to_branch:
99
103
  print("\n📥 Cloning or checking out repositories...")
100
104
  program += """\necho '>>>>>>>>> Cloning Repos'\n"""
101
- if not repos_root.exists() or repos_root.stem != 'repos.json': # user didn't pass absolute path to pickle file, but rather expected it to be in the default save location
105
+ if not repos_root.exists() or repos_root.name != 'repos.json': # Fixed: use name instead of stem
102
106
  repos_root = CONFIG_PATH.joinpath("repos").joinpath(repos_root.rel2home()).joinpath("repos.json")
103
107
  if not repos_root.exists():
104
108
  if args.cloud is None:
105
- cloud: str=Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
109
+ cloud: str=read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
106
110
  print(f"⚠️ Using default cloud: {cloud}")
107
111
  else:
108
112
  cloud = args.cloud
@@ -111,33 +115,36 @@ def main():
111
115
  assert (repos_root.exists() and repos_root.name == 'repos.json') or args.cloud is not None, f"Path {repos_root} does not exist and cloud was not passed. You can't clone without one of them."
112
116
  program += install_repos(specs_path=str(repos_root), clone=args.clone, checkout_to_recorded_commit=args.checkout, checkout_to_branch=args.checkout_to_branch)
113
117
  elif args.all or args.commit or args.pull or args.push:
114
- print("\n🔄 Performing Git actions on repositories...")
118
+ print(f"\n🔄 Performing Git actions on repositories @ `{repos_root}`...")
115
119
  for a_path in repos_root.search("*"):
116
120
  program += f"""echo "{("Handling " + str(a_path)).center(80, "-")}" """
117
- if args.pull or args.all: program += git_action(path=a_path, action=GitAction.pull, r=args.recursive)
118
- if args.commit or args.all: program += git_action(a_path, action=GitAction.commit, r=args.recursive)
119
- if args.push or args.all: program += git_action(a_path, action=GitAction.push, r=args.recursive)
121
+ if args.pull or args.all: program += git_action(path=a_path, action=GitAction.pull, r=args.recursive, uv_sync=args.uv_sync)
122
+ if args.commit or args.all: program += git_action(a_path, action=GitAction.commit, r=args.recursive, uv_sync=args.uv_sync)
123
+ if args.push or args.all: program += git_action(a_path, action=GitAction.push, r=args.recursive, uv_sync=args.uv_sync)
120
124
  else: program = "echo '❌ No action specified. Try passing --push, --pull, --commit, or --all.'"
121
125
  write_shell_script_to_default_program_path(program=program, desc="Script to update repos", preserve_cwd=True, display=True, execute=False)
122
126
 
123
127
 
124
128
  def record_repos(repos_root: str, r: bool=True) -> list[dict[str, Any]]:
125
- path_obj = P(repos_root).expanduser().absolute()
129
+ path_obj = PathExtended(repos_root).expanduser().absolute()
126
130
  if path_obj.is_file(): return []
127
131
  search_res = path_obj.search("*", files=False)
128
132
  res: list[dict[str, Any]] = []
129
133
  for a_search_res in search_res:
130
134
  if a_search_res.joinpath(".git").exists():
131
- res.append(record_a_repo(a_search_res))
135
+ try:
136
+ res.append(record_a_repo(a_search_res))
137
+ except Exception as e:
138
+ print(f"⚠️ Failed to record {a_search_res}: {e}")
132
139
  else:
133
140
  if r: res += record_repos(str(a_search_res), r=r)
134
141
  return res
135
142
 
136
143
 
137
- def record_a_repo(path: P, search_parent_directories: bool=False, preferred_remote: Optional[str] = None):
144
+ def record_a_repo(path: PathExtended, search_parent_directories: bool=False, preferred_remote: Optional[str] = None):
138
145
  from git.repo import Repo
139
146
  repo = Repo(path, search_parent_directories=search_parent_directories) # get list of remotes using git python
140
- repo_root = P(repo.working_dir).absolute()
147
+ repo_root = PathExtended(repo.working_dir).absolute()
141
148
  remotes = {remote.name: remote.url for remote in repo.remotes}
142
149
  if preferred_remote is not None:
143
150
  if preferred_remote in remotes: remotes = {preferred_remote: remotes[preferred_remote]}
@@ -160,32 +167,48 @@ def record_a_repo(path: P, search_parent_directories: bool=False, preferred_remo
160
167
 
161
168
  def install_repos(specs_path: str, clone: bool=True, checkout_to_recorded_commit: bool=False, checkout_to_branch: bool=False, editable_install: bool=False, preferred_remote: Optional[str] = None):
162
169
  program = ""
163
- path_obj = P(specs_path).expanduser().absolute()
164
- repos: list[dict[str, Any]] = Read.json(path_obj)
170
+ path_obj = PathExtended(specs_path).expanduser().absolute()
171
+ repos: list[dict[str, Any]] = read_json(path_obj)
165
172
  for repo in repos:
166
- parent_dir = P(repo["parent_dir"]).expanduser().absolute().create()
167
- for idx, (remote_name, remote_url) in enumerate(repo["remotes"].items()):
168
- if clone:
169
- if idx == 0: # clone
170
- if preferred_remote is not None:
171
- if preferred_remote in repo["remotes"]:
172
- remote_name = preferred_remote
173
- remote_url = repo["remotes"][preferred_remote]
174
- else:
175
- print(f"⚠️ `{preferred_remote=}` not found in {repo['remotes']}.")
176
- program += f"\ncd {parent_dir.collapseuser().as_posix()}; git clone {remote_url} --origin {remote_name}"
177
- program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git remote set-url {remote_name} {remote_url}"
178
- program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git remote add {remote_name} {remote_url}"
179
- if checkout_to_recorded_commit:
180
- commit = repo['version']['commit']
181
- if isinstance(commit, str): program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git checkout {commit}"
182
- else: print(f"Skipping {repo['parent_dir']} because it doesn't have a commit recorded. Found {commit}")
183
- break
184
- if checkout_to_branch:
185
- program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git checkout {repo['current_branch']}"
186
- break
187
- if editable_install and idx == 0:
188
- program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; uv pip install -e ."
173
+ parent_dir = PathExtended(repo["parent_dir"]).expanduser().absolute()
174
+ parent_dir.mkdir(parents=True, exist_ok=True)
175
+
176
+ # Handle cloning and remote setup
177
+ if clone:
178
+ # Select the remote to use for cloning
179
+ if len(repo["remotes"]) == 0:
180
+ print(f"⚠️ No remotes found for {repo['name']}. Skipping clone.")
181
+ continue
182
+ remote_name, remote_url = next(iter(repo["remotes"].items())) # Get first remote by default
183
+ if preferred_remote is not None and preferred_remote in repo["remotes"]:
184
+ remote_name = preferred_remote
185
+ remote_url = repo["remotes"][preferred_remote]
186
+ elif preferred_remote is not None:
187
+ print(f"⚠️ `{preferred_remote=}` not found in {repo['remotes']}.")
188
+
189
+ # Clone with the selected remote
190
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}; git clone {remote_url} --origin {remote_name} --depth 2"
191
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git remote set-url {remote_name} {remote_url}"
192
+
193
+ # Add any additional remotes
194
+ for other_remote_name, other_remote_url in repo["remotes"].items():
195
+ if other_remote_name != remote_name:
196
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git remote add {other_remote_name} {other_remote_url}"
197
+
198
+ # Handle checkout operations (after all remotes are set up)
199
+ if checkout_to_recorded_commit:
200
+ commit = repo['version']['commit']
201
+ if isinstance(commit, str):
202
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git checkout {commit}"
203
+ else:
204
+ print(f"Skipping {repo['parent_dir']} because it doesn't have a commit recorded. Found {commit}")
205
+ elif checkout_to_branch:
206
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; git checkout {repo['current_branch']}"
207
+
208
+ # Handle editable install
209
+ if editable_install:
210
+ program += f"\ncd {parent_dir.collapseuser().as_posix()}/{repo['name']}; uv pip install -e ."
211
+
189
212
  program += "\n"
190
213
  pprint(program)
191
214
  return program
@@ -1,53 +1,70 @@
1
- """cli for scheduler
2
- """
3
-
4
- from machineconfig.utils.scheduling import P, Report, DEFAULT_CONFIG, read_task_from_dir, main
5
-
6
- def main_parse():
7
- import argparse
8
- print("\n" + "=" * 50)
9
- print("📅 Welcome to the Scheduler CLI")
10
- print("=" * 50 + "\n")
11
-
12
- parser = argparse.ArgumentParser(description='Run tasks.')
13
- parser.add_argument('root', type=str, default=None, help='📁 Root directory of tasks.')
14
- parser.add_argument('--ignore_conditions', "-i", action='store_true', help='🚫 Ignore conditions for running tasks.', default=False)
15
- parser.add_argument('--report', "-R", action='store_true', help='📊 Print report.', default=False)
16
- parser.add_argument('--create_task', "-c", action='store_true', help='🆕 Add default config.', default=False)
17
- args = parser.parse_args()
18
-
19
- tmp = P(args.root).expanduser().absolute()
20
- if P(args.root).joinpath(".scheduler").exists():
21
- root = P(args.root).joinpath(".scheduler")
22
- elif tmp.name == ".scheduler":
23
- root = tmp
24
- else:
25
- root = tmp.joinpath(".scheduler").create()
26
-
27
- print(f"\n✅ Running tasks in {root}\n")
28
-
29
- if args.report:
30
- print("📊 Generating report...")
31
- reports: list[Report] = [Report.from_path(read_task_from_dir(x).report_path) for x in P(root).search("*").filter(lambda path: path.joinpath("task.py").exists())]
32
- import pandas as pd
33
- df_res = pd.DataFrame([r.__dict__ for r in reports])
34
- print(df_res.to_markdown())
35
- print("\n✅ Report generated successfully!\n")
36
- return None
37
-
38
- if args.create_task:
39
- task_name = input("📝 Enter task name: ")
40
- task_root = root.joinpath(task_name).create(exist_ok=False)
41
- task_root.joinpath("config.ini").write_text(DEFAULT_CONFIG, encoding="utf-8")
42
- task_root.joinpath("task.py").write_text("""
43
- # Scheduler Task.
44
- """)
45
- print(f"\n✅ Task '{task_name}' created in {task_root}. Head there and edit the config.ini file & task.py file.\n")
46
- return None
47
-
48
- print("🚀 Executing tasks...")
49
- main(root=root.to_str(), ignore_conditions=args.ignore_conditions)
50
- print("🎉 All tasks executed successfully!\n")
51
-
52
- if __name__ == "__main__":
53
- main_parse()
1
+ # """cli for scheduler
2
+ # """
3
+
4
+ # from machineconfig.utils.scheduling import PathExtended, Report, DEFAULT_CONFIG, read_task_from_dir, main
5
+
6
+ # def main_parse():
7
+ # import argparse
8
+ # print("\n" + "=" * 50)
9
+ # print("📅 Welcome to the Scheduler CLI")
10
+ # print("=" * 50 + "\n")
11
+
12
+ # parser = argparse.ArgumentParser(description='Run tasks.')
13
+ # parser.add_argument('root', type=str, default=None, help='📁 Root directory of tasks.')
14
+ # parser.add_argument('--ignore_conditions', "-i", action='store_true', help='🚫 Ignore conditions for running tasks.', default=False)
15
+ # parser.add_argument('--report', "-R", action='store_true', help='📊 Print report.', default=False)
16
+ # parser.add_argument('--create_task', "-c", action='store_true', help='🆕 Add default config.', default=False)
17
+ # args = parser.parse_args()
18
+
19
+ # tmp = PathExtended(args.root).expanduser().absolute()
20
+ # if PathExtended(args.root).joinpath(".scheduler").exists():
21
+ # root = PathExtended(args.root).joinpath(".scheduler")
22
+ # elif tmp.name == ".scheduler":
23
+ # root = tmp
24
+ # else:
25
+ # root = tmp.joinpath(".scheduler")
26
+ # root.mkdir(parents=True, exist_ok=True)
27
+
28
+ # print(f"\n✅ Running tasks in {root}\n")
29
+
30
+ # if args.report:
31
+ # print("📊 Generating report...")
32
+ # reports: list[Report] = [Report.from_path(read_task_from_dir(x).report_path) for x in PathExtended(root).search("*").filter(lambda path: path.joinpath("task.py").exists())]
33
+
34
+ # # Format as markdown table
35
+ # report_data = [r.__dict__ for r in reports]
36
+ # if report_data:
37
+ # # Get keys from first report
38
+ # keys = list(report_data[0].keys())
39
+ # # Create header
40
+ # header = "|" + "|".join(f" {key} " for key in keys) + "|"
41
+ # separator = "|" + "|".join(" --- " for _ in keys) + "|"
42
+ # # Create rows
43
+ # rows = []
44
+ # for report in report_data:
45
+ # row_values = [f" {str(report.get(key, ''))} " for key in keys]
46
+ # rows.append("|" + "|".join(row_values) + "|")
47
+ # markdown_table = "\n".join([header, separator] + rows)
48
+ # print(markdown_table)
49
+ # else:
50
+ # print("No reports found.")
51
+ # print("\n✅ Report generated successfully!\n")
52
+ # return None
53
+
54
+ # if args.create_task:
55
+ # task_name = input("📝 Enter task name: ")
56
+ # task_root = root.joinpath(task_name)
57
+ # task_root.mkdir(parents=True, exist_ok=False)
58
+ # task_root.joinpath("config.ini").write_text(DEFAULT_CONFIG, encoding="utf-8")
59
+ # task_root.joinpath("task.py").write_text("""
60
+ # # Scheduler Task.
61
+ # """)
62
+ # print(f"\n✅ Task '{task_name}' created in {task_root}. Head there and edit the config.ini file & task.py file.\n")
63
+ # return None
64
+
65
+ # print("🚀 Executing tasks...")
66
+ # main(root=str(root), ignore_conditions=args.ignore_conditions)
67
+ # print("🎉 All tasks executed successfully!\n")
68
+
69
+ # if __name__ == "__main__":
70
+ # main_parse()
@@ -1,29 +1,26 @@
1
- from crocodile.msc.odds import capture_from_webcam
2
- from crocodile.meta import Terminal
3
- import argparse
4
1
 
5
- def main():
6
- print("\n" + "=" * 50)
7
- print("📸 Welcome to the Snapshot Tool")
8
- print("=" * 50 + "\n")
2
+ # def main():
3
+ # print("\n" + "=" * 50)
4
+ # print("📸 Welcome to the Snapshot Tool")
5
+ # print("=" * 50 + "\n")
9
6
 
10
- parser = argparse.ArgumentParser(description='📷 Capture snapshots using your webcam.')
11
- parser.add_argument("--to_text", "-t", help="📝 Convert the snapshot to text using OCR.", action="store_true")
12
- args = parser.parse_args()
7
+ # parser = argparse.ArgumentParser(description='📷 Capture snapshots using your webcam.')
8
+ # parser.add_argument("--to_text", "-t", help="📝 Convert the snapshot to text using OCR.", action="store_true")
9
+ # args = parser.parse_args()
13
10
 
14
- print("📷 Capturing image from webcam...")
15
- img_path = capture_from_webcam(show=False, wait=False, save=True)
16
- print(f"✅ Image captured and saved at: {img_path}\n")
11
+ # print("📷 Capturing image from webcam...")
12
+ # img_path = capture_from_webcam(show=False, wait=False, save=True)
13
+ # print(f"✅ Image captured and saved at: {img_path}\n")
17
14
 
18
- if args.to_text:
19
- print("🔍 Converting image to text using Tesseract OCR...")
20
- q = Terminal().run(f"cd ~/AppData/Local/Tesseract-OCR; pytesseract '{img_path}'", shell="pwsh").capture().op
21
- print("📝 Extracted Text:")
22
- print("-" * 50)
23
- print(q)
24
- print("-" * 50 + "\n")
25
- else:
26
- print("📂 Image saved successfully. No text extraction requested.\n")
15
+ # if args.to_text:
16
+ # print("🔍 Converting image to text using Tesseract OCR...")
17
+ # q = Terminal().run(f"cd ~/AppData/Local/Tesseract-OCR; pytesseract '{img_path}'", shell="pwsh").capture().op
18
+ # print("📝 Extracted Text:")
19
+ # print("-" * 50)
20
+ # print(q)
21
+ # print("-" * 50 + "\n")
22
+ # else:
23
+ # print("📂 Image saved successfully. No text extraction requested.\n")
27
24
 
28
- if __name__ == '__main__':
29
- main()
25
+ # if __name__ == '__main__':
26
+ # main()
@@ -3,7 +3,8 @@ slidev
3
3
  """
4
4
 
5
5
  from machineconfig.utils.utils import CONFIG_PATH, PROGRAM_PATH, print_code
6
- from crocodile.meta import Terminal, P
6
+ from machineconfig.utils.path_reduced import P as PathExtended
7
+ from crocodile.meta import Terminal
7
8
  import subprocess
8
9
  import platform
9
10
 
@@ -15,7 +16,7 @@ if not SLIDEV_REPO.joinpath("components").exists():
15
16
  Terminal(stderr=subprocess.PIPE, stdin=subprocess.PIPE, stdout=subprocess.PIPE).run(f"cd {SLIDEV_REPO.parent};npm init slidev@latest")
16
17
  print("✅ Slidev repository initialized successfully!\n")
17
18
 
18
- def jupyter_to_markdown(file: P):
19
+ def jupyter_to_markdown(file: PathExtended):
19
20
  op_dir = file.parent.joinpath("presentation")
20
21
  print("📝 Converting Jupyter notebook to markdown...")
21
22
 
@@ -59,12 +60,12 @@ def main() -> None:
59
60
 
60
61
  if args.jupyter_file is not None:
61
62
  print("📓 Jupyter file provided. Converting to markdown...")
62
- report_dir = jupyter_to_markdown(P(args.jupyter_file))
63
+ report_dir = jupyter_to_markdown(PathExtended(args.jupyter_file))
63
64
  else:
64
65
  if args.directory is None:
65
- report_dir = P.cwd()
66
+ report_dir = PathExtended.cwd()
66
67
  else:
67
- report_dir = P(args.directory)
68
+ report_dir = PathExtended(args.directory)
68
69
 
69
70
  assert report_dir.exists(), f"❌ Directory {report_dir} does not exist."
70
71
  assert report_dir.is_dir(), f"❌ {report_dir} is not a directory."
@@ -1,7 +1,9 @@
1
1
  """Script to start terminals on windows and wsl
2
2
  """
3
3
 
4
- from machineconfig.utils.utils import PROGRAM_PATH, display_options, get_ssh_hosts, platform
4
+ from machineconfig.utils.utils import PROGRAM_PATH, display_options
5
+ from machineconfig.utils.options import get_ssh_hosts
6
+ import platform
5
7
  from itertools import cycle
6
8
  from typing import Literal
7
9
 
@@ -1,5 +1,6 @@
1
1
  from pathlib import Path
2
- from crocodile.file_management import Save, P
2
+ from machineconfig.utils.path_reduced import P as PathExtended
3
+ from machineconfig.utils.io_save import save_pickle
3
4
  from plotly import graph_objects as go
4
5
  import plotly.express as px
5
6
  from typing import Callable, Iterable, Any, Optional
@@ -23,15 +24,15 @@ def run(data: Optional[Iterable[Any]], data_path: Optional[str],
23
24
  print("=" * 50 + "\n")
24
25
 
25
26
  print("📂 Preparing viewer application...")
26
- code = P(__file__).parent.joinpath("viewer_template.py").read_text(encoding='utf-8')
27
+ code = PathExtended(__file__).parent.joinpath("viewer_template.py").read_text(encoding='utf-8')
27
28
 
28
- code_dir = P.tmpdir(prefix="viewer")
29
+ code_dir = PathExtended.tmpdir(prefix="viewer")
29
30
  code_dir.joinpath(".streamlit").mkdir(parents=True, exist_ok=False)
30
31
  code_dir.joinpath(".streamlit/config.toml").write_text(default_streamlit_config, encoding='utf-8')
31
32
 
32
33
  if data_path is None:
33
34
  print("💾 Saving data to temporary path...")
34
- data_path = Save.pickle(obj=data, path=code_dir.joinpath("data.pkl"))
35
+ data_path = str(save_pickle(obj=data, path=code_dir.joinpath("data.pkl")))
35
36
 
36
37
  code = code.replace("""data_path = \"get_figure_placeholder.pkl\" """, f"""data_path = r"{data_path}" """)
37
38