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
@@ -4,6 +4,7 @@ import os
4
4
  import shutil
5
5
  from pathlib import Path
6
6
  import platform
7
+ import subprocess
7
8
  from typing import Optional
8
9
 
9
10
 
@@ -17,14 +18,11 @@ config_dict = {
17
18
  }
18
19
 
19
20
 
20
- def main(version: Optional[str] = None):
21
+ def install_linux(version: Optional[str] = None):
22
+ """Install Cursor on Linux systems."""
21
23
  _ = version
22
- assert platform.system() == "Linux", "This script is intended for Linux systems only."
23
- # assert flvour is debiean/mint or ubuntu, "This script is intended for Debian-based systems only."
24
24
  # Variables
25
- # username = os.getenv("USER")
26
25
  home = str(Path.home())
27
- # appimage_src = f"{home}/Downloads/Cursor-0.48.8-x86_64.AppImage"
28
26
  # search for anything that has Cursor in the name and ends with .AppImage
29
27
  appimage_src = next(Path(home).joinpath("Downloads").glob("**/Cursor*.AppImage"), None)
30
28
  if appimage_src is None:
@@ -63,5 +61,68 @@ Categories=Development;IDE;
63
61
  print("Cursor is now available from the start menu.")
64
62
 
65
63
 
64
+ def install_windows(version: Optional[str] = None):
65
+ """Install Cursor on Windows systems."""
66
+ _ = version
67
+ home = Path.home()
68
+ downloads_dir = home / "Downloads"
69
+
70
+ # Search for Cursor installer in Downloads
71
+ cursor_installer = None
72
+ for pattern in ["**/Cursor*.exe", "**/cursor*.exe"]:
73
+ found = list(downloads_dir.glob(pattern))
74
+ if found:
75
+ cursor_installer = found[0]
76
+ break
77
+
78
+ if cursor_installer is None:
79
+ raise FileNotFoundError("Cursor installer (.exe) not found in Downloads folder.")
80
+
81
+ print(f"Cursor installer found: {cursor_installer}")
82
+
83
+ # Run the installer silently
84
+ try:
85
+ print("Running Cursor installer...")
86
+ subprocess.run([str(cursor_installer), "/SILENT"],
87
+ capture_output=True, text=True, check=True)
88
+ print("Cursor installer completed successfully.")
89
+ except subprocess.CalledProcessError as e:
90
+ print(f"Installer failed with exit code {e.returncode}")
91
+ print(f"Error output: {e.stderr}")
92
+ # Try alternative silent install flags
93
+ try:
94
+ print("Trying alternative silent install...")
95
+ subprocess.run([str(cursor_installer), "/S"],
96
+ capture_output=True, text=True, check=True)
97
+ print("Cursor installer completed successfully with /S flag.")
98
+ except subprocess.CalledProcessError as e2:
99
+ print(f"Alternative installer also failed with exit code {e2.returncode}")
100
+ print(f"Error output: {e2.stderr}")
101
+ # If silent install fails, run normally and let user handle it
102
+ print("Running installer in normal mode (user interaction required)...")
103
+ subprocess.run([str(cursor_installer)])
104
+
105
+ # Clean up installer file
106
+ try:
107
+ cursor_installer.unlink()
108
+ print(f"Installer file removed: {cursor_installer}")
109
+ except OSError as e:
110
+ print(f"Warning: Could not remove installer file: {e}")
111
+
112
+ print("Cursor installation completed. Check your Start Menu or Desktop for Cursor.")
113
+
114
+
115
+ def main(version: Optional[str] = None):
116
+ """Main installation function that handles both Linux and Windows."""
117
+ system = platform.system()
118
+
119
+ if system == "Linux":
120
+ install_linux(version)
121
+ elif system == "Windows":
122
+ install_windows(version)
123
+ else:
124
+ raise OSError(f"Unsupported operating system: {system}. This script supports Linux and Windows only.")
125
+
126
+
66
127
  if __name__ == "__main__":
67
128
  main()
@@ -2,7 +2,6 @@
2
2
  Installer
