machineconfig 4.98__py3-none-any.whl → 4.99__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 (49) hide show
  1. machineconfig/cluster/remote/script_execution.py +1 -1
  2. machineconfig/jobs/installer/custom/gh.py +68 -39
  3. machineconfig/jobs/installer/custom/hx.py +1 -1
  4. machineconfig/jobs/installer/custom_dev/bypass_paywall.py +1 -1
  5. machineconfig/jobs/installer/custom_dev/wezterm.py +68 -35
  6. machineconfig/jobs/python/python_ve_symlink.py +1 -1
  7. machineconfig/profile/create.py +59 -40
  8. machineconfig/profile/shell.py +1 -1
  9. machineconfig/scripts/python/cloud_copy.py +1 -1
  10. machineconfig/scripts/python/cloud_mount.py +1 -1
  11. machineconfig/scripts/python/cloud_repo_sync.py +1 -1
  12. machineconfig/scripts/python/croshell.py +1 -1
  13. machineconfig/scripts/python/devops_add_identity.py +1 -1
  14. machineconfig/scripts/python/devops_add_ssh_key.py +1 -1
  15. machineconfig/scripts/python/devops_backup_retrieve.py +1 -1
  16. machineconfig/scripts/python/devops_update_repos.py +135 -65
  17. machineconfig/scripts/python/dotfile.py +41 -15
  18. machineconfig/scripts/python/fire_jobs.py +1 -1
  19. machineconfig/scripts/python/ftpx.py +101 -49
  20. machineconfig/scripts/python/helpers/helpers2.py +2 -2
  21. machineconfig/scripts/python/helpers/helpers4.py +1 -1
  22. machineconfig/scripts/python/helpers/repo_sync_helpers.py +1 -1
  23. machineconfig/scripts/python/mount_nfs.py +13 -7
  24. machineconfig/scripts/python/mount_ssh.py +1 -1
  25. machineconfig/scripts/python/repos.py +7 -6
  26. machineconfig/scripts/python/repos_helper_action.py +1 -1
  27. machineconfig/scripts/python/repos_helper_clone.py +4 -4
  28. machineconfig/scripts/python/repos_helper_record.py +1 -1
  29. machineconfig/scripts/python/sessions.py +5 -1
  30. machineconfig/scripts/python/share_terminal.py +13 -6
  31. machineconfig/scripts/python/start_slidev.py +1 -1
  32. machineconfig/scripts/python/wsl_windows_transfer.py +1 -1
  33. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +1 -1
  34. machineconfig/utils/code.py +1 -1
  35. machineconfig/utils/installer.py +1 -1
  36. machineconfig/utils/installer_utils/installer_abc.py +1 -1
  37. machineconfig/utils/installer_utils/installer_class.py +1 -1
  38. machineconfig/utils/links.py +1 -1
  39. machineconfig/utils/path_helper.py +1 -1
  40. machineconfig/utils/scheduler.py +1 -1
  41. {machineconfig-4.98.dist-info → machineconfig-4.99.dist-info}/METADATA +1 -1
  42. {machineconfig-4.98.dist-info → machineconfig-4.99.dist-info}/RECORD +48 -49
  43. machineconfig/cluster/templates/utils.py +0 -51
  44. /machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
  45. /machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
  46. /machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
  47. {machineconfig-4.98.dist-info → machineconfig-4.99.dist-info}/WHEEL +0 -0
  48. {machineconfig-4.98.dist-info → machineconfig-4.99.dist-info}/entry_points.txt +0 -0
  49. {machineconfig-4.98.dist-info → machineconfig-4.99.dist-info}/top_level.txt +0 -0
@@ -127,7 +127,7 @@
127
127
  # ⏱️ Total execution time: {delta}
128
128
  # 🔍 Error message: {params.error_message}
129
129
  # 📂 Results located at: {res_folder.collapseuser().as_posix()}
130
- # ═════════════════════════════════════════════════════════════════
130
+ # ════════════════════════════════════════════════════════════════
131
131
  # """)
132
132
 
133
133
  # # Capture exec_times as string for the readme
@@ -3,6 +3,10 @@
3
3
  import platform
4
4
  import subprocess
5
5
  from typing import Optional
6
+
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+
6
10
  from machineconfig.utils.installer_utils.installer_class import Installer
7
11
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
8
12
 
