machineconfig 1.95__py3-none-any.whl → 1.97__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 (504) hide show
  1. machineconfig/cluster/cloud_manager.py +445 -343
  2. machineconfig/cluster/data_transfer.py +63 -57
  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/python/__pycache__/__init__.cpython-311.pyc +0 -0
  44. machineconfig/jobs/python/check_installations.py +258 -190
  45. machineconfig/jobs/python/create_bootable_media.py +7 -3
  46. machineconfig/jobs/python/python_cargo_build_share.py +50 -50
  47. machineconfig/jobs/python/python_ve_symlink.py +6 -6
  48. machineconfig/jobs/python/vscode/__pycache__/select_interpreter.cpython-311.pyc +0 -0
  49. machineconfig/jobs/python/vscode/api.py +1 -1
  50. machineconfig/jobs/python/vscode/link_ve.py +2 -2
  51. machineconfig/jobs/python/vscode/select_interpreter.py +9 -5
  52. machineconfig/jobs/python/vscode/sync_code.py +8 -5
  53. machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  54. machineconfig/jobs/python_custom_installers/archive/ngrok.py +1 -1
  55. machineconfig/jobs/python_custom_installers/dev/alacritty.py +3 -2
  56. machineconfig/jobs/python_custom_installers/dev/brave.py +7 -3
  57. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +3 -4
  58. machineconfig/jobs/python_custom_installers/dev/code.py +3 -1
  59. machineconfig/jobs/python_custom_installers/dev/cursor.py +66 -5
  60. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -1
  61. machineconfig/jobs/python_custom_installers/dev/espanso.py +13 -9
  62. machineconfig/jobs/python_custom_installers/dev/goes.py +2 -8
  63. machineconfig/jobs/python_custom_installers/dev/lvim.py +3 -2
  64. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +1 -1
  65. machineconfig/jobs/python_custom_installers/dev/redis.py +7 -3
  66. machineconfig/jobs/python_custom_installers/dev/wezterm.py +8 -4
  67. machineconfig/jobs/python_custom_installers/dev/winget.py +194 -0
  68. machineconfig/jobs/python_custom_installers/{dev/docker.py → docker.py} +8 -3
  69. machineconfig/jobs/python_custom_installers/gh.py +4 -3
  70. machineconfig/jobs/python_custom_installers/hx.py +9 -8
  71. machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +97 -30
  72. machineconfig/jobs/python_custom_installers/{dev/warp-cli.py → warp-cli.py} +1 -1
  73. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  74. machineconfig/jobs/python_generic_installers/config.json +133 -9
  75. machineconfig/jobs/python_generic_installers/dev/config.json +208 -37
  76. machineconfig/jobs/python_generic_installers/update.py +3 -0
  77. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  78. machineconfig/jobs/python_linux_installers/config.json +42 -6
  79. machineconfig/jobs/python_linux_installers/dev/config.json +79 -11
  80. machineconfig/jobs/python_windows_installers/config.json +6 -0
  81. machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
  82. machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
  83. machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
  84. machineconfig/profile/create.py +5 -5
  85. machineconfig/profile/create_hardlinks.py +5 -5
  86. machineconfig/profile/shell.py +44 -17
  87. machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  88. machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
  89. machineconfig/scripts/linux/fire_agents +27 -0
  90. machineconfig/scripts/linux/mcinit +27 -0
  91. machineconfig/scripts/linux/wifi_conn +24 -0
  92. machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
  93. machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
  94. machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
  95. machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
  96. machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
  97. machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
  98. machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
  99. machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
  100. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
  101. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
  102. machineconfig/scripts/python/__pycache__/fire_agents.cpython-311.pyc +0 -0
  103. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
  104. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-313.pyc +0 -0
  105. machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-311.pyc +0 -0
  106. machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
  107. machineconfig/scripts/python/ai/__pycache__/init.cpython-311.pyc +0 -0
  108. machineconfig/scripts/python/ai/init.py +56 -0
  109. machineconfig/scripts/python/ai/rules/python/dev.md +31 -0
  110. machineconfig/scripts/python/archive/im2text.py +1 -3
  111. machineconfig/scripts/python/choose_wezterm_theme.py +3 -3
  112. machineconfig/scripts/python/cloud_copy.py +10 -10
  113. machineconfig/scripts/python/cloud_manager.py +77 -99
  114. machineconfig/scripts/python/cloud_mount.py +13 -12
  115. machineconfig/scripts/python/cloud_repo_sync.py +14 -11
  116. machineconfig/scripts/python/croshell.py +24 -21
  117. machineconfig/scripts/python/devops.py +12 -17
  118. machineconfig/scripts/python/devops_add_identity.py +32 -10
  119. machineconfig/scripts/python/devops_add_ssh_key.py +10 -10
  120. machineconfig/scripts/python/devops_backup_retrieve.py +9 -8
  121. machineconfig/scripts/python/devops_devapps_install.py +6 -6
  122. machineconfig/scripts/python/devops_update_repos.py +4 -3
  123. machineconfig/scripts/python/dotfile.py +10 -7
  124. machineconfig/scripts/python/fire_agents.py +69 -0
  125. machineconfig/scripts/python/fire_jobs.py +62 -65
  126. machineconfig/scripts/python/ftpx.py +8 -8
  127. machineconfig/scripts/python/get_zellij_cmd.py +3 -3
  128. machineconfig/scripts/python/gh_models.py +6 -4
  129. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
  130. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
  131. machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
  132. machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
  133. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
  134. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-313.pyc +0 -0
  135. machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-311.pyc +0 -0
  136. machineconfig/scripts/python/helpers/cloud_helpers.py +12 -12
  137. machineconfig/scripts/python/helpers/helpers2.py +9 -8
  138. machineconfig/scripts/python/helpers/helpers4.py +23 -35
  139. machineconfig/scripts/python/helpers/repo_sync_helpers.py +17 -16
  140. machineconfig/scripts/python/mount_nfs.py +8 -11
  141. machineconfig/scripts/python/mount_nw_drive.py +4 -4
  142. machineconfig/scripts/python/mount_ssh.py +2 -2
  143. machineconfig/scripts/python/onetimeshare.py +56 -57
  144. machineconfig/scripts/python/pomodoro.py +55 -55
  145. machineconfig/scripts/python/repos.py +26 -18
  146. machineconfig/scripts/python/scheduler.py +70 -53
  147. machineconfig/scripts/python/snapshot.py +21 -24
  148. machineconfig/scripts/python/start_slidev.py +6 -5
  149. machineconfig/scripts/python/start_terminals.py +3 -1
  150. machineconfig/scripts/python/viewer.py +5 -4
  151. machineconfig/scripts/python/viewer_template.py +138 -140
  152. machineconfig/scripts/python/wifi_conn.py +412 -60
  153. machineconfig/scripts/python/wsl_windows_transfer.py +18 -3
  154. machineconfig/scripts/windows/mcinit.ps1 +4 -0
  155. machineconfig/settings/linters/.pylintrc +6 -7
  156. machineconfig/settings/lvim/windows/config.lua +0 -0
  157. machineconfig/settings/shells/bash/init.sh +6 -0
  158. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +7 -6
  159. machineconfig/settings/shells/pwsh/init.ps1 +6 -6
  160. machineconfig/settings/shells/wt/settings.json +51 -266
  161. machineconfig/setup_linux/web_shortcuts/interactive.sh +5 -2
  162. machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +3 -6
  163. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +11 -9
  164. machineconfig/utils/ai/url2md.py +2 -2
  165. machineconfig/utils/cloud/onedrive/setup_oauth.py +59 -0
  166. machineconfig/utils/cloud/onedrive/transaction.py +796 -0
  167. machineconfig/utils/code.py +22 -13
  168. machineconfig/utils/installer.py +78 -35
  169. machineconfig/utils/installer_utils/installer_abc.py +7 -6
  170. machineconfig/utils/installer_utils/installer_class.py +44 -25
  171. machineconfig/utils/io_save.py +107 -0
  172. machineconfig/utils/links.py +19 -15
  173. machineconfig/utils/options.py +4 -8
  174. machineconfig/utils/path.py +91 -78
  175. machineconfig/utils/path_reduced.py +608 -0
  176. machineconfig/utils/procs.py +110 -45
  177. machineconfig/utils/scheduling.py +312 -222
  178. machineconfig/utils/utils.py +7 -7
  179. machineconfig/utils/utils2.py +42 -0
  180. machineconfig/utils/utils5.py +84 -0
  181. machineconfig/utils/ve.py +49 -87
  182. {machineconfig-1.95.dist-info → machineconfig-1.97.dist-info}/METADATA +2 -2
  183. machineconfig-1.97.dist-info/RECORD +442 -0
  184. machineconfig/cluster/session_managers.py +0 -183
  185. machineconfig/cluster/templates/f.py +0 -4
  186. machineconfig/jobs/python/__pycache__/check_installations.cpython-311.pyc +0 -0
  187. machineconfig/jobs/python/__pycache__/checkout_version.cpython-311.pyc +0 -0
  188. machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
  189. machineconfig/jobs/python/checkout_version.py +0 -123
  190. machineconfig/jobs/python/vscode/__pycache__/api.cpython-311.pyc +0 -0
  191. machineconfig/jobs/python/vscode/__pycache__/link_ve.cpython-311.pyc +0 -0
  192. machineconfig/jobs/python_custom_installers/__pycache__/hx.cpython-311.pyc +0 -0
  193. machineconfig/jobs/python_windows_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  194. machineconfig/scripts/python/.mypy_cache/.gitignore +0 -2
  195. machineconfig/scripts/python/.mypy_cache/3.11/@plugins_snapshot.json +0 -1
  196. machineconfig/scripts/python/.mypy_cache/3.11/__future__.data.json +0 -1
  197. machineconfig/scripts/python/.mypy_cache/3.11/__future__.meta.json +0 -1
  198. machineconfig/scripts/python/.mypy_cache/3.11/_ast.data.json +0 -1
  199. machineconfig/scripts/python/.mypy_cache/3.11/_ast.meta.json +0 -1
  200. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.data.json +0 -1
  201. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.meta.json +0 -1
  202. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.data.json +0 -1
  203. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.meta.json +0 -1
  204. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.data.json +0 -1
  205. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.meta.json +0 -1
  206. machineconfig/scripts/python/.mypy_cache/3.11/_compression.data.json +0 -1
  207. machineconfig/scripts/python/.mypy_cache/3.11/_compression.meta.json +0 -1
  208. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.data.json +0 -1
  209. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.meta.json +0 -1
  210. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.data.json +0 -1
  211. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.meta.json +0 -1
  212. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.data.json +0 -1
  213. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.meta.json +0 -1
  214. machineconfig/scripts/python/.mypy_cache/3.11/_io.data.json +0 -1
  215. machineconfig/scripts/python/.mypy_cache/3.11/_io.meta.json +0 -1
  216. machineconfig/scripts/python/.mypy_cache/3.11/_locale.data.json +0 -1
  217. machineconfig/scripts/python/.mypy_cache/3.11/_locale.meta.json +0 -1
  218. machineconfig/scripts/python/.mypy_cache/3.11/_stat.data.json +0 -1
  219. machineconfig/scripts/python/.mypy_cache/3.11/_stat.meta.json +0 -1
  220. machineconfig/scripts/python/.mypy_cache/3.11/_struct.data.json +0 -1
  221. machineconfig/scripts/python/.mypy_cache/3.11/_struct.meta.json +0 -1
  222. machineconfig/scripts/python/.mypy_cache/3.11/_thread.data.json +0 -1
  223. machineconfig/scripts/python/.mypy_cache/3.11/_thread.meta.json +0 -1
  224. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.data.json +0 -1
  225. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.meta.json +0 -1
  226. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.data.json +0 -1
  227. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.meta.json +0 -1
  228. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.data.json +0 -1
  229. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.meta.json +0 -1
  230. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.data.json +0 -1
  231. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.meta.json +0 -1
  232. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.data.json +0 -1
  233. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.meta.json +0 -1
  234. machineconfig/scripts/python/.mypy_cache/3.11/abc.data.json +0 -1
  235. machineconfig/scripts/python/.mypy_cache/3.11/abc.meta.json +0 -1
  236. machineconfig/scripts/python/.mypy_cache/3.11/argparse.data.json +0 -1
  237. machineconfig/scripts/python/.mypy_cache/3.11/argparse.meta.json +0 -1
  238. machineconfig/scripts/python/.mypy_cache/3.11/ast.data.json +0 -1
  239. machineconfig/scripts/python/.mypy_cache/3.11/ast.meta.json +0 -1
  240. machineconfig/scripts/python/.mypy_cache/3.11/binascii.data.json +0 -1
  241. machineconfig/scripts/python/.mypy_cache/3.11/binascii.meta.json +0 -1
  242. machineconfig/scripts/python/.mypy_cache/3.11/builtins.data.json +0 -1
  243. machineconfig/scripts/python/.mypy_cache/3.11/builtins.meta.json +0 -1
  244. machineconfig/scripts/python/.mypy_cache/3.11/bz2.data.json +0 -1
  245. machineconfig/scripts/python/.mypy_cache/3.11/bz2.meta.json +0 -1
  246. machineconfig/scripts/python/.mypy_cache/3.11/calendar.data.json +0 -1
  247. machineconfig/scripts/python/.mypy_cache/3.11/calendar.meta.json +0 -1
  248. machineconfig/scripts/python/.mypy_cache/3.11/codecs.data.json +0 -1
  249. machineconfig/scripts/python/.mypy_cache/3.11/codecs.meta.json +0 -1
  250. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.data.json +0 -1
  251. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.meta.json +0 -1
  252. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.data.json +0 -1
  253. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.meta.json +0 -1
  254. machineconfig/scripts/python/.mypy_cache/3.11/configparser.data.json +0 -1
  255. machineconfig/scripts/python/.mypy_cache/3.11/configparser.meta.json +0 -1
  256. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.data.json +0 -1
  257. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.meta.json +0 -1
  258. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.data.json +0 -1
  259. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.meta.json +0 -1
  260. machineconfig/scripts/python/.mypy_cache/3.11/datetime.data.json +0 -1
  261. machineconfig/scripts/python/.mypy_cache/3.11/datetime.meta.json +0 -1
  262. machineconfig/scripts/python/.mypy_cache/3.11/decimal.data.json +0 -1
  263. machineconfig/scripts/python/.mypy_cache/3.11/decimal.meta.json +0 -1
  264. machineconfig/scripts/python/.mypy_cache/3.11/dis.data.json +0 -1
  265. machineconfig/scripts/python/.mypy_cache/3.11/dis.meta.json +0 -1
  266. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.data.json +0 -1
  267. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.meta.json +0 -1
  268. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.data.json +0 -1
  269. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.meta.json +0 -1
  270. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.data.json +0 -1
  271. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.meta.json +0 -1
  272. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.data.json +0 -1
  273. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.meta.json +0 -1
  274. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.data.json +0 -1
  275. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.meta.json +0 -1
  276. machineconfig/scripts/python/.mypy_cache/3.11/email/header.data.json +0 -1
  277. machineconfig/scripts/python/.mypy_cache/3.11/email/header.meta.json +0 -1
  278. machineconfig/scripts/python/.mypy_cache/3.11/email/message.data.json +0 -1
  279. machineconfig/scripts/python/.mypy_cache/3.11/email/message.meta.json +0 -1
  280. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.data.json +0 -1
  281. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.meta.json +0 -1
  282. machineconfig/scripts/python/.mypy_cache/3.11/enum.data.json +0 -1
  283. machineconfig/scripts/python/.mypy_cache/3.11/enum.meta.json +0 -1
  284. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.data.json +0 -1
  285. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.meta.json +0 -1
  286. machineconfig/scripts/python/.mypy_cache/3.11/functools.data.json +0 -1
  287. machineconfig/scripts/python/.mypy_cache/3.11/functools.meta.json +0 -1
  288. machineconfig/scripts/python/.mypy_cache/3.11/gc.data.json +0 -1
  289. machineconfig/scripts/python/.mypy_cache/3.11/gc.meta.json +0 -1
  290. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.data.json +0 -1
  291. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.meta.json +0 -1
  292. machineconfig/scripts/python/.mypy_cache/3.11/getpass.data.json +0 -1
  293. machineconfig/scripts/python/.mypy_cache/3.11/getpass.meta.json +0 -1
  294. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.data.json +0 -1
  295. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.meta.json +0 -1
  296. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.data.json +0 -1
  297. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.meta.json +0 -1
  298. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.data.json +0 -1
  299. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.meta.json +0 -1
  300. machineconfig/scripts/python/.mypy_cache/3.11/git/config.data.json +0 -1
  301. machineconfig/scripts/python/.mypy_cache/3.11/git/config.meta.json +0 -1
  302. machineconfig/scripts/python/.mypy_cache/3.11/git/db.data.json +0 -1
  303. machineconfig/scripts/python/.mypy_cache/3.11/git/db.meta.json +0 -1
  304. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.data.json +0 -1
  305. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.meta.json +0 -1
  306. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.data.json +0 -1
  307. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.meta.json +0 -1
  308. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.data.json +0 -1
  309. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.meta.json +0 -1
  310. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.data.json +0 -1
  311. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.meta.json +0 -1
  312. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.data.json +0 -1
  313. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.meta.json +0 -1
  314. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.data.json +0 -1
  315. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.meta.json +0 -1
  316. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.data.json +0 -1
  317. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.meta.json +0 -1
  318. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.data.json +0 -1
  319. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.meta.json +0 -1
  320. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.data.json +0 -1
  321. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.meta.json +0 -1
  322. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.data.json +0 -1
  323. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.meta.json +0 -1
  324. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.data.json +0 -1
  325. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.meta.json +0 -1
  326. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.data.json +0 -1
  327. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.meta.json +0 -1
  328. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.data.json +0 -1
  329. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.meta.json +0 -1
  330. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.data.json +0 -1
  331. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.meta.json +0 -1
  332. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.data.json +0 -1
  333. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.meta.json +0 -1
  334. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.data.json +0 -1
  335. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.meta.json +0 -1
  336. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.data.json +0 -1
  337. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.meta.json +0 -1
  338. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.data.json +0 -1
  339. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.meta.json +0 -1
  340. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.data.json +0 -1
  341. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.meta.json +0 -1
  342. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.data.json +0 -1
  343. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.meta.json +0 -1
  344. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.data.json +0 -1
  345. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.meta.json +0 -1
  346. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.data.json +0 -1
  347. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.meta.json +0 -1
  348. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.data.json +0 -1
  349. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.meta.json +0 -1
  350. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.data.json +0 -1
  351. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.meta.json +0 -1
  352. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.data.json +0 -1
  353. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.meta.json +0 -1
  354. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.data.json +0 -1
  355. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.meta.json +0 -1
  356. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.data.json +0 -1
  357. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.meta.json +0 -1
  358. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.data.json +0 -1
  359. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.meta.json +0 -1
  360. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.data.json +0 -1
  361. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.meta.json +0 -1
  362. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.data.json +0 -1
  363. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.meta.json +0 -1
  364. machineconfig/scripts/python/.mypy_cache/3.11/git/types.data.json +0 -1
  365. machineconfig/scripts/python/.mypy_cache/3.11/git/types.meta.json +0 -1
  366. machineconfig/scripts/python/.mypy_cache/3.11/git/util.data.json +0 -1
  367. machineconfig/scripts/python/.mypy_cache/3.11/git/util.meta.json +0 -1
  368. machineconfig/scripts/python/.mypy_cache/3.11/glob.data.json +0 -1
  369. machineconfig/scripts/python/.mypy_cache/3.11/glob.meta.json +0 -1
  370. machineconfig/scripts/python/.mypy_cache/3.11/gzip.data.json +0 -1
  371. machineconfig/scripts/python/.mypy_cache/3.11/gzip.meta.json +0 -1
  372. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.data.json +0 -1
  373. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.meta.json +0 -1
  374. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.data.json +0 -1
  375. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.meta.json +0 -1
  376. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.data.json +0 -1
  377. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.meta.json +0 -1
  378. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.data.json +0 -1
  379. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.meta.json +0 -1
  380. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.data.json +0 -1
  381. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.meta.json +0 -1
  382. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.data.json +0 -1
  383. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.meta.json +0 -1
  384. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.data.json +0 -1
  385. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.meta.json +0 -1
  386. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.data.json +0 -1
  387. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.meta.json +0 -1
  388. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.data.json +0 -1
  389. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.meta.json +0 -1
  390. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.data.json +0 -1
  391. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.meta.json +0 -1
  392. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.data.json +0 -1
  393. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.meta.json +0 -1
  394. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.data.json +0 -1
  395. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.meta.json +0 -1
  396. machineconfig/scripts/python/.mypy_cache/3.11/inspect.data.json +0 -1
  397. machineconfig/scripts/python/.mypy_cache/3.11/inspect.meta.json +0 -1
  398. machineconfig/scripts/python/.mypy_cache/3.11/io.data.json +0 -1
  399. machineconfig/scripts/python/.mypy_cache/3.11/io.meta.json +0 -1
  400. machineconfig/scripts/python/.mypy_cache/3.11/itertools.data.json +0 -1
  401. machineconfig/scripts/python/.mypy_cache/3.11/itertools.meta.json +0 -1
  402. machineconfig/scripts/python/.mypy_cache/3.11/locale.data.json +0 -1
  403. machineconfig/scripts/python/.mypy_cache/3.11/locale.meta.json +0 -1
  404. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.data.json +0 -1
  405. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.meta.json +0 -1
  406. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.data.json +0 -1
  407. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.meta.json +0 -1
  408. machineconfig/scripts/python/.mypy_cache/3.11/mmap.data.json +0 -1
  409. machineconfig/scripts/python/.mypy_cache/3.11/mmap.meta.json +0 -1
  410. machineconfig/scripts/python/.mypy_cache/3.11/numbers.data.json +0 -1
  411. machineconfig/scripts/python/.mypy_cache/3.11/numbers.meta.json +0 -1
  412. machineconfig/scripts/python/.mypy_cache/3.11/opcode.data.json +0 -1
  413. machineconfig/scripts/python/.mypy_cache/3.11/opcode.meta.json +0 -1
  414. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.data.json +0 -1
  415. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.meta.json +0 -1
  416. machineconfig/scripts/python/.mypy_cache/3.11/os/path.data.json +0 -1
  417. machineconfig/scripts/python/.mypy_cache/3.11/os/path.meta.json +0 -1
  418. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.data.json +0 -1
  419. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.meta.json +0 -1
  420. machineconfig/scripts/python/.mypy_cache/3.11/platform.data.json +0 -1
  421. machineconfig/scripts/python/.mypy_cache/3.11/platform.meta.json +0 -1
  422. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.data.json +0 -1
  423. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.meta.json +0 -1
  424. machineconfig/scripts/python/.mypy_cache/3.11/re.data.json +0 -1
  425. machineconfig/scripts/python/.mypy_cache/3.11/re.meta.json +0 -1
  426. machineconfig/scripts/python/.mypy_cache/3.11/resource.data.json +0 -1
  427. machineconfig/scripts/python/.mypy_cache/3.11/resource.meta.json +0 -1
  428. machineconfig/scripts/python/.mypy_cache/3.11/shlex.data.json +0 -1
  429. machineconfig/scripts/python/.mypy_cache/3.11/shlex.meta.json +0 -1
  430. machineconfig/scripts/python/.mypy_cache/3.11/shutil.data.json +0 -1
  431. machineconfig/scripts/python/.mypy_cache/3.11/shutil.meta.json +0 -1
  432. machineconfig/scripts/python/.mypy_cache/3.11/signal.data.json +0 -1
  433. machineconfig/scripts/python/.mypy_cache/3.11/signal.meta.json +0 -1
  434. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.data.json +0 -1
  435. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.meta.json +0 -1
  436. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.data.json +0 -1
  437. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.meta.json +0 -1
  438. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.data.json +0 -1
  439. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.meta.json +0 -1
  440. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.data.json +0 -1
  441. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.meta.json +0 -1
  442. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.data.json +0 -1
  443. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.meta.json +0 -1
  444. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.data.json +0 -1
  445. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.meta.json +0 -1
  446. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.data.json +0 -1
  447. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.meta.json +0 -1
  448. machineconfig/scripts/python/.mypy_cache/3.11/stat.data.json +0 -1
  449. machineconfig/scripts/python/.mypy_cache/3.11/stat.meta.json +0 -1
  450. machineconfig/scripts/python/.mypy_cache/3.11/string.data.json +0 -1
  451. machineconfig/scripts/python/.mypy_cache/3.11/string.meta.json +0 -1
  452. machineconfig/scripts/python/.mypy_cache/3.11/struct.data.json +0 -1
  453. machineconfig/scripts/python/.mypy_cache/3.11/struct.meta.json +0 -1
  454. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.data.json +0 -1
  455. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.meta.json +0 -1
  456. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.data.json +0 -1
  457. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.meta.json +0 -1
  458. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.data.json +0 -1
  459. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.meta.json +0 -1
  460. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.data.json +0 -1
  461. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.meta.json +0 -1
  462. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.data.json +0 -1
  463. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.meta.json +0 -1
  464. machineconfig/scripts/python/.mypy_cache/3.11/threading.data.json +0 -1
  465. machineconfig/scripts/python/.mypy_cache/3.11/threading.meta.json +0 -1
  466. machineconfig/scripts/python/.mypy_cache/3.11/time.data.json +0 -1
  467. machineconfig/scripts/python/.mypy_cache/3.11/time.meta.json +0 -1
  468. machineconfig/scripts/python/.mypy_cache/3.11/types.data.json +0 -1
  469. machineconfig/scripts/python/.mypy_cache/3.11/types.meta.json +0 -1
  470. machineconfig/scripts/python/.mypy_cache/3.11/typing.data.json +0 -1
  471. machineconfig/scripts/python/.mypy_cache/3.11/typing.meta.json +0 -1
  472. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.data.json +0 -1
  473. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.meta.json +0 -1
  474. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.data.json +0 -1
  475. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.meta.json +0 -1
  476. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.data.json +0 -1
  477. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.meta.json +0 -1
  478. machineconfig/scripts/python/.mypy_cache/3.11/uuid.data.json +0 -1
  479. machineconfig/scripts/python/.mypy_cache/3.11/uuid.meta.json +0 -1
  480. machineconfig/scripts/python/.mypy_cache/3.11/warnings.data.json +0 -1
  481. machineconfig/scripts/python/.mypy_cache/3.11/warnings.meta.json +0 -1
  482. machineconfig/scripts/python/.mypy_cache/3.11/weakref.data.json +0 -1
  483. machineconfig/scripts/python/.mypy_cache/3.11/weakref.meta.json +0 -1
  484. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.data.json +0 -1
  485. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.meta.json +0 -1
  486. machineconfig/scripts/python/.mypy_cache/3.11/zlib.data.json +0 -1
  487. machineconfig/scripts/python/.mypy_cache/3.11/zlib.meta.json +0 -1
  488. machineconfig/scripts/python/.mypy_cache/CACHEDIR.TAG +0 -3
  489. machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
  490. machineconfig/scripts/python/__pycache__/gh_models.cpython-311.pyc +0 -0
  491. machineconfig/scripts/python/__pycache__/url2md.cpython-311.pyc +0 -0
  492. machineconfig/scripts/python/__pycache__/viewer.cpython-311.pyc +0 -0
  493. machineconfig/scripts/python/__pycache__/vscode_api.cpython-311.pyc +0 -0
  494. machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
  495. machineconfig/settings/linters/.ruff_cache/.gitignore +0 -2
  496. machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +0 -1
  497. machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
  498. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
  499. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
  500. machineconfig/utils/ve_utils/ve1.py +0 -111
  501. machineconfig/utils/ve_utils/ve2.py +0 -155
  502. machineconfig-1.95.dist-info/RECORD +0 -712
  503. {machineconfig-1.95.dist-info → machineconfig-1.97.dist-info}/WHEEL +0 -0
  504. {machineconfig-1.95.dist-info → machineconfig-1.97.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # check below if VIRTUAL_ENV is set
4
+ # if [ -z "$VIRTUAL_ENV" ]; then
5
+ source $HOME/scripts/activate_ve 've'
6
+ # fi
7
+
8
+ op_script=$HOME/tmp_results/shells/python_return_command.sh
9
+ if [ -f "$op_script" ]; then
10
+ rm $op_script
11
+ fi
12
+
13
+ python machineconfig.scripts.python.wifi_conn
14
+
15
+ if [ -f "$op_script" ]; then
16
+ chmod +x $op_script
17
+ source $op_script
18
+ fi
19
+
20
+
21
+ # check below if VIRTUAL_ENV enviroment variable exist, then deactivate it, otherwise skip
22
+ if [ -n "$VIRTUAL_ENV" ]; then
23
+ deactivate
24
+ fi
@@ -0,0 +1,56 @@
1
+
2
+
3
+ from pathlib import Path
4
+ from git import Repo
5
+
6
+ # def add_config_for_curor(repo_root: Path, config_f):
7
+
8
+ def add_ai_configs(repo_root: Path):
9
+ import machineconfig as mc
10
+ mc_root = Path(mc.__file__).parent
11
+
12
+ try:
13
+ _repo_obj = Repo(repo_root)
14
+ except Exception as e:
15
+ print(f"Error initializing git repo: {e}")
16
+ return
17
+
18
+ rules_dir = mc_root.joinpath("scripts/python/ai/rules")
19
+
20
+ python_rules_file = rules_dir.joinpath("python/dev.md")
21
+
22
+ tmp = repo_root.joinpath(".cursor/rules/python_dev.mdc")
23
+ tmp.parent.mkdir(parents=True, exist_ok=True)
24
+ tmp.write_text(data=python_rules_file.read_text(), encoding="utf-8")
25
+
26
+ # as per: https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
27
+ # Copilot Chat on github website chat
28
+ tmp = repo_root.joinpath(".github/copilot-instructions.md")
29
+ tmp.parent.mkdir(parents=True, exist_ok=True)
30
+ tmp.write_text(data=python_rules_file.read_text(), encoding="utf-8")
31
+
32
+ tmp = repo_root.joinpath(".github/instructions/python01.instructions.md")
33
+ tmp.parent.mkdir(parents=True, exist_ok=True)
34
+ tmp.write_text(data=python_rules_file.read_text(), encoding="utf-8")
35
+
36
+ tmp = repo_root.joinpath("CLAUDE.md")
37
+ tmp.write_text(data=python_rules_file.read_text(), encoding="utf-8")
38
+ tmp = repo_root.joinpath("GEMINI.md")
39
+ tmp.write_text(data=python_rules_file.read_text(), encoding="utf-8")
40
+
41
+ dot_ai_dir = repo_root.joinpath(".ai")
42
+ dot_ai_dir.mkdir(parents=True, exist_ok=True)
43
+ dot_git_ignore_path = dot_ai_dir.joinpath(".gitignore")
44
+ if dot_git_ignore_path.exists():
45
+ dot_git_ignore_content = dot_git_ignore_path.read_text(encoding="utf-8")
46
+ to_add: list[str] = []
47
+ if ".links" not in dot_git_ignore_content: to_add.append(".links")
48
+ if "notebooks" not in dot_git_ignore_content: to_add.append("notebooks")
49
+ if ".ai" not in dot_git_ignore_content: to_add.append(".ai")
50
+ # if "*.ipynb"
51
+ if len(to_add) > 0:
52
+ dot_git_ignore_path.write_text(data=dot_git_ignore_content + "\n" + "\n".join(to_add), encoding="utf-8")
53
+
54
+
55
+ if __name__ == "__main__":
56
+ add_ai_configs(repo_root=Path.cwd())
@@ -0,0 +1,31 @@
1
+
2
+
3
+ Hello
4
+ =====
5
+
6
+
7
+ # Development Environment and tooling:
8
+ * To initialize a python project, use `uv init --python 3.13`
9
+ * To create virtual env, use `uv venv`.
10
+ * Please run any python file using `uv run $file.py`
11
+ * Same for tools, e.g. `un run python pytest blah`
12
+ * To add a package, use `uv add <package_name>`.
13
+ * Please never mention versions of package, so uv will bring the latest.
14
+ * On this note, I have to say that I am seriously concerned about AI using very outdated coding style.
15
+ * Use python 3.13 syntax features.
16
+ * Use modern standards, e.g. Path from pathlib.
17
+
18
+ * Never touch `pyproject.toml` manually, this file is strictly managed by `uv` tool on your behalf.
19
+ * If you are writing a test or any temporary script for discovering or undestanding something as an intermediate step, then,
20
+ please keep all your temp scripts and files under ./.ai/tmp_scripts directory, its included in .gitignore and won't litter the repo.
21
+ Its also nice if you create a subdirectory therein to contain relevant files for the task at hand, to avoid confusion with other files from other ai agents working simulataneously on other things.
22
+
23
+ # Style
24
+ * Please type hint all the code. Use fully quilaified types, not just generics like dict, list, etc, rather dict[str, int], list[float], etc.
25
+ * Use triple quotes and triple double quotes f-strings for string formatting and avoid when possible all goofy escaping when interpolation.
26
+ * Make sure all the code is rigorous, no lazy stuff.
27
+ * For example, always avoid default values in arguments of functions. Those are evil and cause confusion. Always be explicit
28
+ * Please avoid writing READMe files and avoid docstring and comments in code unless absolutely necessary. Use clear naming conventions instead of documenting.
29
+
30
+ # Preferences:
31
+ * If needed, opt for polars not pandas, whenever possible.
@@ -3,8 +3,6 @@
3
3
 
4
4
 
5
5
  # # import sys
6
- # from crocodile.msc.odds import capture_from_webcam
7
- # from crocodile.meta import Terminal
8
6
  # from rich.console import Console
9
7
  # from rich.panel import Panel
10
8
  # import pytesseract
@@ -22,7 +20,7 @@
22
20
  # # import cv2
23
21
  # # img_cv = cv2.imread(r'C:\Users\alex\Downloads\name.jpg')
24
22
 
25
- # # sys.path.insert(0, P.home().joinpath("AppData/Local/Tesseract-OCR").str)
23
+ # # sys.path.insert(0, PathExtended.home().joinpath("AppData/Local/Tesseract-OCR").str)
26
24
  # # import pytesseract
27
25
  # # print(pytesseract.image_to_string(img_cv))
28
26
 
@@ -2,7 +2,7 @@
2
2
  Choose a theme for Wezterm
3
3
  """
4
4
 
5
- from machineconfig.utils.utils import choose_one_option, P
5
+ from machineconfig.utils.utils import choose_one_option, PathExtended
6
6
  from typing import Any
7
7
  import time
8
8
  from rich.panel import Panel
@@ -51,13 +51,13 @@ def main2():
51
51
 
52
52
  def set_theme(theme: str):
53
53
  print(f"🔄 Setting WezTerm theme to: {theme}")
54
- txt_lines = P("~/.config/wezterm/wezterm.lua").expanduser().read_text().splitlines()
54
+ txt_lines = PathExtended("~/.config/wezterm/wezterm.lua").expanduser().read_text().splitlines()
55
55
  res_lines = []
56
56
  for line in txt_lines:
57
57
  if 'config.color_scheme = ' in line:
58
58
  res_lines.append(f"config.color_scheme = '{theme}'")
59
59
  else: res_lines.append(line)
60
- P("~/.config/wezterm/wezterm.lua").expanduser().write_text('\n'.join(res_lines))
60
+ PathExtended("~/.config/wezterm/wezterm.lua").expanduser().write_text('\n'.join(res_lines))
61
61
  time.sleep(0.1)
62
62
  print("💾 Configuration saved")
63
63
 
@@ -2,8 +2,7 @@
2
2
  CC
3
3
  """
4
4
 
5
- from crocodile.file_management import P
6
- from crocodile.core import Struct
5
+ from machineconfig.utils.path_reduced import P as PathExtended
7
6
  from crocodile.meta import RepeatUntilNoException
8
7
  import getpass
9
8
  import argparse
@@ -15,6 +14,7 @@ from machineconfig.scripts.python.helpers.cloud_helpers import ArgsDefaults, Arg
15
14
  from rich.console import Console
16
15
  from rich.panel import Panel
17
16
  from rich.progress import Progress
17
+ from machineconfig.utils.utils2 import pprint
18
18
 
19
19
  console = Console()
20
20
 
@@ -22,7 +22,7 @@ console = Console()
22
22
  def get_securely_shared_file(url: Optional[str] = None, folder: Optional[str] = None) -> None:
23
23
  console.print(Panel("🚀 Secure File Downloader", title="[bold blue]Downloader[/bold blue]", border_style="blue"))
24
24
 
25
- folder_obj = P.cwd() if folder is None else P(folder)
25
+ folder_obj = PathExtended.cwd() if folder is None else PathExtended(folder)
26
26
  print(f"📂 Target folder: {folder_obj}")
27
27
 
28
28
  if os.environ.get("DECRYPTION_PASSWORD") is not None:
@@ -42,14 +42,14 @@ def get_securely_shared_file(url: Optional[str] = None, folder: Optional[str] =
42
42
  console.print(Panel("📡 Downloading from URL...", title="[bold blue]Download[/bold blue]", border_style="blue"))
43
43
  with Progress(transient=True) as progress:
44
44
  _task = progress.add_task("Downloading... ", total=None)
45
- url_obj = P(url).download(folder=folder_obj)
45
+ url_obj = PathExtended(url).download(folder=folder_obj)
46
46
 
47
47
  console.print(Panel(f"📥 Downloaded file: {url_obj}", title="[bold green]Success[/bold green]", border_style="green"))
48
48
 
49
49
  console.print(Panel("🔐 Decrypting and extracting...", title="[bold blue]Processing[/bold blue]", border_style="blue"))
50
50
  with Progress(transient=True) as progress:
51
51
  _task = progress.add_task("Decrypting... ", total=None)
52
- tmp_folder = P.tmpdir(prefix="tmp_unzip")
52
+ tmp_folder = PathExtended.tmpdir(prefix="tmp_unzip")
53
53
  try:
54
54
  res = url_obj.decrypt(pwd=pwd, inplace=True).unzip(inplace=True, folder=tmp_folder)
55
55
  res.search("*").apply(lambda x: x.move(folder=folder_obj, overwrite=True))
@@ -107,7 +107,7 @@ def arg_parser() -> None:
107
107
  cloud, source, target = parse_cloud_source_target(args=args_obj, source=source, target=target)
108
108
 
109
109
  console.print(Panel("⚙️ Configuration:", title="[bold blue]Config[/bold blue]", border_style="blue"))
110
- Struct(args_obj.__dict__).print(as_config=True, title="CLI config")
110
+ pprint(args_obj.__dict__, "CLI config")
111
111
 
112
112
  if args_obj.key is not None:
113
113
  console.print(Panel("❌ Key-based encryption is not supported yet", title="[bold red]Error[/bold red]", border_style="red"))
@@ -116,7 +116,7 @@ def arg_parser() -> None:
116
116
  if cloud in source:
117
117
  console.print(Panel(f"📥 DOWNLOADING FROM CLOUD\n☁️ Cloud: {cloud}\n📂 Source: {source.replace(cloud + ':', '')}\n🎯 Target: {target}", title="[bold blue]Download[/bold blue]", border_style="blue", width=152))
118
118
 
119
- P(target).from_cloud(cloud=cloud, remotepath=source.replace(cloud + ":", ""),
119
+ PathExtended(target).from_cloud(cloud=cloud, remotepath=source.replace(cloud + ":", ""),
120
120
  unzip=args_obj.zip, decrypt=args_obj.encrypt, pwd=args_obj.pwd,
121
121
  overwrite=args_obj.overwrite,
122
122
  rel2home=args_obj.rel2home, os_specific=args_obj.os_specific, root=args_obj.root, strict=False,
@@ -126,7 +126,7 @@ def arg_parser() -> None:
126
126
  elif cloud in target:
127
127
  console.print(Panel(f"📤 UPLOADING TO CLOUD\n☁️ Cloud: {cloud}\n📂 Source: {source}\n🎯 Target: {target.replace(cloud + ':', '')}", title="[bold blue]Upload[/bold blue]", border_style="blue", width=152))
128
128
 
129
- res = P(source).to_cloud(cloud=cloud, remotepath=target.replace(cloud + ":", ""),
129
+ res = PathExtended(source).to_cloud(cloud=cloud, remotepath=target.replace(cloud + ":", ""),
130
130
  zip=args_obj.zip, encrypt=args_obj.encrypt, pwd=args_obj.pwd,
131
131
  rel2home=args_obj.rel2home, root=args_obj.root, os_specific=args_obj.os_specific, strict=False,
132
132
  share=args_obj.share)
@@ -134,8 +134,8 @@ def arg_parser() -> None:
134
134
 
135
135
  if args_obj.share:
136
136
  fname = f".share_url_{cloud}"
137
- if P(source).is_dir(): share_url_path = P(source).joinpath(fname)
138
- else: share_url_path = P(source).with_suffix(fname)
137
+ if PathExtended(source).is_dir(): share_url_path = PathExtended(source).joinpath(fname)
138
+ else: share_url_path = PathExtended(source).with_suffix(fname)
139
139
  share_url_path.write_text(res.as_url_str())
140
140
  console.print(Panel(f"🔗 SHARE URL GENERATED\n📝 URL file: {share_url_path}\n🌍 {res.as_url_str()}", title="[bold blue]Share[/bold blue]", border_style="blue", width=152))
141
141
  else:
@@ -1,99 +1,77 @@
1
- """Run cloud manager.
2
- """
3
-
4
- # from machineconfig.cluster.loader_runner import CloudManager
5
- from crocodile.file_management import P # Add import for P
6
- from rich.console import Console # Add import for Console
7
- from rich.panel import Panel # Add import for Panel
8
- import argparse
9
-
10
-
11
- console = Console()
12
-
13
- BOX_WIDTH = 150 # width for box drawing
14
-
15
-
16
- def print_section_title(title: str):
17
- """Prints a section title formatted nicely with a border and padding."""
18
- console = Console()
19
- console.print(Panel(title, title_align="left", expand=False))
20
-
21
-
22
- class CloudManager:
23
- """Manages cloud operations like syncing, comparing, and listing files."""
24
-
25
- def compare_local_and_cloud(self, sub_path: P):
26
- """Compares local and cloud files and prints a summary."""
27
- local_files, cloud_files = self._get_local_and_cloud_files(sub_path)
28
- title1 = f"Comparing Local and Cloud: {sub_path.name}"
29
- run_line = f"Local files: {len(local_files)}"
30
- cloud_line = f"Cloud files: {len(cloud_files)}"
31
- console = Console()
32
- console.print(Panel(f"{title1}\n{run_line}\n{cloud_line}", title_align="left", expand=False))
33
-
34
- def list_cloud_files(self, sub_path: P):
35
- """Lists files in the cloud directory."""
36
- cloud_files = self._get_cloud_files(sub_path)
37
- title = f"Cloud Files in {sub_path.name}: {len(cloud_files)}"
38
- console = Console()
39
- console.print(Panel(title, title_align="left", expand=False))
40
-
41
-
42
- def main():
43
- console = Console() # Add console initialization
44
- console.print(Panel("☁️ Cloud Manager", title_align="left", expand=False))
45
-
46
- parser = argparse.ArgumentParser()
47
- parser.add_argument("-c", "--cloud", help="Rclone Config Name", action="store", type=str, default=None)
48
- parser.add_argument("-s", "--serve", help="Start job server", action="store_true", default=False)
49
- parser.add_argument("-R", "--reset_local", help="Clear local cache", action="store_true", default=False)
50
- parser.add_argument("-r", "--rerun_jobs", help="Re-run jobs by bringing them back from wherever to the queue.", action="store_true", default=False)
51
- parser.add_argument("-L", "--release_lock", help="Release lock.", action="store_true", default=False)
52
- parser.add_argument("-f", "--queue_failed_jobs", help="Bring failed jobs back to queued jobs for a re-trial.", action="store_true", default=False)
53
- parser.add_argument("-m", "--monitor_cloud", help="Monitor workers instead of running a job server.", action="store_true", default=False)
54
- parser.add_argument("-j", "--num_jobs", help="Number of jobs the server will run in parallel.", action="store", type=int, default=1)
55
- args = parser.parse_args()
56
-
57
- init_line = f"🔧 Initializing Cloud Manager with {args.num_jobs} worker{'s' if args.num_jobs > 1 else ''}"
58
- console.print(Panel(init_line, title_align="left", expand=False))
59
-
60
- cm = CloudManager(max_jobs=args.num_jobs, cloud=args.cloud, reset_local=args.reset_local)
61
-
62
- if args.release_lock:
63
- line = "🔓 Releasing lock..."
64
- console.print(Panel(line, title_align="left", expand=False))
65
- cm.claim_lock()
66
- cm.release_lock()
67
- print(" Lock successfully released")
68
-
69
- if args.queue_failed_jobs:
70
- line = "🔄 Requeuing failed jobs..."
71
- console.print(Panel(line, title_align="left", expand=False))
72
- cm.clean_failed_jobs_mess()
73
- print("✅ Failed jobs moved to queue")
74
-
75
- if args.rerun_jobs:
76
- line = "🔁 Rerunning jobs..."
77
- console.print(Panel(line, title_align="left", expand=False))
78
- cm.rerun_jobs()
79
- print("✅ Jobs restarted successfully")
80
-
81
- if args.monitor_cloud:
82
- title = "👁️ STARTING CLOUD MONITOR"
83
- console.print(Panel(title, title_align="left", expand=False))
84
- cm.run_monitor()
85
-
86
- if args.serve:
87
- title1 = "🚀 STARTING JOB SERVER"
88
- run_line = f"💻 Running {args.num_jobs} worker{'s' if args.num_jobs > 1 else ''}"
89
- cloud_line = f"☁️ Cloud: {args.cloud if args.cloud else 'Default'}"
90
- console.print(Panel(f"{title1}\n{run_line}\n{cloud_line}", title_align="left", expand=False))
91
-
92
- title = "✅ Cloud Manager finished successfully"
93
- console.print(Panel(title, title_align="left", expand=False))
94
- import sys
95
- sys.exit(0)
96
-
97
-
98
- if __name__ == '__main__':
99
- main()
1
+ # """Run cloud manager.
2
+ # """
3
+
4
+ # from machineconfig.cluster.cloud_manager import CloudManager
5
+ # from rich.console import Console # Add import for Console
6
+ # from rich.panel import Panel # Add import for Panel
7
+ # import argparse
8
+
9
+ # console = Console()
10
+
11
+ # BOX_WIDTH = 150 # width for box drawing
12
+
13
+
14
+ # def print_section_title(title: str):
15
+ # """Prints a section title formatted nicely with a border and padding."""
16
+ # console = Console()
17
+ # console.print(Panel(title, title_align="left", expand=False))
18
+
19
+
20
+ # def main():
21
+ # console = Console() # Add console initialization
22
+ # console.print(Panel("☁️ Cloud Manager", title_align="left", expand=False))
23
+
24
+ # parser = argparse.ArgumentParser()
25
+ # parser.add_argument("-c", "--cloud", help="Rclone Config Name", action="store", type=str, default=None)
26
+ # parser.add_argument("-s", "--serve", help="Start job server", action="store_true", default=False)
27
+ # parser.add_argument("-R", "--reset_local", help="Clear local cache", action="store_true", default=False)
28
+ # parser.add_argument("-r", "--rerun_jobs", help="Re-run jobs by bringing them back from wherever to the queue.", action="store_true", default=False)
29
+ # parser.add_argument("-L", "--release_lock", help="Release lock.", action="store_true", default=False)
30
+ # parser.add_argument("-f", "--queue_failed_jobs", help="Bring failed jobs back to queued jobs for a re-trial.", action="store_true", default=False)
31
+ # parser.add_argument("-m", "--monitor_cloud", help="Monitor workers instead of running a job server.", action="store_true", default=False)
32
+ # parser.add_argument("-j", "--num_jobs", help="Number of jobs the server will run in parallel.", action="store", type=int, default=1)
33
+ # args = parser.parse_args()
34
+
35
+ # init_line = f"🔧 Initializing Cloud Manager with {args.num_jobs} worker{'s' if args.num_jobs > 1 else ''}"
36
+ # console.print(Panel(init_line, title_align="left", expand=False))
37
+
38
+ # cm = CloudManager(max_jobs=args.num_jobs, cloud=args.cloud, reset_local=args.reset_local)
39
+
40
+ # if args.release_lock:
41
+ # line = "🔓 Releasing lock..."
42
+ # console.print(Panel(line, title_align="left", expand=False))
43
+ # cm.claim_lock()
44
+ # cm.release_lock()
45
+ # print("✅ Lock successfully released")
46
+
47
+ # if args.queue_failed_jobs:
48
+ # line = "🔄 Requeuing failed jobs..."
49
+ # console.print(Panel(line, title_align="left", expand=False))
50
+ # cm.clean_failed_jobs_mess()
51
+ # print(" Failed jobs moved to queue")
52
+
53
+ # if args.rerun_jobs:
54
+ # line = "🔁 Rerunning jobs..."
55
+ # console.print(Panel(line, title_align="left", expand=False))
56
+ # cm.rerun_jobs()
57
+ # print(" Jobs restarted successfully")
58
+
59
+ # if args.monitor_cloud:
60
+ # title = "👁️ STARTING CLOUD MONITOR"
61
+ # console.print(Panel(title, title_align="left", expand=False))
62
+ # cm.run_monitor()
63
+
64
+ # if args.serve:
65
+ # title1 = "🚀 STARTING JOB SERVER"
66
+ # run_line = f"💻 Running {args.num_jobs} worker{'s' if args.num_jobs > 1 else ''}"
67
+ # cloud_line = f"☁️ Cloud: {args.cloud if args.cloud else 'Default'}"
68
+ # console.print(Panel(f"{title1}\n{run_line}\n{cloud_line}", title_align="left", expand=False))
69
+
70
+ # title = " Cloud Manager finished successfully"
71
+ # console.print(Panel(title, title_align="left", expand=False))
72
+ # import sys
73
+ # sys.exit(0)
74
+
75
+
76
+ # if __name__ == '__main__':
77
+ # main()
@@ -3,7 +3,8 @@
3
3
 
4
4
 
5
5
  from machineconfig.utils.utils import PROGRAM_PATH, choose_one_option
6
- from crocodile.file_management import P, Read
6
+ from machineconfig.utils.utils2 import read_ini
7
+ from machineconfig.utils.path_reduced import P as PathExtended
7
8
 
8
9
  import platform
9
10
  import argparse
@@ -18,17 +19,16 @@ DEFAULT_MOUNT = "~/data/rclone"
18
19
 
19
20
 
20
21
  def get_rclone_config():
21
- if platform.system() == "Windows": config = Read.ini(P.home().joinpath("AppData/Roaming/rclone/rclone.conf"))
22
- elif platform.system() == "Linux": config = Read.ini(P.home().joinpath(".config/rclone/rclone.conf"))
22
+ if platform.system() == "Windows": config = read_ini(PathExtended.home().joinpath("AppData/Roaming/rclone/rclone.conf"))
23
+ elif platform.system() in ["Linux", "Darwin"]: config = read_ini(PathExtended.home().joinpath(".config/rclone/rclone.conf"))
23
24
  else: raise ValueError("unsupported platform")
24
25
  return config
25
26
 
26
27
 
27
28
  def get_mprocs_mount_txt(cloud: str, rclone_cmd: str, cloud_brand: str): # cloud_brand = config[cloud]["type"]
28
- # config = Read.ini(P.home().joinpath(".config/rclone/rclone.conf"))
29
29
  header = f"{' ' + cloud + ' | ' + cloud_brand + ' '}".center(50, "=")
30
30
  if platform.system() == "Windows":
31
- sub_text_path = P.tmpfile(suffix=".ps1").write_text(f"""
31
+ sub_text_path = PathExtended.tmpfile(suffix=".ps1").write_text(f"""
32
32
  echo "{header}"
33
33
  iex 'rclone about {cloud}:'
34
34
  echo 'See {DEFAULT_MOUNT}/{cloud} for the mounted cloud'
@@ -59,19 +59,20 @@ def mount(cloud: Optional[str], network: Optional[str], destination: Optional[st
59
59
 
60
60
  if network is None:
61
61
  if destination is None:
62
- mount_loc = P(DEFAULT_MOUNT).expanduser().joinpath(cloud)
62
+ mount_loc = PathExtended(DEFAULT_MOUNT).expanduser().joinpath(cloud)
63
63
  else:
64
- mount_loc = P(destination)
64
+ mount_loc = PathExtended(destination)
65
65
 
66
66
  mount_info = f"📂 Mount location: {mount_loc}"
67
67
  console.print(Panel(mount_info, border_style="blue"))
68
68
 
69
69
  if platform.system() == "Windows":
70
70
  print("🪟 Creating mount directory on Windows...")
71
- mount_loc.parent.create()
72
- elif platform.system() == "Linux":
73
- print("🐧 Creating mount directory on Linux...")
74
- try: mount_loc.create()
71
+ mount_loc.parent.mkdir(parents=True, exist_ok=True)
72
+ elif platform.system() in ["Linux", "Darwin"]:
73
+ system_name = "Linux" if platform.system() == "Linux" else "macOS"
74
+ print(f"🐧 Creating mount directory on {system_name}...")
75
+ try: mount_loc.mkdir(parents=True, exist_ok=True)
75
76
  except (FileExistsError, OSError) as err:
76
77
  # We need a umount command here.
77
78
  warning_line = "⚠️ WARNING: Mount directory issue"
@@ -94,7 +95,7 @@ def mount(cloud: Optional[str], network: Optional[str], destination: Optional[st
94
95
  txt = f"""
95
96
  wt --window 0 --profile "Windows PowerShell" --startingDirectory "$HOME/data/rclone" `; split-pane --horizontal --profile "Command Prompt" --size 0.2 powershell -Command "{mount_cmd}" `; split-pane --vertical --profile "Windows PowerShell" --size 0.2 powershell -NoExit -Command "rclone about {cloud}:" `; move-focus up
96
97
  """
97
- elif platform.system() == "Linux": txt = f"""
98
+ elif platform.system() in ["Linux", "Darwin"]: txt = f"""
98
99
 
99
100
  ZJ_SESSIONS=$(zellij list-sessions)
100
101
 
@@ -1,9 +1,9 @@
1
1
  """utils"""
2
2
 
3
3
  import git
4
- from crocodile.file_management import P, Read
4
+ from machineconfig.utils.path_reduced import P as PathExtended
5
5
  from crocodile.meta import Terminal
6
- from crocodile.core import randstr
6
+ from machineconfig.utils.utils2 import randstr, read_ini
7
7
 
8
8
  from machineconfig.scripts.python.helpers.repo_sync_helpers import fetch_dotfiles
9
9
  from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH, PROGRAM_PATH, choose_one_option
@@ -13,7 +13,7 @@ import argparse
13
13
  from typing import Optional, Literal
14
14
  from rich.console import Console
15
15
  from rich.panel import Panel
16
- from rich.text import Text
16
+ # from rich.text import Text
17
17
 
18
18
  console = Console()
19
19
 
@@ -25,18 +25,18 @@ def main(cloud: Optional[str] = None, path: Optional[str] = None, message: Optio
25
25
  pwd: Optional[str] = None):
26
26
  if cloud is None:
27
27
  try:
28
- cloud_resolved = Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
28
+ cloud_resolved = read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
29
29
  console.print(Panel(f"⚠️ Using default cloud: `{cloud_resolved}` from {DEFAULTS_PATH}", title="Default Cloud", border_style="yellow"))
30
30
  except FileNotFoundError:
31
31
  console.print(Panel(f"❌ ERROR: No cloud profile found\nLocation: {DEFAULTS_PATH}\nPlease set one up or provide one via the --cloud flag.", title="Error", border_style="red"))
32
32
  return ""
33
33
  else: cloud_resolved = cloud
34
34
 
35
- # repo_root = P(args.repo).expanduser().absolute()
36
- repo_local_root = P.cwd() if path is None else P(path).expanduser().absolute()
35
+ # repo_root = PathExtended(args.repo).expanduser().absolute()
36
+ repo_local_root = PathExtended.cwd() if path is None else PathExtended(path).expanduser().absolute()
37
37
  repo_local_obj = git.Repo(repo_local_root, search_parent_directories=True)
38
- repo_local_root = P(repo_local_obj.working_dir) # cwd might have been in a sub directory of repo_root, so its better to redefine it.
39
- CONFIG_PATH.joinpath("remote").create()
38
+ repo_local_root = PathExtended(repo_local_obj.working_dir) # cwd might have been in a sub directory of repo_root, so its better to redefine it.
39
+ CONFIG_PATH.joinpath("remote").mkdir(parents=True, exist_ok=True)
40
40
  repo_remote_root = CONFIG_PATH.joinpath("remote", repo_local_root.rel2home()) # .delete(sure=True)
41
41
 
42
42
  try:
@@ -82,6 +82,7 @@ git pull originEnc master
82
82
  from git.remote import Remote
83
83
  Remote.remove(repo_local_obj, "originEnc")
84
84
  repo_local_root.to_cloud(cloud=cloud_resolved, zip=True, encrypt=True, rel2home=True, pwd=pwd, os_specific=False)
85
+ return "success"
85
86
  else:
86
87
  console.print(Panel(f"⚠️ MERGE FAILED\n💾 Keeping local copy of remote at:\n📂 {repo_remote_root}", title="Merge Failed", border_style="red"))
87
88
 
@@ -89,7 +90,7 @@ git pull originEnc master
89
90
  option1 = 'Delete remote copy and push local:'
90
91
  program_1_py = f"""
91
92
  from machineconfig.scripts.python.helpers.repo_sync_helpers import delete_remote_repo_copy_and_push_local as func
92
- func(remote_repo=r'{repo_remote_root.to_str()}', local_repo=r'{repo_local_root.to_str()}', cloud=r'{cloud_resolved}')
93
+ func(remote_repo=r'{str(repo_remote_root)}', local_repo=r'{str(repo_local_root)}', cloud=r'{cloud_resolved}')
93
94
  """
94
95
  shell_file_1 = get_shell_file_executing_python_script(python_script=program_1_py, ve_name="ve")
95
96
  # ================================================================================
@@ -99,7 +100,7 @@ func(remote_repo=r'{repo_remote_root.to_str()}', local_repo=r'{repo_local_root.t
99
100
  rm -rfd {repo_local_root}
100
101
  mv {repo_remote_root} {repo_local_root}
101
102
  """
102
- if platform.system() == "Linux": program_2 += """
103
+ if platform.system() in ["Linux", "Darwin"]: program_2 += """
103
104
  sudo chmod 600 $HOME/.ssh/*
104
105
  sudo chmod 700 $HOME/.ssh
105
106
  sudo chmod +x $HOME/dotfiles/scripts/linux -R
@@ -111,7 +112,7 @@ sudo chmod +x $HOME/dotfiles/scripts/linux -R
111
112
  option3 = 'Inspect repos:'
112
113
  program_3_py = f"""
113
114
  from machineconfig.scripts.python.helper.repo_sync_helpers import inspect_repos as func
114
- func(repo_local_root=r'{repo_local_root.to_str()}', repo_remote_root=r'{repo_remote_root.to_str()}')
115
+ func(repo_local_root=r'{str(repo_local_root)}', repo_remote_root=r'{str(repo_remote_root)}')
115
116
  """
116
117
  shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_name="ve")
117
118
  # ================================================================================
@@ -147,6 +148,8 @@ git commit -am "finished merging"
147
148
  case "overwriteLocal": program_content = program_2
148
149
  case "InspectRepos": program_content = shell_file_3.read_text()
149
150
  case "RemoveLocalRclone": program_content = program_4
151
+ case _:
152
+ raise ValueError(f"Unknown action: {action}")
150
153
  PROGRAM_PATH.write_text(program_content)
151
154
  return program_content
152
155