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

@@ -28,14 +28,6 @@ SYSTEM = system.lower()
28
28
  console = Console()
29
29
 
30
30
 
31
- def get_other_systems(current_system: str) -> list[str]:
32
- all_systems = ["linux", "windows", "darwin"]
33
- return [s for s in all_systems if s != current_system.lower()]
34
-
35
-
36
- OTHER_SYSTEMS = get_other_systems(SYSTEM)
37
-
38
-
39
31
  class Base(TypedDict):
40
32
  this: str
41
33
  to_this: str
@@ -54,7 +46,19 @@ def read_mapper() -> MapperFileData:
54
46
  mapper_data: dict[str, dict[str, Base]] = tomllib.loads(LIBRARY_ROOT.joinpath("profile/mapper.toml").read_text(encoding="utf-8"))
55
47
  public: dict[str, list[ConfigMapper]] = {}
56
48
  private: dict[str, list[ConfigMapper]] = {}
49
+ # def get_other_systems(current_system: str) -> list[str]:
50
+ # all_systems = ["linux", "windows", "darwin"]
51
+ # return [s for s in all_systems if s != current_system.lower()]
52
+ # OTHER_SYSTEMS = get_other_systems(SYSTEM)
57
53
  for program_key, program_map in mapper_data.items():
54
+ parts = program_key.split("_")
55
+ if len(parts) > 1:
56
+ if parts[-1].lower() == "windows" and SYSTEM != "windows":
57
+ # console.print(f"Skipping Windows-only program mapping: {program_key}")
58
+ continue
59
+ elif parts[-1].lower() == "linux" and SYSTEM == "windows":
60
+ # console.print(f"Skipping Linux-only program mapping: {program_key}")
61
+ continue
58
62
  for file_name, file_base in program_map.items():
59
63
  file_map: ConfigMapper = {
60
64
  "file_name": file_name,
@@ -79,7 +83,9 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
79
83
  method: Literal["symlink", "copy"]
80
84
  ):
81
85
  operation_records: list[OperationRecord] = []
82
-
86
+ print(f"Working with {len(mapper_data)} programs from mapper data.")
87
+ if len(mapper_data) == 1:
88
+ print(mapper_data)
83
89
  import os
84
90
  if os.name == "nt":
85
91
  import ctypes
@@ -102,17 +108,14 @@ def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
102
108
  )
103
109
  )
104
110
  raise RuntimeError("Run terminal as admin and try again, otherwise, there will be too many popups for admin requests and no chance to terminate the program.")
105
-
106
111
  for program_name, program_files in mapper_data.items():
107
112
  console.rule(f"🔄 Processing [bold]{program_name}[/] symlinks", style="cyan")
108
113
  for a_mapper in program_files:
109
114
  config_file_default_path = PathExtended(a_mapper["config_file_default_path"])
110
115
  self_managed_config_file_path = PathExtended(a_mapper["self_managed_config_file_path"].replace("CONFIG_ROOT", CONFIG_ROOT.as_posix()))
111
-
112
116
  # Determine whether to use copy or symlink
113
117
  use_copy = method == "copy" or a_mapper.get("copy", False)
114
-
115
- if "contents" in a_mapper:
118
+ if "contents" in a_mapper and a_mapper["contents"]:
116
119
  targets = list(self_managed_config_file_path.expanduser().search("*"))
117
120
  for a_target in targets:
118
121
  operation_type = "contents_copy" if use_copy else "contents_symlink"