@@ -27,72 +31,97 @@ config_dict: InstallerData = {
27
31
  }
28
32
 
29
33
 
34
+ console = Console()
35
+
36
+
30
37
  def main(version: Optional[str]):
31
- print(f"""
32
- {"═" * 150}
33
- 🔱 GITHUB CLI INSTALLER | Command line tool for GitHub
34
- 💻 Platform: {platform.system()}
35
- 🔄 Version: {"latest" if version is None else version}
36
- {"═" * 150}
37
- """)
38
+ console.print(
39
+ Panel.fit(
40
+ "\n".join(
41
+ [
42
+ "[bold magenta]GitHub CLI Installer[/bold magenta]",
43
+ f"💻 Platform: {platform.system()}",
44
+ f"🔄 Version: {version or 'latest'}",
45
+ ]
46
+ ),
47
+ title="🔱 GitHub CLI",
48
+ border_style="magenta",
49
+ padding=(1, 2),
50
+ )
51
+ )
38
52
 
39
53
  _ = version
40
54
  inst = Installer(installer_data=config_dict)
41
- print("""📦 INSTALLATION | Installing GitHub CLI base package...""")
55
+ console.print("[bold cyan]📦 INSTALLATION | Installing GitHub CLI base package...[/bold cyan]")
42
56
  inst.install(version=version)
43
57
 
44
- print(f"""
45
- {"─" * 150}
46
- 🤖 GITHUB COPILOT | Setting up GitHub Copilot CLI extension
47
- {"" * 150}
48
- """)
58
+ console.print(
59
+ Panel.fit(
60
+ "🤖 GITHUB COPILOT | Setting up GitHub Copilot CLI extension",
61
+ title="Extension Setup",
62
+ border_style="cyan",
63
+ )
64
+ )
49
65
 
50
66
  if platform.system() == "Windows":
51
- print("""
52
- 🪟 WINDOWS SETUP | Configuring GitHub CLI for Windows...
53
- """)
67
+ console.print(
68
+ Panel.fit(
69
+ "🪟 WINDOWS SETUP | Configuring GitHub CLI for Windows...",
70
+ border_style="blue",
71
+ title="Platform Setup",
72
+ )
73
+ )
54
74
  program = "gh extension install github/gh-copilot"
55
75
  elif platform.system() in ["Linux", "Darwin"]:
56
76
  system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
57
- print(f"""
58
- 🐧 {system_name} SETUP | Configuring GitHub CLI for {platform.system()}...
59
- """)
77
+ console.print(
78
+ Panel.fit(
79
+ f"🐧 {system_name} SETUP | Configuring GitHub CLI for {platform.system()}...",
80
+ border_style="blue",
81
+ title="Platform Setup",
82
+ )
83
+ )
60
84
  program = """
61
85
  gh extension install github/gh-copilot
62
86
  """
63
87
  else:
64
88
  error_msg = f"Unsupported platform: {platform.system()}"
65
- print(f"""
66
- {"⚠️" * 20}
67
- ❌ ERROR | {error_msg}
68
- {"⚠️" * 20}
69
- """)
89
+ console.print(
90
+ Panel.fit(
91
+ f"❌ ERROR | {error_msg}",
92
+ title="Unsupported Platform",
93
+ border_style="red",
94
+ )
95
+ )
70
96
  raise NotImplementedError(error_msg)
71
97
 
72
98
  program += """
73
99
  gh auth login --with-token $HOME/dotfiles/creds/git/gh_token.txt
74
100
  """
75
- print("""
76
- 🔐 AUTHENTICATION | Setting up GitHub authentication with token...
77
- """)
101
+ console.print("[bold]🔐 AUTHENTICATION | Setting up GitHub authentication with token...[/bold]")
78
102
 
79
- print("""
80
- 🔄 EXECUTING | Running GitHub Copilot extension installation and authentication...
81
- """)
103
+ console.print("[bold]🔄 EXECUTING | Running GitHub Copilot extension installation and authentication...[/bold]")
82
104
  try:
83
105
  subprocess.run(program, shell=True, text=True, check=True)
84
- print("✅ Command executed successfully")
106
+ console.print("[green]✅ Command executed successfully[/green]")
85
107
  except subprocess.CalledProcessError as e:
86
- print(f"❌ Command failed with exit code {e.returncode}")
108
+ console.print(f"❌ [red]Command failed with exit code {e.returncode}[/red]")
87
109
  raise
