machineconfig 4.99__tar.gz → 5.11__tar.gz
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.
- {machineconfig-4.99/src/machineconfig.egg-info → machineconfig-5.11}/PKG-INFO +21 -1
- {machineconfig-4.99 → machineconfig-5.11}/README.md +20 -0
- {machineconfig-4.99 → machineconfig-5.11}/pyproject.toml +7 -2
- machineconfig-5.11/src/machineconfig/scripts/python/count_lines.py +343 -0
- machineconfig-5.11/src/machineconfig/scripts/python/count_lines_frontend.py +12 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops.py +4 -2
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/interactive.py +1 -1
- machineconfig-5.11/src/machineconfig/scripts/python/repos.py +219 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_record.py +3 -1
- {machineconfig-4.99 → machineconfig-5.11/src/machineconfig.egg-info}/PKG-INFO +21 -1
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/SOURCES.txt +2 -2
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/entry_points.txt +0 -1
- machineconfig-4.99/src/machineconfig/scripts/linux/repos +0 -2
- machineconfig-4.99/src/machineconfig/scripts/python/repos.py +0 -87
- machineconfig-4.99/src/machineconfig/scripts/windows/repos.ps1 +0 -1
- {machineconfig-4.99 → machineconfig-5.11}/MANIFEST.in +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/setup.cfg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/cloud_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/data_transfer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/distribute.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/file_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/job_params.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/loader_runner.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/remote_machine.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_cloud.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_cluster.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/run_remote.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/script_execution.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/remote/script_notify_upon_completion.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/ffile.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/enhanced_command_runner.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/load_balancer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/utils/load_balancer_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_local.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_local_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_remote.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_remote_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_local.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_local_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_remote.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_remote_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/templates/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/cluster/templates/cli_trogon.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom/gh.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom/hx.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/alacritty.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/brave.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/bypass_paywall.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/code.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/cursor.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/espanso.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/goes.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/lvim.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/nerdfont.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/redis.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/wezterm.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/custom_dev/winget.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/installer_data.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/brave.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/docker.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/docker_start.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/edge.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/nerdfont.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/ngrok.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/q.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/redis.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/vscode.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/warp-cli.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/linux_scripts/wezterm.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/package_groups.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/cli_agents.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/lid.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/linux/msc/network.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/check_installations.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/create_bootable_media.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/python_cargo_build_share.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/python_ve_symlink.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/tasks.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/vscode/api.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/python/vscode/sync_code.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/start_terminal.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/jobs/windows/startup_file.cmd +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/logger.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/create.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/generic/shares.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/linux/apps_summary_report.csv +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/linux/apps_summary_report.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/windows/apps_summary_report.csv +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/records/windows/apps_summary_report.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/profile/shell.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/cloud/init.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/agents +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/choose_wezterm_theme +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_copy +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_mount +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_repo_sync +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/cloud_sync +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/croshell +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/devops +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fire +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/ftpx +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzf2g +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfag +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzffg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/fzfrga +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/gh_models +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/initai +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/kill_process +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_drive +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_nfs +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_nw_drive +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/mount_smb +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/scheduler +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/sessions +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_cloud.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_nfs +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/share_smb +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/skrg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_docker +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_slidev +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/start_terminals +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/switch_ip +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/warp-cli.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/wifi_conn +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/linux/z_ls +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/agents.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/generate_files.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/initai.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/_shared.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/claude/claude.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/cline/cline.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/chatmodes/deepResearch.chatmode.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/privacy.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/copilot/prompts/research-report-skeleton.prompt.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/crush.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/crush.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/crush/privacy.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/cursor/cursors.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/gemini/gemini.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/gemini/settings.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/generic.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ai/solutions/opencode/opencode.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/choose_wezterm_theme.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_copy.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_manager.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_mount.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_repo_sync.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/cloud_sync.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/croshell.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_add_identity.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_add_ssh_key.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_backup_retrieve.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/devops_update_repos.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/dotfile.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_help_launch.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_help_search.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_helper_types.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_agents_load_balancer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_args_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_route_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/fire_jobs_streamlit_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/ftpx.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/get_zellij_cmd.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/gh_models.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/cloud_helpers.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers2.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers4.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/helpers5.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_nfs.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_nw_drive.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/mount_ssh.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/onetimeshare.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/pomodoro.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_action.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_clone.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/repos_helper_update.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/scheduler.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/sessions.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/share_terminal.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/snapshot.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/start_slidev.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/start_terminals.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/t4.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/viewer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/viewer_template.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/wifi_conn.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/python/wsl_windows_transfer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/agents.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_copy.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_mount.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/cloud_sync.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/croshell.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/devops.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/dotfile.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fire.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/ftpx.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfb.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfg.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/fzfrga.bat +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/gpt.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/grep.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/initai.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/kill_process.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_nfs.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_nw.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_smb.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/mount_ssh.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/nano.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/pomodoro.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/reload_path.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/scheduler.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/sessions.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_cloud.cmd +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_nfs.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/share_smb.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/snapshot.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/start_slidev.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/start_terminals.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/unlock_bitlocker.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wifi_conn.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/br.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/brootcd.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/broot/conf.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/glow/glow.yml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/gromit-mpx/gromit-mpx.cfg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/helix/config.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/helix/languages.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keras/keras.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/espanso/config/default.yml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/espanso/match/base.yml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/open.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/colors +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/cleaner.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/lfcd.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/previewer.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/exe/previewer_archive.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/icons +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/linux/lfrc +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_tere.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_zoxide.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/cd_zoxide2.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/colors +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/icons +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/leftpane_previewer.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/lfcd.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/lfrc +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/mkdir.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/mkfile.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/previewer.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lf/windows/tst.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.flake8 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.mypy.ini +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.pylintrc +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/linters/.ruff.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/linux/config.lua +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/config.lua +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/lvim/windows/lua/user/custom_config.lua +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/mprocs/windows/mprocs.yaml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/mprocs/windows/other +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/pistol/pistol.conf +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/presenterm/config.yaml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/procs/.procs.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/pudb/pudb.cfg +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/rofi/config.rasi +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/rofi/config_default.rasi +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/alacritty/alacritty.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/bash/init.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/hyper/.hyper.js +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/kitty/kitty.conf +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/nushell/config.nu +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/nushell/env.nu +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/pwsh/init.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/starship/starship.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/vtm/settings.xml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/wezterm/wezterm.lua +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/shells/wt/settings.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/streamlit/config.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/svim/linux/init.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/svim/windows/init.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tere/terecd.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tere/terecd.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tmux/.tmate.conf +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/tmux/.tmux.conf +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/wsl/.wslconfig +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/keymap.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/theme.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/yazi/yazi.toml +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zed/settings.json +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/commands/monitor +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/commands/standard_panes +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/config.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/config.orig.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/hist +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/panes.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/st.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/st2.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/settings/zellij/layouts/stacked_panes.kdl +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/nix/cli_installation.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/android.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/interactive.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/others/docker.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/others/obs.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/interactive.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/accessories.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ai/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ai/generate_file_checklist.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/cloud/onedrive/setup_oauth.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/cloud/onedrive/transaction.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/code.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/__init__.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/github_release_bulk.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer_abc.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/installer_utils/installer_class.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/io.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/links.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/notifications.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/options.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/path_extended.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/path_helper.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/procs.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/scheduler.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/scheduling.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/fire_agents/fire_agents_input.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/installer/installer_types.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/layouts/layout_types.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/schemas/repos/repos_types.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/source_of_truth.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ssh.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/terminal.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/upgrade_packages.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig/utils/ve.py +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/dependency_links.txt +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/requires.txt +0 -0
- {machineconfig-4.99 → machineconfig-5.11}/src/machineconfig.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machineconfig
|
|
3
|
-
Version:
|
|
3
|
+
Version: 5.11
|
|
4
4
|
Summary: Dotfiles management package
|
|
5
5
|
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -161,6 +161,26 @@ curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/ma
|
|
|
161
161
|
short `curl bit.ly/cfgcroshelllinux -L | bash`
|
|
162
162
|
|
|
163
163
|
|
|
164
|
+
## Repository management CLI
|
|
165
|
+
|
|
166
|
+
The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
|
|
167
|
+
|
|
168
|
+
* Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
|
|
169
|
+
* These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
|
|
170
|
+
* Sync workflows live under `sync`:
|
|
171
|
+
* `record` captures the current machine state into a `repos.json`.
|
|
172
|
+
* `capture` clones repos from a specification without changing commits.
|
|
173
|
+
* `checkout` aligns repositories to commits stored in the spec.
|
|
174
|
+
* `checkout-to-branch` switches repositories to the tracked branch.
|
|
175
|
+
* Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
|
|
176
|
+
|
|
177
|
+
Example:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
|
|
181
|
+
python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
|
|
182
|
+
```
|
|
183
|
+
|
|
164
184
|
# Author
|
|
165
185
|
Alex Al-Saffar. [email](mailto:programmer@usa.com)
|
|
166
186
|
|
|
@@ -127,6 +127,26 @@ curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/ma
|
|
|
127
127
|
short `curl bit.ly/cfgcroshelllinux -L | bash`
|
|
128
128
|
|
|
129
129
|
|
|
130
|
+
## Repository management CLI
|
|
131
|
+
|
|
132
|
+
The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
|
|
133
|
+
|
|
134
|
+
* Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
|
|
135
|
+
* These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
|
|
136
|
+
* Sync workflows live under `sync`:
|
|
137
|
+
* `record` captures the current machine state into a `repos.json`.
|
|
138
|
+
* `capture` clones repos from a specification without changing commits.
|
|
139
|
+
* `checkout` aligns repositories to commits stored in the spec.
|
|
140
|
+
* `checkout-to-branch` switches repositories to the tracked branch.
|
|
141
|
+
* Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
|
|
142
|
+
|
|
143
|
+
Example:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
|
|
147
|
+
python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
|
|
148
|
+
```
|
|
149
|
+
|
|
130
150
|
# Author
|
|
131
151
|
Alex Al-Saffar. [email](mailto:programmer@usa.com)
|
|
132
152
|
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "machineconfig"
|
|
9
|
-
version = "
|
|
9
|
+
version = "5.11"
|
|
10
10
|
description = "Dotfiles management package"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = {text = "Apache 2.0"}
|
|
@@ -64,7 +64,6 @@ cloud_mount = "machineconfig.scripts.python.cloud_mount:arg_parser"
|
|
|
64
64
|
cloud_repo_sync = "machineconfig.scripts.python.cloud_repo_sync:args_parser"
|
|
65
65
|
cloud_sync = "machineconfig.scripts.python.cloud_sync:arg_parser"
|
|
66
66
|
ftpx = "machineconfig.scripts.python.ftpx:main_from_parser"
|
|
67
|
-
repos = "machineconfig.scripts.python.repos:main_from_parser"
|
|
68
67
|
|
|
69
68
|
start_slidev = "machineconfig.scripts.python.start_slidev:arg_parser"
|
|
70
69
|
kill_process = "machineconfig.utils.procs:main"
|
|
@@ -111,3 +110,9 @@ dev = [
|
|
|
111
110
|
docs = [
|
|
112
111
|
"pdoc>=15.0.2",
|
|
113
112
|
]
|
|
113
|
+
plot = [
|
|
114
|
+
"kaleido>=1.1.0",
|
|
115
|
+
"numpy>=2.3.3",
|
|
116
|
+
"plotly>=6.3.0",
|
|
117
|
+
"polars>=1.33.1",
|
|
118
|
+
]
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
from git import Repo
|
|
5
|
+
from collections import defaultdict
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from rich.progress import track
|
|
10
|
+
import polars as pl
|
|
11
|
+
import plotly.graph_objects as go
|
|
12
|
+
import plotly.express as px
|
|
13
|
+
import typer
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from typing import Any, Dict, List, Optional, Union
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
app = typer.Typer()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def count_lines_in_commit(commit: "Any") -> int:
|
|
24
|
+
total_lines = 0
|
|
25
|
+
for file in commit.stats.files:
|
|
26
|
+
if str(file).endswith(".py"):
|
|
27
|
+
blob = commit.tree / file
|
|
28
|
+
total_lines += len(blob.data_stream.read().decode("utf-8").splitlines())
|
|
29
|
+
return total_lines
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def count_historical_loc(repo_path: str) -> int:
|
|
33
|
+
repo = Repo(repo_path)
|
|
34
|
+
file_line_counts: "Dict[str, int]" = defaultdict(int)
|
|
35
|
+
total_commits: int = sum(1 for _ in repo.iter_commits())
|
|
36
|
+
print(f"Total commits to process: {total_commits}")
|
|
37
|
+
for i, commit in enumerate(repo.iter_commits(), 1):
|
|
38
|
+
if i % 100 == 0 or i == total_commits:
|
|
39
|
+
print(f"Processing commit {i}/{total_commits} ({i / total_commits:.1%})")
|
|
40
|
+
try:
|
|
41
|
+
# Handle initial commits that have no parents
|
|
42
|
+
if not commit.parents:
|
|
43
|
+
# For initial commit, count all lines in Python files
|
|
44
|
+
for file in commit.stats.files:
|
|
45
|
+
if str(file).endswith(".py"):
|
|
46
|
+
file_line_counts[str(file)] += commit.stats.files[file]["insertions"]
|
|
47
|
+
else:
|
|
48
|
+
# For commits with parents, use stats
|
|
49
|
+
for file in commit.stats.files:
|
|
50
|
+
if str(file).endswith(".py"):
|
|
51
|
+
file_line_counts[str(file)] += commit.stats.files[file]["insertions"]
|
|
52
|
+
except Exception:
|
|
53
|
+
# If stats fail (e.g., corrupted parent), skip this commit
|
|
54
|
+
print(f"Warning: Could not get stats for commit {commit.hexsha[:8]}, skipping")
|
|
55
|
+
continue
|
|
56
|
+
|
|
57
|
+
print(f"\nProcessed files: {len(file_line_counts)}")
|
|
58
|
+
return sum(file_line_counts.values())
|
|
59
|
+
|
|
60
|
+
def count_python_lines(commit: "Any") -> int:
|
|
61
|
+
"""Count total lines in Python files for a specific commit"""
|
|
62
|
+
total_lines = 0
|
|
63
|
+
try:
|
|
64
|
+
for blob in commit.tree.traverse():
|
|
65
|
+
if blob.path.endswith(".py"):
|
|
66
|
+
try:
|
|
67
|
+
content = blob.data_stream.read().decode("utf-8")
|
|
68
|
+
total_lines += len(content.splitlines())
|
|
69
|
+
except Exception as _e:
|
|
70
|
+
continue
|
|
71
|
+
except Exception as _e:
|
|
72
|
+
return 0
|
|
73
|
+
return total_lines
|
|
74
|
+
def get_default_branch(repo: Repo) -> str:
|
|
75
|
+
"""Get the default branch name of the repository"""
|
|
76
|
+
try:
|
|
77
|
+
_ = repo.refs["main"]
|
|
78
|
+
return "main" # First try 'main'
|
|
79
|
+
except IndexError:
|
|
80
|
+
try:
|
|
81
|
+
_ = repo.refs["master"]
|
|
82
|
+
return "master" # Then try 'master'
|
|
83
|
+
except IndexError:
|
|
84
|
+
return repo.head.reference.name # If neither exists, get the branch the HEAD is pointing to
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@app.command()
|
|
88
|
+
def count_historical(repo_path: str = typer.Argument(..., help="Path to the git repository")):
|
|
89
|
+
"""Count total historical lines of Python code in the repository."""
|
|
90
|
+
print(f"Analyzing repository: {repo_path}")
|
|
91
|
+
total_loc: int = count_historical_loc(repo_path)
|
|
92
|
+
print(f"\nTotal historical lines of Python code: {total_loc}")
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@app.command()
|
|
96
|
+
def analyze_over_time(repo_path: str = typer.Argument(..., help="Path to the git repository")):
|
|
97
|
+
"""Analyze a git repository to track Python code size over time with visualization."""
|
|
98
|
+
repo: Repo = Repo(repo_path)
|
|
99
|
+
branch_name: str = get_default_branch(repo)
|
|
100
|
+
print(f"🔍 Using branch: {branch_name}")
|
|
101
|
+
commit_data: "List[Dict[str, Any]]" = []
|
|
102
|
+
print("⏳ Analyzing commits...")
|
|
103
|
+
try:
|
|
104
|
+
commits = list(repo.iter_commits(branch_name))
|
|
105
|
+
from datetime import timezone
|
|
106
|
+
|
|
107
|
+
for commit in track(commits, description="Processing commits..."):
|
|
108
|
+
commit_data.append({"hash": commit.hexsha, "dtmExit": datetime.fromtimestamp(commit.committed_date, tz=timezone.utc), "lines": count_python_lines(commit)})
|
|
109
|
+
except Exception as e:
|
|
110
|
+
print(f"❌ Error analyzing commits: {str(e)}")
|
|
111
|
+
return
|
|
112
|
+
df = pl.DataFrame(commit_data)
|
|
113
|
+
df = df.sort("dtmExit")
|
|
114
|
+
# Create interactive plotly figure with dark theme and all bells and whistles
|
|
115
|
+
fig = go.Figure()
|
|
116
|
+
# Add line chart with gradient fill and sparkle effect
|
|
117
|
+
fig.add_trace(go.Scatter(x=df["dtmExit"], y=df["lines"], mode="lines", line={"width": 3, "color": "#00b4ff"}, fill="tozeroy", fillcolor="rgba(0, 180, 255, 0.2)", name="Lines of Code", hovertemplate="<b>Date:</b> %{x}<br><b>Lines:</b> %{y:,}<extra></extra>"))
|
|
118
|
+
# Add markers for significant points (min, max, last)
|
|
119
|
+
min_idx = df["lines"].arg_min()
|
|
120
|
+
max_idx = df["lines"].arg_max()
|
|
121
|
+
min_point = df.slice(min_idx, 1).to_dicts()[0] if min_idx is not None else {}
|
|
122
|
+
max_point = df.slice(max_idx, 1).to_dicts()[0] if max_idx is not None else {}
|
|
123
|
+
last_point = df.slice(-1, 1).to_dicts()[0]
|
|
124
|
+
|
|
125
|
+
# Add markers for significant points
|
|
126
|
+
fig.add_trace(
|
|
127
|
+
go.Scatter(
|
|
128
|
+
x=[min_point["dtmExit"], max_point["dtmExit"], last_point["dtmExit"]],
|
|
129
|
+
y=[min_point["lines"], max_point["lines"], last_point["lines"]],
|
|
130
|
+
mode="markers",
|
|
131
|
+
marker={"size": [10, 14, 12], "color": ["#ff4f4f", "#4fff4f", "#4f4fff"], "line": {"width": 2, "color": "white"}, "symbol": ["circle", "star", "diamond"]},
|
|
132
|
+
name="Key Points",
|
|
133
|
+
hovertemplate="<b>%{text}</b><br>Date: %{x}<br>Lines: %{y:,}<extra></extra>",
|
|
134
|
+
text=[f"🔽 Min: {min_point['lines']:,} lines", f"🔼 Max: {max_point['lines']:,} lines", f"📊 Current: {last_point['lines']:,} lines"],
|
|
135
|
+
)
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# Add annotation only for current point
|
|
139
|
+
# annotations = [
|
|
140
|
+
# {"x": last_point['date'], "y": last_point['lines'], "text": f"📊 Current: {last_point['lines']:,} lines", "showarrow": True, "arrowhead": 2, "arrowsize": 1,
|
|
141
|
+
# "arrowwidth": 2, "arrowcolor": "#ffffff", "font": {"size": 14, "color": "#ffffff"}, "bgcolor": "#00b4ff", "bordercolor": "#ffffff",
|
|
142
|
+
# "borderwidth": 1, "borderpad": 4, "ax": 40, "ay": -40}
|
|
143
|
+
# ]
|
|
144
|
+
|
|
145
|
+
# Update layout with dark theme and customizations
|
|
146
|
+
fig.update_layout(
|
|
147
|
+
title={"text": "✨ Python Code Base Size Over Time ✨", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
|
|
148
|
+
xaxis_title="Date 📅",
|
|
149
|
+
yaxis_title="Lines of Code 📝",
|
|
150
|
+
hovermode="closest",
|
|
151
|
+
template="plotly_dark",
|
|
152
|
+
plot_bgcolor="rgba(25, 25, 35, 1)",
|
|
153
|
+
paper_bgcolor="rgba(15, 15, 25, 1)",
|
|
154
|
+
font={"family": "Arial, sans-serif", "size": 14, "color": "white"}, # annotations=annotations,
|
|
155
|
+
autosize=True,
|
|
156
|
+
height=700,
|
|
157
|
+
margin={"l": 80, "r": 80, "t": 100, "b": 80},
|
|
158
|
+
xaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickfont": {"size": 12}},
|
|
159
|
+
yaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickformat": ",", "tickfont": {"size": 12}},
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
# Add range slider for date selection
|
|
163
|
+
fig.update_xaxes(rangeslider_visible=True, rangeslider_thickness=0.05)
|
|
164
|
+
|
|
165
|
+
# Save as interactive HTML and static image
|
|
166
|
+
plot_dir = Path.home().joinpath("tmp_results", "tmp_images", Path(repo_path).name)
|
|
167
|
+
plot_dir.mkdir(parents=True, exist_ok=True)
|
|
168
|
+
|
|
169
|
+
html_path = plot_dir.joinpath("code_size_evolution.html")
|
|
170
|
+
png_path = plot_dir.joinpath("code_size_evolution.png")
|
|
171
|
+
|
|
172
|
+
fig.write_html(html_path, include_plotlyjs="cdn")
|
|
173
|
+
fig.write_image(png_path, width=1200, height=700, scale=2)
|
|
174
|
+
|
|
175
|
+
print(f"🖼️ Interactive plot saved as {html_path}")
|
|
176
|
+
print(f"🖼️ Static image saved as {png_path}")
|
|
177
|
+
# Print statistics
|
|
178
|
+
print("\n📊 Repository Statistics:")
|
|
179
|
+
print(f"📚 Total commits analyzed: {len(df)}")
|
|
180
|
+
print(f"🔙 Initial line count: {df['lines'][-1]:,}")
|
|
181
|
+
print(f"🔜 Final line count: {df['lines'][0]:,}")
|
|
182
|
+
print(f"📈 Net change: {df['lines'][0] - df['lines'][-1]:,} lines")
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def _print_python_files_by_size_impl(repo_path: str) -> "Union[pl.DataFrame, Exception]":
|
|
186
|
+
try:
|
|
187
|
+
import os
|
|
188
|
+
if not os.path.exists(repo_path):
|
|
189
|
+
return ValueError(f"Repository path does not exist: {repo_path}")
|
|
190
|
+
# Initialize data storage
|
|
191
|
+
file_data: "List[Dict[str, Union[str, int]]]" = []
|
|
192
|
+
|
|
193
|
+
# Walk through the repository
|
|
194
|
+
for root, _, files in os.walk(repo_path):
|
|
195
|
+
# Skip .git directory and other hidden directories
|
|
196
|
+
if ".git" in Path(root).parts or any(part.startswith(".") for part in Path(root).parts):
|
|
197
|
+
continue
|
|
198
|
+
|
|
199
|
+
for file in files:
|
|
200
|
+
if file.endswith(".py"):
|
|
201
|
+
file_path = os.path.join(root, file)
|
|
202
|
+
try:
|
|
203
|
+
# Count lines in the file
|
|
204
|
+
with open(file_path, "r", encoding="utf-8", errors="replace") as f:
|
|
205
|
+
line_count = sum(1 for _ in f)
|
|
206
|
+
|
|
207
|
+
# Make path relative to repo_path for better display
|
|
208
|
+
rel_path = os.path.relpath(file_path, repo_path)
|
|
209
|
+
file_data.append({"filename": rel_path, "lines": line_count})
|
|
210
|
+
except Exception as e:
|
|
211
|
+
print(f"⚠️ Warning: Could not read {file_path}: {str(e)}")
|
|
212
|
+
continue
|
|
213
|
+
|
|
214
|
+
# Check if any files were found
|
|
215
|
+
if not file_data:
|
|
216
|
+
return ValueError("❌ No Python files found in the repository")
|
|
217
|
+
|
|
218
|
+
# Convert to DataFrame
|
|
219
|
+
df = pl.DataFrame(file_data)
|
|
220
|
+
|
|
221
|
+
# Sort DataFrame by line count (descending)
|
|
222
|
+
df = df.sort("lines", descending=True)
|
|
223
|
+
df = df.filter(pl.col("lines") > 0) # Filter out empty files
|
|
224
|
+
|
|
225
|
+
# Add total count
|
|
226
|
+
total_lines = int(df["lines"].sum())
|
|
227
|
+
file_count: int = len(df)
|
|
228
|
+
|
|
229
|
+
# Print the DataFrame
|
|
230
|
+
print("\n📊 Python Files Line Count (sorted max to min):")
|
|
231
|
+
print(df)
|
|
232
|
+
print(f"\n📁 Total Python files: {file_count}")
|
|
233
|
+
print(f"📝 Total lines of Python code: {total_lines:,}")
|
|
234
|
+
|
|
235
|
+
# Create visualizations with Plotly
|
|
236
|
+
# Only visualize top files (too many files make the chart unreadable)
|
|
237
|
+
top_n: int = min(20, len(df))
|
|
238
|
+
top_files_df = df.head(top_n).clone()
|
|
239
|
+
|
|
240
|
+
# Calculate percentage of total for top files
|
|
241
|
+
top_files_df = top_files_df.with_columns((pl.col("lines") / total_lines * 100).round(1).alias("percentage"))
|
|
242
|
+
|
|
243
|
+
# Shorten filenames for better display
|
|
244
|
+
import os
|
|
245
|
+
|
|
246
|
+
top_files_df = top_files_df.with_columns(pl.col("filename").map_elements(lambda x: os.path.basename(x) if len(x) > 25 else x, return_dtype=pl.Utf8).alias("short_name"))
|
|
247
|
+
|
|
248
|
+
# Create bar chart with hover info showing full path
|
|
249
|
+
fig = go.Figure()
|
|
250
|
+
|
|
251
|
+
# Add bars with gradient color based on line count
|
|
252
|
+
fig.add_trace(
|
|
253
|
+
go.Bar(
|
|
254
|
+
x=top_files_df["short_name"].to_list(),
|
|
255
|
+
y=top_files_df["lines"].to_list(),
|
|
256
|
+
text=[f"{x}%" for x in top_files_df["percentage"].to_list()],
|
|
257
|
+
textposition="auto",
|
|
258
|
+
hovertemplate="<b>%{customdata}</b><br>Lines: %{y:,}<br>Percentage: %{text}<extra></extra>",
|
|
259
|
+
customdata=top_files_df["filename"],
|
|
260
|
+
marker={"color": top_files_df["lines"], "colorscale": "Viridis", "showscale": True, "colorbar": {"title": "Lines", "thickness": 20, "tickformat": ","}, "line": {"width": 1, "color": "white"}},
|
|
261
|
+
opacity=0.9,
|
|
262
|
+
)
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# Update layout with dark theme
|
|
266
|
+
fig.update_layout(
|
|
267
|
+
title={"text": f"🏆 Top {top_n} Python Files by Size", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
|
|
268
|
+
xaxis_title="File Name 📄",
|
|
269
|
+
yaxis_title="Lines of Code 📝",
|
|
270
|
+
template="plotly_dark",
|
|
271
|
+
plot_bgcolor="rgba(25, 25, 35, 1)",
|
|
272
|
+
paper_bgcolor="rgba(15, 15, 25, 1)",
|
|
273
|
+
font={"family": "Arial, sans-serif", "size": 14, "color": "white"},
|
|
274
|
+
height=700,
|
|
275
|
+
margin={"l": 80, "r": 80, "t": 100, "b": 100},
|
|
276
|
+
xaxis={"tickangle": 45, "showgrid": False, "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickfont": {"size": 12}},
|
|
277
|
+
yaxis={"showgrid": True, "gridcolor": "rgba(80, 80, 100, 0.2)", "showline": True, "linecolor": "rgba(200, 200, 255, 0.2)", "tickformat": ",", "tickfont": {"size": 12}},
|
|
278
|
+
)
|
|
279
|
+
|
|
280
|
+
# Define pie chart figure before conditionally using it
|
|
281
|
+
fig2: "Optional[go.Figure]" = None
|
|
282
|
+
|
|
283
|
+
# Add pie chart showing distribution
|
|
284
|
+
if len(df) > top_n:
|
|
285
|
+
# Prepare data for pie chart - top files plus "Others"
|
|
286
|
+
others_lines = df.slice(top_n)["lines"].sum()
|
|
287
|
+
pie_labels = list(top_files_df["short_name"]) + ["Others"]
|
|
288
|
+
pie_values = list(top_files_df["lines"]) + [others_lines]
|
|
289
|
+
pie_customdata = list(top_files_df["filename"]) + [f"Other {len(df) - top_n} files"]
|
|
290
|
+
|
|
291
|
+
fig2 = go.Figure()
|
|
292
|
+
fig2.add_trace(go.Pie(labels=pie_labels, values=pie_values, customdata=pie_customdata, textinfo="percent", hovertemplate="<b>%{customdata}</b><br>Lines: %{value:,}<br>Percentage: %{percent}<extra></extra>", marker={"colors": px.colors.sequential.Viridis, "line": {"color": "white", "width": 1}}, hole=0.4, sort=False))
|
|
293
|
+
|
|
294
|
+
fig2.update_layout(
|
|
295
|
+
title={"text": "🍩 Python Code Distribution by File", "y": 0.95, "x": 0.5, "xanchor": "center", "yanchor": "top", "font": {"size": 24, "color": "white"}},
|
|
296
|
+
template="plotly_dark",
|
|
297
|
+
plot_bgcolor="rgba(25, 25, 35, 1)",
|
|
298
|
+
paper_bgcolor="rgba(15, 15, 25, 1)",
|
|
299
|
+
font={"family": "Arial, sans-serif", "size": 14, "color": "white"},
|
|
300
|
+
height=700,
|
|
301
|
+
annotations=[{"text": f"Total<br>{total_lines:,}<br>lines", "x": 0.5, "y": 0.5, "font": {"size": 18, "color": "white"}, "showarrow": False}],
|
|
302
|
+
)
|
|
303
|
+
|
|
304
|
+
# Save visualizations
|
|
305
|
+
plot_dir = Path.home().joinpath("tmp_results", "tmp_images", Path(repo_path).name)
|
|
306
|
+
plot_dir.mkdir(parents=True, exist_ok=True)
|
|
307
|
+
|
|
308
|
+
# Bar chart
|
|
309
|
+
bar_html_path = plot_dir.joinpath("top_files_by_size.html")
|
|
310
|
+
bar_png_path = plot_dir.joinpath("top_files_by_size.png")
|
|
311
|
+
fig.write_html(bar_html_path, include_plotlyjs="cdn")
|
|
312
|
+
fig.write_image(bar_png_path, width=1200, height=700, scale=2)
|
|
313
|
+
|
|
314
|
+
print(f"\n🖼️ Interactive bar chart saved as {bar_html_path}")
|
|
315
|
+
print(f"🖼️ Static bar chart saved as {bar_png_path}")
|
|
316
|
+
|
|
317
|
+
# Pie chart if available
|
|
318
|
+
if fig2 is not None:
|
|
319
|
+
pie_html_path = plot_dir.joinpath("files_distribution_pie.html")
|
|
320
|
+
pie_png_path = plot_dir.joinpath("files_distribution_pie.png")
|
|
321
|
+
fig2.write_html(pie_html_path, include_plotlyjs="cdn")
|
|
322
|
+
fig2.write_image(pie_png_path, width=1200, height=700, scale=2)
|
|
323
|
+
|
|
324
|
+
print(f"🖼️ Interactive pie chart saved as {pie_html_path}")
|
|
325
|
+
print(f"🖼️ Static pie chart saved as {pie_png_path}")
|
|
326
|
+
|
|
327
|
+
return df
|
|
328
|
+
|
|
329
|
+
except Exception as e:
|
|
330
|
+
return Exception(f"❌ Error analyzing repository: {str(e)}")
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
@app.command()
|
|
334
|
+
def print_python_files_by_size(repo_path: str = typer.Argument(..., help="Path to the git repository")):
|
|
335
|
+
"""Print Python files sorted by size with visualizations."""
|
|
336
|
+
result = _print_python_files_by_size_impl(repo_path)
|
|
337
|
+
if isinstance(result, Exception):
|
|
338
|
+
print(f"Error: {result}")
|
|
339
|
+
return
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
if __name__ == "__main__":
|
|
343
|
+
app()
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import typer
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to the git repository")):
|
|
6
|
+
cmd = f"""uv run --python 3.13 --with machineconfig machineconfig.scripts.python.count_lines analyze-over-time {repo_path}"""
|
|
7
|
+
from machineconfig.utils.code import run_script
|
|
8
|
+
run_script(cmd)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
if __name__ == "__main__":
|
|
12
|
+
pass
|
|
@@ -4,13 +4,15 @@ import machineconfig.utils.installer_utils.installer as installer_entry_point
|
|
|
4
4
|
import machineconfig.scripts.python.share_terminal as share_terminal
|
|
5
5
|
import machineconfig.scripts.python.repos as repos
|
|
6
6
|
|
|
7
|
+
from machineconfig import __version__
|
|
7
8
|
import typer
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
app = typer.Typer(help=f"🛠️ DevOps operations @ machineconfig {__version__}", no_args_is_help=True)
|
|
10
12
|
|
|
11
13
|
app.command(name="install", help="📦 Install essential packages")(installer_entry_point.main)
|
|
12
14
|
app.command(name="share-terminal", help="📡 Share terminal via web browser")(share_terminal.main)
|
|
13
|
-
app.
|
|
15
|
+
app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
|
|
14
16
|
|
|
15
17
|
ssh_app = typer.Typer(help="🔐 SSH operations subcommands", no_args_is_help=True)
|
|
16
18
|
app.add_typer(ssh_app, name="ssh")
|
|
@@ -187,7 +187,7 @@ Set-Service -Name sshd -StartupType 'Automatic'"""
|
|
|
187
187
|
if "retrieve_repositories" in selected_options:
|
|
188
188
|
console.print(Panel("📚 [bold bright_magenta]REPOSITORIES[/bold bright_magenta]\n[italic]Project code retrieval[/italic]", border_style="bright_magenta"))
|
|
189
189
|
from machineconfig.scripts.python import repos as module
|
|
190
|
-
module.main(directory=str(Path.home() / "code"),
|
|
190
|
+
module.main(directory=str(Path.home() / "code"), capture=True, cloud="odg1")
|
|
191
191
|
|
|
192
192
|
if "retrieve_data" in selected_options:
|
|
193
193
|
console.print(Panel("💾 [bold bright_cyan]DATA RETRIEVAL[/bold bright_cyan]\n[italic]Backup restoration[/italic]", border_style="bright_cyan"))
|