qwak-sdk 0.5.63__tar.gz → 0.5.64__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qwak-sdk might be problematic. Click here for more details.
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/PKG-INFO +2 -2
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/pyproject.toml +2 -2
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/__init__.py +1 -1
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/deploy_config.py +1 -1
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/deployment_message_helpers.py +0 -7
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/batch/_logic/deploy_executor.py +0 -1
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/realtime/_logic/deploy_executor.py +0 -1
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/realtime/_logic/serving_strategy_mapper.py +0 -35
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/streaming/_logic/deploy_executor.py +0 -1
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/undeploy/_logic/request_undeploy.py +0 -27
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/runtime/runtime_commands_group.py +0 -2
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/setup.py +2 -5
- qwak_sdk-0.5.63/qwak_sdk/commands/models/_logic/variations.py +0 -55
- qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/_logic/variations.py +0 -81
- qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/undeploy/_logic/variations.py +0 -74
- qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/traffic_update/_logic/execute_runtime_update_traffic.py +0 -54
- qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/traffic_update/_logic/variations.py +0 -84
- qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/traffic_update/ui.py +0 -37
- qwak_sdk-0.5.63/qwak_sdk/inner/__init__.py +0 -0
- qwak_sdk-0.5.63/qwak_sdk/inner/tools/__init__.py +0 -0
- qwak_sdk-0.5.63/qwak_sdk/tools/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/README.md +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/cli.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/_logic/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/_logic/tools.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/admin_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/api_keys_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/generate/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/generate/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/generate/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/revoke/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/revoke/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/admin/apikeys/revoke/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/alerts_commnad_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/delete/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/delete/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/list/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/list/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/register/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/register/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/alerts/register/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/config_base.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/parser.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/audience_config.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/conditions_config.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/config_v1.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/route_config.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/_logic/config/v1/spec.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/audience_api_dump.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/audience_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/create/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/create/logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/create/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/delete/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/delete/logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/delete/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/get/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/get/logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/get/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/list/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/list/logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/update/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/update/logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/audience/update/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/_logic/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/_logic/config/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/_logic/config/config.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/_logic/config/parser.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/attach/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/attach/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/attach/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/auto_scalling/autoscaling_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/automations_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/delete/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/delete/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/executions/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/executions/executions_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/executions/list/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/executions/list/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/executions/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/list/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/list/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/register/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/register/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/automations/register/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/backfill/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/backfill/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/backfill/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/delete/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/delete/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/execution/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/execution/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/feature_store_command_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/list/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/pause/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/pause/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/register/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/register/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/register/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/resume/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/resume/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/trigger/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/feature_store/trigger/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/build}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/build → qwak_sdk-0.5.64/qwak_sdk/commands/models/build/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/build_steps.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/build/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/build/_logic/client_logs}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/cli_phase_run_handler.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/cli_trigger_build_logger.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/logger.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/messages.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/spinner.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/trigger_build_logger.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/client_logs/utils.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/build/_logic/client_logs → qwak_sdk-0.5.64/qwak_sdk/commands/models/build/_logic/phase}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/a_fetch_model_code/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/a_fetch_model_code/get_sdk_version_step.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/b_remote_register_qwak_build/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/c_deploy/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/c_deploy/build_polling_status.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/phase/c_deploy/deploy_build.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/build/_logic/phase → qwak_sdk-0.5.64/qwak_sdk/commands/models/build/_logic/util}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/util/protobuf_factory.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/util/step_decorator.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/_logic/util/text.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/build/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/build/_logic/util → qwak_sdk-0.5.64/qwak_sdk/commands/models/builds}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/builds_commands_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/builds → qwak_sdk-0.5.64/qwak_sdk/commands/models/builds/cancel}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/cancel/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/cancel/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/builds/cancel → qwak_sdk-0.5.64/qwak_sdk/commands/models/builds/logs}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/logs/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/builds/logs → qwak_sdk-0.5.64/qwak_sdk/commands/models/builds/status}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/status/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/builds/status/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/builds/status → qwak_sdk-0.5.64/qwak_sdk/commands/models/create}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/create/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/create/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/create → qwak_sdk-0.5.64/qwak_sdk/commands/models/delete}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/delete/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/delete → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/advance_deployment_options_handler.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/base_deploy_executor.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/deployment.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/deployment_response_handler.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/deployment_size_mapper.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/get_latest_successful_build.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/_logic/local_deployment.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/batch}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/batch → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/batch/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/batch/_logic/advanced_deployment_mapper.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/batch/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/deploy_commands_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/batch/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/realtime}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/realtime → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/realtime/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/realtime/_logic/advanced_deployment_mapper.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/realtime/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/realtime/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/streaming}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/streaming → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/deploy/streaming/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/streaming/_logic/serving_strategy_mapper.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/deploy/streaming/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/deploy/streaming/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/undeploy}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/undeploy → qwak_sdk-0.5.64/qwak_sdk/commands/models/deployments/undeploy/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/deployments/undeploy/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/deployments/undeploy/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/describe}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/describe/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/describe/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/describe → qwak_sdk-0.5.64/qwak_sdk/commands/models/executions}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/executions → qwak_sdk-0.5.64/qwak_sdk/commands/models/executions/cancel}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/cancel/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/cancel/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/execution_commands_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/executions/cancel → qwak_sdk-0.5.64/qwak_sdk/commands/models/executions/report}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/report/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/report/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/executions/report → qwak_sdk-0.5.64/qwak_sdk/commands/models/executions/start}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/start/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/start/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/executions/start → qwak_sdk-0.5.64/qwak_sdk/commands/models/executions/status}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/status/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/executions/status/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/executions/status → qwak_sdk-0.5.64/qwak_sdk/commands/models/init}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/initialize_model_structure.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/churn}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/cookiecutter.json +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/churn → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/conda.yml +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/data.csv +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/main/model.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it/test_churn.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/churn/{{cookiecutter.model_directory}}/tests/it → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/credit_risk}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/credit_risk/cookiecutter.json +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/credit_risk → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/conda.yml +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/data.csv +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}}/main/model.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/credit_risk/{{cookiecutter.model_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/general}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/general/cookiecutter.json +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/general → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/conda.yml +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.main_directory}}/model.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}}/test_qwak_model.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/general/{{cookiecutter.model_directory}}/{{cookiecutter.test_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic/cookiecutter.json +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/conda.yml +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/main/model.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it/test_titanic.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic/{{cookiecutter.model_directory}}/tests/it → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic_poetry}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/cookiecutter.json +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic_poetry → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/model.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/main/pyproject.toml +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}} → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests → qwak_sdk-0.5.64/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it/test_titanic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/init/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/init/_logic/template/titanic_poetry/{{cookiecutter.model_directory}}/tests/it → qwak_sdk-0.5.64/qwak_sdk/commands/models/list}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/list/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/list/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/list → qwak_sdk-0.5.64/qwak_sdk/commands/models/list_models}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/list_models/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/list_models/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/list_models → qwak_sdk-0.5.64/qwak_sdk/commands/models/metadata}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/metadata/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/metadata/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/models_command_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/metadata → qwak_sdk-0.5.64/qwak_sdk/commands/models/runtime}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime → qwak_sdk-0.5.64/qwak_sdk/commands/models/runtime/logs}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/runtime/logs/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/logs → qwak_sdk-0.5.64/qwak_sdk/commands/models/runtime/update}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/runtime/update/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/runtime/update/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/traffic_update → qwak_sdk-0.5.64/qwak_sdk/commands/projects}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/traffic_update/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/projects/create}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/create/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/create/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/models/runtime/update → qwak_sdk-0.5.64/qwak_sdk/commands/projects/delete}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/delete/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/projects → qwak_sdk-0.5.64/qwak_sdk/commands/projects/list}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/list/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/list/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/projects/projects_command_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/projects/create → qwak_sdk-0.5.64/qwak_sdk/commands/secrets}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/projects → qwak_sdk-0.5.64/qwak_sdk/commands/secrets}/delete/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/delete/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/projects/list → qwak_sdk-0.5.64/qwak_sdk/commands/secrets/get}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/get/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/get/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/secrets_commands_group.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/secrets → qwak_sdk-0.5.64/qwak_sdk/commands/secrets/set}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/set/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/secrets/set/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/ui_tools.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/secrets/delete → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces}/__init__.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/secrets/get → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/_logic}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/_logic/tools.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/_logic/workspace_validations.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/secrets/set → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/config}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/config/workspace_config.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/create}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/create/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/create/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/_logic → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/delete}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/delete/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/delete/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/config → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/start}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/start/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/start/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/create → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/stop}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/stop/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/stop/ui.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/delete → qwak_sdk-0.5.64/qwak_sdk/commands/workspaces/update}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/update/_logic.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/update/ui.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/workspaces/workspaces_commands_group.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/exceptions/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/exceptions/qwak_command_exception.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/exceptions/qwak_deploy_new_build_failed.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/exceptions/qwak_resource_not_found.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/start → qwak_sdk-0.5.64/qwak_sdk/inner}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/file_registry.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/stop → qwak_sdk-0.5.64/qwak_sdk/inner/tools}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/cli_tools.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/config_handler.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/dataclasses_utils.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/logger/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/logger/logger.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/logger/logging.yml +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/inner/tools/tracking.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/main.py +0 -0
- {qwak_sdk-0.5.63/qwak_sdk/commands/workspaces/update → qwak_sdk-0.5.64/qwak_sdk/tools}/__init__.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/tools/colors.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/tools/files.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/tools/log_handling.py +0 -0
- {qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/tools/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qwak-sdk
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.64
|
|
4
4
|
Summary: Qwak SDK and CLI for qwak models
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: mlops,ml,deployment,serving,model
|
|
@@ -29,7 +29,7 @@ Requires-Dist: pandas (<1.4) ; (python_full_version >= "3.7.1" and python_versio
|
|
|
29
29
|
Requires-Dist: pandas (>=1.4.3,<2.0.0) ; (python_version >= "3.8" and python_version < "3.10") and (extra == "batch" or extra == "feedback")
|
|
30
30
|
Requires-Dist: pyarrow (>=6.0.0,<11.0.0) ; extra == "batch"
|
|
31
31
|
Requires-Dist: python-json-logger (>=2.0.2)
|
|
32
|
-
Requires-Dist: qwak-core (==0.3.
|
|
32
|
+
Requires-Dist: qwak-core (==0.3.163)
|
|
33
33
|
Requires-Dist: qwak-inference (>=0.1,<0.2)
|
|
34
34
|
Requires-Dist: rich (>=13.0.0)
|
|
35
35
|
Requires-Dist: tabulate (>=0.8.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "qwak-sdk"
|
|
3
|
-
version = "0.5.
|
|
3
|
+
version = "0.5.64"
|
|
4
4
|
description = "Qwak SDK and CLI for qwak models"
|
|
5
5
|
authors = ["Qwak <info@qwak.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -27,7 +27,7 @@ qwak = "qwak_sdk.main:qwak_cli"
|
|
|
27
27
|
|
|
28
28
|
[tool.poetry.dependencies]
|
|
29
29
|
python = ">=3.7.1,<3.10"
|
|
30
|
-
qwak-core = "==0.3.
|
|
30
|
+
qwak-core = "==0.3.163"
|
|
31
31
|
qwak-inference = "~0.1"
|
|
32
32
|
croniter = "==1.4.1"
|
|
33
33
|
tabulate = ">=0.8.0"
|
|
@@ -246,7 +246,7 @@ class DeployConfig(YamlConfigMixin, QwakConfigBase):
|
|
|
246
246
|
@dataclass
|
|
247
247
|
class AdvancedOptions:
|
|
248
248
|
iam_role_arn: str = field(default=None)
|
|
249
|
-
purchase_option: str = field(default=
|
|
249
|
+
purchase_option: str = field(default="")
|
|
250
250
|
service_account_key_secret_name: str = field(default=None)
|
|
251
251
|
|
|
252
252
|
model_id: str = field(default="")
|
|
@@ -11,7 +11,6 @@ from _qwak_proto.qwak.deployment.deployment_pb2 import (
|
|
|
11
11
|
ServingStrategy,
|
|
12
12
|
)
|
|
13
13
|
from qwak.clients.administration.eco_system.client import EcosystemClient
|
|
14
|
-
from qwak.clients.deployment.client import DeploymentManagementClient
|
|
15
14
|
from qwak.clients.instance_template.client import InstanceTemplateManagementClient
|
|
16
15
|
from qwak.exceptions import QwakException
|
|
17
16
|
|
|
@@ -40,7 +39,6 @@ UNKNOWN_SERVING_STRATEGY = (
|
|
|
40
39
|
def get_env_to_deployment_message(
|
|
41
40
|
deploy_config: DeployConfig,
|
|
42
41
|
kube_deployment_type: KubeDeploymentType,
|
|
43
|
-
deployment_client: DeploymentManagementClient,
|
|
44
42
|
ecosystem_client: EcosystemClient,
|
|
45
43
|
instance_template_client: InstanceTemplateManagementClient,
|
|
46
44
|
) -> Dict[str, EnvironmentDeploymentMessage]:
|
|
@@ -60,13 +58,8 @@ def get_env_to_deployment_message(
|
|
|
60
58
|
)
|
|
61
59
|
|
|
62
60
|
if kube_deployment_type == KubeDeploymentType.ONLINE:
|
|
63
|
-
model_traffic = deployment_client.get_model_traffic_config(
|
|
64
|
-
deploy_config.model_id
|
|
65
|
-
)
|
|
66
|
-
|
|
67
61
|
env_to_serving_strategy = create_realtime_serving_strategy_from_deploy_config(
|
|
68
62
|
deploy_config,
|
|
69
|
-
model_traffic,
|
|
70
63
|
environment_name_to_config,
|
|
71
64
|
)
|
|
72
65
|
environment_variables = dictify_params(deploy_config.realtime.env_vars)
|
|
@@ -7,24 +7,14 @@ from _qwak_proto.qwak.deployment.deployment_pb2 import (
|
|
|
7
7
|
RealTimeConfig,
|
|
8
8
|
ServingStrategy,
|
|
9
9
|
TrafficConfig,
|
|
10
|
-
Variation,
|
|
11
|
-
)
|
|
12
|
-
from _qwak_proto.qwak.deployment.deployment_service_pb2 import (
|
|
13
|
-
GetDeploymentStatusResponse,
|
|
14
10
|
)
|
|
15
11
|
from _qwak_proto.qwak.ecosystem.v0.ecosystem_pb2 import UserContextEnvironmentDetails
|
|
16
12
|
from qwak.exceptions import QwakException
|
|
17
13
|
|
|
18
14
|
from qwak_sdk.commands.audience._logic.config.v1.audience_config import AudienceConfig
|
|
19
|
-
from qwak_sdk.commands.models._logic.variations import (
|
|
20
|
-
create_variation_from_variation_config,
|
|
21
|
-
)
|
|
22
15
|
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
23
16
|
DeployConfig,
|
|
24
17
|
)
|
|
25
|
-
from qwak_sdk.commands.models.deployments.deploy._logic.variations import (
|
|
26
|
-
get_variations_for_deploy,
|
|
27
|
-
)
|
|
28
18
|
|
|
29
19
|
|
|
30
20
|
def create_realtime_serving_strategy(
|
|
@@ -32,7 +22,6 @@ def create_realtime_serving_strategy(
|
|
|
32
22
|
audiences: List[AudienceConfig],
|
|
33
23
|
fallback_variation: str,
|
|
34
24
|
variation_name: str,
|
|
35
|
-
variations: List[Variation],
|
|
36
25
|
variation_protected_state: bool = False,
|
|
37
26
|
) -> ServingStrategy:
|
|
38
27
|
return ServingStrategy(
|
|
@@ -41,7 +30,6 @@ def create_realtime_serving_strategy(
|
|
|
41
30
|
auto_scaling_config=auto_scaling,
|
|
42
31
|
traffic_config=TrafficConfig(
|
|
43
32
|
selected_variation_name=variation_name,
|
|
44
|
-
variations=variations,
|
|
45
33
|
audience_routes_entries=[
|
|
46
34
|
audience.to_audience_route_entry(index)
|
|
47
35
|
for index, audience in enumerate(audiences)
|
|
@@ -56,7 +44,6 @@ def create_realtime_serving_strategy(
|
|
|
56
44
|
|
|
57
45
|
def create_realtime_serving_strategy_from_deploy_config(
|
|
58
46
|
deploy_config: DeployConfig,
|
|
59
|
-
model_traffic: GetDeploymentStatusResponse,
|
|
60
47
|
environment_name_to_config: Dict[str, UserContextEnvironmentDetails],
|
|
61
48
|
) -> Dict[str, ServingStrategy]:
|
|
62
49
|
serving_strategies = {}
|
|
@@ -70,34 +57,12 @@ def create_realtime_serving_strategy_from_deploy_config(
|
|
|
70
57
|
else None
|
|
71
58
|
)
|
|
72
59
|
for env_name, env_config in environment_name_to_config.items():
|
|
73
|
-
env_variations_response = model_traffic.environment_to_model_traffic.get(
|
|
74
|
-
env_config.id
|
|
75
|
-
)
|
|
76
|
-
existing_variation = (
|
|
77
|
-
env_variations_response.variations if env_variations_response else []
|
|
78
|
-
)
|
|
79
60
|
try:
|
|
80
|
-
variations = []
|
|
81
|
-
if not deploy_config.realtime.audiences:
|
|
82
|
-
variations = get_variations_for_deploy(
|
|
83
|
-
variation_name=variation_name,
|
|
84
|
-
existing_variations=existing_variation,
|
|
85
|
-
requested_variations=list(
|
|
86
|
-
map(
|
|
87
|
-
create_variation_from_variation_config,
|
|
88
|
-
deploy_config.realtime.variations,
|
|
89
|
-
)
|
|
90
|
-
),
|
|
91
|
-
environment_name=env_name,
|
|
92
|
-
variation_protected_state=variation_protected_state,
|
|
93
|
-
)
|
|
94
|
-
|
|
95
61
|
serving_strategies[env_config.id] = create_realtime_serving_strategy(
|
|
96
62
|
auto_scaling,
|
|
97
63
|
deploy_config.realtime.audiences,
|
|
98
64
|
fallback_variation,
|
|
99
65
|
variation_name,
|
|
100
|
-
variations,
|
|
101
66
|
variation_protected_state,
|
|
102
67
|
)
|
|
103
68
|
|
|
@@ -8,7 +8,6 @@ from _qwak_proto.qwak.deployment.deployment_pb2 import (
|
|
|
8
8
|
EnvironmentUndeploymentMessage,
|
|
9
9
|
ModelDeploymentStatus,
|
|
10
10
|
TrafficConfig,
|
|
11
|
-
Variation,
|
|
12
11
|
)
|
|
13
12
|
from _qwak_proto.qwak.ecosystem.v0.ecosystem_pb2 import EnvironmentDetails
|
|
14
13
|
from qwak.clients.administration.eco_system.client import EcosystemClient
|
|
@@ -16,15 +15,9 @@ from qwak.clients.deployment.client import DeploymentManagementClient
|
|
|
16
15
|
from qwak.exceptions import QwakException
|
|
17
16
|
from qwak.tools.logger.logger import get_qwak_logger
|
|
18
17
|
|
|
19
|
-
from qwak_sdk.commands.models._logic.variations import (
|
|
20
|
-
create_variation_from_variation_config,
|
|
21
|
-
)
|
|
22
18
|
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
23
19
|
DeployConfig,
|
|
24
20
|
)
|
|
25
|
-
from qwak_sdk.commands.models.deployments.undeploy._logic.variations import (
|
|
26
|
-
validate_variations_for_undeploy,
|
|
27
|
-
)
|
|
28
21
|
from qwak_sdk.tools.utils import qwak_spinner
|
|
29
22
|
|
|
30
23
|
NO_DEPLOYED_VARIATIONS_ERROR_MSG = (
|
|
@@ -45,12 +38,10 @@ def get_deployed_variation_name(existing_variations_names: Set[str]) -> str:
|
|
|
45
38
|
|
|
46
39
|
def get_environment_undeploy_message(
|
|
47
40
|
audiences: List[AudienceRoutesEntry],
|
|
48
|
-
env_name: str,
|
|
49
41
|
existing_variations_names: Set[str],
|
|
50
42
|
fallback_variation: str,
|
|
51
43
|
model_id: str,
|
|
52
44
|
model_uuid: str,
|
|
53
|
-
requested_variations: List[Variation],
|
|
54
45
|
variation_name: str,
|
|
55
46
|
):
|
|
56
47
|
if not variation_name and len(existing_variations_names) == 1:
|
|
@@ -58,20 +49,12 @@ def get_environment_undeploy_message(
|
|
|
58
49
|
existing_variations_names=existing_variations_names
|
|
59
50
|
)
|
|
60
51
|
|
|
61
|
-
if not audiences:
|
|
62
|
-
validate_variations_for_undeploy(
|
|
63
|
-
variation_name,
|
|
64
|
-
existing_variations_names,
|
|
65
|
-
requested_variations,
|
|
66
|
-
env_name,
|
|
67
|
-
)
|
|
68
52
|
return EnvironmentUndeploymentMessage(
|
|
69
53
|
model_id=model_id,
|
|
70
54
|
model_uuid=model_uuid,
|
|
71
55
|
hosting_service_type=DeploymentHostingServiceType.KUBE_DEPLOYMENT,
|
|
72
56
|
traffic_config=TrafficConfig(
|
|
73
57
|
selected_variation_name=variation_name,
|
|
74
|
-
variations=requested_variations,
|
|
75
58
|
audience_routes_entries=audiences,
|
|
76
59
|
fallback_variation=fallback_variation,
|
|
77
60
|
),
|
|
@@ -84,7 +67,6 @@ def get_env_to_undeploy_message(
|
|
|
84
67
|
env_id_to_deployment_details: Dict[str, EnvironmentDeploymentDetailsMessage],
|
|
85
68
|
env_name_to_env_details: Dict[str, EnvironmentDetails],
|
|
86
69
|
model_id: str,
|
|
87
|
-
requested_variations: List[Variation],
|
|
88
70
|
variation_name: str,
|
|
89
71
|
fallback_variation: str,
|
|
90
72
|
) -> Dict[str, EnvironmentUndeploymentMessage]:
|
|
@@ -111,12 +93,10 @@ def get_env_to_undeploy_message(
|
|
|
111
93
|
env_details.id
|
|
112
94
|
] = get_environment_undeploy_message(
|
|
113
95
|
audiences,
|
|
114
|
-
env_name,
|
|
115
96
|
existing_variations_names,
|
|
116
97
|
fallback_variation,
|
|
117
98
|
model_id,
|
|
118
99
|
model_uuid,
|
|
119
|
-
requested_variations,
|
|
120
100
|
variation_name,
|
|
121
101
|
)
|
|
122
102
|
except QwakException as e:
|
|
@@ -138,12 +118,6 @@ def undeploy(
|
|
|
138
118
|
audience.to_audience_route_entry(index)
|
|
139
119
|
for index, audience in enumerate(config.realtime.audiences)
|
|
140
120
|
]
|
|
141
|
-
requested_variations = list(
|
|
142
|
-
map(
|
|
143
|
-
create_variation_from_variation_config,
|
|
144
|
-
config.realtime.variations if config.realtime else [],
|
|
145
|
-
)
|
|
146
|
-
)
|
|
147
121
|
|
|
148
122
|
if not model_uuid:
|
|
149
123
|
raise QwakException("missing argument model uuid")
|
|
@@ -164,7 +138,6 @@ def undeploy(
|
|
|
164
138
|
env_id_to_deployment_details,
|
|
165
139
|
env_name_to_env_details,
|
|
166
140
|
model_id,
|
|
167
|
-
requested_variations,
|
|
168
141
|
config.realtime.variation_name,
|
|
169
142
|
config.realtime.fallback_variation,
|
|
170
143
|
)
|
{qwak_sdk-0.5.63 → qwak_sdk-0.5.64}/qwak_sdk/commands/models/runtime/runtime_commands_group.py
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import click
|
|
2
2
|
|
|
3
3
|
from qwak_sdk.commands.models.runtime.logs.ui import runtime_logs
|
|
4
|
-
from qwak_sdk.commands.models.runtime.traffic_update.ui import runtime_traffic_update
|
|
5
4
|
from qwak_sdk.commands.models.runtime.update.ui import runtime_update
|
|
6
5
|
|
|
7
6
|
|
|
@@ -15,5 +14,4 @@ def runtime_commands_group():
|
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
runtime_commands_group.add_command(runtime_logs)
|
|
18
|
-
runtime_commands_group.add_command(runtime_traffic_update)
|
|
19
17
|
runtime_commands_group.add_command(runtime_update)
|
|
@@ -42,7 +42,6 @@ packages = \
|
|
|
42
42
|
'qwak_sdk.commands.feature_store.resume',
|
|
43
43
|
'qwak_sdk.commands.feature_store.trigger',
|
|
44
44
|
'qwak_sdk.commands.models',
|
|
45
|
-
'qwak_sdk.commands.models._logic',
|
|
46
45
|
'qwak_sdk.commands.models.build',
|
|
47
46
|
'qwak_sdk.commands.models.build._logic',
|
|
48
47
|
'qwak_sdk.commands.models.build._logic.client_logs',
|
|
@@ -104,8 +103,6 @@ packages = \
|
|
|
104
103
|
'qwak_sdk.commands.models.metadata',
|
|
105
104
|
'qwak_sdk.commands.models.runtime',
|
|
106
105
|
'qwak_sdk.commands.models.runtime.logs',
|
|
107
|
-
'qwak_sdk.commands.models.runtime.traffic_update',
|
|
108
|
-
'qwak_sdk.commands.models.runtime.traffic_update._logic',
|
|
109
106
|
'qwak_sdk.commands.models.runtime.update',
|
|
110
107
|
'qwak_sdk.commands.projects',
|
|
111
108
|
'qwak_sdk.commands.projects.create',
|
|
@@ -137,7 +134,7 @@ install_requires = \
|
|
|
137
134
|
'croniter==1.4.1',
|
|
138
135
|
'gitpython>=2.1.0',
|
|
139
136
|
'python-json-logger>=2.0.2',
|
|
140
|
-
'qwak-core==0.3.
|
|
137
|
+
'qwak-core==0.3.163',
|
|
141
138
|
'qwak-inference>=0.1,<0.2',
|
|
142
139
|
'rich>=13.0.0',
|
|
143
140
|
'tabulate>=0.8.0',
|
|
@@ -163,7 +160,7 @@ entry_points = \
|
|
|
163
160
|
|
|
164
161
|
setup_kwargs = {
|
|
165
162
|
'name': 'qwak-sdk',
|
|
166
|
-
'version': '0.5.
|
|
163
|
+
'version': '0.5.64',
|
|
167
164
|
'description': 'Qwak SDK and CLI for qwak models',
|
|
168
165
|
'long_description': '# Qwak SDK\n\nQwak is an end-to-end production ML platform designed to allow data scientists to build, deploy, and monitor their models in production with minimal engineering friction.\n',
|
|
169
166
|
'author': 'Qwak',
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from _qwak_proto.qwak.deployment.deployment_pb2 import TrafficSpec, Variation
|
|
6
|
-
from qwak.exceptions import QwakException
|
|
7
|
-
|
|
8
|
-
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
9
|
-
DeployConfig,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def validate_percentages(variations: List[Variation]):
|
|
14
|
-
for variation in variations:
|
|
15
|
-
if not (0 <= variation.traffic.percentage <= 100):
|
|
16
|
-
raise QwakException(
|
|
17
|
-
f"The variation '{variation.name}' contains invalid value '{variation.traffic.percentage}'. "
|
|
18
|
-
f"Value must be between 0 and 100."
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
non_shadow_variations = list(filter(lambda v: not v.traffic.is_shadow, variations))
|
|
22
|
-
non_shadow_variations_percentage_sum = sum(
|
|
23
|
-
map(lambda v: v.traffic.percentage, non_shadow_variations)
|
|
24
|
-
)
|
|
25
|
-
if non_shadow_variations and non_shadow_variations_percentage_sum != 100:
|
|
26
|
-
raise QwakException(
|
|
27
|
-
"The variations do not sum to 100 percent. Please go over the variations config file."
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def validate_shadow_variation(variations: List[Variation]):
|
|
32
|
-
shadow_variations = list(filter(lambda v: v.traffic.is_shadow, variations))
|
|
33
|
-
if len(shadow_variations) > 1:
|
|
34
|
-
shadow_variations_names = list(map(lambda v: v.name, shadow_variations))
|
|
35
|
-
raise QwakException(
|
|
36
|
-
f"The variations contain more than one shadow variation {shadow_variations_names}. "
|
|
37
|
-
f"Please go over the variations config file."
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def create_variation_from_variation_config(
|
|
42
|
-
variation_def: DeployConfig.Realtime.VariationConfig,
|
|
43
|
-
) -> Variation:
|
|
44
|
-
try:
|
|
45
|
-
return Variation(
|
|
46
|
-
name=variation_def.name,
|
|
47
|
-
traffic=TrafficSpec(
|
|
48
|
-
percentage=variation_def.traffic.percentage,
|
|
49
|
-
is_shadow=variation_def.traffic.shadow,
|
|
50
|
-
),
|
|
51
|
-
)
|
|
52
|
-
except Exception:
|
|
53
|
-
raise QwakException(
|
|
54
|
-
f"Could not parse variation {variation_def}. Please check you variation configuration file."
|
|
55
|
-
)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from _qwak_proto.qwak.deployment.deployment_pb2 import TrafficSpec, Variation
|
|
6
|
-
from qwak.exceptions import QwakException
|
|
7
|
-
|
|
8
|
-
from qwak_sdk.commands.models._logic.variations import (
|
|
9
|
-
validate_percentages,
|
|
10
|
-
validate_shadow_variation,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def get_variations_for_deploy(
|
|
15
|
-
variation_name: str,
|
|
16
|
-
existing_variations: List[Variation],
|
|
17
|
-
requested_variations: List[Variation],
|
|
18
|
-
environment_name: str,
|
|
19
|
-
variation_protected_state: bool,
|
|
20
|
-
):
|
|
21
|
-
if not existing_variations:
|
|
22
|
-
existing_variations: List[Variation] = [
|
|
23
|
-
Variation(
|
|
24
|
-
name=variation_name,
|
|
25
|
-
traffic=TrafficSpec(
|
|
26
|
-
percentage=100,
|
|
27
|
-
is_shadow=False,
|
|
28
|
-
),
|
|
29
|
-
protected=variation_protected_state,
|
|
30
|
-
)
|
|
31
|
-
]
|
|
32
|
-
requested_variations_names = set(
|
|
33
|
-
map(lambda variation: variation.name, requested_variations)
|
|
34
|
-
)
|
|
35
|
-
existing_variations_names = set(
|
|
36
|
-
map(lambda variation: variation.name, existing_variations)
|
|
37
|
-
)
|
|
38
|
-
if requested_variations_names:
|
|
39
|
-
if variation_name not in requested_variations_names:
|
|
40
|
-
raise QwakException(
|
|
41
|
-
f"Selected deployment to variation '{variation_name}' in {environment_name}, but provided the "
|
|
42
|
-
f"following variations {list(requested_variations_names)}. "
|
|
43
|
-
f"Please modify the variation name, or adjust the requested variations definitions"
|
|
44
|
-
)
|
|
45
|
-
elif variation_name not in existing_variations_names:
|
|
46
|
-
raise QwakException(
|
|
47
|
-
f"Selected deployment to existing variation '{variation_name}' in {environment_name}, but it is not one of "
|
|
48
|
-
f"the existing variations {list(existing_variations_names)}. "
|
|
49
|
-
f"Please modify the variation name, or supply the requested variations definitions with"
|
|
50
|
-
f" the necessary changes"
|
|
51
|
-
)
|
|
52
|
-
else:
|
|
53
|
-
# We are deploying to an existing variations without any change
|
|
54
|
-
return existing_variations
|
|
55
|
-
|
|
56
|
-
ignored_variations = existing_variations_names.difference(
|
|
57
|
-
requested_variations_names
|
|
58
|
-
)
|
|
59
|
-
if ignored_variations:
|
|
60
|
-
raise QwakException(
|
|
61
|
-
f"The given variation configuration does not contain the configuration for the following "
|
|
62
|
-
f"variations {list(ignored_variations)} in {environment_name}. You must include all the existing "
|
|
63
|
-
f"variations configuration when passing the configuration"
|
|
64
|
-
)
|
|
65
|
-
|
|
66
|
-
unexpected_variations = requested_variations_names.difference(
|
|
67
|
-
existing_variations_names
|
|
68
|
-
)
|
|
69
|
-
if variation_name in unexpected_variations:
|
|
70
|
-
unexpected_variations.remove(variation_name)
|
|
71
|
-
if unexpected_variations:
|
|
72
|
-
raise QwakException(
|
|
73
|
-
f"The given variation configuration contains the configuration for the following "
|
|
74
|
-
f"variations {list(unexpected_variations)} in {environment_name} which are not expected. When deploying, "
|
|
75
|
-
f"the variations configuration must contain all the existing variations, and an optional new variation."
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
validate_percentages(requested_variations)
|
|
79
|
-
validate_shadow_variation(requested_variations)
|
|
80
|
-
|
|
81
|
-
return requested_variations
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import List, Set
|
|
4
|
-
|
|
5
|
-
from _qwak_proto.qwak.deployment.deployment_pb2 import Variation
|
|
6
|
-
from qwak.exceptions import QwakException
|
|
7
|
-
|
|
8
|
-
from qwak_sdk.commands.models.deployments.deploy._logic.variations import (
|
|
9
|
-
validate_percentages,
|
|
10
|
-
validate_shadow_variation,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def validate_variations_for_undeploy(
|
|
15
|
-
variation_name: str,
|
|
16
|
-
existing_variations_names: Set[str],
|
|
17
|
-
requested_variations: List[Variation],
|
|
18
|
-
environment_name: str,
|
|
19
|
-
):
|
|
20
|
-
if variation_name not in existing_variations_names:
|
|
21
|
-
if not variation_name:
|
|
22
|
-
raise QwakException(
|
|
23
|
-
f"No selected variation. You must specify a variation since there is more than one deployed in "
|
|
24
|
-
f"{environment_name}. Currently {list(existing_variations_names)} are deployed"
|
|
25
|
-
)
|
|
26
|
-
raise QwakException(
|
|
27
|
-
f"The selected variation {variation_name} is not deployed in {environment_name}. "
|
|
28
|
-
f"Only {list(existing_variations_names)} are deployed"
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
requested_variations_names = set(
|
|
32
|
-
map(lambda variation: variation.name, requested_variations)
|
|
33
|
-
)
|
|
34
|
-
if variation_name in requested_variations_names:
|
|
35
|
-
raise QwakException(
|
|
36
|
-
f"Selected undeploy to variation '{variation_name}', but it is part of "
|
|
37
|
-
f"the requested variations {list(requested_variations_names)}. "
|
|
38
|
-
f"Please modify the variation name, or supply the requested variations definitions with"
|
|
39
|
-
f" the necessary changes"
|
|
40
|
-
)
|
|
41
|
-
if variation_name not in existing_variations_names:
|
|
42
|
-
raise QwakException(
|
|
43
|
-
f"Selected undeploy to variation {variation_name} but it is not one of "
|
|
44
|
-
f"the existing variations {list(existing_variations_names)}. "
|
|
45
|
-
f"Please modify the variation name."
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
ignored_variations = existing_variations_names.difference(
|
|
49
|
-
requested_variations_names
|
|
50
|
-
)
|
|
51
|
-
if variation_name in ignored_variations:
|
|
52
|
-
ignored_variations.remove(variation_name)
|
|
53
|
-
|
|
54
|
-
if len(existing_variations_names) != 2 and ignored_variations:
|
|
55
|
-
raise QwakException(
|
|
56
|
-
f"The given variation configuration does not contain the configuration for the following "
|
|
57
|
-
f"variations {list(ignored_variations)}. You must include all the variations that will exist after "
|
|
58
|
-
f"undeploy in the configuration"
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
unexpected_variations = requested_variations_names.difference(
|
|
62
|
-
existing_variations_names
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
if unexpected_variations:
|
|
66
|
-
raise QwakException(
|
|
67
|
-
f"The given variation configuration contains the configuration for the following "
|
|
68
|
-
f"variations {list(unexpected_variations)} which are not expected. When undeploying, the variations "
|
|
69
|
-
f"configuration must contain all expected remaining variations (from the existing ones)."
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
if requested_variations:
|
|
73
|
-
validate_percentages(requested_variations)
|
|
74
|
-
validate_shadow_variation(requested_variations)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
from typing import Tuple
|
|
2
|
-
|
|
3
|
-
from qwak.clients.administration.eco_system.client import EcosystemClient
|
|
4
|
-
from qwak.clients.deployment.client import DeploymentManagementClient
|
|
5
|
-
from qwak.tools.logger.logger import get_qwak_logger
|
|
6
|
-
|
|
7
|
-
from qwak_sdk.commands.models._logic.variations import (
|
|
8
|
-
create_variation_from_variation_config,
|
|
9
|
-
)
|
|
10
|
-
from qwak_sdk.commands.models.deployments.deploy._logic.deploy_config import (
|
|
11
|
-
DeployConfig,
|
|
12
|
-
)
|
|
13
|
-
from qwak_sdk.commands.models.runtime.traffic_update._logic.variations import (
|
|
14
|
-
validate_requested_variations_against_existing_in_apply,
|
|
15
|
-
)
|
|
16
|
-
from qwak_sdk.inner.tools.config_handler import config_handler
|
|
17
|
-
|
|
18
|
-
logger = get_qwak_logger()
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def execute_runtime_traffic_update(
|
|
22
|
-
model_id: str, from_file: str, environment_name: Tuple[str]
|
|
23
|
-
):
|
|
24
|
-
deployment_client = DeploymentManagementClient()
|
|
25
|
-
ecosystem_client = EcosystemClient()
|
|
26
|
-
config: DeployConfig = config_handler(
|
|
27
|
-
config=DeployConfig,
|
|
28
|
-
from_file=from_file,
|
|
29
|
-
out_conf=False,
|
|
30
|
-
sections=("realtime",),
|
|
31
|
-
model_id=model_id,
|
|
32
|
-
)
|
|
33
|
-
requested_variations = list(
|
|
34
|
-
map(
|
|
35
|
-
create_variation_from_variation_config,
|
|
36
|
-
config.realtime.variations,
|
|
37
|
-
)
|
|
38
|
-
)
|
|
39
|
-
environment_names_to_details = ecosystem_client.get_environments_names_to_details(
|
|
40
|
-
environment_name if environment_name else config.realtime.environments
|
|
41
|
-
)
|
|
42
|
-
validate_requested_variations_against_existing_in_apply(
|
|
43
|
-
model_id,
|
|
44
|
-
requested_variations,
|
|
45
|
-
environment_names_to_details,
|
|
46
|
-
deployment_client,
|
|
47
|
-
)
|
|
48
|
-
environment_ids = [env.id for env in environment_names_to_details.values()]
|
|
49
|
-
|
|
50
|
-
deployment_client.apply_model_traffic_config(
|
|
51
|
-
model_id=model_id,
|
|
52
|
-
requested_variations=requested_variations,
|
|
53
|
-
environment_ids=environment_ids,
|
|
54
|
-
)
|