88
110
 
89
- print(f"""
90
- {"═" * 150}
91
- ✅ SUCCESS | GitHub CLI installation completed
92
- 🚀 GitHub Copilot CLI extension installed
93
- 🔑 Authentication configured with token
94
- {"═" * 150}
95
- """)
111
+ console.print(
112
+ Panel.fit(
113
+ "\n".join(
114
+ [
115
+ "✅ SUCCESS | GitHub CLI installation completed",
116
+ "🚀 GitHub Copilot CLI extension installed",
117
+ "🔑 Authentication configured with token",
118
+ ]
119
+ ),
120
+ title="Installation Complete",
121
+ border_style="green",
122
+ padding=(1, 2),
123
+ )
124
+ )
96
125
 
97
126
 
98
127
  if __name__ == "__main__":
@@ -2,7 +2,7 @@
2
2
  Installers do not add runtime files to the machine, hence this script.
3
3
  """
4
4
 
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
5
+ from machineconfig.utils.path_extended import PathExtended
6
6
  from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
7
7
  from typing import Optional
8
8
  import platform
@@ -6,7 +6,7 @@ from rich import box
6
6
  from rich.console import Console
7
7
  from rich.panel import Panel
8
8
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
9
- from machineconfig.utils.path_extended import PathExtended as PathExtended
9
+ from machineconfig.utils.path_extended import PathExtended
10
10
 
11
11
 
12
12
  # config_dict: InstallerData = {
@@ -4,37 +4,61 @@ import platform
4
4
  import subprocess
5
5
  from typing import Optional
6
6
 
7
+ from rich.console import Console
8
+ from rich.panel import Panel
9
+
7
10
  from machineconfig.utils.schemas.installer.installer_types import InstallerData
8
11
 
9
12
 
10
13
  # config_dict: InstallerData = {"appName": "Wezterm", "repoURL": "CMD", "doc": "Modern, GPU-accelerated terminal emulator"}
11
14
 
12
15
 
16
+ console = Console()
17
+
18
+
13
19
  def main(installer_data: InstallerData, version: Optional[str]):
14
20
  _ = installer_data
15
- print(f"""
16
- {"═" * 150}
17
- 🖥️ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator
18
- 💻 Platform: {platform.system()}
19
- 🔄 Version: {"latest" if version is None else version}
20
- {"═" * 150}
21
- """)
21
+ console.print(
22
+ Panel.fit(
23
+ "\n".join(
24
+ [
25
+ "🖥️ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator",
26
+ f"💻 Platform: {platform.system()}",
27
+ f"🔄 Version: {version or 'latest'}",
28
+ ]
29
+ ),
30
+ title="WezTerm Setup",
31
+ border_style="magenta",
32
+ padding=(1, 2),
33
+ )
34
+ )
22
35
 
23
36
  _ = version
24
37
  if platform.system() == "Windows":
25
38
  error_msg = "WezTerm installation not supported on Windows through this installer"
26
- print(f"""
27
- {"⚠️" * 20}
28
- ❌ ERROR | {error_msg}
29
- 💡 TIP: Please download and install manually from the WezTerm website
30
- {"⚠️" * 20}
31
- """)
39
+ console.print(
40
+ Panel.fit(
41
+ "\n".join(
42
+ [
43
+ f" ERROR | {error_msg}",
44
+ "💡 TIP: Please download and install manually from the WezTerm website",
45
+ ]
46
+ ),
47
+ title="Unsupported Platform",
48
+ border_style="red",
49
+ padding=(1, 2),
50
+ )
51
+ )
32
52
  raise NotImplementedError(error_msg)
33
53
  elif platform.system() in ["Linux", "Darwin"]:
34
54
  system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
35
- print(f"""
36
- 🐧 {system_name} SETUP | Installing WezTerm terminal emulator...
37
- """)
55
+ console.print(
56
+ Panel.fit(
57
+ f"🐧 {system_name} SETUP | Installing WezTerm terminal emulator...",
58
+ title="Platform Setup",
59
+ border_style="cyan",
60
+ )
61
+ )
38
62
  import machineconfig.jobs.installer as module
39
63
  from pathlib import Path
40
64
 
@@ -44,31 +68,40 @@ def main(installer_data: InstallerData, version: Optional[str]):
44
68
  program = "brew install --cask wezterm"
45
69
  else:
46
70
  error_msg = f"Unsupported platform: {platform.system()}"
47
- print(f"""
48
- {"⚠️" * 20}
49
- ❌ ERROR | {error_msg}
50
- {"⚠️" * 20}
51
- """)
71
+ console.print(
72
+ Panel.fit(
73
+ f"❌ ERROR | {error_msg}",
74
+ title="Unsupported Platform",
75
+ border_style="red",
76
+ )
77
+ )
52
78
  raise NotImplementedError(error_msg)
53
79
 
54
- print(f"""
55
- {"═" * 150}
56
- ℹ️ INFO | WezTerm Features:
57
- ⚡ GPU-accelerated rendering
58
- 🎨 Full color emoji support
59
- 🧩 Multiplexing with panes and tabs
60
- ⚙️ Lua configuration
61
- 📦 Cross-platform support
62
- 🔌 Plugin system
63
- {"═" * 150}
64
- """)
80
+ console.print(
81
+ Panel(
82
+ "\n".join(
83
+ [
84
+ "ℹ️ INFO | WezTerm Features:",
85
+ "⚡ GPU-accelerated rendering",
86
+ "🎨 Full color emoji support",
87
+ "🧩 Multiplexing with panes and tabs",
88
+ "⚙️ Lua configuration",
89
+ "📦 Cross-platform support",
90
+ "🔌 Plugin system",
91
+ ]
92
+ ),
93
+ title="Why WezTerm?",
94
+ border_style="magenta",
95
+ padding=(1, 2),
96
+ )
97
+ )
65
98
 
66
- print("🔄 EXECUTING | Running WezTerm installation...")
99
+ console.print("[bold]🔄 EXECUTING | Running WezTerm installation...[/bold]")
67
100
  try:
68
101
  subprocess.run(program, shell=True, text=True, check=True)
69
- print("✅ WezTerm installation completed successfully")
102
+ console.print("[green]✅ WezTerm installation completed successfully[/green]")
70
103
  except subprocess.CalledProcessError as e:
71
- print(f"❌ Installation failed with exit code {e.returncode}")
104
+ console.print(f"❌ [red]Installation failed with exit code {e.returncode}[/red]")
72
105
  raise
73
106
 
74
107
 
@@ -4,7 +4,7 @@ from rich import box
4
4
  from rich.console import Console
5
5
  from rich.panel import Panel
6
6
 
7
- from machineconfig.utils.path_extended import PathExtended as PathExtended
7
+ from machineconfig.utils.path_extended import PathExtended
8
8
 
9
9
 
10
10
  def main() -> None:
@@ -5,8 +5,11 @@ This script Takes away all config files from the computer, place them in one dir
5
5
  """