@@ -167,10 +167,10 @@ config = {this = '~/.config/pudb/pudb.cfg', to_this = 'CONFIG_ROOT/settings/pudb
167
167
  # AllUsersAllHosts = {this = 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1', to_this = '~/dotfiles/shells/windows_powershell/AllUsersAllHosts/profile.ps1'}
168
168
 
169
169
  [pwsh_windows]
170
- CurrentUserCurrentHost = {this = '~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
171
- CurrentUserAllHosts = {this = '~/Documents/PowerShell/profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/profile.ps1'}
172
- AllUsersCurrentHost = {this = 'C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
173
- AllUsersAllHosts = {this = 'C:\Program Files\PowerShell\7\profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
170
+ # CurrentUserCurrentHost = {this = '~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
171
+ # CurrentUserAllHosts = {this = '~/Documents/PowerShell/profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/profile.ps1'}
172
+ # AllUsersCurrentHost = {this = 'C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
173
+ # AllUsersAllHosts = {this = 'C:\Program Files\PowerShell\7\profile.ps1', to_this = 'CONFIG_ROOT/settings/shells/pwsh/init.ps1'}
174
174
 
175
175
  [nushell_windows]
176
176
  config = {this = '~/AppData/Roaming/nushell/config.nu', to_this = 'CONFIG_ROOT/settings/shells/nushell/config.nu'}
@@ -51,9 +51,8 @@ def display_header() -> None:
51
51
  ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
52
52
  """
53
53
 
54
- import machineconfig
55
54
  version = get_machineconfig_version()
56
- title = f"✨ MACHINE CONFIGURATION v{version}, @ {machineconfig.__file__} ✨"
55
+ title = f"✨ MACHINE CONFIGURATION v{version} ✨"
57
56
  subtitle = "🎯 Your digital life manager. Dotfiles, data, code and more."
58
57
  bug_report = "🐛 Please report bugs to Alex Al-Saffar @ https://github.com/thisismygitrepo/machineconfig"
59
58
 
@@ -7,7 +7,7 @@ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to
7
7
  from pathlib import Path
8
8
  count_lines_path = Path(count_lines.__file__)
9
9
  # --project $HOME/code/ machineconfig --group plot
10
- cmd = f"""uv run --python 3.13 --with machineconfig[plot] {count_lines_path} analyze-over-time {repo_path}"""
10
+ cmd = f"""uv run --python 3.14 --with machineconfig[plot] {count_lines_path} analyze-over-time {repo_path}"""
11
11
  from machineconfig.utils.code import run_shell_script
12
12
  run_shell_script(cmd)
13
13
 
@@ -1,28 +1,28 @@
1
1
  #!/bin/bash
2
2
  . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
3
3
  devops() {
4
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig devops "$@"
4
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig devops "$@"
5
5
  }
6
6
  agents() {
7
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig agents "$@"
7
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig agents "$@"
8
8
  }
9
9
  cloud() {
10
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig cloud "$@"
10
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig cloud "$@"
11
11
  }
12
12
  croshell() {
13
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig croshell "$@"
13
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig croshell "$@"
14
14
  }
15
15
  fire() {
16
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig fire "$@"
16
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig fire "$@"
17
17
  }
18
18
  ftpx() {
19
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig ftpx "$@"
19
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig ftpx "$@"
20
20
  }
21
21
  kill_process() {
22
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig kill_process "$@"
22
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig kill_process "$@"
23
23
  }
24
24
  sessions() {
25
- "$HOME/.local/bin/uv" run --python 3.13 --with machineconfig sessions "$@"
25
+ "$HOME/.local/bin/uv" run --python 3.14 --with machineconfig sessions "$@"
26
26
  }
27
27
 
28
28
  echo "devops command is now defined in this shell session."
@@ -181,7 +181,6 @@ def install_clis(clis_names: list[str]):
181
181
 
182
182
 
183
183
  def install_if_missing(which: str):
184
- # uv run --python 3.13 --with machineconfig devops install ttyd
185
184
  from machineconfig.utils.installer_utils.installer_abc import check_tool_exists
186
185
  exists = check_tool_exists(which)
187
186
  if exists:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.48
3
+ Version: 5.51
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -9,7 +9,7 @@ Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issue
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: License :: OSI Approved :: Apache Software License
11
11
  Classifier: Operating System :: OS Independent
12
- Requires-Python: <3.14,>=3.13
12
+ Requires-Python: >=3.13
13
13
  Description-Content-Type: text/markdown
14
14
  Requires-Dist: cryptography>=44.0.2
15
15
  Requires-Dist: fire>=0.7.0
@@ -27,6 +27,7 @@ Requires-Dist: pyjson5>=1.6.9
27
27
  Requires-Dist: questionary>=2.1.1
28
28
  Requires-Dist: typer-slim>=0.19.2
29
29
  Requires-Dist: euporie>=2.8.14
30
+ Requires-Dist: typer>=0.19.2
30
31
  Provides-Extra: windows
31
32
  Requires-Dist: pywin32; extra == "windows"
32
33
  Provides-Extra: plot
@@ -95,10 +95,10 @@ machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
95
95
  machineconfig/profile/backup.toml,sha256=Hb25sIdKVvLqOF62NgiOpGZxd45I6IhsNHu623RtfQQ,766
96
96
  machineconfig/profile/bash_shell_profiles.md,sha256=mio0xkMTwO-F3fikWIfgcdQaPCmQrmkxJMNtZsTe9TI,514
97
97
  machineconfig/profile/create_helper.py,sha256=_iNeuwmcEGTx6sf_f40JKHfOCuJRZQRpyE8Fo_3Q6bI,1519
98
- machineconfig/profile/create_links.py,sha256=_Tr9Kl8OodU8c45a7f-f8qQecrJZClfZJl7ZoRat_60,13638
98
+ machineconfig/profile/create_links.py,sha256=K7T2bq08GZP9fo2NzCOE0pojAgQDe0Ofe7fNfbQlQpw,14219
99
99
  machineconfig/profile/create_links_export.py,sha256=OEmuJE-F7FZX5xvOl1rqJzHg_BWtPKCiWdrq4RPOobs,3173
100
100
  machineconfig/profile/create_shell_profile.py,sha256=ifsEAK90ovvY7ftyxuY5-Xh8f2JuQYX7IMYUXp6x2Sw,9538
101
- machineconfig/profile/mapper.toml,sha256=oXWCWF8yyVHC8FncFqTPiRGgdHAhgGbpS4tYAjKlw3I,12886
101
+ machineconfig/profile/mapper.toml,sha256=_zy_Og2cSFeFDISHCInKm7ReZUNCbwibNHYwr0TY01E,12894
102
102
  machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
103
103
  machineconfig/profile/records/linux/apps_summary_report.csv,sha256=pw9djvaRUPalKDLn2sl3odcbD2_Zx3aEupsQ8UPfaaY,2738
104
104
  machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0ZgKGIZi8bstFoGyyGTxeS8p2PtOj0,5634
@@ -127,7 +127,7 @@ machineconfig/scripts/python/devops.py,sha256=SilJAQXAPBKXjF91zcpJV9YRS721M5UPbX
127
127
  machineconfig/scripts/python/devops_navigator.py,sha256=JYRKB8pVK5gyxcsrEYPC4IvUeX7rP4eMIkaattt8_t0,35090
128
128
  machineconfig/scripts/python/fire_jobs.py,sha256=l2qByVK2rxWDUGFliU3HYwrtAI1XsUvOtcGLX4DUA5U,13689
129
129
  machineconfig/scripts/python/ftpx.py,sha256=dFFCRKygZvNXkkwpo6vZgJmUv7buTNoVLLKT9wNp0Wc,9323
130
- machineconfig/scripts/python/interactive.py,sha256=jgnvCAhk5_D60skraQBIqJzH6v8ULvN5Jq420z3TOWQ,11831
130
+ machineconfig/scripts/python/interactive.py,sha256=IRveYja_9omEEhRyM1M6_SlljPY2Eo_GGoK9tTi1nsk,11778
131
131
  machineconfig/scripts/python/sessions.py,sha256=lO_aTnh7T05XoCa8Ox-ROAWBKMtbo-DZzlFDUqzSipM,8716
132
132
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
133
  machineconfig/scripts/python/ai/generate_files.py,sha256=Vfjgd0skJu-WTgqUxmOVFzaNMfSFBaFmY5oGGVY7MZY,2860
@@ -224,7 +224,7 @@ machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=534zlYe3Xsr0mqegA
224
224
  machineconfig/scripts/python/repos_helpers/action.py,sha256=t6x9K43Uy7r5aRpdODfsN-5UoMrYXEG2cVw-Y8l9prw,14847
225
225
  machineconfig/scripts/python/repos_helpers/clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
226
226
  machineconfig/scripts/python/repos_helpers/count_lines.py,sha256=ZLEajCLmlFFY969BehabqGOB9_kkpATO3Lt09L7KULk,15968
227
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=EpmexLYJ4uhiTMnI402nJkNn-iNN88CMciZOrXqWG90,560
227
+ machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=LtD0A1D-zWwwcPt4KtGUQie-iAxl3CojTHySzPmBbDc,560
228
228
  machineconfig/scripts/python/repos_helpers/entrypoint.py,sha256=C-_D03abE0TkVCJ4jZoliUMAhRRkZ77mcwMoPOuieJQ,2827
229
229
  machineconfig/scripts/python/repos_helpers/record.py,sha256=3T5VmMbvywScZhTW2j4cGLK0T2LSWxKfnXkRTxkuLP4,10994
230
230
  machineconfig/scripts/python/repos_helpers/sync.py,sha256=CLLWy2n2gY9beXPF-mblOQ6R7cKoenkJjMiX7tHQsBk,3091
@@ -352,7 +352,7 @@ machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKG
352
352
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
353
353
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
354
354
  machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
355
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=MWVH5wzMJuk2WnsfJeui1JbC5HI2Ux4875d1kO-5tp4,926
355
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=X-ONeYJ1LWK6RfhmiJuN28CpUJPY0eBEo7M74HXbtcA,926
356
356
  machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
357
357
  machineconfig/setup_windows/apps.ps1,sha256=G5GqZ9G0aiQr_A-HaahtRdzpaTTdW6n3DRKMZWDTSPc,11214
358
358
  machineconfig/setup_windows/uv.ps1,sha256=mzkFJUQ57dukVQtY7WqAQIVUDMcixnkir8aNM_TYrl4,350
@@ -396,15 +396,15 @@ machineconfig/utils/files/ouch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
396
396
  machineconfig/utils/files/ouch/decompress.py,sha256=7qPaEkMerBBXzeZyFn8hLODHZJv1aty-yGgwBxLgVys,1413
397
397
  machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
398
398
  machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
399
- machineconfig/utils/installer_utils/installer.py,sha256=jJKfP5kttLRxYQnZ8KzLU9_cWm7uT6B4KdXwa7fQLC0,9763
399
+ machineconfig/utils/installer_utils/installer.py,sha256=A1lAZNUFS1_MyJbpFdomiPbKCLVBknmWbwojs0C7F7Y,9695
400
400
  machineconfig/utils/installer_utils/installer_abc.py,sha256=ZoMtINHD9cHEu4R5SYUWgHLTAqo4F2a33pBrEOGX4zs,11693
401
401
  machineconfig/utils/installer_utils/installer_class.py,sha256=br_13DTNl49_pDG2CpmUtNgyK96FEjiOd24LM029EYM,18223
402
402
  machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=Xbi59rU35AzR7HZZ8ZQ8aUu_FjSgijNqc8Sme0rCk2Y,2050
403
403
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
404
404
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
405
405
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
406
- machineconfig-5.48.dist-info/METADATA,sha256=qZhpHqE4_yJoY8G2pSshCCLUE4nI1YZmTuZeg9NjEBQ,3111
407
- machineconfig-5.48.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
- machineconfig-5.48.dist-info/entry_points.txt,sha256=z7b9guivf0GSKUG6b8ALgbDoRg2LuPfkGP_p-PxgX9g,469
409
- machineconfig-5.48.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
410
- machineconfig-5.48.dist-info/RECORD,,
406
+ machineconfig-5.51.dist-info/METADATA,sha256=Z8sXl72KGYDWNNgl3bN7zg_fBk_0rd4_G6piv6tVHxg,3134
407
+ machineconfig-5.51.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
+ machineconfig-5.51.dist-info/entry_points.txt,sha256=z7b9guivf0GSKUG6b8ALgbDoRg2LuPfkGP_p-PxgX9g,469
409
+ machineconfig-5.51.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
410
+ machineconfig-5.51.dist-info/RECORD,,