nextmv 1.8.0.dev0__tar.gz → 1.8.0.dev1__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.
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/PKG-INFO +1 -1
- nextmv-1.8.0.dev1/nextmv/__about__.py +1 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cache.py +20 -9
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/package.py +7 -7
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_cache.py +6 -5
- nextmv-1.8.0.dev0/nextmv/__about__.py +0 -1
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/.python-version +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/CONTRIBUTING.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/LICENSE +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/__entrypoint__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/_serialization.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/account.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/base_model.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cache/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cache/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cache/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/acceptance/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/account/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/account/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/account/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/account/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/account/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/exists.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/push.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/app/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/batch/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/data/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/data/upload.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/ensemble/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/input_set/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/exists.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/instance/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/managed_input/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/cancel.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/logs.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/run/track.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/scenario/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/secrets/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/start.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/stop.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/shadow/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/disable.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/enable.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/sso/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/start.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/stop.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/switchback/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/upload/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/upload/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/exists.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/version/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/community/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/community/clone.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/community/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/configuration/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/configuration/config.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/configuration/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/configuration/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/configuration/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/init.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/delete.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/register.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/registered.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/sync.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/app/update.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/create.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/get.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/list.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/logs.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/metadata.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/local/run/visuals.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/manifest/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/manifest/init.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/manifest/validate.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/serve.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/server.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/WORKFLOW.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/_helpers.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/acceptance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/account.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/app.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/batch.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/community.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/ensemble.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/guide.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/input_set.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/instance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/local.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/managed_input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/profile.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/run.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/scenario.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/secrets.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/shadow.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/sso.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/switchback.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/mcp/tools/version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/message.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/options.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/acceptance_test.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/account.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_acceptance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_batch_scenario.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_ensemble.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_input_set.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_instance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_managed_input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_run.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_secrets.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_shadow.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_switchback.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_utils.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/application/_version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/assets.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/batch_experiment.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/client.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/community.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/ensemble.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/input_set.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/instance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/integration.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/marketplace.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/scenario.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/secrets.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/shadow.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/sso.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/switchback.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/url.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cloud/version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/content_format.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/deprecated.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/application.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/executor.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/geojson_handler.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/local.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/plotly_handler.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/registry.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/local/runner.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/logger.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/manifest.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/model.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/options.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/output.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/polling.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/run.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/safe.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/status.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/binary_json.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/binary_json_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/binary_multi-file.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/binary_multi-file_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/go.mod +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_hello-world/main.go +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_json_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/go.mod +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_hello-world/main.go +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/go_multi-file_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/Main.java +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_hello-world/pom.xml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_json_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/Main.java +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_hello-world/pom.xml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/java_multi-file_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_class-assign/visualizations.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_hello-world/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_json_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/inputs/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_class-assign/visualizations.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/README.md +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_hello-world/uv.lock +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/templates/python_multi-file_opt.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/uv_handler.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/pyproject.toml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/manifest/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/manifest/test_init.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/test_configuration.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/test_init_cli_call.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/test_main.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/test_mcp.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cli/test_version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/app.yaml +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/test_client.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/test_instance.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/test_package.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/cloud/test_scenario.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/integration/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/integration/cloud/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/integration/cloud/test_integration_cloud.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/integration/cloud/test_integration_marketplace.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/local/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/local/test_application.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/local/test_executor.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/local/test_registry.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/local/test_runner.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options1.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options2.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options3.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options4.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options5.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options6.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/scripts/options7.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_base_model.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_entrypoint/__init__.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_entrypoint/test_entrypoint.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_input.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_inputs/test_data.csv +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_inputs/test_data.json +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_inputs/test_data.txt +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_logger.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_manifest.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_model.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_options.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_output.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_polling.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_run.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_safe.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_serialization.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_uv_handler.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/tests/test_version.py +0 -0
- {nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.8.0.dev1"
|
|
@@ -33,6 +33,8 @@ _DEPS_CACHE_DIR = _CACHE_DIR / "deps"
|
|
|
33
33
|
"""Directory storing per-package dependency tarballs."""
|
|
34
34
|
_CACHE_INFO_FILE = "cache_info.json"
|
|
35
35
|
"""Name of the metadata file stored alongside each cached entry."""
|
|
36
|
+
_DEP_TARBALL_NAME = "installed.tar.gz"
|
|
37
|
+
"""Name of the per-package tarball containing installed files for a single package."""
|
|
36
38
|
_MAX_DEPS = 2000
|
|
37
39
|
"""Maximum number of individual package tarballs to keep in the cache."""
|
|
38
40
|
_MAX_DEP_BYTES = 5 * 1024**3
|
|
@@ -63,6 +65,12 @@ def get_cache() -> dict[str, Any]:
|
|
|
63
65
|
with open(info_file) as f:
|
|
64
66
|
info = json.load(f)
|
|
65
67
|
|
|
68
|
+
tarball = entry_dir / _DEP_TARBALL_NAME
|
|
69
|
+
try:
|
|
70
|
+
tarball_size = format_bytes(tarball.stat().st_size)
|
|
71
|
+
except OSError:
|
|
72
|
+
tarball_size = ""
|
|
73
|
+
|
|
66
74
|
dependencies.append(
|
|
67
75
|
{
|
|
68
76
|
"key": entry_dir.name,
|
|
@@ -71,13 +79,14 @@ def get_cache() -> dict[str, Any]:
|
|
|
71
79
|
"last_used_at": info.get("last_used_at", ""),
|
|
72
80
|
"python_version": info.get("python_version", ""),
|
|
73
81
|
"platform": info.get("platform", ""),
|
|
82
|
+
"size": tarball_size,
|
|
74
83
|
}
|
|
75
84
|
)
|
|
76
85
|
except Exception:
|
|
77
86
|
pass
|
|
78
87
|
|
|
79
88
|
if dependencies:
|
|
80
|
-
dependencies.sort(key=lambda d: (d["last_used_at"], d["name"], d["version"]))
|
|
89
|
+
dependencies.sort(key=lambda d: (d["last_used_at"], d["name"], d["version"]), reverse=True)
|
|
81
90
|
|
|
82
91
|
return {
|
|
83
92
|
"num_dependencies": num_deps,
|
|
@@ -100,10 +109,7 @@ def clear_cache() -> tuple[int, int]:
|
|
|
100
109
|
return 0, 0
|
|
101
110
|
|
|
102
111
|
num_deps, total_bytes = _cache_stats()
|
|
103
|
-
|
|
104
|
-
if _CACHE_DIR.exists():
|
|
105
|
-
shutil.rmtree(str(_CACHE_DIR))
|
|
106
|
-
|
|
112
|
+
shutil.rmtree(str(_CACHE_DIR))
|
|
107
113
|
_create_cache()
|
|
108
114
|
|
|
109
115
|
return num_deps, total_bytes
|
|
@@ -165,7 +171,7 @@ def get_cached_dep(pkg_key: str) -> Path | None:
|
|
|
165
171
|
|
|
166
172
|
entry_dir = _DEPS_CACHE_DIR / pkg_key
|
|
167
173
|
info_file = entry_dir / _CACHE_INFO_FILE
|
|
168
|
-
installed_tar = entry_dir /
|
|
174
|
+
installed_tar = entry_dir / _DEP_TARBALL_NAME
|
|
169
175
|
|
|
170
176
|
if not installed_tar.is_file() or not info_file.is_file():
|
|
171
177
|
return None
|
|
@@ -225,7 +231,7 @@ def store_dep(
|
|
|
225
231
|
|
|
226
232
|
with tempfile.TemporaryDirectory(dir=_DEPS_CACHE_DIR, prefix=f"{pkg_key}-tmp-", ignore_cleanup_errors=True) as _tmp:
|
|
227
233
|
tmp_entry = Path(_tmp)
|
|
228
|
-
shutil.copy2(str(tar_path), tmp_entry /
|
|
234
|
+
shutil.copy2(str(tar_path), tmp_entry / _DEP_TARBALL_NAME)
|
|
229
235
|
now = _now_iso()
|
|
230
236
|
info = {
|
|
231
237
|
"created_at": now,
|
|
@@ -300,6 +306,11 @@ def _create_cache() -> None:
|
|
|
300
306
|
|
|
301
307
|
_DEPS_CACHE_DIR.mkdir(parents=True, exist_ok=True)
|
|
302
308
|
|
|
309
|
+
# Remove leftover staging dirs from previous crashed/killed runs.
|
|
310
|
+
for entry in _DEPS_CACHE_DIR.iterdir():
|
|
311
|
+
if entry.is_dir() and "-tmp-" in entry.name:
|
|
312
|
+
shutil.rmtree(str(entry), ignore_errors=True)
|
|
313
|
+
|
|
303
314
|
|
|
304
315
|
def _evict_lru(max_entries: int = _MAX_DEPS, max_bytes: int = _MAX_DEP_BYTES) -> int:
|
|
305
316
|
"""
|
|
@@ -324,7 +335,7 @@ def _evict_lru(max_entries: int = _MAX_DEPS, max_bytes: int = _MAX_DEP_BYTES) ->
|
|
|
324
335
|
|
|
325
336
|
entries = []
|
|
326
337
|
for entry_dir in _DEPS_CACHE_DIR.iterdir():
|
|
327
|
-
if not entry_dir.is_dir():
|
|
338
|
+
if not entry_dir.is_dir() or "-tmp-" in entry_dir.name:
|
|
328
339
|
continue
|
|
329
340
|
|
|
330
341
|
info_file = entry_dir / _CACHE_INFO_FILE
|
|
@@ -414,7 +425,7 @@ def _write_json_atomic(path: Path, data: dict) -> None:
|
|
|
414
425
|
tmp = Path(f.name)
|
|
415
426
|
|
|
416
427
|
try:
|
|
417
|
-
|
|
428
|
+
os.replace(tmp, path)
|
|
418
429
|
except Exception as e:
|
|
419
430
|
tmp.unlink(missing_ok=True)
|
|
420
431
|
raise e
|
|
@@ -271,7 +271,7 @@ def _copy_manifest_files(
|
|
|
271
271
|
|
|
272
272
|
try:
|
|
273
273
|
shutil.copy2(file["absolute_path"], os.path.join(temp_dir, target_dir))
|
|
274
|
-
except
|
|
274
|
+
except OSError as e:
|
|
275
275
|
raise Exception(f"error copying asset files {file['absolute_path']}: {e}") from e
|
|
276
276
|
|
|
277
277
|
|
|
@@ -847,13 +847,13 @@ def _install_and_compress_package(
|
|
|
847
847
|
# the entries (no EOF block). Omitting the EOF block lets these
|
|
848
848
|
# per-package gzip streams be raw-concatenated without causing tar
|
|
849
849
|
# to stop at the first end-of-archive marker.
|
|
850
|
-
|
|
851
|
-
tmp_tar_path = _tmp_f.name
|
|
850
|
+
tmp_tar_path = os.path.join(install_tmp, "pkg.tar")
|
|
852
851
|
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
852
|
+
with tarfile.open(tmp_tar_path, mode="w") as tar_obj:
|
|
853
|
+
tar_obj.add(install_dir, arcname=dep_arcname)
|
|
854
|
+
# Byte offset where EOF marker begins; captured before close()
|
|
855
|
+
# appends EOF blocks.
|
|
856
|
+
entry_end = tar_obj.offset
|
|
857
857
|
|
|
858
858
|
with open(tmp_tar_path, "rb") as raw_f:
|
|
859
859
|
with gzip.open(str(tar_path), "wb") as gz:
|
|
@@ -12,6 +12,7 @@ from unittest.mock import patch
|
|
|
12
12
|
|
|
13
13
|
from nextmv.cache import (
|
|
14
14
|
_CACHE_INFO_FILE,
|
|
15
|
+
_DEP_TARBALL_NAME,
|
|
15
16
|
_MAX_DEP_BYTES,
|
|
16
17
|
_MAX_DEPS,
|
|
17
18
|
_evict_lru,
|
|
@@ -121,7 +122,7 @@ class TestGetCachedPackageTar(unittest.TestCase):
|
|
|
121
122
|
def _make_pkg_tar_entry(self, key: str) -> Path:
|
|
122
123
|
entry_dir = self._tmpdir / key
|
|
123
124
|
entry_dir.mkdir(parents=True, exist_ok=True)
|
|
124
|
-
installed_tar = entry_dir /
|
|
125
|
+
installed_tar = entry_dir / _DEP_TARBALL_NAME
|
|
125
126
|
with tarfile.open(str(installed_tar), "w:gz"):
|
|
126
127
|
pass # empty tar
|
|
127
128
|
now = datetime.now(tz=timezone.utc).isoformat()
|
|
@@ -152,7 +153,7 @@ class TestGetCachedPackageTar(unittest.TestCase):
|
|
|
152
153
|
result = get_cached_dep(key)
|
|
153
154
|
|
|
154
155
|
self.assertIsNotNone(result)
|
|
155
|
-
self.assertTrue(str(result).endswith(
|
|
156
|
+
self.assertTrue(str(result).endswith(_DEP_TARBALL_NAME))
|
|
156
157
|
|
|
157
158
|
def test_hit_updates_last_used_at(self):
|
|
158
159
|
from nextmv import cache as cache_mod
|
|
@@ -182,7 +183,7 @@ class TestGetCachedPackageTar(unittest.TestCase):
|
|
|
182
183
|
key = "noinfo"
|
|
183
184
|
entry_dir = self._tmpdir / key
|
|
184
185
|
entry_dir.mkdir(parents=True)
|
|
185
|
-
with tarfile.open(str(entry_dir /
|
|
186
|
+
with tarfile.open(str(entry_dir / _DEP_TARBALL_NAME), "w:gz"):
|
|
186
187
|
pass # no cache_info.json written
|
|
187
188
|
|
|
188
189
|
with patch.object(cache_mod, "_DEPS_CACHE_DIR", self._tmpdir):
|
|
@@ -252,7 +253,7 @@ class TestStorePackageTar(unittest.TestCase):
|
|
|
252
253
|
|
|
253
254
|
entry_dir = self._pkg_tars_dir / key
|
|
254
255
|
self.assertTrue(entry_dir.is_dir())
|
|
255
|
-
self.assertTrue((entry_dir /
|
|
256
|
+
self.assertTrue((entry_dir / _DEP_TARBALL_NAME).is_file())
|
|
256
257
|
|
|
257
258
|
def test_info_file_has_required_fields(self):
|
|
258
259
|
from nextmv import cache as cache_mod
|
|
@@ -335,7 +336,7 @@ class TestEvictLruPackages(unittest.TestCase):
|
|
|
335
336
|
def _add_entry(self, key: str, last_used: str, size_bytes: int = 0):
|
|
336
337
|
entry_dir = self._pkg_tars_dir / key
|
|
337
338
|
entry_dir.mkdir(parents=True, exist_ok=True)
|
|
338
|
-
installed_tar = entry_dir /
|
|
339
|
+
installed_tar = entry_dir / _DEP_TARBALL_NAME
|
|
339
340
|
if size_bytes > 0:
|
|
340
341
|
data = os.urandom(size_bytes)
|
|
341
342
|
with tarfile.open(str(installed_tar), "w:gz") as tar:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "v1.8.0.dev0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextmv-1.8.0.dev0 → nextmv-1.8.0.dev1}/nextmv/cli/cloud/marketplace/subscription/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|