6
6
 
7
7
  from rich.console import Console
8
+ from rich.panel import Panel
9
+ from rich.pretty import Pretty
10
+ from rich.text import Text
8
11
 
9
- from machineconfig.utils.path_extended import PathExtended as PathExtended
12
+ from machineconfig.utils.path_extended import PathExtended
10
13
  from machineconfig.utils.links import symlink_func, symlink_copy
11
14
  from machineconfig.utils.options import choose_from_options
12
15
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT, REPO_ROOT
@@ -23,6 +26,8 @@ system = platform.system() # Linux or Windows
23
26
  ERROR_LIST: list[Any] = [] # append to this after every exception captured.
24
27
  SYSTEM = system.lower()
25
28
 
29
+ console = Console()
30
+
26
31
 
27
32
  def get_other_systems(current_system: str) -> list[str]:
28
33
  all_systems = ["linux", "windows", "darwin"]
@@ -76,17 +81,28 @@ def apply_mapper(choice: Optional[str] = None):
76
81
  else:
77
82
  is_admin = False
78
83
  if not is_admin:
79
- print(f"""
80
- {"*" * 80}
81
- ⚠️ WARNING: Administrator privileges required
82
- {"*" * 80}
83
- """)
84
+ warning_body = "\n".join([
85
+ "[bold yellow]Administrator privileges required[/]",
86
+ "Run the terminal as admin and try again to avoid repeated elevation prompts.",
87
+ ])
88
+ console.print(
89
+ Panel.fit(
90
+ warning_body,
91
+ title="⚠️ Permission Needed",
92
+ border_style="yellow",
93
+ padding=(1, 2),
94
+ )
95
+ )
84
96
  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.")
