nextmv 1.6.3.dev0__tar.gz → 1.7.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.
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/PKG-INFO +1 -1
- nextmv-1.7.0/nextmv/__about__.py +1 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/__init__.py +2 -2
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/_helpers.py +10 -10
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/__init__.py +2 -2
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/package.py +2 -2
- nextmv-1.7.0/nextmv/content_format.py +122 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/input.py +226 -107
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/application.py +195 -21
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/executor.py +64 -71
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/manifest.py +146 -17
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/model.py +1 -61
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/output.py +982 -213
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/binary_multi-file_app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_hello-world/app.yaml +2 -2
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_hello-world/main.go +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_hello-world/Main.java +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_hello-world/app.yaml +2 -2
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_class-assign/main.py +5 -7
- {nextmv-1.6.3.dev0/nextmv/templates/python_multi-file_class-assign → nextmv-1.7.0/nextmv/templates/python_json_class-assign}/requirements.txt +1 -1
- {nextmv-1.6.3.dev0/nextmv/templates/python_multi-file_demand-alloc → nextmv-1.7.0/nextmv/templates/python_json_demand-alloc}/allocation/main.py +48 -42
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/allocation/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/workflow/main.py +2 -3
- {nextmv-1.6.3.dev0/nextmv/templates/python_multi-file_demand-alloc → nextmv-1.7.0/nextmv/templates/python_json_demand-alloc}/workflow/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_hello-world/main.py +3 -8
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_hello-world/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/main.py +4 -10
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_class-assign → nextmv-1.7.0/nextmv/templates/python_multi-file_class-assign}/requirements.txt +1 -1
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_demand-alloc → nextmv-1.7.0/nextmv/templates/python_multi-file_demand-alloc}/allocation/main.py +30 -27
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/allocation/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +3 -3
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_demand-alloc → nextmv-1.7.0/nextmv/templates/python_multi-file_demand-alloc}/workflow/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_hello-world/app.yaml +3 -3
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_hello-world/main.py +2 -11
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_hello-world/requirements.txt +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cli/test_mcp.py +5 -5
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cloud/app.yaml +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/local/test_executor.py +41 -77
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_input.py +544 -2
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_manifest.py +1 -1
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_output.py +1054 -20
- nextmv-1.6.3.dev0/nextmv/__about__.py +0 -1
- nextmv-1.6.3.dev0/nextmv/content_format.py +0 -53
- nextmv-1.6.3.dev0/nextmv/default_app/README.md +0 -32
- nextmv-1.6.3.dev0/nextmv/default_app/app.yaml +0 -21
- nextmv-1.6.3.dev0/nextmv/default_app/main.py +0 -35
- nextmv-1.6.3.dev0/nextmv/default_app/requirements.txt +0 -2
- nextmv-1.6.3.dev0/nextmv/default_app/src/visuals.py +0 -36
- nextmv-1.6.3.dev0/nextmv/templates/python_json_hello-world/.gitignore +0 -1
- nextmv-1.6.3.dev0/nextmv/templates/python_multi-file_hello-world/inputs/input.json +0 -5
- nextmv-1.6.3.dev0/tests/test_entrypoint/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/.python-version +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/CONTRIBUTING.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/LICENSE +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/__entrypoint__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/_serialization.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/account.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/base_model.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/acceptance/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/account/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/account/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/account/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/account/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/account/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/exists.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/push.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/app/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/batch/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/data/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/data/upload.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/ensemble/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/input_set/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/exists.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/instance/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/managed_input/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/cancel.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/input.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/logs.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/run/track.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/scenario/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/secrets/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/start.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/stop.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/shadow/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/disable.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/enable.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/sso/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/start.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/stop.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/switchback/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/upload/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/upload/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/exists.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/cloud/version/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/community/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/community/clone.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/community/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/configuration/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/configuration/config.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/configuration/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/configuration/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/configuration/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/init.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/delete.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/register.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/registered.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/sync.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/app/update.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/create.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/get.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/input.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/list.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/logs.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/metadata.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/local/run/visuals.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/main.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/manifest/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/manifest/init.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/manifest/validate.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/serve.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/server.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/WORKFLOW.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/acceptance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/account.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/app.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/batch.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/community.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/ensemble.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/guide.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/input_set.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/instance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/local.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/managed_input.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/profile.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/run.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/scenario.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/secrets.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/shadow.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/sso.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/switchback.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/mcp/tools/version.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/message.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/options.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cli/version.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/acceptance_test.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/account.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_acceptance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_batch_scenario.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_ensemble.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_input_set.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_instance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_managed_input.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_run.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_secrets.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_shadow.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_switchback.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_utils.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/application/_version.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/assets.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/batch_experiment.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/client.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/community.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/ensemble.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/input_set.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/instance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/integration.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/marketplace.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/scenario.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/secrets.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/shadow.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/sso.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/switchback.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/url.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/cloud/version.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/deprecated.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/geojson_handler.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/local.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/plotly_handler.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/registry.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/local/runner.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/logger.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/options.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/polling.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/run.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/safe.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/status.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/binary_json_app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_hello-world/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_hello-world/app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_hello-world/go.mod +0 -0
- {nextmv-1.6.3.dev0/nextmv/default_app → nextmv-1.7.0/nextmv/templates/go_json_hello-world}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_json_hello-world/main.go +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/go_multi-file_hello-world/go.mod +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/go_json_hello-world → nextmv-1.7.0/nextmv/templates/go_multi-file_hello-world/inputs}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_hello-world/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_hello-world/Main.java +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_hello-world/app.yaml +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/go_multi-file_hello-world/inputs → nextmv-1.7.0/nextmv/templates/java_json_hello-world}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_json_hello-world/pom.xml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/java_json_hello-world → nextmv-1.7.0/nextmv/templates/java_multi-file_hello-world/inputs}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/java_multi-file_hello-world/pom.xml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_app.yaml +0 -0
- {nextmv-1.6.3.dev0/nextmv/default_app → nextmv-1.7.0/nextmv/templates/python_json_class-assign}/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_class-assign/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_class-assign/app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_class-assign/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_class-assign/visualizations.py +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_class-assign → nextmv-1.7.0/nextmv/templates/python_json_demand-alloc}/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/allocation/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/workflow/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_demand-alloc → nextmv-1.7.0/nextmv/templates/python_json_hello-world}/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_json_hello-world/app.yaml +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/java_multi-file_hello-world/inputs → nextmv-1.7.0/nextmv/templates/python_json_hello-world}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/inputs/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_class-assign/visualizations.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/allocation/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/nextmv/templates/python_multi-file_hello-world/README.md +0 -0
- {nextmv-1.6.3.dev0/nextmv/templates/python_json_hello-world → nextmv-1.7.0/nextmv/templates/python_multi-file_hello-world/inputs}/input.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/pyproject.toml +0 -0
- {nextmv-1.6.3.dev0/nextmv/default_app/src → nextmv-1.7.0/tests}/__init__.py +0 -0
- {nextmv-1.6.3.dev0/tests → nextmv-1.7.0/tests/cli}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cli/test_configuration.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cli/test_main.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cli/test_version.py +0 -0
- {nextmv-1.6.3.dev0/tests/cli → nextmv-1.7.0/tests/cloud}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cloud/test_client.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cloud/test_instance.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cloud/test_package.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/cloud/test_scenario.py +0 -0
- {nextmv-1.6.3.dev0/tests/cloud → nextmv-1.7.0/tests/integration}/__init__.py +0 -0
- {nextmv-1.6.3.dev0/tests/integration → nextmv-1.7.0/tests/integration/cloud}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/integration/cloud/test_integration_cloud.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/integration/cloud/test_integration_marketplace.py +0 -0
- {nextmv-1.6.3.dev0/tests/integration/cloud → nextmv-1.7.0/tests/local}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/local/test_application.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/local/test_registry.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/local/test_runner.py +0 -0
- {nextmv-1.6.3.dev0/tests/local → nextmv-1.7.0/tests/scripts}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options1.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options2.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options3.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options4.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options5.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options6.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/scripts/options7.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_base_model.py +0 -0
- {nextmv-1.6.3.dev0/tests/scripts → nextmv-1.7.0/tests/test_entrypoint}/__init__.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_entrypoint/test_entrypoint.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_inputs/test_data.csv +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_inputs/test_data.json +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_inputs/test_data.txt +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_logger.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_model.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_options.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_polling.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_run.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_safe.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_serialization.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/tests/test_version.py +0 -0
- {nextmv-1.6.3.dev0 → nextmv-1.7.0}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.7.0"
|
|
@@ -5,9 +5,9 @@ from .account import AccountMemberRole as AccountMemberRole
|
|
|
5
5
|
from .base_model import BaseModel as BaseModel
|
|
6
6
|
from .base_model import from_dict as from_dict
|
|
7
7
|
from .content_format import ContentFormat as ContentFormat
|
|
8
|
+
from .content_format import InputFormat as InputFormat
|
|
8
9
|
from .input import DataFile as DataFile
|
|
9
10
|
from .input import Input as Input
|
|
10
|
-
from .input import InputFormat as InputFormat
|
|
11
11
|
from .input import InputLoader as InputLoader
|
|
12
12
|
from .input import LocalInputLoader as LocalInputLoader
|
|
13
13
|
from .input import csv_data_file as csv_data_file
|
|
@@ -27,11 +27,11 @@ from .manifest import ManifestPythonArch as ManifestPythonArch
|
|
|
27
27
|
from .manifest import ManifestPythonModel as ManifestPythonModel
|
|
28
28
|
from .manifest import ManifestRuntime as ManifestRuntime
|
|
29
29
|
from .manifest import ManifestType as ManifestType
|
|
30
|
+
from .manifest import ModelConfiguration as ModelConfiguration
|
|
30
31
|
from .manifest import default_python_manifest as default_python_manifest
|
|
31
32
|
from .manifest import find_files as find_files
|
|
32
33
|
from .manifest import initialize_manifest as initialize_manifest
|
|
33
34
|
from .model import Model as Model
|
|
34
|
-
from .model import ModelConfiguration as ModelConfiguration
|
|
35
35
|
from .options import Option as Option
|
|
36
36
|
from .options import Options as Options
|
|
37
37
|
from .output import Asset as Asset
|
|
@@ -9,7 +9,7 @@ from typing import Any
|
|
|
9
9
|
from nextmv import local
|
|
10
10
|
from nextmv.cloud import Application, Client
|
|
11
11
|
from nextmv.content_format import ContentFormat
|
|
12
|
-
from nextmv.local.executor import
|
|
12
|
+
from nextmv.local.executor import _process_run_visuals
|
|
13
13
|
from nextmv.local.local import LOGS_FILE, LOGS_KEY
|
|
14
14
|
from nextmv.logger import log
|
|
15
15
|
from nextmv.output import ASSETS_KEY, METRICS_KEY, OUTPUTS_KEY, SOLUTIONS_KEY, STATISTICS_KEY
|
|
@@ -239,9 +239,9 @@ def _extract_cloud_run_outputs(result_dict: dict[str, Any], endpoint: str, run_i
|
|
|
239
239
|
Mirrors the local run ``outputs/`` directory structure:
|
|
240
240
|
|
|
241
241
|
* ``outputs/solutions/solution.json`` — the full output dict (matches local)
|
|
242
|
-
* ``outputs/metrics
|
|
243
|
-
* ``outputs/statistics
|
|
244
|
-
* ``outputs/assets
|
|
242
|
+
* ``outputs/metrics.json`` — raw metrics value
|
|
243
|
+
* ``outputs/statistics.json`` — wrapped as ``{"statistics": ...}``
|
|
244
|
+
* ``outputs/assets.json`` — wrapped as ``{"assets": ...}``
|
|
245
245
|
|
|
246
246
|
Skipped when *output* is not a dict with inline data (e.g. csv-archive
|
|
247
247
|
results where the SDK already extracted files via ``output_dir_path``).
|
|
@@ -261,15 +261,15 @@ def _extract_cloud_run_outputs(result_dict: dict[str, Any], endpoint: str, run_i
|
|
|
261
261
|
with open(path, "w") as fh:
|
|
262
262
|
json.dump(output, fh, indent=2)
|
|
263
263
|
|
|
264
|
-
# metrics → outputs/metrics
|
|
264
|
+
# metrics → outputs/metrics.json (raw, matching local)
|
|
265
265
|
metrics = output.get(METRICS_KEY)
|
|
266
266
|
if metrics:
|
|
267
|
-
path = os.path.join(outputs_dir,
|
|
267
|
+
path = os.path.join(outputs_dir, f"{METRICS_KEY}.json")
|
|
268
268
|
os.makedirs(os.path.dirname(path), exist_ok=True)
|
|
269
269
|
with open(path, "w") as fh:
|
|
270
270
|
json.dump(metrics, fh, indent=2)
|
|
271
271
|
|
|
272
|
-
# statistics → outputs/statistics
|
|
272
|
+
# statistics → outputs/statistics.json (wrapped, matching local)
|
|
273
273
|
statistics = output.get(STATISTICS_KEY)
|
|
274
274
|
if statistics:
|
|
275
275
|
path = os.path.join(outputs_dir, STATISTICS_KEY, f"{STATISTICS_KEY}.json")
|
|
@@ -277,17 +277,17 @@ def _extract_cloud_run_outputs(result_dict: dict[str, Any], endpoint: str, run_i
|
|
|
277
277
|
with open(path, "w") as fh:
|
|
278
278
|
json.dump({STATISTICS_KEY: statistics}, fh, indent=2)
|
|
279
279
|
|
|
280
|
-
# assets → outputs/assets
|
|
280
|
+
# assets → outputs/assets.json (wrapped, matching local)
|
|
281
281
|
assets = output.get(ASSETS_KEY)
|
|
282
282
|
if assets:
|
|
283
|
-
path = os.path.join(outputs_dir,
|
|
283
|
+
path = os.path.join(outputs_dir, f"{ASSETS_KEY}.json")
|
|
284
284
|
os.makedirs(os.path.dirname(path), exist_ok=True)
|
|
285
285
|
with open(path, "w") as fh:
|
|
286
286
|
json.dump({ASSETS_KEY: assets}, fh, indent=2)
|
|
287
287
|
|
|
288
288
|
# Generate visuals from assets (Plotly/GeoJSON → HTML), matching local.
|
|
289
289
|
try:
|
|
290
|
-
|
|
290
|
+
_process_run_visuals(run_dir=run_dir, outputs_dir=outputs_dir)
|
|
291
291
|
except Exception as exc:
|
|
292
292
|
log(f"Visual generation failed for run {run_id}: {exc}")
|
|
293
293
|
|
|
@@ -48,8 +48,8 @@ from nextmv.cloud.application._version import ApplicationVersionMixin
|
|
|
48
48
|
from nextmv.cloud.client import Client
|
|
49
49
|
from nextmv.cloud.url import UploadURL
|
|
50
50
|
from nextmv.logger import log
|
|
51
|
-
from nextmv.manifest import Manifest
|
|
52
|
-
from nextmv.model import Model
|
|
51
|
+
from nextmv.manifest import Manifest, ModelConfiguration
|
|
52
|
+
from nextmv.model import Model
|
|
53
53
|
from nextmv.safe import safe_id
|
|
54
54
|
|
|
55
55
|
|
|
@@ -12,8 +12,8 @@ import tempfile
|
|
|
12
12
|
import rich
|
|
13
13
|
|
|
14
14
|
from nextmv.logger import log
|
|
15
|
-
from nextmv.manifest import MANIFEST_FILE_NAME, Manifest, ManifestBuild, ManifestType, find_files
|
|
16
|
-
from nextmv.model import Model,
|
|
15
|
+
from nextmv.manifest import MANIFEST_FILE_NAME, Manifest, ManifestBuild, ManifestType, ModelConfiguration, find_files
|
|
16
|
+
from nextmv.model import Model, _cleanup_python_model
|
|
17
17
|
|
|
18
18
|
_MANDATORY_FILES_PER_TYPE = {
|
|
19
19
|
ManifestType.PYTHON: ["main.py"],
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Module for handling content formats of an app's input and output.
|
|
3
|
+
|
|
4
|
+
Classes
|
|
5
|
+
-------
|
|
6
|
+
ContentFormat
|
|
7
|
+
Format of the content of an app's input and output. This is used to specify
|
|
8
|
+
how the app should read and write data.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from enum import Enum
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ContentFormat(str, Enum):
|
|
15
|
+
"""
|
|
16
|
+
Format of the content of an app's input and output. This is used to specify
|
|
17
|
+
how the app should read and write data.
|
|
18
|
+
|
|
19
|
+
You can import the `ContentFormat` class directly from `nextmv`:
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from nextmv import ContentFormat
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Attributes
|
|
26
|
+
----------
|
|
27
|
+
JSON : str
|
|
28
|
+
JSON format, utf-8 encoded.
|
|
29
|
+
MULTI_FILE : str
|
|
30
|
+
Multi-file format, used for loading multiple files in a single input.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
JSON = "json"
|
|
34
|
+
"""
|
|
35
|
+
JSON format, utf-8 encoded. JSON is read from stdin and written to stdout.
|
|
36
|
+
"""
|
|
37
|
+
MULTI_FILE = "multi-file"
|
|
38
|
+
"""
|
|
39
|
+
Multi-file format. Read/write one or more files from/to disk (a directory).
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def description(self) -> str:
|
|
44
|
+
"""
|
|
45
|
+
A human-friendly description of the content format.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
descriptions = {
|
|
49
|
+
ContentFormat.JSON: "JSON format, utf-8 encoded. JSON is read from stdin and written to stdout.",
|
|
50
|
+
ContentFormat.MULTI_FILE: "Multi-file format. Read/write one or more files from/to disk (a directory).",
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return descriptions[self]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class InputFormat(str, Enum):
|
|
57
|
+
"""
|
|
58
|
+
!!! warning
|
|
59
|
+
`InputFormat` is deprecated, use `nextmv.ContentFormat` instead.
|
|
60
|
+
|
|
61
|
+
Format of an `Input`.
|
|
62
|
+
|
|
63
|
+
You can import the `InputFormat` class directly from `nextmv`:
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
from nextmv import InputFormat
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This enum specifies the supported formats for input data.
|
|
70
|
+
|
|
71
|
+
Attributes
|
|
72
|
+
----------
|
|
73
|
+
JSON : str
|
|
74
|
+
!!! warning
|
|
75
|
+
`InputFormat.JSON` is deprecated, use `ContentFormat.JSON` instead.
|
|
76
|
+
|
|
77
|
+
JSON format, utf-8 encoded.
|
|
78
|
+
TEXT : str
|
|
79
|
+
!!! warning
|
|
80
|
+
`InputFormat.TEXT` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
81
|
+
|
|
82
|
+
Text format, utf-8 encoded.
|
|
83
|
+
CSV_ARCHIVE : str
|
|
84
|
+
!!! warning
|
|
85
|
+
`InputFormat.CSV_ARCHIVE` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
86
|
+
|
|
87
|
+
CSV archive format: multiple CSV files.
|
|
88
|
+
MULTI_FILE : str
|
|
89
|
+
!!! warning
|
|
90
|
+
`InputFormat.MULTI_FILE` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
91
|
+
|
|
92
|
+
Multi-file format, used for loading multiple files in a single input.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
JSON = "json"
|
|
96
|
+
"""
|
|
97
|
+
!!! warning
|
|
98
|
+
`InputFormat.JSON` is deprecated, use `ContentFormat.JSON` instead.
|
|
99
|
+
|
|
100
|
+
JSON format, utf-8 encoded.
|
|
101
|
+
"""
|
|
102
|
+
TEXT = "text"
|
|
103
|
+
"""
|
|
104
|
+
!!! warning
|
|
105
|
+
`InputFormat.TEXT` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
106
|
+
|
|
107
|
+
Text format, utf-8 encoded.
|
|
108
|
+
"""
|
|
109
|
+
CSV_ARCHIVE = "csv-archive"
|
|
110
|
+
"""
|
|
111
|
+
!!! warning
|
|
112
|
+
`InputFormat.CSV_ARCHIVE` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
113
|
+
|
|
114
|
+
CSV archive format: multiple CSV files.
|
|
115
|
+
"""
|
|
116
|
+
MULTI_FILE = "multi-file"
|
|
117
|
+
"""
|
|
118
|
+
!!! warning
|
|
119
|
+
`InputFormat.MULTI_FILE` is deprecated, use `ContentFormat.MULTI_FILE` instead.
|
|
120
|
+
|
|
121
|
+
Multi-file format, used for loading multiple files in a single input.
|
|
122
|
+
"""
|