UncountablePythonSDK 0.0.113__tar.gz → 0.0.114__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 UncountablePythonSDK might be problematic. Click here for more details.
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/.github/workflows/documentation.yml +2 -4
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/.github/workflows/publish.yml +2 -5
- uncountablepythonsdk-0.0.114/.python-version +1 -0
- {uncountablepythonsdk-0.0.113/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.114}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/UncountablePythonSDK.egg-info/SOURCES.txt +7 -0
- uncountablepythonsdk-0.0.114/examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/integration-server/jobs/materials_auto/profile.yaml +19 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/argument_parser/argument_parser.py +8 -3
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/builder.py +8 -2
- uncountablepythonsdk-0.0.114/pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/parts/base.py.prepart +5 -8
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/__main__.py +2 -2
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/job_scheduler.py +10 -2
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/__init__.py +6 -0
- uncountablepythonsdk-0.0.114/uncountable/types/api/entity/export_entities.py +46 -0
- uncountablepythonsdk-0.0.114/uncountable/types/api/recipes/create_mix_order.py +44 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_outputs.py +1 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_batch_processor.py +34 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_batch_t.py +1 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/base_t.py +5 -8
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/entity_t.py +1 -1
- uncountablepythonsdk-0.0.114/uncountable/types/exports.py +8 -0
- uncountablepythonsdk-0.0.114/uncountable/types/exports_t.py +33 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/job_definition_t.py +1 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/README.md +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/quickstart.md +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/requirements.txt +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/create_ingredient_sdk.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/integration-server/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/_blob_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/_s3_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/condition_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/condition_parameters/upsert_condition_match.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/lookup_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/files/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/files/download_file.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/runsheet/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/runsheet/complete_async_upload.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/client_base.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/client_config_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/data.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/data_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/field_values.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/field_values_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/generic_upload_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipe_workflow_steps_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/response_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/webhook_job.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/webhook_job_t.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/workflows_t.py +0 -0
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/.github/workflows/documentation.yml
RENAMED
|
@@ -11,16 +11,14 @@ jobs:
|
|
|
11
11
|
steps:
|
|
12
12
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
13
13
|
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
|
|
14
|
-
with:
|
|
15
|
-
python-version: '3.12'
|
|
16
14
|
- uses: extractions/setup-crate@4993624604c307fbca528d28a3c8b60fa5ecc859 # v1
|
|
17
15
|
with:
|
|
18
16
|
repo: casey/just@0.10
|
|
19
17
|
- name: Set up UV
|
|
20
|
-
uses: astral-sh/setup-uv@
|
|
18
|
+
uses: astral-sh/setup-uv@v6
|
|
21
19
|
with:
|
|
22
20
|
version: "0.7.1"
|
|
23
|
-
|
|
21
|
+
activate-environment: true
|
|
24
22
|
enable-cache: true
|
|
25
23
|
- name: Install dependencies
|
|
26
24
|
run: |
|
|
@@ -22,14 +22,11 @@ jobs:
|
|
|
22
22
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
|
23
23
|
with:
|
|
24
24
|
fetch-depth: 0
|
|
25
|
-
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
|
|
26
|
-
with:
|
|
27
|
-
python-version: '3.12'
|
|
28
25
|
- name: Set up UV
|
|
29
|
-
uses: astral-sh/setup-uv@
|
|
26
|
+
uses: astral-sh/setup-uv@v6
|
|
30
27
|
with:
|
|
31
28
|
version: "0.7.1"
|
|
32
|
-
|
|
29
|
+
activate-environment: true
|
|
33
30
|
enable-cache: true
|
|
34
31
|
- name: Install build dependencies
|
|
35
32
|
run: |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.12.10
|
{uncountablepythonsdk-0.0.113/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.114}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.114
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114/UncountablePythonSDK.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.114
|
|
4
4
|
Summary: Uncountable SDK
|
|
5
5
|
Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
.gitignore
|
|
2
|
+
.python-version
|
|
2
3
|
README.md
|
|
3
4
|
pyproject.toml
|
|
4
5
|
.github/workflows/documentation.yml
|
|
@@ -34,6 +35,7 @@ examples/set_recipe_metadata_file.py
|
|
|
34
35
|
examples/set_recipe_output_file_sdk.py
|
|
35
36
|
examples/upload_files.py
|
|
36
37
|
examples/integration-server/pyproject.toml
|
|
38
|
+
examples/integration-server/jobs/materials_auto/concurrent_cron.py
|
|
37
39
|
examples/integration-server/jobs/materials_auto/example_cron.py
|
|
38
40
|
examples/integration-server/jobs/materials_auto/example_runsheet_wh.py
|
|
39
41
|
examples/integration-server/jobs/materials_auto/example_wh.py
|
|
@@ -81,6 +83,7 @@ pkgs/type_spec/emit_python.py
|
|
|
81
83
|
pkgs/type_spec/emit_typescript.py
|
|
82
84
|
pkgs/type_spec/emit_typescript_util.py
|
|
83
85
|
pkgs/type_spec/load_types.py
|
|
86
|
+
pkgs/type_spec/non_discriminated_union_exceptions.py
|
|
84
87
|
pkgs/type_spec/open_api_util.py
|
|
85
88
|
pkgs/type_spec/test.py
|
|
86
89
|
pkgs/type_spec/util.py
|
|
@@ -169,6 +172,8 @@ uncountable/types/entity.py
|
|
|
169
172
|
uncountable/types/entity_t.py
|
|
170
173
|
uncountable/types/experiment_groups.py
|
|
171
174
|
uncountable/types/experiment_groups_t.py
|
|
175
|
+
uncountable/types/exports.py
|
|
176
|
+
uncountable/types/exports_t.py
|
|
172
177
|
uncountable/types/field_values.py
|
|
173
178
|
uncountable/types/field_values_t.py
|
|
174
179
|
uncountable/types/fields.py
|
|
@@ -239,6 +244,7 @@ uncountable/types/api/entity/__init__.py
|
|
|
239
244
|
uncountable/types/api/entity/create_entities.py
|
|
240
245
|
uncountable/types/api/entity/create_entity.py
|
|
241
246
|
uncountable/types/api/entity/create_or_update_entity.py
|
|
247
|
+
uncountable/types/api/entity/export_entities.py
|
|
242
248
|
uncountable/types/api/entity/get_entities_data.py
|
|
243
249
|
uncountable/types/api/entity/grant_entity_permissions.py
|
|
244
250
|
uncountable/types/api/entity/list_entities.py
|
|
@@ -292,6 +298,7 @@ uncountable/types/api/recipes/archive_recipes.py
|
|
|
292
298
|
uncountable/types/api/recipes/associate_recipe_as_input.py
|
|
293
299
|
uncountable/types/api/recipes/associate_recipe_as_lot.py
|
|
294
300
|
uncountable/types/api/recipes/clear_recipe_outputs.py
|
|
301
|
+
uncountable/types/api/recipes/create_mix_order.py
|
|
295
302
|
uncountable/types/api/recipes/create_recipe.py
|
|
296
303
|
uncountable/types/api/recipes/create_recipes.py
|
|
297
304
|
uncountable/types/api/recipes/disassociate_recipe_as_input.py
|
uncountablepythonsdk-0.0.114/examples/integration-server/jobs/materials_auto/concurrent_cron.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import time
|
|
2
|
+
|
|
3
|
+
from uncountable.integration.job import CronJob, JobArguments, register_job
|
|
4
|
+
from uncountable.types.job_definition_t import JobResult
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@register_job
|
|
8
|
+
class MyConcurrentCronJob(CronJob):
|
|
9
|
+
def run(self, args: JobArguments) -> JobResult:
|
|
10
|
+
time.sleep(10)
|
|
11
|
+
return JobResult(success=True)
|
|
@@ -22,6 +22,25 @@ jobs:
|
|
|
22
22
|
- admin:
|
|
23
23
|
type: ref_name
|
|
24
24
|
ref_name: admin
|
|
25
|
+
- id: concurrent_cron_1
|
|
26
|
+
enabled: true
|
|
27
|
+
type: cron
|
|
28
|
+
name: MyConcurrentCron - 1
|
|
29
|
+
cron_spec: "* * * * *"
|
|
30
|
+
executor:
|
|
31
|
+
type: script
|
|
32
|
+
import_path: concurrent_cron
|
|
33
|
+
subqueue_name: subqueue_1
|
|
34
|
+
- id: concurrent_cron_2
|
|
35
|
+
enabled: true
|
|
36
|
+
type: cron
|
|
37
|
+
name: MyConcurrentCron - 2
|
|
38
|
+
cron_spec: "* * * * *"
|
|
39
|
+
executor:
|
|
40
|
+
type: script
|
|
41
|
+
import_path: concurrent_cron
|
|
42
|
+
subqueue_name: subqueue_2
|
|
43
|
+
|
|
25
44
|
|
|
26
45
|
- id: example_wh1
|
|
27
46
|
type: webhook
|
|
@@ -170,9 +170,15 @@ def _invoke_membership_parser(
|
|
|
170
170
|
|
|
171
171
|
def _build_parser_discriminated_union(
|
|
172
172
|
context: ParserContext,
|
|
173
|
-
|
|
173
|
+
discriminator_raw: str,
|
|
174
174
|
discriminator_map: dict[str, ParserFunction[T]],
|
|
175
175
|
) -> ParserFunction[T]:
|
|
176
|
+
discriminator = (
|
|
177
|
+
snake_to_camel_case(discriminator_raw)
|
|
178
|
+
if context.options.from_camel_case
|
|
179
|
+
else discriminator_raw
|
|
180
|
+
)
|
|
181
|
+
|
|
176
182
|
def parse(value: typing.Any) -> typing.Any:
|
|
177
183
|
if context.options.allow_direct_type and dataclasses.is_dataclass(value):
|
|
178
184
|
discriminant = getattr(value, discriminator)
|
|
@@ -414,8 +420,7 @@ def _build_parser_dataclass(
|
|
|
414
420
|
cur_parser = context.cache.get(parsed_type)
|
|
415
421
|
if cur_parser is not None:
|
|
416
422
|
return cur_parser
|
|
417
|
-
|
|
418
|
-
type_hints = typing.get_type_hints(parsed_type)
|
|
423
|
+
type_hints = typing.get_type_hints(parsed_type, include_extras=True)
|
|
419
424
|
dc_field_parsers: list[
|
|
420
425
|
tuple[
|
|
421
426
|
dataclasses.Field[typing.Any],
|
|
@@ -14,6 +14,7 @@ from typing import Any, Self
|
|
|
14
14
|
|
|
15
15
|
from . import util
|
|
16
16
|
from .cross_output_links import CrossOutputPaths
|
|
17
|
+
from .non_discriminated_union_exceptions import NON_DISCRIMINATED_UNION_EXCEPTIONS
|
|
17
18
|
from .util import parse_type_str, unused
|
|
18
19
|
|
|
19
20
|
RawDict = dict[Any, Any]
|
|
@@ -636,6 +637,11 @@ class SpecTypeDefnUnion(SpecTypeDefn):
|
|
|
636
637
|
self.discriminator_map[discriminant] = sub_type
|
|
637
638
|
|
|
638
639
|
builder.pop_where()
|
|
640
|
+
elif (
|
|
641
|
+
f"{self.namespace.name}.{self.name}"
|
|
642
|
+
not in NON_DISCRIMINATED_UNION_EXCEPTIONS
|
|
643
|
+
):
|
|
644
|
+
raise Exception(f"union requires a discriminator: {self.name}")
|
|
639
645
|
|
|
640
646
|
def get_referenced_types(self) -> list[SpecType]:
|
|
641
647
|
return self.types
|
|
@@ -960,8 +966,8 @@ class SpecEndpoint:
|
|
|
960
966
|
elif isinstance(is_sdk, str):
|
|
961
967
|
try:
|
|
962
968
|
is_sdk = EndpointEmitType(is_sdk)
|
|
963
|
-
except ValueError:
|
|
964
|
-
raise ValueError(f"Invalid value for is_sdk: {is_sdk}")
|
|
969
|
+
except ValueError as e:
|
|
970
|
+
raise ValueError(f"Invalid value for is_sdk: {is_sdk}") from e
|
|
965
971
|
|
|
966
972
|
assert isinstance(is_sdk, EndpointEmitType)
|
|
967
973
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
NON_DISCRIMINATED_UNION_EXCEPTIONS = [
|
|
2
|
+
"generate_tool_parameters.UnionWithoutDiscrim",
|
|
3
|
+
"output_calculation_entities.ConditionParameterFilterCondition",
|
|
4
|
+
"output_parameters.AnalyticalMethodParameterOptions",
|
|
5
|
+
"output_parameters.AnalyticalMethodLinkedOptionValue",
|
|
6
|
+
"recipes_redirect.RecipesRedirectResult",
|
|
7
|
+
"value_spec.ResolvedPathAll",
|
|
8
|
+
"weighted_sum.WeightedSumEntities",
|
|
9
|
+
"workflows.WorkflowTotalDisplay",
|
|
10
|
+
"type_info.TypeFormActionConstraint",
|
|
11
|
+
"structured_loading.CompatibleFilterNode",
|
|
12
|
+
"structured_display_element.DisplayElementColumn",
|
|
13
|
+
"field_values.FieldValue",
|
|
14
|
+
]
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/parts/base.py.prepart
RENAMED
|
@@ -58,15 +58,12 @@ def is_pure_json_value(value: ExtJsonValue) -> bool:
|
|
|
58
58
|
return True
|
|
59
59
|
|
|
60
60
|
if isinstance(value, list):
|
|
61
|
-
for item in value
|
|
62
|
-
if not is_pure_json_value(item):
|
|
63
|
-
return False
|
|
64
|
-
return True
|
|
61
|
+
return all(is_pure_json_value(item) for item in value)
|
|
65
62
|
|
|
66
63
|
if isinstance(value, dict):
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
return all(
|
|
65
|
+
is_pure_json_value(key) and is_pure_json_value(item)
|
|
66
|
+
for key, item in value.items()
|
|
67
|
+
)
|
|
71
68
|
|
|
72
69
|
return False
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/pkgs/type_spec/value_spec/__main__.py
RENAMED
|
@@ -104,8 +104,8 @@ def parse_function_signature(text: str) -> ParsedFunctionSignature:
|
|
|
104
104
|
|
|
105
105
|
type_str = source.extract_type()
|
|
106
106
|
ref_name = arg_group.group(1)
|
|
107
|
-
is_missing = arg_group.group(2) == "?"
|
|
108
|
-
is_repeating = arg_group.group(2) == "+"
|
|
107
|
+
# is_missing = arg_group.group(2) == "?"
|
|
108
|
+
# is_repeating = arg_group.group(2) == "+"
|
|
109
109
|
type_path = parse_type_str(type_str)
|
|
110
110
|
|
|
111
111
|
match arg_group.group(3):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import sys
|
|
2
3
|
import typing
|
|
3
4
|
from concurrent.futures import ProcessPoolExecutor
|
|
4
5
|
from dataclasses import dataclass
|
|
@@ -34,6 +35,10 @@ class JobListenerKey:
|
|
|
34
35
|
def _get_job_worker_key(
|
|
35
36
|
job_definition: job_definition_t.JobDefinition, profile_name: str
|
|
36
37
|
) -> JobListenerKey:
|
|
38
|
+
if job_definition.subqueue_name is not None:
|
|
39
|
+
return JobListenerKey(
|
|
40
|
+
profile_name=profile_name, subqueue_name=job_definition.subqueue_name
|
|
41
|
+
)
|
|
37
42
|
return JobListenerKey(profile_name=profile_name)
|
|
38
43
|
|
|
39
44
|
|
|
@@ -41,9 +46,12 @@ def on_worker_crash(
|
|
|
41
46
|
worker_key: JobListenerKey,
|
|
42
47
|
) -> typing.Callable[[asyncio.Task], None]:
|
|
43
48
|
def hook(task: asyncio.Task) -> None:
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
Logger(get_current_span()).log_exception(
|
|
50
|
+
Exception(
|
|
51
|
+
f"worker {worker_key.profile_name}_{worker_key.subqueue_name} crashed unexpectedly"
|
|
52
|
+
)
|
|
46
53
|
)
|
|
54
|
+
sys.exit(1)
|
|
47
55
|
|
|
48
56
|
return hook
|
|
49
57
|
|
|
@@ -21,6 +21,7 @@ from .api.chemical import convert_chemical_formats as convert_chemical_formats_t
|
|
|
21
21
|
from .api.entity import create_entities as create_entities_t
|
|
22
22
|
from .api.entity import create_entity as create_entity_t
|
|
23
23
|
from .api.inputs import create_inputs as create_inputs_t
|
|
24
|
+
from .api.recipes import create_mix_order as create_mix_order_t
|
|
24
25
|
from .api.entity import create_or_update_entity as create_or_update_entity_t
|
|
25
26
|
from .api.recipes import create_recipe as create_recipe_t
|
|
26
27
|
from .api.recipe_links import create_recipe_link as create_recipe_link_t
|
|
@@ -34,6 +35,8 @@ from . import entity_t as entity_t
|
|
|
34
35
|
from .api.batch import execute_batch as execute_batch_t
|
|
35
36
|
from .api.batch import execute_batch_load_async as execute_batch_load_async_t
|
|
36
37
|
from . import experiment_groups_t as experiment_groups_t
|
|
38
|
+
from .api.entity import export_entities as export_entities_t
|
|
39
|
+
from . import exports_t as exports_t
|
|
37
40
|
from . import field_values_t as field_values_t
|
|
38
41
|
from . import fields_t as fields_t
|
|
39
42
|
from . import generic_upload_t as generic_upload_t
|
|
@@ -135,6 +138,7 @@ __all__: list[str] = [
|
|
|
135
138
|
"create_entities_t",
|
|
136
139
|
"create_entity_t",
|
|
137
140
|
"create_inputs_t",
|
|
141
|
+
"create_mix_order_t",
|
|
138
142
|
"create_or_update_entity_t",
|
|
139
143
|
"create_recipe_t",
|
|
140
144
|
"create_recipe_link_t",
|
|
@@ -148,6 +152,8 @@ __all__: list[str] = [
|
|
|
148
152
|
"execute_batch_t",
|
|
149
153
|
"execute_batch_load_async_t",
|
|
150
154
|
"experiment_groups_t",
|
|
155
|
+
"export_entities_t",
|
|
156
|
+
"exports_t",
|
|
151
157
|
"field_values_t",
|
|
152
158
|
"fields_t",
|
|
153
159
|
"generic_upload_t",
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
13
|
+
from ... import exports_t
|
|
14
|
+
from ... import identifier_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "POST"
|
|
24
|
+
ENDPOINT_PATH = "api/external/entity/export_entities"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@serial_class(
|
|
29
|
+
named_type_path="sdk.api.entity.export_entities.Arguments",
|
|
30
|
+
)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
32
|
+
class Arguments:
|
|
33
|
+
config_key: identifier_t.IdentifierKey
|
|
34
|
+
type: exports_t.ExportType = exports_t.ExportType.EXCEL
|
|
35
|
+
client_timezone: exports_t.ListingExportUserTimezone | None = None
|
|
36
|
+
limit: int | None = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
40
|
+
@serial_class(
|
|
41
|
+
named_type_path="sdk.api.entity.export_entities.Data",
|
|
42
|
+
)
|
|
43
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
44
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
45
|
+
pass
|
|
46
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
|
+
from ... import async_batch_t
|
|
12
|
+
from ... import base_t
|
|
13
|
+
from ... import identifier_t
|
|
14
|
+
from ... import recipe_workflow_steps_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"Arguments",
|
|
18
|
+
"Data",
|
|
19
|
+
"ENDPOINT_METHOD",
|
|
20
|
+
"ENDPOINT_PATH",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
ENDPOINT_METHOD = "POST"
|
|
24
|
+
ENDPOINT_PATH = "api/external/recipes/create_mix_order"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
|
+
@serial_class(
|
|
29
|
+
named_type_path="sdk.api.recipes.create_mix_order.Arguments",
|
|
30
|
+
)
|
|
31
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
32
|
+
class Arguments:
|
|
33
|
+
recipe_key: identifier_t.IdentifierKey
|
|
34
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
38
|
+
@serial_class(
|
|
39
|
+
named_type_path="sdk.api.recipes.create_mix_order.Data",
|
|
40
|
+
)
|
|
41
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
42
|
+
class Data(async_batch_t.AsyncBatchActionReturn):
|
|
43
|
+
pass
|
|
44
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -61,6 +61,7 @@ class RecipeOutputValue:
|
|
|
61
61
|
value_str: str | None = None
|
|
62
62
|
value_curve: CurveValues | None = None
|
|
63
63
|
value_color: data_t.SupportedColorFormatColor | None = None
|
|
64
|
+
value_ingredient_id: base_t.ObjectId | None = None
|
|
64
65
|
formatting: recipes_t.RecipeAttributeFormatting | None = None
|
|
65
66
|
field_values: list[field_values_t.ArgumentValueRefName | field_values_t.ArgumentValueId] | None = None
|
|
66
67
|
|
|
@@ -14,6 +14,7 @@ from uncountable.types import async_batch_t
|
|
|
14
14
|
from uncountable.types import base_t
|
|
15
15
|
import uncountable.types.api.recipes.clear_recipe_outputs as clear_recipe_outputs_t
|
|
16
16
|
import uncountable.types.api.runsheet.complete_async_upload as complete_async_upload_t
|
|
17
|
+
import uncountable.types.api.recipes.create_mix_order as create_mix_order_t
|
|
17
18
|
import uncountable.types.api.entity.create_or_update_entity as create_or_update_entity_t
|
|
18
19
|
import uncountable.types.api.recipes.create_recipe as create_recipe_t
|
|
19
20
|
import uncountable.types.api.recipes.edit_recipe_inputs as edit_recipe_inputs_t
|
|
@@ -217,6 +218,39 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
217
218
|
batch_reference=req.batch_reference,
|
|
218
219
|
)
|
|
219
220
|
|
|
221
|
+
def create_mix_order(
|
|
222
|
+
self,
|
|
223
|
+
*,
|
|
224
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
225
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
226
|
+
depends_on: list[str] | None = None,
|
|
227
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
228
|
+
"""Creates mix order on a recipe workflow step
|
|
229
|
+
|
|
230
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
231
|
+
"""
|
|
232
|
+
args = create_mix_order_t.Arguments(
|
|
233
|
+
recipe_key=recipe_key,
|
|
234
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
235
|
+
)
|
|
236
|
+
json_data = serialize_for_api(args)
|
|
237
|
+
|
|
238
|
+
batch_reference = str(uuid.uuid4())
|
|
239
|
+
|
|
240
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
241
|
+
path=async_batch_t.AsyncBatchRequestPath.CREATE_MIX_ORDER,
|
|
242
|
+
data=json_data,
|
|
243
|
+
depends_on=depends_on,
|
|
244
|
+
batch_reference=batch_reference,
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
self._enqueue(req)
|
|
248
|
+
|
|
249
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
250
|
+
path=req.path,
|
|
251
|
+
batch_reference=req.batch_reference,
|
|
252
|
+
)
|
|
253
|
+
|
|
220
254
|
def create_or_update_entity(
|
|
221
255
|
self,
|
|
222
256
|
*,
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/uncountable/types/async_batch_t.py
RENAMED
|
@@ -44,6 +44,7 @@ class AsyncBatchRequestPath(StrEnum):
|
|
|
44
44
|
CREATE_RECIPE_LINK = "recipe_links/create_recipe_link"
|
|
45
45
|
UPSERT_CONDITION_MATCH = "condition_parameters/upsert_condition_match"
|
|
46
46
|
COMPLETE_ASYNC_UPLOAD = "runsheet/complete_async_upload"
|
|
47
|
+
CREATE_MIX_ORDER = "recipes/create_mix_order"
|
|
47
48
|
|
|
48
49
|
|
|
49
50
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -74,16 +74,13 @@ def is_pure_json_value(value: ExtJsonValue) -> bool:
|
|
|
74
74
|
return True
|
|
75
75
|
|
|
76
76
|
if isinstance(value, list):
|
|
77
|
-
for item in value
|
|
78
|
-
if not is_pure_json_value(item):
|
|
79
|
-
return False
|
|
80
|
-
return True
|
|
77
|
+
return all(is_pure_json_value(item) for item in value)
|
|
81
78
|
|
|
82
79
|
if isinstance(value, dict):
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
return all(
|
|
81
|
+
is_pure_json_value(key) and is_pure_json_value(item)
|
|
82
|
+
for key, item in value.items()
|
|
83
|
+
)
|
|
87
84
|
|
|
88
85
|
return False
|
|
89
86
|
# === END section from base.prepart.py ===
|
|
@@ -390,7 +390,7 @@ class EntityType(StrEnum):
|
|
|
390
390
|
|
|
391
391
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
392
392
|
LimitedEntityType = typing.Annotated[
|
|
393
|
-
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT],
|
|
393
|
+
typing.Literal[EntityType.LAB_REQUEST] | typing.Literal[EntityType.APPROVAL] | typing.Literal[EntityType.CUSTOM_ENTITY] | typing.Literal[EntityType.INGREDIENT_ATTRIBUTE] | typing.Literal[EntityType.INVENTORY_AMOUNT] | typing.Literal[EntityType.TASK] | typing.Literal[EntityType.PROJECT] | typing.Literal[EntityType.EQUIPMENT] | typing.Literal[EntityType.INV_LOCAL_LOCATIONS] | typing.Literal[EntityType.FIELD_OPTION_SET] | typing.Literal[EntityType.WEBHOOK] | typing.Literal[EntityType.SPECS] | typing.Literal[EntityType.GOAL] | typing.Literal[EntityType.INGREDIENT_TAG_MAP] | typing.Literal[EntityType.INGREDIENT_TAG] | typing.Literal[EntityType.CONDITION_PARAMETER] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.INGREDIENT_CATEGORY_ALL] | typing.Literal[EntityType.TIME_SERIES_SEGMENT] | typing.Literal[EntityType.EQUIPMENT_MAINTENANCE] | typing.Literal[EntityType.MAINTENANCE_SCHEDULE] | typing.Literal[EntityType.CONDITION_PARAMETER_RULE] | typing.Literal[EntityType.INGREDIENT] | typing.Literal[EntityType.TIMESHEET_ENTRY],
|
|
394
394
|
serial_alias_annotation(
|
|
395
395
|
named_type_path="sdk.entity.LimitedEntityType",
|
|
396
396
|
),
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# ruff: noqa: E402 Q003
|
|
2
|
+
# fmt: off
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
5
|
+
# Kept only for SDK backwards compatibility
|
|
6
|
+
from .exports_t import ListingExportUserTimezone as ListingExportUserTimezone
|
|
7
|
+
from .exports_t import ExportType as ExportType
|
|
8
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
import typing # noqa: F401
|
|
7
|
+
import datetime # noqa: F401
|
|
8
|
+
from decimal import Decimal # noqa: F401
|
|
9
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from . import base_t
|
|
13
|
+
|
|
14
|
+
__all__: list[str] = [
|
|
15
|
+
"ExportType",
|
|
16
|
+
"ListingExportUserTimezone",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
21
|
+
@serial_class(
|
|
22
|
+
named_type_path="sdk.exports.ListingExportUserTimezone",
|
|
23
|
+
)
|
|
24
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
25
|
+
class ListingExportUserTimezone:
|
|
26
|
+
timezone_name: str
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
30
|
+
class ExportType(StrEnum):
|
|
31
|
+
EXCEL = "excel"
|
|
32
|
+
PDF = "pdf"
|
|
33
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/browserconfig.xml
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/favicon-16x16.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/favicon-32x32.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/docs/static/favicons/manifest.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/create_ingredient_sdk.py
RENAMED
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.113 → uncountablepythonsdk-0.0.114}/examples/edit_recipe_inputs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|