3
3
  """
4
4
  # from machineconfig.utils.installer import get_latest_release
5
- # from crocodile.meta import Terminal
6
5
  from typing import Optional
7
6
 
8
7
  # https://docs.docker.com/desktop/install/ubuntu/
@@ -26,11 +25,11 @@ config_dict = {
26
25
 
27
26
  def main(version: Optional[str]):
28
27
  print(f"""
29
- {'=' * 70}
28
+ {'=' * 150}
30
29
  🐳 DOCKER DESKTOP | Installing Docker Desktop for Ubuntu
31
30
  🔄 Version: {'latest' if version is None else version}
32
31
  📚 Source: https://docs.docker.com/desktop/install/ubuntu/
33
- {'=' * 70}
32
+ {'=' * 150}
34
33
  """)
35
34
 
36
35
  _ = version
@@ -62,12 +61,12 @@ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
62
61
 
63
62
  """
64
63
  print(f"""
65
- {'=' * 70}
64
+ {'=' * 150}
66
65
  ℹ️ INFO | After installation:
67
66
  🔹 Run 'sudo docker run hello-world' to verify installation
68
67
  🔹 Add your user to the docker group with 'sudo usermod -aG docker $USER'
69
68
  🔹 Log out and back in to apply group changes
70
- {'=' * 70}
69
+ {'=' * 150}
71
70
  """)
72
71
 
73
72
  return code