85
97
  elif choice_selected == "all":
86
- print(f"""
87
- 🔍 Processing all program keys:
88
- {program_keys}
89
- """)
98
+ console.print(
99
+ Panel(
100
+ Pretty(program_keys),
101
+ title="🔍 Processing All Program Keys",
102
+ border_style="cyan",
103
+ padding=(1, 2),
104
+ )
105
+ )
90
106
  pass # i.e. program_keys = program_keys
91
107
  else:
92
108
  program_keys = [choice_selected]
@@ -94,7 +110,7 @@ def apply_mapper(choice: Optional[str] = None):
94
110
  program_keys = choice_selected
95
111
 
96
112
  for program_key in program_keys:
97
- print(f"\n🔄 Processing {program_key} symlinks...")
113
+ console.rule(f"🔄 Processing [bold]{program_key}[/] symlinks", style="cyan")
98
114
  for file_key, file_map in symlink_mapper[program_key].items():
99
115
  this = PathExtended(file_map["this"])
100
116
  to_this = PathExtended(file_map["to_this"].replace("REPO_ROOT", REPO_ROOT.as_posix()).replace("LIBRARY_ROOT", LIBRARY_ROOT.as_posix()))
@@ -103,67 +119,70 @@ def apply_mapper(choice: Optional[str] = None):
103
119
  for a_target in to_this.expanduser().search("*"):
104
120
  symlink_func(this=this.joinpath(a_target.name), to_this=a_target, prioritize_to_this=prioritize_to_this)
105
121
  except Exception as ex:
