orch-cli 0.1.0__tar.gz → 0.1.1__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.
- {orch_cli-0.1.0 → orch_cli-0.1.1}/.gitignore +2 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/PKG-INFO +4 -4
- {orch_cli-0.1.0 → orch_cli-0.1.1}/README.md +3 -3
- orch_cli-0.1.1/docs/SUMMARY-EN.md +107 -0
- orch_cli-0.1.1/orch/__init__.py +1 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/pyproject.toml +1 -1
- {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/orch.yml +2 -0
- orch_cli-0.1.0/cli_orchestrator_design.md +0 -247
- orch_cli-0.1.0/implementation_plan.md +0 -99
- orch_cli-0.1.0/orch/__init__.py +0 -1
- orch_cli-0.1.0/task.md +0 -8
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__init__.py +0 -13
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__main__.py +0 -24
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__pip-runner__.py +0 -50
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/__init__.py +0 -18
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/build_env.py +0 -319
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cache.py +0 -290
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/__init__.py +0 -4
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -176
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/base_command.py +0 -231
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1075
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/command_context.py +0 -27
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/index_command.py +0 -170
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main.py +0 -80
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/parser.py +0 -294
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -94
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/req_command.py +0 -329
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/spinners.py +0 -159
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/__init__.py +0 -132
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/cache.py +0 -225
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/check.py +0 -67
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/completion.py +0 -130
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/configuration.py +0 -280
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/debug.py +0 -201
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/download.py +0 -146
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/freeze.py +0 -109
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/hash.py +0 -59
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/help.py +0 -41
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/index.py +0 -139
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/inspect.py +0 -92
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/install.py +0 -783
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/list.py +0 -375
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/search.py +0 -172
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/show.py +0 -217
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -114
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/wheel.py +0 -182
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/configuration.py +0 -383
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/base.py +0 -53
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/installed.py +0 -29
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -158
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -42
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/exceptions.py +0 -809
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/__init__.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/collector.py +0 -494
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1020
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/sources.py +0 -284
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/__init__.py +0 -456
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -172
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -214
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/base.py +0 -81
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/main.py +0 -12
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -128
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/_json.py +0 -84
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/base.py +0 -688
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -85
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -221
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -189
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -301
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/__init__.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/candidate.py +0 -25
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/direct_url.py +0 -224
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/format_control.py +0 -78
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/index.py +0 -28
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/installation_report.py +0 -56
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/link.py +0 -590
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/scheme.py +0 -25
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/search_scope.py +0 -127
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -53
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/target_python.py +0 -121
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/wheel.py +0 -118
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/__init__.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/auth.py +0 -566
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/cache.py +0 -106
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/download.py +0 -187
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/session.py +0 -522
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/utils.py +0 -98
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -62
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/check.py +0 -181
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/freeze.py +0 -258
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -47
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -741
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/prepare.py +0 -732
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/pyproject.py +0 -185
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/__init__.py +0 -90
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/constructors.py +0 -560
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_file.py +0 -574
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_install.py +0 -934
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_set.py +0 -82
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -633
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -597
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -139
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -574
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -823
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -174
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -258
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -81
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -245
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -317
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -244
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compat.py +0 -79
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -188
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/datetime.py +0 -11
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -124
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -80
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/encoding.py +0 -36
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -84
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -149
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -27
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/glibc.py +0 -101
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/hashes.py +0 -147
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/logging.py +0 -347
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/misc.py +0 -772
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/packaging.py +0 -57
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/retry.py +0 -42
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -146
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -245
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -296
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -337
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/urls.py +0 -55
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -104
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/wheel.py +0 -134
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -112
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/git.py +0 -527
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -163
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -324
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -688
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/wheel_builder.py +0 -354
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/__init__.py +0 -116
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -28
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -161
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -74
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -182
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -499
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -119
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -154
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -146
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -4929
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/core.py +0 -114
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -33
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1137
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/database.py +0 -1329
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/index.py +0 -508
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -1295
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -384
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -162
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -1031
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -447
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/util.py +0 -1984
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/version.py +0 -750
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -1100
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1403
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -44
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/codec.py +0 -118
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/compat.py +0 -13
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/core.py +0 -395
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -4245
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -54
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8598
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -55
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -168
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -951
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -15
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_elffile.py +0 -110
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -262
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -85
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_parser.py +0 -354
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -194
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -325
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/metadata.py +0 -804
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -91
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -1009
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -627
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -174
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/version.py +0 -563
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3676
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -627
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -55
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -249
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -292
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -130
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -275
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -16
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -272
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -668
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -70
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -129
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -157
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -108
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -170
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -987
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -685
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -154
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -518
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -160
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -83
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -349
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -185
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -127
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -338
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -963
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -589
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1198
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -72
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -247
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/style.py +0 -203
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -61
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -54
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/token.py +0 -214
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/util.py +0 -324
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -23
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +0 -8
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -330
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -18
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -353
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -179
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -719
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/auth.py +0 -314
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/certs.py +0 -24
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/compat.py +0 -78
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -151
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/help.py +0 -127
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/models.py +0 -1037
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/packages.py +0 -25
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -831
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1096
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -43
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -547
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -170
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -177
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -273
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -454
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -76
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -24
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -270
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -69
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -159
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -662
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -71
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -93
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/align.py +0 -311
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -240
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/bar.py +0 -93
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/box.py +0 -480
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/cells.py +0 -167
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color.py +0 -621
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/console.py +0 -2633
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/control.py +0 -225
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -190
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -37
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -96
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -89
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/json.py +0 -139
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/layout.py +0 -442
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live.py +0 -375
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -112
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/logging.py +0 -289
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/markup.py +0 -251
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/panel.py +0 -312
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -995
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1699
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -223
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -375
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/repr.py +0 -149
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/rule.py +0 -130
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/segment.py +0 -738
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -137
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/status.py +0 -131
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/style.py +0 -796
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -958
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/table.py +0 -1000
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/text.py +0 -1357
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/theme.py +0 -115
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -753
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/tree.py +0 -249
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -11
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -691
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -107
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/py.typed +0 -1
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -36
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -316
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -571
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -66
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -567
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -3641
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -355
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -572
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1140
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -920
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -540
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -191
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -879
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -622
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -504
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/vendor.txt +0 -18
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/py.typed +0 -4
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/AUTHORS.txt +0 -799
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/INSTALLER +0 -1
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/LICENSE.txt +0 -20
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/METADATA +0 -90
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/RECORD +0 -853
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/REQUESTED +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/WHEEL +0 -5
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/entry_points.txt +0 -3
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/top_level.txt +0 -1
- orch_cli-0.1.0/test-project/venv-mock/Scripts/Activate.ps1 +0 -528
- orch_cli-0.1.0/test-project/venv-mock/Scripts/activate +0 -71
- orch_cli-0.1.0/test-project/venv-mock/Scripts/activate.bat +0 -34
- orch_cli-0.1.0/test-project/venv-mock/Scripts/deactivate.bat +0 -22
- orch_cli-0.1.0/test-project/venv-mock/Scripts/pip.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/pip3.12.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/pip3.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/python.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/pythonw.exe +0 -0
- orch_cli-0.1.0/test-project/venv-mock/pyvenv.cfg +0 -5
- orch_cli-0.1.0/walkthrough.md +0 -50
- orch_cli-0.1.0/walkthrough_1.md +0 -30
- {orch_cli-0.1.0 → orch_cli-0.1.1}/.github/workflows/ci.yml +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/.github/workflows/publish.yml +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/LICENSE +0 -0
- /orch_cli-0.1.0/RESUMEN.md → /orch_cli-0.1.1/docs/RESUMEN-ES.md +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/cli.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/config.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/manager.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/orch/state.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/backend/app.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/backend/test_running.txt +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/ui/package.json +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/test-project/ui/server.js +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/tests/test_config.py +0 -0
- {orch_cli-0.1.0 → orch_cli-0.1.1}/tests/test_state.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orch-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: A local development process orchestrator and venv-aware runner
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -15,7 +15,7 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
|
|
16
16
|
[](https://pypi.org/project/orch-cli/)
|
|
17
17
|
[](https://opensource.org/licenses/MIT)
|
|
18
|
-
[](https://github.com/EASYLIFECODE/orch/actions)
|
|
18
|
+
[](https://github.com/EASYLIFECODE/orch-cli/actions)
|
|
19
19
|
|
|
20
20
|
**Orch** is a lightweight, **daemon-less** command-line interface (CLI) tool designed to simplify local development of client-server or multi-service architectures.
|
|
21
21
|
|
|
@@ -47,8 +47,8 @@ pip install orch-cli
|
|
|
47
47
|
|
|
48
48
|
1. Clone the repository:
|
|
49
49
|
```bash
|
|
50
|
-
git clone https://github.com/EASYLIFECODE/orch.git
|
|
51
|
-
cd orch
|
|
50
|
+
git clone https://github.com/EASYLIFECODE/orch-cli.git
|
|
51
|
+
cd orch-cli
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
2. Install in editable development mode:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/orch-cli/)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://github.com/EASYLIFECODE/orch/actions)
|
|
5
|
+
[](https://github.com/EASYLIFECODE/orch-cli/actions)
|
|
6
6
|
|
|
7
7
|
**Orch** is a lightweight, **daemon-less** command-line interface (CLI) tool designed to simplify local development of client-server or multi-service architectures.
|
|
8
8
|
|
|
@@ -34,8 +34,8 @@ pip install orch-cli
|
|
|
34
34
|
|
|
35
35
|
1. Clone the repository:
|
|
36
36
|
```bash
|
|
37
|
-
git clone https://github.com/EASYLIFECODE/orch.git
|
|
38
|
-
cd orch
|
|
37
|
+
git clone https://github.com/EASYLIFECODE/orch-cli.git
|
|
38
|
+
cd orch-cli
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
2. Install in editable development mode:
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Project Summary: CLI Local Orchestrator (`orch`)
|
|
2
|
+
|
|
3
|
+
This document contains a comprehensive summary of the discussions, design decisions, internal architecture, commands, and workflows of **`orch`**, the local orchestration CLI tool designed for developers.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Purpose and Context
|
|
8
|
+
`orch` is a lightweight terminal tool designed to orchestrate the execution of multiple local services (backends, frontends, agents, watchers) under a client-server architecture, without requiring containerization (like Docker) or persistent background daemon services.
|
|
9
|
+
|
|
10
|
+
### Problems it solves:
|
|
11
|
+
* **Multiple terminals**: Avoids having to open multiple PowerShell, CMD, or Bash windows for a single project.
|
|
12
|
+
* **Virtualenv activation**: Automatically and transparently activates the Python virtual environment (`venv`) corresponding to the project.
|
|
13
|
+
* **Centralized logs**: Unifies the outputs of all processes in real-time with colored, readable prefixes.
|
|
14
|
+
* **Background persistence**: Allows running decoupled services in the background of the operating system, freeing up the current console.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. Configuration Model (`orch.yml`)
|
|
19
|
+
The project behavior is defined through a minimalist YAML configuration file located at the project root.
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
project: Windows_Monitor
|
|
23
|
+
|
|
24
|
+
# Global environment configuration
|
|
25
|
+
env:
|
|
26
|
+
type: venv
|
|
27
|
+
path: ./venv-wind_monitor
|
|
28
|
+
variables:
|
|
29
|
+
GLOBAL_TEST_VAR: "orch-is-working"
|
|
30
|
+
|
|
31
|
+
services:
|
|
32
|
+
backend:
|
|
33
|
+
path: ./backend
|
|
34
|
+
command: python app.py
|
|
35
|
+
env:
|
|
36
|
+
BACKEND_PORT: "8000"
|
|
37
|
+
|
|
38
|
+
ui:
|
|
39
|
+
path: ./ui
|
|
40
|
+
command: npm run dev
|
|
41
|
+
|
|
42
|
+
agent:
|
|
43
|
+
path: ./agent
|
|
44
|
+
command: python agent.py
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. Commands and User Experience (UX)
|
|
50
|
+
The project lifecycle is managed through two main workflows:
|
|
51
|
+
|
|
52
|
+
### Workflow A: Active & Interactive Development (Foreground)
|
|
53
|
+
* **Command**: `orch up`
|
|
54
|
+
* **Behavior**: Starts all services sequentially in the current console. Multiplexes the text outputs of all processes in real-time using individual background threads.
|
|
55
|
+
* **Termination**: When pressing `Ctrl+C`, `orch` intercepts the signal and cleanly and recursively terminates all created processes (including Node/Vite sub-processes).
|
|
56
|
+
|
|
57
|
+
### Workflow B: Background Execution (Background / Detached)
|
|
58
|
+
* **Start**: `orch start`
|
|
59
|
+
Spawns sub-processes completely decoupled from the current terminal, silently redirecting their output to `.log` files in `.orch/logs/` and releasing the terminal immediately.
|
|
60
|
+
* **Monitor**: `orch status`
|
|
61
|
+
Queries the local state database and checks the operating system to see if the services are still active, showing a resource table:
|
|
62
|
+
```text
|
|
63
|
+
Project: Windows_Monitor (Services Status)
|
|
64
|
+
┌─────────┬─────────┬───────┬───────┬─────────────┬──────────┐
|
|
65
|
+
│ Service │ Status │ PID │ CPU % │ Memory (MB) │ Uptime │
|
|
66
|
+
├─────────┼─────────┼───────┼───────┼─────────────┼──────────┐
|
|
67
|
+
│ backend │ RUNNING │ 33284 │ 0.0% │ 162.1 MB │ 00:00:06 │
|
|
68
|
+
│ ui │ RUNNING │ 16984 │ 0.0% │ 178.2 MB │ 00:00:06 │
|
|
69
|
+
│ agent │ RUNNING │ 20392 │ 0.0% │ 56.7 MB │ 00:00:06 │
|
|
70
|
+
└─────────┴─────────┴───────┴───────┴─────────────┴──────────┘
|
|
71
|
+
```
|
|
72
|
+
* **Check Logs**: `orch logs` / `orch logs -f`
|
|
73
|
+
Allows reading the last log lines or following them in real-time (multiplexing the queue of multiple log files at once).
|
|
74
|
+
* **Stop**: `orch stop`
|
|
75
|
+
Sends termination OS signals to all background services and cleans up their state registry.
|
|
76
|
+
* **Clean**: `orch clean`
|
|
77
|
+
Stops active services, truncates all log files in the `.orch/logs/` folder to 0 bytes, and resets the state database.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 4. Internal Architecture (Daemon-less)
|
|
82
|
+
|
|
83
|
+
The design of `orch` stands out for being lightweight and reliable thanks to the following technical solutions:
|
|
84
|
+
|
|
85
|
+
### Dynamic Virtual Environment Activation (`venv`)
|
|
86
|
+
`orch` does not execute traditional activation scripts (like `activate.bat` or `activate.sh`). Instead, it calculates the absolute path of the `venv` executables (e.g., `venv/Scripts` on Windows or `venv/bin` on Linux) and **injects it at the beginning of the `PATH` environment variable** of the sub-process. Thus, when the command calls `python`, the operating system naturally and automatically resolves and uses the Python executable from the virtual environment.
|
|
87
|
+
|
|
88
|
+
### Multiplatform Background Persistency (Windows / Linux)
|
|
89
|
+
To ensure processes survive the closing of the developer's terminal independently without requiring a persistent daemon running in the background:
|
|
90
|
+
* **On Windows**: Spawns sub-processes in a decoupled manner using native Windows API flags in `subprocess.Popen`:
|
|
91
|
+
- `CREATE_NEW_CONSOLE (0x00000010)`: Assigns an exclusive console to prevent the process from depending on the parent console.
|
|
92
|
+
- `CREATE_NO_WINDOW (0x08000000)`: Hides the new console to prevent pop-up windows from bothering the user.
|
|
93
|
+
- `CREATE_BREAKAWAY_FROM_JOB (0x01000000)`: Allows the sub-process to escape the limits of the job group of the calling task.
|
|
94
|
+
* **On Linux/macOS**: Uses `start_new_session=True` to decouple the process from the current terminal session.
|
|
95
|
+
* Redirects standard input to `/dev/null` (`DEVNULL`) and diagnostics outputs directly to local log files.
|
|
96
|
+
|
|
97
|
+
### Recycled PID Conflict Prevention
|
|
98
|
+
The `.orch/state.json` file records not only the PID number but also the exact operating system process creation timestamp (`create_time` using the `psutil` library). When running control commands like `status` or `stop`, the current OS process PID is compared with this creation timestamp. If the PID was reassigned to a completely different program after the service closed, `orch` detects it instantly and avoids sending kill signals to the wrong system processes.
|
|
99
|
+
|
|
100
|
+
### State Management
|
|
101
|
+
The state of each service passes through one of the following stages:
|
|
102
|
+
* **`RUNNING`**: The process was started, its PID exists and matches in the system.
|
|
103
|
+
* **`CRASHED`**: The process finished unexpectedly (its PID does not exist in the system, but the user did not run a `stop` command).
|
|
104
|
+
* **`STOPPED`**: The process was terminated intentionally through a stop command (`stop` / `clean`).
|
|
105
|
+
|
|
106
|
+
### Terminal Output Escaping (Rich Markup)
|
|
107
|
+
To prevent terminal outputs from common tools like Vite or Flask (which usually use square brackets and ANSI color codes) from interfering with the formatting engine of `Rich`, all log messages are processed using the `rich.markup.escape()` function. Additionally, the square brackets of the prefixes are protected with escape characters (`\\[`), allowing the colored format of service names to render correctly in any development terminal.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.1"
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
# Propuesta de Diseño: CLI Local Orchestrator (`orch`)
|
|
2
|
-
|
|
3
|
-
Esta propuesta de diseño detalla la arquitectura, el stack tecnológico y el flujo de experiencia de usuario (UX) para **`orch`**, una herramienta de terminal (CLI) diseñada para simplificar el desarrollo local de arquitecturas cliente-servidor y multiservicio sin la sobrecarga de contenedores (Docker).
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Arquitectura Interna
|
|
8
|
-
|
|
9
|
-
Para mantener la herramienta ligera, predecible y fácil de instalar, se propone un diseño **sin demonios (daemonless)**. En lugar de un proceso en segundo plano persistente, la CLI utiliza el sistema de archivos local (`.orch/`) para guardar el estado y orquestar los procesos.
|
|
10
|
-
|
|
11
|
-
```mermaid
|
|
12
|
-
graph TD
|
|
13
|
-
CLI[CLI Command / orch] --> Config[Configuration Loader]
|
|
14
|
-
Config --> Validate[YAML Schema Validator]
|
|
15
|
-
Validate --> Run[Execution Engine]
|
|
16
|
-
|
|
17
|
-
subgraph "Execution & Management"
|
|
18
|
-
Run --> PM[Process Manager]
|
|
19
|
-
PM --> Env[Environment Injector venv/node]
|
|
20
|
-
PM --> ProcTree[Child Process Tree]
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
subgraph "State & Output"
|
|
24
|
-
ProcTree --> LogRouter[Log Router]
|
|
25
|
-
LogRouter --> Console[Console Output foreground]
|
|
26
|
-
LogRouter --> LogFile[Log Files .orch/logs/]
|
|
27
|
-
PM --> StateFile[State Registry .orch/state.json]
|
|
28
|
-
end
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Componentes Core:
|
|
32
|
-
1. **CLI Parser (Interfaz de Usuario)**: Define la gramática de comandos (`up`, `start`, `stop`, `status`, `logs`, `restart`).
|
|
33
|
-
2. **Configuration Loader & Environment Injector**:
|
|
34
|
-
- Detecta y valida el archivo `orch.yml` en la raíz del proyecto.
|
|
35
|
-
- Si se define un entorno virtual (`venv`), calcula la ruta absoluta del ejecutable de Python (p. ej., `venv/Scripts/python.exe` en Windows o `venv/bin/python` en Unix/Linux) e inyecta la carpeta del venv al inicio del `PATH` del subproceso.
|
|
36
|
-
3. **Process Manager (Multiplataforma)**:
|
|
37
|
-
- Lanza los subprocesos de forma no bloqueante utilizando APIs del sistema operativo.
|
|
38
|
-
- En Windows, arranca los procesos con banderas específicas (como `CREATE_NEW_PROCESS_GROUP`) para asegurar que podamos detenerlos limpiamente a ellos y a sus subprocesos hijos.
|
|
39
|
-
- Mantiene un registro de los PIDs activos en `.orch/state.json`.
|
|
40
|
-
4. **Log Router (Enrutador de Logs)**:
|
|
41
|
-
- Redirige `stdout` y `stderr` de cada servicio.
|
|
42
|
-
- **Modo Foreground (`orch up`)**: Intercala logs en tiempo real prefijándolos con el nombre del servicio en colores y enviándolos a la consola.
|
|
43
|
-
- **Modo Background (`orch start`)**: Escribe la salida en archivos separados en `.orch/logs/<servicio>.log`.
|
|
44
|
-
5. **State Registry (`.orch/state.json`)**:
|
|
45
|
-
- Guarda metadatos sobre los procesos en ejecución: PID, comando, fecha de inicio y estado. Esto permite que comandos como `orch stop` o `orch status` consulten qué procesos están activos sin necesitar un servicio en segundo plano corriendo continuamente.
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 2. Stack Tecnológico Recomendado
|
|
50
|
-
|
|
51
|
-
Considerando que el desarrollador trabaja principalmente con **Python** y **Node.js**, existen tres stacks viables. Recomendamos **Python** o **Node.js** para facilitar la extensibilidad por parte del propio usuario.
|
|
52
|
-
|
|
53
|
-
| Criterio | Opción A: Python (Recomendada) | Opción B: Node.js (TypeScript) | Opción C: Rust / Go |
|
|
54
|
-
| :--- | :--- | :--- | :--- |
|
|
55
|
-
| **Tecnología** | Python 3.8+ + `typer` + `rich` | Node.js + `commander` + `execa` | Rust + `clap` + `tokio` |
|
|
56
|
-
| **Binario único** | No (requiere Python instalado) | No (requiere Node/npm) | **Sí** (Binario compilado nativo) |
|
|
57
|
-
| **Gestión de Streams** | Buena | **Excelente** (Async por naturaleza) | Excelente |
|
|
58
|
-
| **Manejo de Windows** | Excelente (con `psutil`) | Bueno (con `tree-kill`) | Complejo pero muy eficiente |
|
|
59
|
-
| **Curva de desarrollo** | **Muy baja** (Fácil de modificar) | Baja | Alta |
|
|
60
|
-
|
|
61
|
-
### Detalle del Stack Recomendado (Python):
|
|
62
|
-
- **CLI Framework**: [Typer](https://typer.tiangolo.com/) (rápido, basado en anotaciones de tipo) o [Click](https://click.palletsprojects.com/).
|
|
63
|
-
- **Visualización de Terminal**: [Rich](https://rich.readthedocs.io/) (para crear tablas de estado hermosas, colores consistentes en logs y spinners).
|
|
64
|
-
- **Procesamiento y Control**: [psutil](https://github.com/giampaolo/psutil) (indispensable para matar árboles de procesos de forma cross-platform en Windows y Linux).
|
|
65
|
-
- **Serialización**: `PyYAML` o `ruamel.yaml` para leer configuraciones YAML.
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## 3. Estructura del Archivo de Configuración (`orch.yml`)
|
|
70
|
-
|
|
71
|
-
El archivo se estructurará de manera que sea minimalista pero extensible. Soportará variables de entorno comunes a todos los servicios y configuraciones de venv autodetectadas.
|
|
72
|
-
|
|
73
|
-
```yaml
|
|
74
|
-
# orch.yml
|
|
75
|
-
project: control-house
|
|
76
|
-
|
|
77
|
-
# Configuración global del entorno
|
|
78
|
-
env:
|
|
79
|
-
type: venv
|
|
80
|
-
path: ./venv-control-house
|
|
81
|
-
variables:
|
|
82
|
-
DEBUG: "true"
|
|
83
|
-
DATABASE_URL: "sqlite:///./db.sqlite3"
|
|
84
|
-
|
|
85
|
-
services:
|
|
86
|
-
backend:
|
|
87
|
-
path: ./backend
|
|
88
|
-
# La CLI detecta que es python y usa automáticamente el venv configurado globalmente
|
|
89
|
-
command: python app.py
|
|
90
|
-
env:
|
|
91
|
-
PORT: 8000
|
|
92
|
-
|
|
93
|
-
ui:
|
|
94
|
-
path: ./ui
|
|
95
|
-
# Para Node, hereda las variables del sistema y las globales
|
|
96
|
-
command: npm run dev
|
|
97
|
-
env:
|
|
98
|
-
VITE_API_URL: "http://localhost:8000"
|
|
99
|
-
|
|
100
|
-
agent:
|
|
101
|
-
path: ./agent
|
|
102
|
-
command: python agent.py
|
|
103
|
-
# Opción para reiniciar automáticamente si falla
|
|
104
|
-
restart: on-failure
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## 4. Experiencia de Usuario (UX) e Interfaz CLI
|
|
110
|
-
|
|
111
|
-
El flujo de trabajo se divide en dos paradigmas: ejecución interactiva (foreground) y ejecución en segundo plano (background).
|
|
112
|
-
|
|
113
|
-
### Comandos Principales
|
|
114
|
-
|
|
115
|
-
#### 1. Ejecución Interactiva (Estilo `docker-compose up`)
|
|
116
|
-
Muestra los logs de todos los servicios intercalados en tiempo real en la consola activa. Al presionar `Ctrl+C` se detienen todos los servicios de forma segura.
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
$ orch up
|
|
120
|
-
```
|
|
121
|
-
*Visualización conceptual:*
|
|
122
|
-
```text
|
|
123
|
-
[backend] INFO: Started server process [12452]
|
|
124
|
-
[ui] VITE v5.2.11 ready in 254 ms
|
|
125
|
-
[agent] Connecting to broker...
|
|
126
|
-
[backend] GET /api/status - 200 OK
|
|
127
|
-
[agent] Broker connected. Listening to events...
|
|
128
|
-
^C
|
|
129
|
-
Stopping services...
|
|
130
|
-
[backend] Stopped (PID 12452)
|
|
131
|
-
[ui] Stopped (PID 12459)
|
|
132
|
-
[agent] Stopped (PID 12461)
|
|
133
|
-
Orch: All services terminated cleanly.
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
#### 2. Ejecución en Segundo Plano (Estilo daemon-less)
|
|
137
|
-
Inicia los servicios de forma asíncrona, liberando la terminal de inmediato.
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
$ orch start
|
|
141
|
-
```
|
|
142
|
-
*Visualización conceptual:*
|
|
143
|
-
```text
|
|
144
|
-
✔ Starting control-house services...
|
|
145
|
-
✔ backend [PID 12452] - Started
|
|
146
|
-
✔ ui [PID 12459] - Started
|
|
147
|
-
✔ agent [PID 12461] - Started
|
|
148
|
-
Run `orch status` to check active processes or `orch logs -f` to tail logs.
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
#### 3. Verificación de Estado
|
|
152
|
-
Consulta el archivo `.orch/state.json` y valida si los PIDs siguen activos en el sistema operativo.
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
$ orch status
|
|
156
|
-
```
|
|
157
|
-
*Visualización conceptual:*
|
|
158
|
-
```text
|
|
159
|
-
Project: control-house
|
|
160
|
-
Status: Running (3/3 services active)
|
|
161
|
-
|
|
162
|
-
SERVICE STATUS PID CPU MEM UPTIME
|
|
163
|
-
backend RUNNING 12452 0.2% 45 MB 00:12:30
|
|
164
|
-
ui RUNNING 12459 0.0% 82 MB 00:12:30
|
|
165
|
-
agent RUNNING 12461 1.5% 32 MB 00:12:28
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
#### 4. Consulta de Logs en Segundo Plano
|
|
169
|
-
Muestra los logs guardados en archivo con opción de seguimiento en tiempo real (`-f`).
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
$ orch logs backend -f
|
|
173
|
-
# O para ver todos a la vez:
|
|
174
|
-
$ orch logs -f
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
#### 5. Detención de Servicios
|
|
178
|
-
Lee `.orch/state.json`, envía señales de terminación a los PIDs registrados (y a sus hijos) y limpia el estado.
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
$ orch stop
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## 5. Comparativa con Alternativas Existentes
|
|
187
|
-
|
|
188
|
-
| Herramienta | venv Automático | Windows Nativo | Modo Background Integrado | Fácil de Extender (YAML) |
|
|
189
|
-
| :--- | :--- | :--- | :--- | :--- |
|
|
190
|
-
| **`orch` (Propuesta)** | **Sí** (Inyección transparente) | **Sí** (Manejo robusto con psutil) | **Sí** (Vía registro PID local) | **Sí** (Configuración YAML simple) |
|
|
191
|
-
| **PM2** | No (Requiere scripts wrappers) | Parcial (Problemas con bash/cmd) | Sí (Tiene daemon propio) | No (JS/JSON, complejo para Python) |
|
|
192
|
-
| **Foreman / Honcho** | Parcial (Honcho lo soporta a medias)| Regular (Soporte Windows limitado) | No (Principalmente foreground) | No (Usa formato Procfile plano) |
|
|
193
|
-
| **Docker Compose** | No aplica | Sí (Vía WSL2/HyperV) | Sí | Sí |
|
|
194
|
-
|
|
195
|
-
> [!NOTE]
|
|
196
|
-
> La principal ventaja de **`orch`** frente a PM2 o Foreman es su alineación exacta con el ecosistema de Python y Node local. Al inyectar el entorno virtual de forma transparente en el `PATH` de ejecución, evita la necesidad de configurar scripts de activación (`activate.bat` o `activate.sh`) en cada comando de servicio.
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## 6. Roadmap de Evolución (Sin Sobreingeniería)
|
|
201
|
-
|
|
202
|
-
Para lograr una entrega iterativa y evitar la parálisis por análisis, sugerimos estructurar el desarrollo en 4 fases rápidas:
|
|
203
|
-
|
|
204
|
-
```mermaid
|
|
205
|
-
gantt
|
|
206
|
-
title Roadmap de Desarrollo orch
|
|
207
|
-
dateFormat YYYY-MM-DD
|
|
208
|
-
section Fase 1: Core MVP
|
|
209
|
-
Core Execution (Foreground) :active, f1, 2026-06-22, 5d
|
|
210
|
-
venv Ingestion :active, f1_venv, after f1, 3d
|
|
211
|
-
section Fase 2: Background Ops
|
|
212
|
-
State File Management (.orch) : f2_state, after f1_venv, 4d
|
|
213
|
-
start/stop/status commands : f2_cmds, after f2_state, 4d
|
|
214
|
-
section Fase 3: UX & TUI
|
|
215
|
-
Rich Logs Formatting : f3_logs, after f2_cmds, 3d
|
|
216
|
-
Interactive Dashboard (TUI) : f3_dashboard, after f3_logs, 5d
|
|
217
|
-
section Fase 4: Control Avanzado
|
|
218
|
-
Dependency Checks (ports) : f4, after f3_dashboard, 4d
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Fase 1: Core MVP (Visualización Interactiva en Primer Plano)
|
|
222
|
-
* **Objetivo**: Poder ejecutar `orch up` y ver todos los servicios corriendo, respetando el entorno virtual de Python.
|
|
223
|
-
* **Entregables**:
|
|
224
|
-
- Lector del archivo `orch.yml`.
|
|
225
|
-
- Inyector de variables de entorno y venv.
|
|
226
|
-
- Ejecutor concurrente de hilos de lectura para `stdout`/`stderr`.
|
|
227
|
-
- Manejador de señal `SIGINT` (Ctrl+C) que mate todos los procesos activos usando `psutil`.
|
|
228
|
-
|
|
229
|
-
### Fase 2: Ejecución en Segundo Plano (Daemon-less)
|
|
230
|
-
* **Objetivo**: Permitir desvincular los procesos de la terminal actual escribiendo el estado en un registro local.
|
|
231
|
-
* **Entregables**:
|
|
232
|
-
- Creación de la carpeta oculta `.orch/` en la raíz del proyecto.
|
|
233
|
-
- Implementación del comando `start`: arranca procesos de forma desvinculada (detached) y guarda los PIDs en `.orch/state.json`.
|
|
234
|
-
- Redirección de logs a `.orch/logs/<service>.log`.
|
|
235
|
-
- Comandos `status` (chequea si los PIDs viven), `logs` (lectura estática o tailing con `tail -f` simulado), y `stop` (envía señal de muerte a los PIDs).
|
|
236
|
-
|
|
237
|
-
### Fase 3: UX Avanzada & Dashboard Interactivo (TUI)
|
|
238
|
-
* **Objetivo**: Darle un aspecto profesional con reportes tabulares y un panel de control interactivo simple.
|
|
239
|
-
* **Entregables**:
|
|
240
|
-
- Formateo de logs con marcas de tiempo y colores consistentes usando la librería `rich`.
|
|
241
|
-
- Pantalla interactiva opcional `orch dashboard` que muestre el estado de los recursos de forma dinámica utilizando `Textual` (TUI de Python).
|
|
242
|
-
|
|
243
|
-
### Fase 4: Control de Dependencias y Healthchecks
|
|
244
|
-
* **Objetivo**: Evitar errores de conexión esperando a que un servicio esté listo antes de arrancar el siguiente.
|
|
245
|
-
* **Entregables**:
|
|
246
|
-
- Propiedad `depends_on` en la configuración (p. ej., `ui` depende de `backend`).
|
|
247
|
-
- Verificaciones de puertos locales: si el backend levanta en el puerto 8000, la CLI espera a que ese puerto esté abierto antes de iniciar el comando del frontend.
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Plan de Implementación: CLI Local Orchestrator (`orch`)
|
|
2
|
-
|
|
3
|
-
Este documento describe el plan para desarrollar la herramienta CLI `orch` en Python utilizando un enfoque daemonless con archivos de estado locales.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Stack de Desarrollo y Dependencias
|
|
8
|
-
|
|
9
|
-
El proyecto se estructurará como un paquete instalable de Python usando `pyproject.toml` para que pueda registrarse como un comando global (`orch`) en el sistema del usuario.
|
|
10
|
-
|
|
11
|
-
### Dependencias Principales:
|
|
12
|
-
* **`typer[all]`**: Framework moderno para crear la CLI.
|
|
13
|
-
* **`pyyaml`**: Lector de configuración `orch.yml`.
|
|
14
|
-
* **`psutil`**: Gestión multiplataforma de PIDs, monitoreo de CPU/memoria y eliminación de árboles de subprocesos.
|
|
15
|
-
* **`rich`**: Formateo estético de tablas, logs en color y visualización de estados en consola.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 2. Estructura del Código Propuesta
|
|
20
|
-
|
|
21
|
-
Crearemos el proyecto en la carpeta raíz del workspace:
|
|
22
|
-
|
|
23
|
-
```text
|
|
24
|
-
EASYLIFECODE/
|
|
25
|
-
├── pyproject.toml # Configuración del paquete y dependencias
|
|
26
|
-
├── README.md # Documentación básica
|
|
27
|
-
├── orch/
|
|
28
|
-
│ ├── __init__.py
|
|
29
|
-
│ ├── cli.py # Definición de comandos Typer (up, start, stop, etc.)
|
|
30
|
-
│ ├── config.py # Lector y validador de config (orch.yml)
|
|
31
|
-
│ ├── manager.py # Orquestador de procesos (foreground/background)
|
|
32
|
-
│ └── state.py # Gestor de base de datos local (.orch/state.json)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 3. Cambios Propuestos por Archivo
|
|
38
|
-
|
|
39
|
-
### [NEW] [pyproject.toml](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/pyproject.toml)
|
|
40
|
-
Configuración del proyecto con Hatchling como backend de empaquetado, dependencias y registro del script de consola `orch`.
|
|
41
|
-
|
|
42
|
-
### [NEW] [config.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/config.py)
|
|
43
|
-
* Carga del archivo `orch.yml`.
|
|
44
|
-
* Resolución de rutas relativas basadas en la ubicación de `orch.yml`.
|
|
45
|
-
* Detección y activación del entorno virtual de Python:
|
|
46
|
-
- En Windows: añade `path/to/venv/Scripts` al inicio de `PATH` y define `VIRTUAL_ENV`.
|
|
47
|
-
- En Linux/macOS: añade `path/to/venv/bin` al inicio de `PATH` y define `VIRTUAL_ENV`.
|
|
48
|
-
|
|
49
|
-
### [NEW] [state.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/state.py)
|
|
50
|
-
* Creación y lectura de la carpeta `.orch/`.
|
|
51
|
-
* Serialización del estado de procesos activos en `.orch/state.json` (estructura JSON con PID, hora de inicio, nombre del servicio, ruta de logs).
|
|
52
|
-
* Verificación en tiempo real si los PIDs registrados siguen activos en el sistema operativo usando `psutil`.
|
|
53
|
-
|
|
54
|
-
### [NEW] [manager.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/manager.py)
|
|
55
|
-
* **`run_foreground`**:
|
|
56
|
-
- Inicia todos los servicios secuencialmente.
|
|
57
|
-
- Captura `stdout`/`stderr` de manera asíncrona usando hilos (`threading.Thread`) o colas para evitar bloqueos.
|
|
58
|
-
- Asigna un color único de `rich` a cada servicio para imprimir los logs de forma intercalada y legible.
|
|
59
|
-
- Escucha la señal `SIGINT` (Ctrl+C) y detiene todos los procesos creados y sus procesos hijos.
|
|
60
|
-
* **`run_background`**:
|
|
61
|
-
- Arranca procesos desacoplados (`subprocess.Popen` con banderas para crear un nuevo grupo de procesos).
|
|
62
|
-
- Redirige la salida a archivos `.orch/logs/<service>.log`.
|
|
63
|
-
- Registra los PIDs en `state.py`.
|
|
64
|
-
* **`stop_services`**:
|
|
65
|
-
- Lee el estado, localiza los PIDs activos y utiliza `psutil.Process(pid).terminate()` o `.kill()` en cascada sobre los hijos del proceso (útil para comandos que abren otros subprocesos como `npm run dev`).
|
|
66
|
-
|
|
67
|
-
### [NEW] [cli.py](file:///c:/Users/antma.4M12-PC/OneDrive/Desktop/EASYLIFECODE/orch/cli.py)
|
|
68
|
-
Entrada principal de la CLI con los siguientes subcomandos:
|
|
69
|
-
* `up`: Levanta todos los servicios en primer plano.
|
|
70
|
-
* `start`: Levanta todos los servicios en segundo plano.
|
|
71
|
-
* `stop`: Detiene todos los servicios en segundo plano.
|
|
72
|
-
* `status`: Muestra el estado actual y estadísticas de recursos (CPU, Memoria) de los procesos activos.
|
|
73
|
-
* `logs [service] [-f/--follow]`: Muestra logs locales e implementa tailing en tiempo real.
|
|
74
|
-
* `restart [service]`: Detiene y vuelve a iniciar uno o todos los servicios.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## 4. Plan de Verificación
|
|
79
|
-
|
|
80
|
-
### Pruebas Automatizadas
|
|
81
|
-
* Validaremos la sintaxis del CLI invocando comandos de ayuda.
|
|
82
|
-
* Comprobaremos que el paquete se puede instalar localmente en modo desarrollo:
|
|
83
|
-
```bash
|
|
84
|
-
pip install -e .
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Verificación Manual (Escenario de prueba)
|
|
88
|
-
Crearemos un proyecto ficticio de prueba dentro de `EASYLIFECODE/test-project/` con:
|
|
89
|
-
* Un backend mock en Python (`app.py` que imprima logs periódicamente).
|
|
90
|
-
* Un frontend mock en Node (`package.json` con un script mock).
|
|
91
|
-
* Un entorno virtual de Python (`venv`).
|
|
92
|
-
* Archivo `orch.yml`.
|
|
93
|
-
|
|
94
|
-
Verificaremos:
|
|
95
|
-
1. `orch up` funciona, intercala logs y detiene todo con `Ctrl+C`.
|
|
96
|
-
2. `orch start` inicia los servicios silenciosamente.
|
|
97
|
-
3. `orch status` muestra los servicios activos con sus respectivos PIDs y consumo de memoria/CPU.
|
|
98
|
-
4. `orch logs -f` muestra la salida unificada.
|
|
99
|
-
5. `orch stop` limpia el estado y termina todos los procesos.
|
orch_cli-0.1.0/orch/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.0"
|
orch_cli-0.1.0/task.md
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Tareas: Implementación de la CLI `orch`
|
|
2
|
-
|
|
3
|
-
- `[x]` Crear la estructura del proyecto y `pyproject.toml`
|
|
4
|
-
- `[x]` Implementar el cargador de configuración (`orch/config.py`)
|
|
5
|
-
- `[x]` Implementar el gestor de estado local (`orch/state.py`)
|
|
6
|
-
- `[x]` Implementar el gestor de procesos (`orch/manager.py`)
|
|
7
|
-
- `[x]` Implementar la interfaz CLI con Typer (`orch/cli.py`)
|
|
8
|
-
- `[x]` Crear un proyecto de prueba y verificar el funcionamiento
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
2
|
-
|
|
3
|
-
__version__ = "24.3.1"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def main(args: Optional[List[str]] = None) -> int:
|
|
7
|
-
"""This is an internal API only meant for use by pip's own console scripts.
|
|
8
|
-
|
|
9
|
-
For additional details, see https://github.com/pypa/pip/issues/7498.
|
|
10
|
-
"""
|
|
11
|
-
from pip._internal.utils.entrypoints import _wrapper
|
|
12
|
-
|
|
13
|
-
return _wrapper(args)
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import sys
|
|
3
|
-
|
|
4
|
-
# Remove '' and current working directory from the first entry
|
|
5
|
-
# of sys.path, if present to avoid using current directory
|
|
6
|
-
# in pip commands check, freeze, install, list and show,
|
|
7
|
-
# when invoked as python -m pip <command>
|
|
8
|
-
if sys.path[0] in ("", os.getcwd()):
|
|
9
|
-
sys.path.pop(0)
|
|
10
|
-
|
|
11
|
-
# If we are running from a wheel, add the wheel to sys.path
|
|
12
|
-
# This allows the usage python pip-*.whl/pip install pip-*.whl
|
|
13
|
-
if __package__ == "":
|
|
14
|
-
# __file__ is pip-*.whl/pip/__main__.py
|
|
15
|
-
# first dirname call strips of '/__main__.py', second strips off '/pip'
|
|
16
|
-
# Resulting path is the name of the wheel itself
|
|
17
|
-
# Add that to sys.path so we can import pip
|
|
18
|
-
path = os.path.dirname(os.path.dirname(__file__))
|
|
19
|
-
sys.path.insert(0, path)
|
|
20
|
-
|
|
21
|
-
if __name__ == "__main__":
|
|
22
|
-
from pip._internal.cli.main import main as _main
|
|
23
|
-
|
|
24
|
-
sys.exit(_main())
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"""Execute exactly this copy of pip, within a different environment.
|
|
2
|
-
|
|
3
|
-
This file is named as it is, to ensure that this module can't be imported via
|
|
4
|
-
an import statement.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
# /!\ This version compatibility check section must be Python 2 compatible. /!\
|
|
8
|
-
|
|
9
|
-
import sys
|
|
10
|
-
|
|
11
|
-
# Copied from pyproject.toml
|
|
12
|
-
PYTHON_REQUIRES = (3, 8)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def version_str(version): # type: ignore
|
|
16
|
-
return ".".join(str(v) for v in version)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if sys.version_info[:2] < PYTHON_REQUIRES:
|
|
20
|
-
raise SystemExit(
|
|
21
|
-
"This version of pip does not support python {} (requires >={}).".format(
|
|
22
|
-
version_str(sys.version_info[:2]), version_str(PYTHON_REQUIRES)
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
# From here on, we can use Python 3 features, but the syntax must remain
|
|
27
|
-
# Python 2 compatible.
|
|
28
|
-
|
|
29
|
-
import runpy # noqa: E402
|
|
30
|
-
from importlib.machinery import PathFinder # noqa: E402
|
|
31
|
-
from os.path import dirname # noqa: E402
|
|
32
|
-
|
|
33
|
-
PIP_SOURCES_ROOT = dirname(dirname(__file__))
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
class PipImportRedirectingFinder:
|
|
37
|
-
@classmethod
|
|
38
|
-
def find_spec(self, fullname, path=None, target=None): # type: ignore
|
|
39
|
-
if fullname != "pip":
|
|
40
|
-
return None
|
|
41
|
-
|
|
42
|
-
spec = PathFinder.find_spec(fullname, [PIP_SOURCES_ROOT], target)
|
|
43
|
-
assert spec, (PIP_SOURCES_ROOT, fullname)
|
|
44
|
-
return spec
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
sys.meta_path.insert(0, PipImportRedirectingFinder())
|
|
48
|
-
|
|
49
|
-
assert __name__ == "__main__", "Cannot run __pip-runner__.py as a non-main module"
|
|
50
|
-
runpy.run_module("pip", run_name="__main__", alter_sys=True)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
2
|
-
|
|
3
|
-
from pip._internal.utils import _log
|
|
4
|
-
|
|
5
|
-
# init_logging() must be called before any call to logging.getLogger()
|
|
6
|
-
# which happens at import of most modules.
|
|
7
|
-
_log.init_logging()
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def main(args: Optional[List[str]] = None) -> int:
|
|
11
|
-
"""This is preserved for old console scripts that may still be referencing
|
|
12
|
-
it.
|
|
13
|
-
|
|
14
|
-
For additional details, see https://github.com/pypa/pip/issues/7498.
|
|
15
|
-
"""
|
|
16
|
-
from pip._internal.utils.entrypoints import _wrapper
|
|
17
|
-
|
|
18
|
-
return _wrapper(args)
|