@@ -18,11 +18,11 @@ config_dict = {
18
18
 
19
19
  def main(version: Optional[str]):
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  ⚡ ESPANSO INSTALLER | Setting up text expansion tool
23
23
  🔄 Version: {'latest' if version is None else version}
24
24
  🔗 Source: https://github.com/espanso/espanso
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
 
28
28
  _ = version
@@ -30,25 +30,29 @@ def main(version: Optional[str]):
30
30
  config_dict["repo_url"] = "https://github.com/espanso/espanso"
31
31
  if platform.system() == "Windows":
32
32
  print("🪟 Installing Espanso on Windows...")
33
- elif platform.system() == "Linux":
34
- import os
35
- env = os.environ["XDG_SESSION_TYPE"]
36
- if env == "wayland":
37
- print(f"""
38
- {'=' * 70}
33
+ elif platform.system() in ["Linux", "Darwin"]:
34
+ if platform.system() == "Linux":
35
+ import os
36
+ env = os.environ["XDG_SESSION_TYPE"]
37
+ if env == "wayland":
38
+ print(f"""
39
+ {'=' * 150}
39
40
  🖥️ DISPLAY SERVER | Wayland detected
40
41
  📦 Using Wayland-specific package
41
- {'=' * 70}
42
+ {'=' * 150}
42
43
  """)
43
- config_dict["filename_template_linux_amd_64"] = "espanso-debian-wayland-amd64.deb"
44
- else:
45
- print(f"""
46
- {'=' * 70}
44
+ config_dict["filename_template_linux_amd_64"] = "espanso-debian-wayland-amd64.deb"
45
+ else:
46
+ print(f"""
47
+ {'=' * 150}
47
48
  🖥️ DISPLAY SERVER | X11 detected
48
49
  📦 Using X11-specific package
49
- {'=' * 70}
50
+ {'=' * 150}
50
51
  """)
51
- config_dict["filename_template_linux_amd_64"] = "espanso-debian-x11-amd64.deb"
52
+ config_dict["filename_template_linux_amd_64"] = "espanso-debian-x11-amd64.deb"
53
+ else: # Darwin/macOS
54
+ print("🍎 Installing Espanso on macOS...")
55
+ config_dict["filename_template_linux_amd_64"] = "Espanso.dmg"
52
56
  else:
53
57
  error_msg = f"Unsupported platform: {platform.system()}"
54
58
  print(f"""
@@ -70,13 +74,13 @@ espanso install actually-all-emojis
70
74
  """
71
75
 
72
76
  print(f"""
73
- {'=' * 70}
77
+ {'=' * 150}
74
78
  ✅ SUCCESS | Espanso installation completed
75
79
  📋 Post-installation steps:
76
80
  1️⃣ Register Espanso as a service
77
81
  2️⃣ Start the Espanso service
78
82
  3️⃣ Install the emoji package
79
- {'=' * 70}
83
+ {'=' * 150}
80
84
  """)
81
85
 
82
86
  return config
@@ -3,7 +3,6 @@ natural language to API
3
3
  https://github.com/ShishirPatil/gorilla
4
4
  """
5
5
 
6
- from machineconfig.utils.ve import get_ve_install_script
7
6
  # import subprocess
8
7
 
9
8
  config_dict = {
@@ -20,34 +19,29 @@ ve_name = "goex"
20
19
 
21
20
  def main():
22
21
  print(f"""
23
- {'=' * 70}
22
+ {'=' * 150}
24
23
  🦍 GORILLA INSTALLER | Natural language to API converter
25
24
  🌐 Source: https://github.com/ShishirPatil/gorilla
26
25
  📦 Virtual Environment: {ve_name}
27
- {'=' * 70}
26
+ {'=' * 150}
28
27
  """)
29
28
 
30
29
  print("🔄 Preparing installation script...")
31
- install_script = get_ve_install_script(ve_name=ve_name, py_version="3.11", install_crocodile_and_machineconfig=False,
32
- delete_if_exists=True)
30
+ install_script = """
33
31
 
34
- install_script += f"""
35
-
36
- . $HOME/scripts/activate_ve {ve_name}
37
32
  cd ~/code/foreign
38
33
  git clone https://github.com/ShishirPatil/gorilla --depth 1
39
34
  cd gorilla/goex
40
- pip install -e .
41
-
35
+ uv sync
42
36
  """
43
37
 
44
38
  print(f"""
45
- {'=' * 70}
39
+ {'=' * 150}
46
40
  📋 INSTALLATION STEPS:
47
41
  1️⃣ Creating Python 3.11 virtual environment: {ve_name}
48
42
  2️⃣ Cloning Gorilla repository to ~/code/foreign
49
43
  3️⃣ Installing Gorilla in development mode
50
- {'=' * 70}
44
+ {'=' * 150}
51
45
 
52
46
  ✅ Installation script prepared successfully!
53
47
  """)
@@ -23,11 +23,11 @@ config_dict = {
23
23
 
24
24
  def main(version: Optional[str]):
25
25
  print(f"""
26
- {'=' * 70}
26
+ {'=' * 150}
27
27
  🌙 LUNARVIM INSTALLER | Setting up Neovim-based IDE
28
28
  🔄 Version: {'latest' if version is None else version}
29
29
  📚 Branch: release-1.4/neovim-0.9
30
- {'=' * 70}
30
+ {'=' * 150}
31
31
  """)
32
32
 
33
33
  _ = version
@@ -38,8 +38,9 @@ def main(version: Optional[str]):
38
38
  pwsh -c "`$LV_BRANCH='release-1.4/neovim-0.9'; iwr https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.4/neovim-0.9/utils/installer/install.ps1 -UseBasicParsing | iex"
39
39
 
40
40
  """
41
- elif platform.system() == "Linux":
42
- print("🐧 Installing LunarVim on Linux...")
41
+ elif platform.system() in ["Linux", "Darwin"]:
42
+ system_name = "Linux" if platform.system() == "Linux" else "macOS"
43
+ print(f"🐧 Installing LunarVim on {system_name}...")
43
44
  program = """
44
45
 
45
46
  LV_BRANCH='release-1.4/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.4/neovim-0.9/utils/installer/install.sh)
@@ -55,14 +56,14 @@ LV_BRANCH='release-1.4/neovim-0.9' bash <(curl -s https://raw.githubusercontent.
55
56
  raise NotImplementedError(error_msg)
56
57
 
57
58
  print(f"""
58
- {'=' * 70}
59
+ {'=' * 150}
59
60
  ℹ️ INFO | LunarVim features:
60
61
  📝 IDE-like experience for Neovim
61
62
  🔌 Built-in plugin management
62
63
  🛠️ LSP configuration out of the box
63
64
  🔍 Powerful fuzzy finding
64
65
  ⚙️ Simple and unified configuration
65
- {'=' * 70}
66
+ {'=' * 150}
66
67
 
67
68
  ⚠️ NOTE: The installer will prompt for user input during installation.
68
69
  """)
@@ -17,11 +17,11 @@ config_dict = {
17
17
 
18
18
  def main(version: Optional[str]):
19
19
  print(f"""
20
- {'=' * 70}
20
+ {'=' * 150}
21
21
  🔤 NERD FONTS INSTALLER | Installing programming fonts with icons
22
22
  💻 Platform: {platform.system()}
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  """)
26
26
 
27
27
  _ = version
@@ -34,7 +34,7 @@ def main(version: Optional[str]):
34
34
  {'⚠️' * 20}
35
35
  """)
36
36
  raise NotImplementedError(error_msg)
37
- elif platform.system() == "Linux":
37
+ elif platform.system() in ["Linux", "Darwin"]:
38
38
  print("🐧 Installing Nerd Fonts on Linux using installation script...")
39
39
  import machineconfig.jobs.python_custom_installers as module
40
40
  from pathlib import Path
@@ -49,13 +49,13 @@ def main(version: Optional[str]):
49
49
  raise NotImplementedError(error_msg)
50
50
 
51
51
  print(f"""
52
- {'=' * 70}
52
+ {'=' * 150}
53
53
  ℹ️ INFO | Nerd Fonts features:
54
54
  🎨 Programming fonts patched with icons
55
55
  🔣 Includes icons from popular sets (FontAwesome, Devicons, etc.)
56
56
  🖥️ Perfect for terminals and coding environments
57
57
  🧰 Works with many terminal applications and editors
58
- {'=' * 70}
58
+ {'=' * 150}
59
59
  """)
60
60
 
61
61
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -17,11 +17,11 @@ config_dict = {
17
17
 
18
18
  def main(version: Optional[str]):
19
19
  print(f"""
20
- {'=' * 70}
20
+ {'=' * 150}
21
21
  🗃️ REDIS INSTALLER | Setting up in-memory database
22
22
  💻 Platform: {platform.system()}
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  """)
26
26
 
27
27
  _ = version
@@ -34,11 +34,15 @@ def main(version: Optional[str]):
34
34
  {'⚠️' * 20}
35
35
  """)
36
36
  raise NotImplementedError(error_msg)
37
- elif platform.system() == "Linux":
38
- print("🐧 Installing Redis on Linux using installation script...")
37
+ elif platform.system() in ["Linux", "Darwin"]:
38
+ system_name = "Linux" if platform.system() == "Linux" else "macOS"
39
+ print(f"🐧 Installing Redis on {system_name} using installation script...")
39
40
  import machineconfig.jobs.python_custom_installers as module
40
41
  from pathlib import Path
41
- program = Path(module.__file__).parent.joinpath("scripts/linux/redis.sh").read_text(encoding="utf-8")
42
+ if platform.system() == "Linux":
43
+ program = Path(module.__file__).parent.joinpath("scripts/linux/redis.sh").read_text(encoding="utf-8")
44
+ else: # Darwin/macOS
45
+ program = "brew install redis"
42
46
  else:
43
47
  error_msg = f"Unsupported platform: {platform.system()}"
44
48
  print(f"""
@@ -49,14 +53,14 @@ def main(version: Optional[str]):
49
53
  raise NotImplementedError(error_msg)
50
54
 
51
55
  print(f"""
52
- {'=' * 70}
56
+ {'=' * 150}
53
57
  ℹ️ INFO | Redis features:
54
58
  ⚡ In-memory data structure store
55
59
  🔑 Key-value database with optional persistence
56
60
  🚀 Sub-millisecond response times
57
61
  💾 Supports strings, lists, sets, sorted sets, hashes
58
62
  🔄 Built-in replication and Lua scripting
59
- {'=' * 70}
63
+ {'=' * 150}
60
64
  """)
61
65
 
62
66
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -17,11 +17,11 @@ config_dict = {
17
17
 
18
18
  def main(version: Optional[str]):
19
19
  print(f"""
20
- {'═' * 70}
20
+ {'═' * 150}
21
21
  🖥️ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator
22
22
  💻 Platform: {platform.system()}
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'═' * 70}
24
+ {'═' * 150}
25
25
  """)
26
26
 
27
27
  _ = version
@@ -34,13 +34,17 @@ def main(version: Optional[str]):
34
34
  {'⚠️' * 20}
35
35
  """)
36
36
  raise NotImplementedError(error_msg)
37
- elif platform.system() == "Linux":
38
- print("""
39
- 🐧 LINUX SETUP | Installing WezTerm terminal emulator using installation script...
37
+ elif platform.system() in ["Linux", "Darwin"]:
38
+ system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
39
+ print(f"""
40
+ 🐧 {system_name} SETUP | Installing WezTerm terminal emulator...
40
41
  """)
41
42
  import machineconfig.jobs.python_custom_installers as module
42
43
  from pathlib import Path
43
- program = Path(module.__file__).parent.joinpath("scripts/linux/wezterm.sh").read_text(encoding="utf-8")
44
+ if platform.system() == "Linux":
45
+ program = Path(module.__file__).parent.joinpath("scripts/linux/wezterm.sh").read_text(encoding="utf-8")
46
+ else: # Darwin/macOS
47
+ program = "brew install --cask wezterm"
44
48
  else:
45
49
  error_msg = f"Unsupported platform: {platform.system()}"
46
50
  print(f"""
@@ -51,7 +55,7 @@ def main(version: Optional[str]):
51
55
  raise NotImplementedError(error_msg)
52
56
 
53
57
  print(f"""
54
- {'═' * 70}
58
+ {'═' * 150}
55
59
  ℹ️ INFO | WezTerm Features:
56
60
  ⚡ GPU-accelerated rendering
57
61
  🎨 Full color emoji support
@@ -59,7 +63,7 @@ def main(version: Optional[str]):
59
63
  ⚙️ Lua configuration
60
64
  📦 Cross-platform support
61
65
  🔌 Plugin system
62
- {'═' * 70}
66
+ {'═' * 150}
63
67
  """)
64
68
 
65
69
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -0,0 +1,194 @@
1
+ import subprocess
2
+ import requests
3
+ import tempfile
4
+ from pathlib import Path
5
+ from typing import Optional
6
+
7
+
8
+ config_dict = {
9
+ "repo_url": "CUSTOM",
10
+ "doc": "winget installer",
11
+ "filename_template_windows_amd_64": "",
12
+ "filename_template_linux_amd_64": "",
13
+ "strip_v": False,
14
+ "exe_name": "winget"
15
+ }
16
+
17
+
18
+ def is_winget_available() -> bool:
19
+ """
20
+ Check if winget is available in the system PATH.
21
+
22
+ Returns:
23
+ bool: True if winget is available, False otherwise
24
+ """
25
+ try:
26
+ result = subprocess.run(
27
+ ["winget", "--version"],
28
+ capture_output=True,
29
+ text=True,
30
+ timeout=10
31
+ )
32
+ return result.returncode == 0
33
+ except (subprocess.TimeoutExpired, FileNotFoundError, subprocess.SubprocessError):
34
+ return False
35
+
36
+
37
+ def get_latest_winget_release_url() -> Optional[str]:
38
+ """
39
+ Get the download URL for the latest winget .msixbundle file from GitHub releases.
40
+
41
+ Returns:
42
+ Optional[str]: URL to the latest .msixbundle file, or None if not found
43
+ """
44
+ try:
45
+ # Get the latest release information from GitHub API
46
+ api_url = "https://api.github.com/repos/microsoft/winget-cli/releases/latest"
47
+ headers = {"Accept": "application/vnd.github.v3+json"}
48
+
49
+ response = requests.get(api_url, headers=headers, timeout=30)
50
+ response.raise_for_status()
51
+
52
+ release_data = response.json()
53
+
54
+ # Look for .msixbundle file in assets
55
+ for asset in release_data.get("assets", []):
56
+ if asset["name"].endswith(".msixbundle"):
57
+ return asset["browser_download_url"]
58
+
59
+ return None
60
+ except (requests.RequestException, KeyError, ValueError) as e:
61
+ print(f"Error fetching latest winget release: {e}")
62
+ return None
63
+
64
+
65
+ def download_file(url: str, destination: Path) -> bool:
66
+ """
67
+ Download a file from URL to destination.
68
+
69
+ Args:
70
+ url: URL to download from
71
+ destination: Path where to save the file
72
+
73
+ Returns:
74
+ bool: True if download successful, False otherwise
75
+ """
76
+ try:
77
+ response = requests.get(url, stream=True, timeout=60)
78
+ response.raise_for_status()
79
+
80
+ with open(destination, 'wb') as f:
81
+ for chunk in response.iter_content(chunk_size=8192):
82
+ if chunk:
83
+ f.write(chunk)
84
+
85
+ return True
86
+ except (requests.RequestException, IOError) as e:
87
+ print(f"Error downloading file: {e}")
88
+ return False
89
+
90
+
91
+ def install_msix_package(package_path: Path) -> bool:
92
+ """
93
+ Install an MSIX package using PowerShell.
94
+
95
+ Args:
96
+ package_path: Path to the .msixbundle file
97
+
98
+ Returns:
99
+ bool: True if installation successful, False otherwise
100
+ """
101
+ try:
102
+ # Use PowerShell to install the MSIX package
103
+ powershell_cmd = [
104
+ "powershell.exe",
105
+ "-ExecutionPolicy", "Bypass",
106
+ "-Command",
107
+ f"Add-AppxPackage -Path '{package_path}'"
108
+ ]
109
+
110
+ result = subprocess.run(
111
+ powershell_cmd,
112
+ capture_output=True,
113
+ text=True,
114
+ timeout=300 # 5 minutes timeout
115
+ )
116
+
117
+ if result.returncode == 0:
118
+ print("Winget installed successfully!")
119
+ return True
120
+ else:
121
+ print(f"Installation failed with return code {result.returncode}")
122
+ print(f"Error output: {result.stderr}")
123
+ return False
124
+
125
+ except (subprocess.SubprocessError, subprocess.TimeoutExpired) as e:
126
+ print(f"Error installing MSIX package: {e}")
127
+ return False
128
+
129
+
130
+ def ensure_winget_available() -> bool:
131
+ """
132
+ Ensure winget is available on the system. If not available, download and install it.
133
+
134
+ Returns:
135
+ bool: True if winget is available (either was already installed or successfully installed),
136
+ False if installation failed
137
+ """
138
+ # First check if winget is already available
139
+ if is_winget_available():
140
+ print("Winget is already available on the system.")
141
+ return True
142
+
143
+ print("Winget not found. Attempting to download and install...")
144
+
145
+ # Get the latest release URL
146
+ download_url = get_latest_winget_release_url()
147
+ if not download_url:
148
+ print("Could not find the latest winget release URL.")
149
+ return False
150
+
151
+ print(f"Found latest winget release: {download_url}")
152
+
153
+ # Create temporary directory for download
154
+ with tempfile.TemporaryDirectory() as temp_dir:
155
+ temp_path = Path(temp_dir)
156
+
157
+ # Extract filename from URL
158
+ filename = download_url.split("/")[-1]
159
+ if not filename.endswith(".msixbundle"):
160
+ filename = "winget-latest.msixbundle"
161
+
162
+ package_path = temp_path / filename
163
+
164
+ # Download the package
165
+ print(f"Downloading winget package to {package_path}...")
166
+ if not download_file(download_url, package_path):
167
+ print("Failed to download winget package.")
168
+ return False
169
+
170
+ print("Download completed. Installing winget...")
171
+
172
+ # Install the package
173
+ if not install_msix_package(package_path):
174
+ print("Failed to install winget package.")
175
+ return False
176
+
177
+ # Verify installation
178
+ if is_winget_available():
179
+ print("Winget has been successfully installed and is now available!")
180
+ return True
181
+ else:
182
+ print("Installation completed but winget is still not available. You may need to restart your terminal or add it to PATH.")
183
+ return False
184
+
185
+
186
+ if __name__ == "__main__":
187
+ # Example usage
188
+ print("=== Winget Installation ===\n")
189
+
190
+ if ensure_winget_available():
191
+ print("Winget is ready to use!")
192
+ else:
193
+ print("Failed to ensure winget availability.")
194
+