106
- print(f"❌ Config error: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
122
+ console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
107
123
  if "copy" in file_map:
108
124
  try:
109
125
  symlink_copy(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
110
126
  except Exception as ex:
111
- print(f"❌ Config error: {program_key} | {file_key} | {ex}")
127
+ console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | {ex}")
112
128
  else:
113
129
  try:
114
130
  symlink_func(this=this, to_this=to_this, prioritize_to_this=prioritize_to_this)
115
131
  except Exception as ex:
116
- print(f"❌ Config error: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
132
+ console.print(f"❌ [red]Config error[/red]: {program_key} | {file_key} | missing keys 'this ==> to_this'. {ex}")
117
133
 
118
134
  if program_key == "ssh" and system == "Linux": # permissions of ~/dotfiles/.ssh should be adjusted
119
135
  try:
120
- print("\n🔒 Setting secure permissions for SSH files...")
136
+ console.print("\n[bold]🔒 Setting secure permissions for SSH files...[/bold]")
121
137
  subprocess.run("chmod 700 ~/.ssh/", check=True)
122
138
  subprocess.run("chmod 700 ~/dotfiles/creds/.ssh/", check=True) # may require sudo
123
139
  subprocess.run("chmod 600 ~/dotfiles/creds/.ssh/*", check=True)
124
- print("✅ SSH permissions set successfully")
140
+ console.print("[green]✅ SSH permissions set successfully[/green]")
125
141
  except Exception as e:
126
142
  ERROR_LIST.append(e)
127
- print(f"❌ Error setting SSH permissions: {e}")
143
+ console.print(f"❌ [red]Error setting SSH permissions[/red]: {e}")
128
144
 
129
145
  if system == "Linux":
130
- print("\n📜 Setting executable permissions for scripts...")
146
+ console.print("\n[bold]📜 Setting executable permissions for scripts...[/bold]")
131
147
  subprocess.run(f"chmod +x {LIBRARY_ROOT.joinpath(f'scripts/{system.lower()}')} -R", shell=True, capture_output=True, text=True)
132
- print("✅ Script permissions updated")
148
+ console.print("[green]✅ Script permissions updated[/green]")
133
149
 
134
150
  if len(ERROR_LIST) > 0:
135
- print(f"""
136
- {"*" * 80}
137
- ❗ ERRORS ENCOUNTERED DURING PROCESSING
138
- {"*" * 80}
139
- {ERROR_LIST}
140
- {"*" * 80}
141
- """)
151
+ console.print(
152
+ Panel(
153
+ Pretty(ERROR_LIST),
154
+ title=" Errors Encountered During Processing",
155
+ border_style="red",
156
+ padding=(1, 2),
157
+ )
158
+ )
142
159
  else:
143
- print(f"""
144
- {"*" * 80}
145
- ✅ All symlinks created successfully!
146
- {"*" * 80}
147
- """)
160
+ console.print(
161
+ Panel.fit(
162
+ Text("✅ All symlinks created successfully!", justify="center"),
163
+ title="Symlink Creation Complete",
164
+ border_style="green",
165
+ )
166
+ )
148
167
 
149
168
 
150
169
  def main_symlinks():
151
- console = Console()
152
- print("\n")
170
+ console.print("")
153
171
  console.rule("[bold blue]🔗 CREATING SYMLINKS 🔗")
154
172
  apply_mapper(choice="all")
155
173
 
156
174
 
157
175
  def main_profile():
158
- console = Console()
159
- print("\n")
176
+ console.print("")
160
177
  console.rule("[bold green]🐚 CREATING SHELL PROFILE 🐚")
161
178
  create_default_shell_profile()
162
- print(f"""
163
- {"=" * 80}
164
- ✨ Configuration setup complete! ✨
165
- {"=" * 80}
166
- """)
179
+ console.print(
180
+ Panel.fit(
181
+ Text("✨ Configuration setup complete! ✨", justify="center"),
182
+ title="Profile Setup",
183
+ border_style="green",
184
+ )
185
+ )
167
186
 
168
187
 
169
188
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  """shell"""
2
2
 
3
- from machineconfig.utils.path_extended import PathExtended as PathExtended
3
+ from machineconfig.utils.path_extended import PathExtended
4
4
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
5
 
6
6
  import platform
@@ -2,7 +2,7 @@
2
2
  CC
3
3
  """
4
4
 
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
5
+ from machineconfig.utils.path_extended import PathExtended
6
6
  from tenacity import retry, stop_after_attempt, wait_chain, wait_fixed
7
7
  import getpass
8
8
  import os
@@ -2,7 +2,7 @@
2
2
 
3
3
  from machineconfig.utils.options import choose_from_options
4
4
  from machineconfig.utils.io import read_ini
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
5
+ from machineconfig.utils.path_extended import PathExtended
6
6
 
7
7
  import platform
8
8
  from typing import Optional, Annotated
@@ -3,7 +3,7 @@
3
3
  from pathlib import Path
4
4
  import git
5
5
  from machineconfig.utils.io import read_ini
6
- from machineconfig.utils.path_extended import PathExtended as PathExtended
6
+ from machineconfig.utils.path_extended import PathExtended
7
7
  from machineconfig.utils.terminal import Response
8
8
 
9
9
  from machineconfig.scripts.python.helpers.repo_sync_helpers import fetch_dotfiles
@@ -6,7 +6,7 @@ croshell
6
6
 
7
7
  from typing import Annotated, Optional
8
8
  import typer
9
- from machineconfig.utils.path_extended import PathExtended as PathExtended
9
+ from machineconfig.utils.path_extended import PathExtended
10
10
  from machineconfig.utils.accessories import randstr
11
11
 
12
12
  from machineconfig.utils.options import choose_from_options
@@ -1,7 +1,7 @@
1
1
  """ID"""
2
2
 
3
3
  # from platform import system
4
- from machineconfig.utils.path_extended import PathExtended as PathExtended
4
+ from machineconfig.utils.path_extended import PathExtended
5
5
  from machineconfig.utils.options import choose_from_options
6
6
  from rich.panel import Panel
7
7
  from rich.text import Text
@@ -3,7 +3,7 @@
3
3
  from platform import system
4
4
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT
5
5
  from machineconfig.utils.options import choose_from_options
6
- from machineconfig.utils.path_extended import PathExtended as PathExtended
6
+ from machineconfig.utils.path_extended import PathExtended
7
7
  from rich.console import Console
8
8
  from rich.panel import Panel
9
9
  from rich import box # Import box
@@ -2,7 +2,7 @@
2
2
 
3
3
  # import subprocess
4
4
  from machineconfig.utils.io import read_ini
5
- from machineconfig.utils.path_extended import PathExtended as PathExtended
5
+ from machineconfig.utils.path_extended import PathExtended
6
6
  from machineconfig.utils.source_of_truth import LIBRARY_ROOT, DEFAULTS_PATH
7
7
  from machineconfig.utils.code import print_code
8
8
  from machineconfig.utils.options import choose_cloud_interactively, choose_from_options