orch-cli 0.1.0__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/.github/workflows/ci.yml +34 -0
- orch_cli-0.1.0/.github/workflows/publish.yml +38 -0
- orch_cli-0.1.0/.gitignore +130 -0
- orch_cli-0.1.0/LICENSE +21 -0
- orch_cli-0.1.0/PKG-INFO +210 -0
- orch_cli-0.1.0/README.md +197 -0
- orch_cli-0.1.0/RESUMEN.md +107 -0
- orch_cli-0.1.0/cli_orchestrator_design.md +247 -0
- orch_cli-0.1.0/implementation_plan.md +99 -0
- orch_cli-0.1.0/orch/__init__.py +1 -0
- orch_cli-0.1.0/orch/cli.py +384 -0
- orch_cli-0.1.0/orch/config.py +84 -0
- orch_cli-0.1.0/orch/manager.py +273 -0
- orch_cli-0.1.0/orch/state.py +115 -0
- orch_cli-0.1.0/pyproject.toml +23 -0
- orch_cli-0.1.0/task.md +8 -0
- orch_cli-0.1.0/test-project/backend/app.py +18 -0
- orch_cli-0.1.0/test-project/backend/test_running.txt +10 -0
- orch_cli-0.1.0/test-project/orch.yml +18 -0
- orch_cli-0.1.0/test-project/ui/package.json +7 -0
- orch_cli-0.1.0/test-project/ui/server.js +19 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__init__.py +13 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__main__.py +24 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/__pip-runner__.py +50 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/__init__.py +18 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/build_env.py +319 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cache.py +290 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/__init__.py +4 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/autocompletion.py +176 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/base_command.py +231 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/cmdoptions.py +1075 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/command_context.py +27 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/index_command.py +170 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main.py +80 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/main_parser.py +134 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/parser.py +294 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/progress_bars.py +94 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/req_command.py +329 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/spinners.py +159 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/cli/status_codes.py +6 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/__init__.py +132 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/cache.py +225 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/check.py +67 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/completion.py +130 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/configuration.py +280 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/debug.py +201 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/download.py +146 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/freeze.py +109 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/hash.py +59 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/help.py +41 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/index.py +139 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/inspect.py +92 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/install.py +783 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/list.py +375 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/search.py +172 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/show.py +217 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/uninstall.py +114 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/commands/wheel.py +182 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/configuration.py +383 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/__init__.py +21 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/base.py +53 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/installed.py +29 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/sdist.py +158 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/distributions/wheel.py +42 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/exceptions.py +809 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/__init__.py +2 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/collector.py +494 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/package_finder.py +1020 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/index/sources.py +284 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/__init__.py +456 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_distutils.py +172 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/_sysconfig.py +214 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/locations/base.py +81 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/main.py +12 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/__init__.py +128 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/_json.py +84 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/base.py +688 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +85 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +221 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +189 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +301 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/__init__.py +2 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/candidate.py +25 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/direct_url.py +224 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/format_control.py +78 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/index.py +28 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/installation_report.py +56 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/link.py +590 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/scheme.py +25 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/search_scope.py +127 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/selection_prefs.py +53 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/target_python.py +121 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/models/wheel.py +118 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/__init__.py +2 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/auth.py +566 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/cache.py +106 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/download.py +187 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/lazy_wheel.py +210 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/session.py +522 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/utils.py +98 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/network/xmlrpc.py +62 -0
- 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 +181 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/freeze.py +258 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/__init__.py +2 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +47 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/install/wheel.py +741 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/operations/prepare.py +732 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/pyproject.py +185 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/__init__.py +90 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/constructors.py +560 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_file.py +574 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_install.py +934 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_set.py +82 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/req/req_uninstall.py +633 -0
- 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 +20 -0
- 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 +597 -0
- 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 +139 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +574 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +823 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +174 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +258 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +81 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +245 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +317 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/self_outdated_check.py +244 -0
- 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 +109 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/_log.py +38 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/appdirs.py +52 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compat.py +79 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +188 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/datetime.py +11 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/deprecation.py +124 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/egg_link.py +80 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/encoding.py +36 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/entrypoints.py +84 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filesystem.py +149 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/filetypes.py +27 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/glibc.py +101 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/hashes.py +147 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/logging.py +347 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/misc.py +772 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/packaging.py +57 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/retry.py +42 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/setuptools_build.py +146 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/subprocess.py +245 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/temp_dir.py +296 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/unpacking.py +337 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/virtualenv.py +104 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/utils/wheel.py +134 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/bazaar.py +112 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/git.py +527 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/mercurial.py +163 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/subversion.py +324 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +688 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_internal/wheel_builder.py +354 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/__init__.py +116 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +28 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +161 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +74 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +182 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +499 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +154 -0
- 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 +146 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__init__.py +4 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/cacert.pem +4929 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/certifi/core.py +114 -0
- 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 +33 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/compat.py +1137 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/database.py +1329 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/index.py +508 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/locators.py +1295 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/manifest.py +384 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/markers.py +162 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/metadata.py +1031 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/resources.py +358 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/scripts.py +447 -0
- 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 +1984 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distlib/version.py +750 -0
- 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 +1100 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__init__.py +54 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/__main__.py +4 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/distro/distro.py +1403 -0
- 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 +44 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/codec.py +118 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/compat.py +13 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/core.py +395 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/idnadata.py +4245 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/intranges.py +54 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/idna/package_data.py +2 -0
- 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 +8598 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/ext.py +168 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/msgpack/fallback.py +951 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/__init__.py +15 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_elffile.py +110 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +262 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_parser.py +354 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_structures.py +61 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +194 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/markers.py +325 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/metadata.py +804 -0
- 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 +91 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/specifiers.py +1009 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/tags.py +627 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/utils.py +174 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/packaging/version.py +563 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +627 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/android.py +249 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/api.py +292 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/macos.py +130 -0
- 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 +275 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/version.py +16 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/platformdirs/windows.py +272 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__init__.py +82 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/__main__.py +17 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/cmdline.py +668 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/console.py +70 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filter.py +70 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatter.py +129 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +108 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +170 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +987 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +685 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +154 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +518 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +160 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +83 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +349 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +185 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +127 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +338 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexer.py +963 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +589 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +1198 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/modeline.py +43 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/plugin.py +72 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/scanner.py +104 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/style.py +203 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/token.py +214 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/unistring.py +153 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pygments/util.py +324 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +23 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +8 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +330 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +18 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +353 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__init__.py +179 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/adapters.py +719 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/api.py +157 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/auth.py +314 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/certs.py +24 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/compat.py +78 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/cookies.py +561 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/exceptions.py +151 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/help.py +127 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/hooks.py +33 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/models.py +1037 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/packages.py +25 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/sessions.py +831 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/status_codes.py +128 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/structures.py +99 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/requests/utils.py +1096 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
- 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 +6 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/providers.py +133 -0
- 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 +43 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +547 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/resolvelib/structs.py +170 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__init__.py +177 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/__main__.py +273 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_export_format.py +76 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_extension.py +10 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_fileno.py +24 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_inspect.py +270 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_log_render.py +94 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_loop.py +43 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_null_file.py +69 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_palettes.py +309 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_pick.py +17 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_ratio.py +159 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_spinners.py +482 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_stack.py +16 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_timer.py +19 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_win32_console.py +662 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows.py +71 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/_wrap.py +93 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/abc.py +33 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/align.py +311 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/ansi.py +240 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/bar.py +93 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/box.py +480 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/cells.py +167 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color.py +621 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/columns.py +187 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/console.py +2633 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/constrain.py +37 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/containers.py +167 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/control.py +225 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/default_styles.py +190 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/diagnose.py +37 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/emoji.py +96 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/errors.py +34 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/filesize.py +89 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/highlighter.py +232 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/json.py +139 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/jupyter.py +101 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/layout.py +442 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live.py +375 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/live_render.py +112 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/logging.py +289 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/markup.py +251 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/measure.py +151 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/padding.py +141 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pager.py +34 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/palette.py +100 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/panel.py +312 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/pretty.py +995 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress.py +1699 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/prompt.py +375 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/protocol.py +42 -0
- 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 +10 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/repr.py +149 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/rule.py +130 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/scope.py +86 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/screen.py +54 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/segment.py +738 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/spinner.py +137 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/status.py +131 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/style.py +796 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/styled.py +42 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/syntax.py +958 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/table.py +1000 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/text.py +1357 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/theme.py +115 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/themes.py +5 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/traceback.py +753 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/rich/tree.py +249 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/__init__.py +11 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_parser.py +691 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_re.py +107 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/_types.py +10 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/__init__.py +36 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_api.py +316 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_macos.py +571 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/truststore/_windows.py +567 -0
- 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 +3641 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_collections.py +355 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connection.py +572 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1140 -0
- 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 +36 -0
- 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 +519 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
- 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 +51 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +540 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/request.py +191 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/response.py +879 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +622 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +504 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/_vendor/vendor.txt +18 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip/py.typed +4 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/AUTHORS.txt +799 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/INSTALLER +1 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/LICENSE.txt +20 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/METADATA +90 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/RECORD +853 -0
- 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 +5 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/entry_points.txt +3 -0
- orch_cli-0.1.0/test-project/venv-mock/Lib/site-packages/pip-24.3.1.dist-info/top_level.txt +1 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/Activate.ps1 +528 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/activate +71 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/activate.bat +34 -0
- orch_cli-0.1.0/test-project/venv-mock/Scripts/deactivate.bat +22 -0
- 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 +5 -0
- orch_cli-0.1.0/tests/test_config.py +80 -0
- orch_cli-0.1.0/tests/test_state.py +101 -0
- orch_cli-0.1.0/walkthrough.md +50 -0
- orch_cli-0.1.0/walkthrough_1.md +30 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main, master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
16
|
+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: |
|
|
28
|
+
python -m pip install --upgrade pip
|
|
29
|
+
pip install -e .
|
|
30
|
+
pip install pytest pytest-mock
|
|
31
|
+
|
|
32
|
+
- name: Run tests
|
|
33
|
+
run: |
|
|
34
|
+
pytest
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build-n-publish:
|
|
10
|
+
name: Build and publish Python distro to PyPI
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
# This permission is required for Trusted Publishing (OIDC) to PyPI
|
|
14
|
+
id-token: write
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Set up Python
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.10"
|
|
24
|
+
|
|
25
|
+
- name: Install build tools
|
|
26
|
+
run: |
|
|
27
|
+
python -m pip install --upgrade pip
|
|
28
|
+
pip install hatch
|
|
29
|
+
|
|
30
|
+
- name: Build package
|
|
31
|
+
run: |
|
|
32
|
+
hatch build
|
|
33
|
+
|
|
34
|
+
- name: Publish package distribution to PyPI
|
|
35
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
36
|
+
with:
|
|
37
|
+
# Trusted Publishing automatically authenticates with PyPI using the OIDC token
|
|
38
|
+
skip-existing: true
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
build/
|
|
11
|
+
develop-eggs/
|
|
12
|
+
dist/
|
|
13
|
+
downloads/
|
|
14
|
+
eggs/
|
|
15
|
+
.eggs/
|
|
16
|
+
lib/
|
|
17
|
+
lib64/
|
|
18
|
+
parts/
|
|
19
|
+
sdist/
|
|
20
|
+
var/
|
|
21
|
+
wheels/
|
|
22
|
+
share/python-wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
MANIFEST
|
|
27
|
+
|
|
28
|
+
# PyInstaller
|
|
29
|
+
# Usually these files are written by a python script from a template
|
|
30
|
+
# before PyInstaller builds the exe, so they can be injected at build time.
|
|
31
|
+
*.manifest
|
|
32
|
+
*.spec
|
|
33
|
+
|
|
34
|
+
# Installer logs
|
|
35
|
+
pip-log.txt
|
|
36
|
+
pip-delete-this-directory.txt
|
|
37
|
+
|
|
38
|
+
# Unit test / coverage reports
|
|
39
|
+
htmlcov/
|
|
40
|
+
.tox/
|
|
41
|
+
.nosenv/
|
|
42
|
+
.pytest_cache/
|
|
43
|
+
. Moffat_cache/
|
|
44
|
+
.hypothesis/
|
|
45
|
+
.run/
|
|
46
|
+
.coverage
|
|
47
|
+
.coverage.*
|
|
48
|
+
.cache
|
|
49
|
+
nosetests.xml
|
|
50
|
+
coverage.xml
|
|
51
|
+
*.cover
|
|
52
|
+
*.py,cover
|
|
53
|
+
.fixtures.json
|
|
54
|
+
var/
|
|
55
|
+
|
|
56
|
+
# Translations
|
|
57
|
+
*.mo
|
|
58
|
+
*.pot
|
|
59
|
+
|
|
60
|
+
# Django stuff:
|
|
61
|
+
*.log
|
|
62
|
+
local_settings.py
|
|
63
|
+
db.sqlite3
|
|
64
|
+
db.sqlite3-journal
|
|
65
|
+
|
|
66
|
+
# Sphinx documentation
|
|
67
|
+
docs/_build/
|
|
68
|
+
|
|
69
|
+
# PyBuilder
|
|
70
|
+
.pybuilder/
|
|
71
|
+
target/
|
|
72
|
+
|
|
73
|
+
# Jupyter Notebook
|
|
74
|
+
.ipynb_checkpoints
|
|
75
|
+
|
|
76
|
+
# IPython
|
|
77
|
+
profile_default/
|
|
78
|
+
ipython_config.py
|
|
79
|
+
|
|
80
|
+
# pyenv
|
|
81
|
+
# For a library or app, you might want to share your .python-version.
|
|
82
|
+
# For detail see: https://github.com/pyenv/pyenv#local-version-file
|
|
83
|
+
#.python-version
|
|
84
|
+
|
|
85
|
+
# pipenv
|
|
86
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
87
|
+
# However, in case of microservices or venv, it can be ignored.
|
|
88
|
+
#Pipfile.lock
|
|
89
|
+
|
|
90
|
+
# poetry
|
|
91
|
+
# Using Poetry, it is recommended to include poetry.lock in version control.
|
|
92
|
+
# poetry.lock
|
|
93
|
+
|
|
94
|
+
# pdm
|
|
95
|
+
# Using PDM, it is recommended to include pdm.lock in version control.
|
|
96
|
+
#pdm.lock
|
|
97
|
+
.pdm-plugins/
|
|
98
|
+
.pdm-python
|
|
99
|
+
|
|
100
|
+
# PEP 582; metadata and dependency directory (installed by pipx)
|
|
101
|
+
__pypackages__/
|
|
102
|
+
|
|
103
|
+
# Celery stuff
|
|
104
|
+
celerybeat-schedule
|
|
105
|
+
celerybeat.pid
|
|
106
|
+
|
|
107
|
+
# SageMath parsed files
|
|
108
|
+
*.sage.py
|
|
109
|
+
|
|
110
|
+
# Environments
|
|
111
|
+
.env
|
|
112
|
+
.venv
|
|
113
|
+
env/
|
|
114
|
+
venv/
|
|
115
|
+
ENV/
|
|
116
|
+
env.bak/
|
|
117
|
+
venv.bak/
|
|
118
|
+
|
|
119
|
+
# Spyder project settings
|
|
120
|
+
.spyderproject
|
|
121
|
+
.spyproject
|
|
122
|
+
|
|
123
|
+
# VS Code settings
|
|
124
|
+
.vscode/
|
|
125
|
+
|
|
126
|
+
# PyCharm / JetBrains settings
|
|
127
|
+
.idea/
|
|
128
|
+
|
|
129
|
+
# local orch orchestrator directories
|
|
130
|
+
.orch/
|
orch_cli-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 EASYLIFECODE / Anthony Mosquera (4m12-code)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
orch_cli-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: orch-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A local development process orchestrator and venv-aware runner
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.8
|
|
8
|
+
Requires-Dist: psutil>=5.9.0
|
|
9
|
+
Requires-Dist: pyyaml>=6.0
|
|
10
|
+
Requires-Dist: rich>=13.0.0
|
|
11
|
+
Requires-Dist: typer[all]>=0.9.0
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
14
|
+
# Orch - Local Service Orchestrator
|
|
15
|
+
|
|
16
|
+
[](https://pypi.org/project/orch-cli/)
|
|
17
|
+
[](https://opensource.org/licenses/MIT)
|
|
18
|
+
[](https://github.com/EASYLIFECODE/orch/actions)
|
|
19
|
+
|
|
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
|
+
|
|
22
|
+
It runs your scripts, servers, frontends, and workers concurrently, manages their Python virtual environments (`venv`) transparently, monitors their resources, and multiplexes their logs—**without** the overhead of Docker or background daemon processes.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Key Features
|
|
27
|
+
|
|
28
|
+
- 🔌 **Daemon-less Architecture**: No persistent background services needed. State is safely tracked locally in `.orch/state.json`.
|
|
29
|
+
- 🐍 **Automatic venv Detection**: Injects your project's Python virtual environment (`venv`) to the process execution path automatically—no manual activation scripts required.
|
|
30
|
+
- 🎨 **Unified Multiplexed Logs**: Streams output from all services into a single terminal window with distinct, customizable color prefixes, protecting ANSI markup.
|
|
31
|
+
- 🌙 **Background Execution**: Spawn services in detached modes, persisting output to individual log files.
|
|
32
|
+
- 📊 **Resource Monitoring**: Track CPU, Memory consumption, and uptime per service with a single command.
|
|
33
|
+
- 🛡️ **Clean Process Tree Teardown**: Intercepts shutdown signals and recursively kills child processes (e.g. Node sub-processes, shell scripts) cleanly, avoiding orphaned processes.
|
|
34
|
+
- 🛡️ **PID Recycle Protection**: Safeguards against re-using recycled PIDs by validating the OS process creation time before killing or reporting status.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
### Stable Release (via PyPI)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pip install orch-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### From Source (Development Mode)
|
|
47
|
+
|
|
48
|
+
1. Clone the repository:
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/EASYLIFECODE/orch.git
|
|
51
|
+
cd orch
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
2. Install in editable development mode:
|
|
55
|
+
```bash
|
|
56
|
+
pip install -e .
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Configuration (`orch.yml`)
|
|
62
|
+
|
|
63
|
+
Configure your services in an `orch.yml` or `project.yml` file in the root of your project:
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
# orch.yml
|
|
67
|
+
project: my-awesome-app
|
|
68
|
+
|
|
69
|
+
# Global environment configuration
|
|
70
|
+
env:
|
|
71
|
+
type: venv # Type of virtual environment
|
|
72
|
+
path: ./venv # Path to the virtualenv folder
|
|
73
|
+
variables:
|
|
74
|
+
GLOBAL_VAR: "shared-value"
|
|
75
|
+
DATABASE_URL: "sqlite:///local.db"
|
|
76
|
+
|
|
77
|
+
services:
|
|
78
|
+
backend:
|
|
79
|
+
path: ./backend # Working directory for this service
|
|
80
|
+
command: python app.py # Automatically runs using the configured global venv
|
|
81
|
+
env:
|
|
82
|
+
PORT: "8000"
|
|
83
|
+
|
|
84
|
+
frontend:
|
|
85
|
+
path: ./frontend
|
|
86
|
+
command: npm run dev
|
|
87
|
+
env:
|
|
88
|
+
VITE_API_URL: "http://localhost:8000"
|
|
89
|
+
|
|
90
|
+
worker:
|
|
91
|
+
path: ./worker
|
|
92
|
+
command: python worker.py
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## CLI Usage
|
|
98
|
+
|
|
99
|
+
### 1. Run in Foreground (Interactive Mode)
|
|
100
|
+
|
|
101
|
+
Launches all services concurrently, streaming their colored logs into the active console. Pressing `Ctrl+C` cleanly shuts down all services.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
orch up
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 2. Run in Background (Detached Mode)
|
|
108
|
+
|
|
109
|
+
Launches all services in the background and saves their state.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
orch start
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 3. Check Service Status & Resource Usage
|
|
116
|
+
|
|
117
|
+
Displays an elegant table showing running status, PID, CPU, Memory usage (recursive of all child processes), and uptime.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
orch status
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
*Example Output:*
|
|
124
|
+
```text
|
|
125
|
+
Project: my-awesome-app (Services Status)
|
|
126
|
+
┌──────────┬─────────┬───────┬───────┬─────────────┬──────────┐
|
|
127
|
+
│ Service │ Status │ PID │ CPU % │ Memory (MB) │ Uptime │
|
|
128
|
+
├──────────┼─────────┼───────┼───────┼─────────────┼──────────┤
|
|
129
|
+
│ backend │ RUNNING │ 12452 │ 0.2% │ 45.4 MB │ 00:12:30 │
|
|
130
|
+
│ frontend │ RUNNING │ 12459 │ 0.0% │ 82.1 MB │ 00:12:30 │
|
|
131
|
+
│ worker │ RUNNING │ 12461 │ 1.5% │ 32.7 MB │ 00:12:28 │
|
|
132
|
+
└──────────┴─────────┴───────┴───────┴─────────────┴──────────┘
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 4. Consult and Tail Logs
|
|
136
|
+
|
|
137
|
+
Tail log files of services running in the background.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Follow logs of all services
|
|
141
|
+
orch logs -f
|
|
142
|
+
|
|
143
|
+
# Follow logs of a specific service
|
|
144
|
+
orch logs backend -f
|
|
145
|
+
|
|
146
|
+
# Read last 100 lines without following
|
|
147
|
+
orch logs frontend --lines 100
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 5. Restart Services
|
|
151
|
+
|
|
152
|
+
Restarts all or specific services running in the background.
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Restart all
|
|
156
|
+
orch restart
|
|
157
|
+
|
|
158
|
+
# Restart only backend
|
|
159
|
+
orch restart backend
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 6. Stop Services
|
|
163
|
+
|
|
164
|
+
Stops services running in the background and cleans up state.
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Stop all services
|
|
168
|
+
orch stop
|
|
169
|
+
|
|
170
|
+
# Stop a specific service
|
|
171
|
+
orch stop backend
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 7. Clean State & Logs
|
|
175
|
+
|
|
176
|
+
Terminates background services, clears log files (`.orch/logs/*.log`) to 0 bytes, and resets the state file.
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
orch clean
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Technical Architecture
|
|
185
|
+
|
|
186
|
+
Orch is built using **Python 3.8+**, **Typer** for the CLI framework, **Rich** for visual output rendering, and **psutil** for platform-independent process controls.
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
[ CLI Command: orch ]
|
|
190
|
+
│
|
|
191
|
+
[ Load Configuration ]
|
|
192
|
+
│
|
|
193
|
+
[ Validate YAML Schema ]
|
|
194
|
+
│
|
|
195
|
+
[ Process Execution ]
|
|
196
|
+
│
|
|
197
|
+
┌────────────────────┴────────────────────┐
|
|
198
|
+
[ Foreground Mode ] [ Background Mode ]
|
|
199
|
+
(Multiplex to Terminal) (Write to Log Files)
|
|
200
|
+
│ │
|
|
201
|
+
├── Thread 1 (stdout) ├── .orch/logs/backend.log
|
|
202
|
+
├── Thread 2 (stdout) ├── .orch/logs/frontend.log
|
|
203
|
+
└── SIGINT cleanup └── Keep PIDs in .orch/state.json
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## License
|
|
209
|
+
|
|
210
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
orch_cli-0.1.0/README.md
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Orch - Local Service Orchestrator
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/orch-cli/)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://github.com/EASYLIFECODE/orch/actions)
|
|
6
|
+
|
|
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
|
+
|
|
9
|
+
It runs your scripts, servers, frontends, and workers concurrently, manages their Python virtual environments (`venv`) transparently, monitors their resources, and multiplexes their logs—**without** the overhead of Docker or background daemon processes.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Key Features
|
|
14
|
+
|
|
15
|
+
- 🔌 **Daemon-less Architecture**: No persistent background services needed. State is safely tracked locally in `.orch/state.json`.
|
|
16
|
+
- 🐍 **Automatic venv Detection**: Injects your project's Python virtual environment (`venv`) to the process execution path automatically—no manual activation scripts required.
|
|
17
|
+
- 🎨 **Unified Multiplexed Logs**: Streams output from all services into a single terminal window with distinct, customizable color prefixes, protecting ANSI markup.
|
|
18
|
+
- 🌙 **Background Execution**: Spawn services in detached modes, persisting output to individual log files.
|
|
19
|
+
- 📊 **Resource Monitoring**: Track CPU, Memory consumption, and uptime per service with a single command.
|
|
20
|
+
- 🛡️ **Clean Process Tree Teardown**: Intercepts shutdown signals and recursively kills child processes (e.g. Node sub-processes, shell scripts) cleanly, avoiding orphaned processes.
|
|
21
|
+
- 🛡️ **PID Recycle Protection**: Safeguards against re-using recycled PIDs by validating the OS process creation time before killing or reporting status.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
### Stable Release (via PyPI)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install orch-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### From Source (Development Mode)
|
|
34
|
+
|
|
35
|
+
1. Clone the repository:
|
|
36
|
+
```bash
|
|
37
|
+
git clone https://github.com/EASYLIFECODE/orch.git
|
|
38
|
+
cd orch
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
2. Install in editable development mode:
|
|
42
|
+
```bash
|
|
43
|
+
pip install -e .
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Configuration (`orch.yml`)
|
|
49
|
+
|
|
50
|
+
Configure your services in an `orch.yml` or `project.yml` file in the root of your project:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
# orch.yml
|
|
54
|
+
project: my-awesome-app
|
|
55
|
+
|
|
56
|
+
# Global environment configuration
|
|
57
|
+
env:
|
|
58
|
+
type: venv # Type of virtual environment
|
|
59
|
+
path: ./venv # Path to the virtualenv folder
|
|
60
|
+
variables:
|
|
61
|
+
GLOBAL_VAR: "shared-value"
|
|
62
|
+
DATABASE_URL: "sqlite:///local.db"
|
|
63
|
+
|
|
64
|
+
services:
|
|
65
|
+
backend:
|
|
66
|
+
path: ./backend # Working directory for this service
|
|
67
|
+
command: python app.py # Automatically runs using the configured global venv
|
|
68
|
+
env:
|
|
69
|
+
PORT: "8000"
|
|
70
|
+
|
|
71
|
+
frontend:
|
|
72
|
+
path: ./frontend
|
|
73
|
+
command: npm run dev
|
|
74
|
+
env:
|
|
75
|
+
VITE_API_URL: "http://localhost:8000"
|
|
76
|
+
|
|
77
|
+
worker:
|
|
78
|
+
path: ./worker
|
|
79
|
+
command: python worker.py
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## CLI Usage
|
|
85
|
+
|
|
86
|
+
### 1. Run in Foreground (Interactive Mode)
|
|
87
|
+
|
|
88
|
+
Launches all services concurrently, streaming their colored logs into the active console. Pressing `Ctrl+C` cleanly shuts down all services.
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
orch up
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 2. Run in Background (Detached Mode)
|
|
95
|
+
|
|
96
|
+
Launches all services in the background and saves their state.
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
orch start
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 3. Check Service Status & Resource Usage
|
|
103
|
+
|
|
104
|
+
Displays an elegant table showing running status, PID, CPU, Memory usage (recursive of all child processes), and uptime.
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
orch status
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
*Example Output:*
|
|
111
|
+
```text
|
|
112
|
+
Project: my-awesome-app (Services Status)
|
|
113
|
+
┌──────────┬─────────┬───────┬───────┬─────────────┬──────────┐
|
|
114
|
+
│ Service │ Status │ PID │ CPU % │ Memory (MB) │ Uptime │
|
|
115
|
+
├──────────┼─────────┼───────┼───────┼─────────────┼──────────┤
|
|
116
|
+
│ backend │ RUNNING │ 12452 │ 0.2% │ 45.4 MB │ 00:12:30 │
|
|
117
|
+
│ frontend │ RUNNING │ 12459 │ 0.0% │ 82.1 MB │ 00:12:30 │
|
|
118
|
+
│ worker │ RUNNING │ 12461 │ 1.5% │ 32.7 MB │ 00:12:28 │
|
|
119
|
+
└──────────┴─────────┴───────┴───────┴─────────────┴──────────┘
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 4. Consult and Tail Logs
|
|
123
|
+
|
|
124
|
+
Tail log files of services running in the background.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Follow logs of all services
|
|
128
|
+
orch logs -f
|
|
129
|
+
|
|
130
|
+
# Follow logs of a specific service
|
|
131
|
+
orch logs backend -f
|
|
132
|
+
|
|
133
|
+
# Read last 100 lines without following
|
|
134
|
+
orch logs frontend --lines 100
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 5. Restart Services
|
|
138
|
+
|
|
139
|
+
Restarts all or specific services running in the background.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Restart all
|
|
143
|
+
orch restart
|
|
144
|
+
|
|
145
|
+
# Restart only backend
|
|
146
|
+
orch restart backend
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 6. Stop Services
|
|
150
|
+
|
|
151
|
+
Stops services running in the background and cleans up state.
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Stop all services
|
|
155
|
+
orch stop
|
|
156
|
+
|
|
157
|
+
# Stop a specific service
|
|
158
|
+
orch stop backend
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 7. Clean State & Logs
|
|
162
|
+
|
|
163
|
+
Terminates background services, clears log files (`.orch/logs/*.log`) to 0 bytes, and resets the state file.
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
orch clean
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Technical Architecture
|
|
172
|
+
|
|
173
|
+
Orch is built using **Python 3.8+**, **Typer** for the CLI framework, **Rich** for visual output rendering, and **psutil** for platform-independent process controls.
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
[ CLI Command: orch ]
|
|
177
|
+
│
|
|
178
|
+
[ Load Configuration ]
|
|
179
|
+
│
|
|
180
|
+
[ Validate YAML Schema ]
|
|
181
|
+
│
|
|
182
|
+
[ Process Execution ]
|
|
183
|
+
│
|
|
184
|
+
┌────────────────────┴────────────────────┐
|
|
185
|
+
[ Foreground Mode ] [ Background Mode ]
|
|
186
|
+
(Multiplex to Terminal) (Write to Log Files)
|
|
187
|
+
│ │
|
|
188
|
+
├── Thread 1 (stdout) ├── .orch/logs/backend.log
|
|
189
|
+
├── Thread 2 (stdout) ├── .orch/logs/frontend.log
|
|
190
|
+
└── SIGINT cleanup └── Keep PIDs in .orch/state.json
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## License
|
|
196
|
+
|
|
197
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|