UncountablePythonSDK 0.0.182__tar.gz → 0.0.184__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.
- {uncountablepythonsdk-0.0.182/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.184}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/UncountablePythonSDK.egg-info/SOURCES.txt +0 -6
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/requirements.txt +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/pyproject.toml +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_blob_session.py +52 -12
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_file_share_session.py +43 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_s3_session.py +53 -7
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/filesystem_session.py +11 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/actions_registry/__main__.py +1 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/actions_registry/emit_python.py +2 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/actions_registry/emit_typescript.py +4 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/builder.py +6 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_python.py +34 -6
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/environment.py +0 -4
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/webhook_server/entrypoint.py +0 -2
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_inputs.py +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/client_base.py +1 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/entity_t.py +13 -1
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/uploader.py +2 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/uploader_t.py +26 -1
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_auth.py +0 -38
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_routes/__init__.py +0 -3
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_routes/_boundary.py +0 -39
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_routes/health.py +0 -30
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_routes/jobs.py +0 -147
- uncountablepythonsdk-0.0.182/uncountable/integration/webhook_server/admin_routes/register.py +0 -13
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/.github/workflows/documentation.yml +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/README.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/.flowmarkignore +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/integration_examples/add_file_to_folder.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/integration_examples/create_ingredient.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/integration_examples/create_output.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/integration_examples/index.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/integration_examples/upload_file.md +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/async_batch_large_parse.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/basic_auth.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/create_ingredient_sdk.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/concurrent_cron.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_http.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_instrument.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_parse.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_predictions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/oauth.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/set_input_pdf_attribute.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/stream_dataset_measurements.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/cached_parser.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_base.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_builder.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_cache.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_error.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_function_type.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_inner.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/parser_options.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/argument_parser/type_predicates.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_sftp_connection.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/unknown.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/usage.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/builder_types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_scss.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/non_discriminated_union_exceptions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/value_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/value_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/query/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/query/builder.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/query/column.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/query/row.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/query/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/http_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/http_server/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/constants.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/provision_webhook.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/datastore_postgres.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/datastore_sql_base.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/factory.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/job_process.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/job_runner.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/request_context.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/secret_retrieval/basic_secret.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/webhook_bootstrap.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/integration/webhook_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/condition_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/condition_parameters/upsert_condition_match.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/condition_parameters/upsert_condition_matches.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/create_or_update_entities.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/export_entities.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/list_aggregate.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/lookup_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/set_barcode.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/set_entities_field_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/file_folders/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/file_folders/add_file_to_folder.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/file_folders/modify_file_system.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/files/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/files/download_file.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/integrations/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/integrations/publish_realtime_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/integrations/push_notification.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/integrations/register_sockets_token.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/listing/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/listing/export_listing.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/listing/fetch_listing.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/ml/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/ml/get_analyze_results.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/ml/get_suggest_results.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/ml/submit_async_job.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/notebooks/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/notebooks/add_notebook_content.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/notebooks/get_notebook_content.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/output_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/output_parameters/swap_output_condition_parameters.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/get_output_organization.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/outputs/update_output_condition_parameter.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/permissions/set_entity_permission.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_links/create_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/create_mix_order.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/set_recipe_total.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/upsert_recipe_workflow_step.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/recipes/upsert_step_relationships.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/runsheet/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/runsheet/complete_async_upload.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/runsheet/export_default_runsheet.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/time_series/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/time_series/ingest_dataset_measurements.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/uploader/complete_async_parse.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/user/__init__.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/api/user/get_current_user_info.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/async_batch_processor.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/async_batch_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/base_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/client_config_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/condition_match.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/condition_match_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/data.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/data_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/dataset_measurements.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/dataset_measurements_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/exports.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/exports_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/field_values.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/field_values_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/generic_upload_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integration_session.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integration_session_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integrations.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/integrations_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/job_definition_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/listing.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/listing_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/ml_reports.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/ml_reports_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/notices.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/notices_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/notifications.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/notifications_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_step_relationships.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_step_relationships_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_workflow_step_types.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_workflow_step_types_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipe_workflow_steps_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/request_headers.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/request_headers_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/response_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/runsheet.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/runsheet_format.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/runsheet_format_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/runsheet_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/sockets.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/sockets_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/specs.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/specs_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/step_relationships.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/step_relationships_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/webhook.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/webhook_job.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/webhook_job_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/webhook_t.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/workflows_t.py +0 -0
{uncountablepythonsdk-0.0.182/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.184}/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.184
|
|
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.182 → uncountablepythonsdk-0.0.184/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.184
|
|
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
|
|
@@ -190,13 +190,7 @@ uncountable/integration/queue_runner/datastore/model.py
|
|
|
190
190
|
uncountable/integration/secret_retrieval/__init__.py
|
|
191
191
|
uncountable/integration/secret_retrieval/basic_secret.py
|
|
192
192
|
uncountable/integration/secret_retrieval/retrieve_secret.py
|
|
193
|
-
uncountable/integration/webhook_server/admin_auth.py
|
|
194
193
|
uncountable/integration/webhook_server/entrypoint.py
|
|
195
|
-
uncountable/integration/webhook_server/admin_routes/__init__.py
|
|
196
|
-
uncountable/integration/webhook_server/admin_routes/_boundary.py
|
|
197
|
-
uncountable/integration/webhook_server/admin_routes/health.py
|
|
198
|
-
uncountable/integration/webhook_server/admin_routes/jobs.py
|
|
199
|
-
uncountable/integration/webhook_server/admin_routes/register.py
|
|
200
194
|
uncountable/types/__init__.py
|
|
201
195
|
uncountable/types/async_batch.py
|
|
202
196
|
uncountable/types/async_batch_processor.py
|
{uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_blob_session.py
RENAMED
|
@@ -2,7 +2,7 @@ from io import BytesIO
|
|
|
2
2
|
from typing import Self
|
|
3
3
|
|
|
4
4
|
from azure.core.credentials import AzureSasCredential
|
|
5
|
-
from azure.storage.blob import BlobServiceClient, ContainerClient
|
|
5
|
+
from azure.storage.blob import BlobPrefix, BlobServiceClient, ContainerClient
|
|
6
6
|
|
|
7
7
|
from pkgs.filesystem_utils.file_type_utils import (
|
|
8
8
|
FileObjectData,
|
|
@@ -78,6 +78,24 @@ class BlobSession(FileSystemSession):
|
|
|
78
78
|
|
|
79
79
|
return filesystem_file_references
|
|
80
80
|
|
|
81
|
+
def list_directories(self, dir_path: FileSystemObject) -> list[FileSystemObject]:
|
|
82
|
+
if not isinstance(dir_path, FileSystemFileReference):
|
|
83
|
+
raise IncompatibleFileReferenceError()
|
|
84
|
+
|
|
85
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
86
|
+
"call to list_directories on uninitialized blob session"
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
prefix = _add_slash(dir_path.filepath)
|
|
90
|
+
directories: list[FileSystemObject] = []
|
|
91
|
+
for item in self.container_client.walk_blobs(
|
|
92
|
+
name_starts_with=prefix, delimiter="/"
|
|
93
|
+
):
|
|
94
|
+
if isinstance(item, BlobPrefix):
|
|
95
|
+
directories.append(FileSystemFileReference(item.name.rstrip("/")))
|
|
96
|
+
|
|
97
|
+
return directories
|
|
98
|
+
|
|
81
99
|
def download_files(
|
|
82
100
|
self,
|
|
83
101
|
filepaths: list[FileSystemObject],
|
|
@@ -108,6 +126,22 @@ class BlobSession(FileSystemSession):
|
|
|
108
126
|
|
|
109
127
|
return downloaded_files
|
|
110
128
|
|
|
129
|
+
def _move_blob(self, src_name: str, dest_name: str) -> None:
|
|
130
|
+
assert self.container_client is not None, (
|
|
131
|
+
"call to _move_blob on uninitialized blob session"
|
|
132
|
+
)
|
|
133
|
+
source_blob_client = self.container_client.get_blob_client(src_name)
|
|
134
|
+
dest_blob_client = self.container_client.get_blob_client(dest_name)
|
|
135
|
+
|
|
136
|
+
source_url = (
|
|
137
|
+
f"{source_blob_client.url}?{self.config.credential.signature}"
|
|
138
|
+
if isinstance(self.config.credential, AzureSasCredential)
|
|
139
|
+
else source_blob_client.url
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
dest_blob_client.start_copy_from_url(source_url)
|
|
143
|
+
source_blob_client.delete_blob()
|
|
144
|
+
|
|
111
145
|
def move_files(self, file_mappings: list[FileTransfer]) -> None:
|
|
112
146
|
assert self.service_client is not None and self.container_client is not None, (
|
|
113
147
|
"call to move_files on uninitialized blob session"
|
|
@@ -119,19 +153,25 @@ class BlobSession(FileSystemSession):
|
|
|
119
153
|
):
|
|
120
154
|
raise IncompatibleFileReferenceError()
|
|
121
155
|
|
|
122
|
-
|
|
123
|
-
src_file.filepath
|
|
124
|
-
)
|
|
125
|
-
dest_blob_client = self.container_client.get_blob_client(dest_file.filepath)
|
|
156
|
+
self._move_blob(src_file.filepath, dest_file.filepath)
|
|
126
157
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
158
|
+
def move_directory(
|
|
159
|
+
self, src_dir: FileSystemObject, dest_dir: FileSystemObject
|
|
160
|
+
) -> None:
|
|
161
|
+
if not isinstance(src_dir, FileSystemFileReference) or not isinstance(
|
|
162
|
+
dest_dir, FileSystemFileReference
|
|
163
|
+
):
|
|
164
|
+
raise IncompatibleFileReferenceError()
|
|
165
|
+
|
|
166
|
+
assert self.service_client is not None and self.container_client is not None, (
|
|
167
|
+
"call to move_directory on uninitialized blob session"
|
|
168
|
+
)
|
|
132
169
|
|
|
133
|
-
|
|
134
|
-
|
|
170
|
+
src_prefix = _add_slash(src_dir.filepath)
|
|
171
|
+
dest_prefix = _add_slash(dest_dir.filepath)
|
|
172
|
+
for blob in self.container_client.list_blobs(name_starts_with=src_prefix):
|
|
173
|
+
dest_name = dest_prefix + blob.name[len(src_prefix) :]
|
|
174
|
+
self._move_blob(blob.name, dest_name)
|
|
135
175
|
|
|
136
176
|
def delete_files(self, filepaths: list[FileSystemObject]) -> None:
|
|
137
177
|
assert self.service_client is not None and self.container_client is not None, (
|
|
@@ -79,6 +79,49 @@ class FileShareSession(FileSystemSession):
|
|
|
79
79
|
dir_client, recursive=recursive, valid_extensions=valid_extensions
|
|
80
80
|
)
|
|
81
81
|
|
|
82
|
+
def list_directories(self, dir_path: FileSystemObject) -> list[FileSystemObject]:
|
|
83
|
+
if not isinstance(dir_path, FileSystemFileReference):
|
|
84
|
+
raise IncompatibleFileReferenceError()
|
|
85
|
+
assert self._share_client is not None, (
|
|
86
|
+
"call to list_directories on uninitialized file share session"
|
|
87
|
+
)
|
|
88
|
+
dir_client = self._share_client.get_directory_client(dir_path.filepath)
|
|
89
|
+
directories: list[FileSystemObject] = []
|
|
90
|
+
for item in dir_client.list_directories_and_files():
|
|
91
|
+
if item["is_directory"]:
|
|
92
|
+
item_path = f"{dir_client.directory_path}/{item['name']}".lstrip("/")
|
|
93
|
+
directories.append(FileSystemFileReference(filepath=item_path))
|
|
94
|
+
return directories
|
|
95
|
+
|
|
96
|
+
def create_directory(self, dir_path: FileSystemObject) -> None:
|
|
97
|
+
if not isinstance(dir_path, FileSystemFileReference):
|
|
98
|
+
raise IncompatibleFileReferenceError()
|
|
99
|
+
assert self._share_client is not None, (
|
|
100
|
+
"call to create_directory on uninitialized file share session"
|
|
101
|
+
)
|
|
102
|
+
current = ""
|
|
103
|
+
for segment in dir_path.filepath.strip("/").split("/"):
|
|
104
|
+
if not segment:
|
|
105
|
+
continue
|
|
106
|
+
current = f"{current}/{segment}".lstrip("/")
|
|
107
|
+
dir_client = self._share_client.get_directory_client(current)
|
|
108
|
+
if not dir_client.exists():
|
|
109
|
+
dir_client.create_directory()
|
|
110
|
+
|
|
111
|
+
def move_directory(
|
|
112
|
+
self, src_dir: FileSystemObject, dest_dir: FileSystemObject
|
|
113
|
+
) -> None:
|
|
114
|
+
if not isinstance(src_dir, FileSystemFileReference) or not isinstance(
|
|
115
|
+
dest_dir, FileSystemFileReference
|
|
116
|
+
):
|
|
117
|
+
raise IncompatibleFileReferenceError()
|
|
118
|
+
assert self._share_client is not None, (
|
|
119
|
+
"call to move_directory on uninitialized file share session"
|
|
120
|
+
)
|
|
121
|
+
self._share_client.get_directory_client(src_dir.filepath).rename_directory(
|
|
122
|
+
dest_dir.filepath
|
|
123
|
+
)
|
|
124
|
+
|
|
82
125
|
def download_files(self, filepaths: list[FileSystemObject]) -> list[FileObjectData]:
|
|
83
126
|
assert self._share_client is not None, (
|
|
84
127
|
"call to download_files on uninitialized file share session"
|
{uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/pkgs/filesystem_utils/_s3_session.py
RENAMED
|
@@ -86,6 +86,28 @@ class S3Session(FileSystemSession):
|
|
|
86
86
|
|
|
87
87
|
return filesystem_references
|
|
88
88
|
|
|
89
|
+
def list_directories(self, dir_path: FileSystemObject) -> list[FileSystemObject]:
|
|
90
|
+
if not isinstance(dir_path, FileSystemFileReference):
|
|
91
|
+
raise IncompatibleFileReferenceError()
|
|
92
|
+
|
|
93
|
+
assert self.bucket is not None, (
|
|
94
|
+
"call to list_directories on uninitialized s3 session"
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
prefix = _add_slash(dir_path.filepath)
|
|
98
|
+
paginator = self.bucket.meta.client.get_paginator("list_objects_v2")
|
|
99
|
+
|
|
100
|
+
directories: list[FileSystemObject] = []
|
|
101
|
+
for page in paginator.paginate(
|
|
102
|
+
Bucket=self.bucket.name, Prefix=prefix, Delimiter="/"
|
|
103
|
+
):
|
|
104
|
+
for common_prefix in page.get("CommonPrefixes", []):
|
|
105
|
+
directories.append(
|
|
106
|
+
FileSystemFileReference(common_prefix["Prefix"].rstrip("/"))
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
return directories
|
|
110
|
+
|
|
89
111
|
def download_files(
|
|
90
112
|
self,
|
|
91
113
|
filepaths: list[FileSystemObject],
|
|
@@ -115,6 +137,18 @@ class S3Session(FileSystemSession):
|
|
|
115
137
|
|
|
116
138
|
return downloaded_files
|
|
117
139
|
|
|
140
|
+
def _move_object(self, src_key: str, dest_key: str) -> None:
|
|
141
|
+
assert self.bucket is not None, (
|
|
142
|
+
"call to _move_object on uninitialized s3 session"
|
|
143
|
+
)
|
|
144
|
+
self.bucket.Object(dest_key).copy_from(
|
|
145
|
+
CopySource={
|
|
146
|
+
"Bucket": self.bucket.name,
|
|
147
|
+
"Key": src_key,
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
self.bucket.Object(src_key).delete()
|
|
151
|
+
|
|
118
152
|
def move_files(self, file_mappings: list[FileTransfer]) -> None:
|
|
119
153
|
assert self.bucket is not None, "call to move_files on uninitialized s3 session"
|
|
120
154
|
|
|
@@ -123,10 +157,22 @@ class S3Session(FileSystemSession):
|
|
|
123
157
|
dest_file, FileSystemFileReference
|
|
124
158
|
):
|
|
125
159
|
raise IncompatibleFileReferenceError()
|
|
126
|
-
self.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
160
|
+
self._move_object(src_file.filepath, dest_file.filepath)
|
|
161
|
+
|
|
162
|
+
def move_directory(
|
|
163
|
+
self, src_dir: FileSystemObject, dest_dir: FileSystemObject
|
|
164
|
+
) -> None:
|
|
165
|
+
if not isinstance(src_dir, FileSystemFileReference) or not isinstance(
|
|
166
|
+
dest_dir, FileSystemFileReference
|
|
167
|
+
):
|
|
168
|
+
raise IncompatibleFileReferenceError()
|
|
169
|
+
|
|
170
|
+
assert self.bucket is not None, (
|
|
171
|
+
"call to move_directory on uninitialized s3 session"
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
src_prefix = _add_slash(src_dir.filepath)
|
|
175
|
+
dest_prefix = _add_slash(dest_dir.filepath)
|
|
176
|
+
for obj in self.bucket.objects.filter(Prefix=src_prefix):
|
|
177
|
+
dest_key = dest_prefix + obj.key[len(src_prefix) :]
|
|
178
|
+
self._move_object(obj.key, dest_key)
|
|
@@ -32,6 +32,17 @@ class FileSystemSession(ABC):
|
|
|
32
32
|
def delete_files(self, filepaths: list[FileSystemObject]) -> None:
|
|
33
33
|
raise NotImplementedError
|
|
34
34
|
|
|
35
|
+
def list_directories(self, dir_path: FileSystemObject) -> list[FileSystemObject]:
|
|
36
|
+
raise NotImplementedError
|
|
37
|
+
|
|
38
|
+
def create_directory(self, dir_path: FileSystemObject) -> None:
|
|
39
|
+
raise NotImplementedError
|
|
40
|
+
|
|
41
|
+
def move_directory(
|
|
42
|
+
self, src_dir: FileSystemObject, dest_dir: FileSystemObject
|
|
43
|
+
) -> None:
|
|
44
|
+
raise NotImplementedError
|
|
45
|
+
|
|
35
46
|
@abstractmethod
|
|
36
47
|
def __enter__(self) -> "FileSystemSession": ...
|
|
37
48
|
|
|
@@ -82,6 +82,7 @@ def main() -> None:
|
|
|
82
82
|
short_description=definition.short_description,
|
|
83
83
|
description=definition.description,
|
|
84
84
|
icon=definition.icon,
|
|
85
|
+
action=definition.action,
|
|
85
86
|
ref_name=ref_name,
|
|
86
87
|
module=actions_registry_t.ActionsRegistryModule(
|
|
87
88
|
ts_name(module_str, name_case=builder.NameCase.convert)
|
|
@@ -51,6 +51,8 @@ def _emit_action_definition(
|
|
|
51
51
|
out.write(f"{sub_indent}description={_py_str(action.description)},\n")
|
|
52
52
|
if action.icon is not None:
|
|
53
53
|
out.write(f"{sub_indent}icon={_py_str(action.icon)},\n")
|
|
54
|
+
if action.action is not None:
|
|
55
|
+
out.write(f"{sub_indent}action={_py_str(action.action)},\n")
|
|
54
56
|
out.write(f"{sub_indent}ref_name={_py_str(action.ref_name)},\n")
|
|
55
57
|
out.write(
|
|
56
58
|
f"{sub_indent}module=actions_registry_t.ActionsRegistryModule.{action.module.name},\n"
|
|
@@ -130,6 +130,10 @@ def _emit_action_definition(
|
|
|
130
130
|
out.write(
|
|
131
131
|
f"{sub_indent}icon: {encode_common_string(action_definition.icon)},\n"
|
|
132
132
|
)
|
|
133
|
+
if action_definition.action is not None:
|
|
134
|
+
out.write(
|
|
135
|
+
f"{sub_indent}action: {encode_common_string(action_definition.action)},\n"
|
|
136
|
+
)
|
|
133
137
|
out.write(
|
|
134
138
|
f"{sub_indent}shortDescription: {encode_common_string(action_definition.short_description)},\n"
|
|
135
139
|
)
|
|
@@ -1106,6 +1106,7 @@ class SpecEndpoint:
|
|
|
1106
1106
|
desc: str | None = None
|
|
1107
1107
|
account_type: str | None
|
|
1108
1108
|
route_group: str | None
|
|
1109
|
+
allow_non_materials_path: bool = False
|
|
1109
1110
|
|
|
1110
1111
|
# function, path details per api endpoint
|
|
1111
1112
|
path_per_api_endpoint: dict[str, EndpointSpecificPath]
|
|
@@ -1135,6 +1136,7 @@ class SpecEndpoint:
|
|
|
1135
1136
|
"has_attachment",
|
|
1136
1137
|
"account_type",
|
|
1137
1138
|
"route_group",
|
|
1139
|
+
"allow_non_materials_path",
|
|
1138
1140
|
]
|
|
1139
1141
|
+ list(builder.api_endpoints.keys()),
|
|
1140
1142
|
)
|
|
@@ -1188,6 +1190,10 @@ class SpecEndpoint:
|
|
|
1188
1190
|
assert isinstance(suppress_ts, bool)
|
|
1189
1191
|
self.suppress_ts = suppress_ts
|
|
1190
1192
|
|
|
1193
|
+
allow_non_materials_path = data.get("allow_non_materials_path", False)
|
|
1194
|
+
assert isinstance(allow_non_materials_path, bool)
|
|
1195
|
+
self.allow_non_materials_path = allow_non_materials_path
|
|
1196
|
+
|
|
1191
1197
|
self.result_type = ResultType(data.get("result_type", ResultType.json.value))
|
|
1192
1198
|
self.has_attachment = data.get("has_attachment", False)
|
|
1193
1199
|
self.desc = data.get("desc")
|
|
@@ -1166,13 +1166,25 @@ def _emit_routes(*, builder: builder.SpecBuilder, config: PythonConfig) -> None:
|
|
|
1166
1166
|
continue
|
|
1167
1167
|
|
|
1168
1168
|
endpoints.append(endpoint)
|
|
1169
|
+
|
|
1170
|
+
has_route_opts = any(
|
|
1171
|
+
endpoint.allow_non_materials_path for endpoint in endpoints
|
|
1172
|
+
)
|
|
1173
|
+
route_opts_import = ["RouteOpts"] if has_route_opts else []
|
|
1174
|
+
static_route_imports = ", ".join(
|
|
1175
|
+
sorted(["StaticRouteType", *route_opts_import])
|
|
1176
|
+
)
|
|
1177
|
+
dynamic_route_imports = ", ".join(
|
|
1178
|
+
sorted(["DynamicRouteType", *route_opts_import])
|
|
1179
|
+
)
|
|
1180
|
+
|
|
1169
1181
|
static_out = io.StringIO()
|
|
1170
1182
|
static_out.write(
|
|
1171
1183
|
f"""{MODIFY_NOTICE}{LINT_HEADER}{ROUTE_NOTICE}
|
|
1172
1184
|
|
|
1173
1185
|
# Static routes for use locally and to ensure linting/mypy finds all modules
|
|
1174
1186
|
|
|
1175
|
-
from main.site.framework.types import
|
|
1187
|
+
from main.site.framework.types import {static_route_imports}
|
|
1176
1188
|
"""
|
|
1177
1189
|
)
|
|
1178
1190
|
|
|
@@ -1218,7 +1230,7 @@ ROUTES: list[StaticRouteType] = [
|
|
|
1218
1230
|
|
|
1219
1231
|
# Dynamic loaded routes to provide faster startup times
|
|
1220
1232
|
|
|
1221
|
-
from main.site.framework.types import
|
|
1233
|
+
from main.site.framework.types import {dynamic_route_imports}
|
|
1222
1234
|
|
|
1223
1235
|
ROUTE_PREFIX = "/{last_endpoint.path_per_api_endpoint[endpoint_root].path_root}"
|
|
1224
1236
|
|
|
@@ -1226,19 +1238,35 @@ ROUTES: list[DynamicRouteType] = [
|
|
|
1226
1238
|
"""
|
|
1227
1239
|
)
|
|
1228
1240
|
|
|
1241
|
+
route_opts_out = io.StringIO()
|
|
1229
1242
|
for endpoint in sorted_endpoints:
|
|
1230
1243
|
endpoint_function_path = endpoint.path_per_api_endpoint[endpoint_root]
|
|
1244
|
+
route = f"{endpoint_function_path.path_dirname}/{endpoint_function_path.path_basename}"
|
|
1231
1245
|
dynamic_out.write(
|
|
1232
|
-
f'{INDENT}("{
|
|
1246
|
+
f'{INDENT}("{route}", "{endpoint_function_path.function}", ["{endpoint.method.upper()}"]),\n'
|
|
1233
1247
|
)
|
|
1234
1248
|
|
|
1235
1249
|
assert endpoint_function_path.function
|
|
1236
1250
|
static_out.write(
|
|
1237
|
-
f'{INDENT}("{
|
|
1251
|
+
f'{INDENT}("{route}", {endpoint_function_path.function}, ["{endpoint.method.upper()}"]),\n'
|
|
1238
1252
|
)
|
|
1239
1253
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1254
|
+
if endpoint.allow_non_materials_path:
|
|
1255
|
+
route_opts_out.write(
|
|
1256
|
+
f'{INDENT}"{route}": RouteOpts(allow_non_materials_path=True),\n'
|
|
1257
|
+
)
|
|
1258
|
+
|
|
1259
|
+
routes_close = f"{MODIFY_NOTICE}]\n"
|
|
1260
|
+
dynamic_out.write(routes_close)
|
|
1261
|
+
static_out.write(routes_close)
|
|
1262
|
+
|
|
1263
|
+
if has_route_opts:
|
|
1264
|
+
route_opts_emit = f"""
|
|
1265
|
+
ROUTE_OPTS: dict[str, RouteOpts] = {{
|
|
1266
|
+
{route_opts_out.getvalue()}{MODIFY_NOTICE}}}
|
|
1267
|
+
"""
|
|
1268
|
+
dynamic_out.write(route_opts_emit)
|
|
1269
|
+
static_out.write(route_opts_emit)
|
|
1242
1270
|
|
|
1243
1271
|
util.rewrite_file(f"{output}/routes_static.py", static_out.getvalue())
|
|
1244
1272
|
util.rewrite_file(f"{output}/routes_dynamic.py", dynamic_out.getvalue())
|
{uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/core/environment.py
RENAMED
|
@@ -26,10 +26,6 @@ def get_local_admin_server_port() -> int:
|
|
|
26
26
|
return int(os.environ.get("UNC_ADMIN_SERVER_PORT", "50051"))
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def get_integration_admin_token() -> str | None:
|
|
30
|
-
return os.environ.get("UNC_INTEGRATION_ADMIN_TOKEN")
|
|
31
|
-
|
|
32
|
-
|
|
33
29
|
def get_otel_enabled() -> bool:
|
|
34
30
|
return os.environ.get("UNC_OTEL_ENABLED") == "true"
|
|
35
31
|
|
|
@@ -12,7 +12,6 @@ from uncountable.integration.http_server import GenericHttpRequest, HttpExceptio
|
|
|
12
12
|
from uncountable.integration.job import CustomHttpJob, WebhookJob
|
|
13
13
|
from uncountable.integration.scan_profiles import load_profiles
|
|
14
14
|
from uncountable.integration.telemetry import Logger
|
|
15
|
-
from uncountable.integration.webhook_server.admin_routes import register_admin_routes
|
|
16
15
|
from uncountable.types import job_definition_t
|
|
17
16
|
|
|
18
17
|
app = flask.Flask(__name__)
|
|
@@ -99,7 +98,6 @@ def register_route(
|
|
|
99
98
|
|
|
100
99
|
def main() -> None:
|
|
101
100
|
app.add_url_rule("/health", "health", lambda: ("OK", 200))
|
|
102
|
-
register_admin_routes(app)
|
|
103
101
|
|
|
104
102
|
profiles = load_profiles()
|
|
105
103
|
for profile_metadata in profiles:
|
|
@@ -21,7 +21,7 @@ __all__: list[str] = [
|
|
|
21
21
|
|
|
22
22
|
ENDPOINT_METHOD = "POST"
|
|
23
23
|
ENDPOINT_PATH = "api/external/recipes/external_set_recipe_inputs"
|
|
24
|
-
ENDPOINT_DESCRIPTION = "Sets input values for experiments. Supports numeric, text, and categorical types. Validates that the recipe step belongs to the correct recipe.
|
|
24
|
+
ENDPOINT_DESCRIPTION = "Sets input values for experiments. Supports numeric, text, and categorical types. Validates that the recipe step belongs to the correct recipe. Each entry edits one input on one recipe with a single operation: set the value (the actual value when set_actual_value is true, otherwise the set value), associate a lot (lot_recipe_id, created if the recipe is not already a lot), or remove the input (remove). A lot association targets the set value; combining it with set_actual_value fails. Writes all values to the first workflow step when no step is specified. Fails if both a numeric and string value are provided."
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/client_base.py
RENAMED
|
@@ -2177,7 +2177,7 @@ class ClientMethods(ABC):
|
|
|
2177
2177
|
input_data: list[set_recipe_inputs_t.RecipeInputValue],
|
|
2178
2178
|
_request_options: client_config_t.RequestOptions | None = None,
|
|
2179
2179
|
) -> set_recipe_inputs_t.Data:
|
|
2180
|
-
"""Sets input values for experiments. Supports numeric, text, and categorical types. Validates that the recipe step belongs to the correct recipe.
|
|
2180
|
+
"""Sets input values for experiments. Supports numeric, text, and categorical types. Validates that the recipe step belongs to the correct recipe. Each entry edits one input on one recipe with a single operation: set the value (the actual value when set_actual_value is true, otherwise the set value), associate a lot (lot_recipe_id, created if the recipe is not already a lot), or remove the input (remove). A lot association targets the set value; combining it with set_actual_value fails. Writes all values to the first workflow step when no step is specified. Fails if both a numeric and string value are provided.
|
|
2181
2181
|
|
|
2182
2182
|
:param input_data: The inputs to set. Must be at most 100 entries long
|
|
2183
2183
|
"""
|
|
@@ -27,6 +27,7 @@ __all__: list[str] = [
|
|
|
27
27
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
28
28
|
@serial_string_enum(
|
|
29
29
|
labels={
|
|
30
|
+
"agent_memory": "Agent Memory",
|
|
30
31
|
"aggregated_data_view": "Aggregated Data View",
|
|
31
32
|
"analytical_method": "Analytical Method",
|
|
32
33
|
"analytical_method_category": "Analytical Method Category",
|
|
@@ -35,6 +36,8 @@ __all__: list[str] = [
|
|
|
35
36
|
"approval": "Approval",
|
|
36
37
|
"async_job": "Async Job",
|
|
37
38
|
"barcode": "Barcode",
|
|
39
|
+
"cad_document": "CAD Document",
|
|
40
|
+
"cad_relationship": "CAD Relationship",
|
|
38
41
|
"calculation": "Calculation",
|
|
39
42
|
"calendar": "Calendar",
|
|
40
43
|
"calendar_event": "Calendar Event",
|
|
@@ -57,6 +60,7 @@ __all__: list[str] = [
|
|
|
57
60
|
"credit_balance": "Credit Balance",
|
|
58
61
|
"curve_settings": "Curve Settings",
|
|
59
62
|
"custom_entity": "Custom Entity",
|
|
63
|
+
"data_pipeline": "Data Pipeline",
|
|
60
64
|
"dataset_binding": "Dataset Binding",
|
|
61
65
|
"default_permissions_new_project": "Default Permissions New Project",
|
|
62
66
|
"document": "Document",
|
|
@@ -90,6 +94,7 @@ __all__: list[str] = [
|
|
|
90
94
|
"external_ai_model": "External AI Model",
|
|
91
95
|
"external_ai_session": "External AI Session",
|
|
92
96
|
"external_ai_usage": "External AI Usage",
|
|
97
|
+
"external_ai_plugin": "External AI Plugin",
|
|
93
98
|
"external_oauth_provider": "External OAuth Provider",
|
|
94
99
|
"experiment_group": "Experiment Group",
|
|
95
100
|
"experiment_group_member": "Experiment Group Member",
|
|
@@ -206,6 +211,7 @@ __all__: list[str] = [
|
|
|
206
211
|
"regional_entity_group": "Regional Entity Group",
|
|
207
212
|
"regulation": "Regulation",
|
|
208
213
|
"regulation_cas": "Regulation CAS",
|
|
214
|
+
"regulation_product_category": "Regulation Product Category",
|
|
209
215
|
"metadata_value": "Metadata Value",
|
|
210
216
|
"report_definition": "Report Definition",
|
|
211
217
|
"reusable_field_condition": "Reusable Field Condition",
|
|
@@ -297,6 +303,7 @@ __all__: list[str] = [
|
|
|
297
303
|
},
|
|
298
304
|
)
|
|
299
305
|
class EntityType(StrEnum):
|
|
306
|
+
AGENT_MEMORY = "agent_memory"
|
|
300
307
|
AGGREGATED_DATA_VIEW = "aggregated_data_view"
|
|
301
308
|
ANALYTICAL_METHOD = "analytical_method"
|
|
302
309
|
ANALYTICAL_METHOD_CATEGORY = "analytical_method_category"
|
|
@@ -305,6 +312,8 @@ class EntityType(StrEnum):
|
|
|
305
312
|
APPROVAL = "approval"
|
|
306
313
|
ASYNC_JOB = "async_job"
|
|
307
314
|
BARCODE = "barcode"
|
|
315
|
+
CAD_DOCUMENT = "cad_document"
|
|
316
|
+
CAD_RELATIONSHIP = "cad_relationship"
|
|
308
317
|
CALCULATION = "calculation"
|
|
309
318
|
CALENDAR = "calendar"
|
|
310
319
|
CALENDAR_EVENT = "calendar_event"
|
|
@@ -327,6 +336,7 @@ class EntityType(StrEnum):
|
|
|
327
336
|
CREDIT_BALANCE = "credit_balance"
|
|
328
337
|
CURVE_SETTINGS = "curve_settings"
|
|
329
338
|
CUSTOM_ENTITY = "custom_entity"
|
|
339
|
+
DATA_PIPELINE = "data_pipeline"
|
|
330
340
|
DATASET_BINDING = "dataset_binding"
|
|
331
341
|
DEFAULT_PERMISSIONS_NEW_PROJECT = "default_permissions_new_project"
|
|
332
342
|
DOCUMENT = "document"
|
|
@@ -360,6 +370,7 @@ class EntityType(StrEnum):
|
|
|
360
370
|
EXTERNAL_AI_MODEL = "external_ai_model"
|
|
361
371
|
EXTERNAL_AI_SESSION = "external_ai_session"
|
|
362
372
|
EXTERNAL_AI_USAGE = "external_ai_usage"
|
|
373
|
+
EXTERNAL_AI_PLUGIN = "external_ai_plugin"
|
|
363
374
|
EXTERNAL_OAUTH_PROVIDER = "external_oauth_provider"
|
|
364
375
|
EXPERIMENT_GROUP = "experiment_group"
|
|
365
376
|
EXPERIMENT_GROUP_MEMBER = "experiment_group_member"
|
|
@@ -476,6 +487,7 @@ class EntityType(StrEnum):
|
|
|
476
487
|
REGIONAL_ENTITY_GROUP = "regional_entity_group"
|
|
477
488
|
REGULATION = "regulation"
|
|
478
489
|
REGULATION_CAS = "regulation_cas"
|
|
490
|
+
REGULATION_PRODUCT_CATEGORY = "regulation_product_category"
|
|
479
491
|
METADATA_VALUE = "metadata_value"
|
|
480
492
|
REPORT_DEFINITION = "report_definition"
|
|
481
493
|
REUSABLE_FIELD_CONDITION = "reusable_field_condition"
|
|
@@ -568,7 +580,7 @@ class EntityType(StrEnum):
|
|
|
568
580
|
|
|
569
581
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
570
582
|
LimitedEntityType = typing.Annotated[
|
|
571
|
-
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.NOTEBOOK] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.CONSTRAINT_SET] | 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] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK] | typing.Literal[EntityType.EXPERIMENT_GROUP_MEMBER] | typing.Literal[EntityType.CALENDAR_EVENT],
|
|
583
|
+
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.NOTEBOOK] | typing.Literal[EntityType.OUTPUT] | typing.Literal[EntityType.OUTPUT_CONDITION_PARAMETER] | typing.Literal[EntityType.ASYNC_JOB] | typing.Literal[EntityType.CONSTRAINT] | typing.Literal[EntityType.CONSTRAINT_SET] | 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] | typing.Literal[EntityType.SAVE] | typing.Literal[EntityType.RECIPE_CHECK] | typing.Literal[EntityType.EXPERIMENT_GROUP_MEMBER] | typing.Literal[EntityType.INPUT_GROUP] | typing.Literal[EntityType.INPUT_GROUP_MEMBER] | typing.Literal[EntityType.CALENDAR_EVENT],
|
|
572
584
|
serial_alias_annotation(
|
|
573
585
|
named_type_path="sdk.entity.LimitedEntityType",
|
|
574
586
|
),
|
|
@@ -8,8 +8,10 @@ from .uploader_t import ChannelType as ChannelType
|
|
|
8
8
|
from .uploader_t import StructureElementType as StructureElementType
|
|
9
9
|
from .uploader_t import StructureElementBase as StructureElementBase
|
|
10
10
|
from .uploader_t import DecimalValue as DecimalValue
|
|
11
|
+
from .uploader_t import IdValue as IdValue
|
|
11
12
|
from .uploader_t import StringValue as StringValue
|
|
12
13
|
from .uploader_t import BaseData as BaseData
|
|
14
|
+
from .uploader_t import FileHeaderData as FileHeaderData
|
|
13
15
|
from .uploader_t import NumericHeaderData as NumericHeaderData
|
|
14
16
|
from .uploader_t import TextHeaderData as TextHeaderData
|
|
15
17
|
from .uploader_t import HeaderValue as HeaderValue
|
{uncountablepythonsdk-0.0.182 → uncountablepythonsdk-0.0.184}/uncountable/types/uploader_t.py
RENAMED
|
@@ -10,6 +10,7 @@ from enum import StrEnum
|
|
|
10
10
|
import dataclasses
|
|
11
11
|
from pkgs.serialization import serial_class
|
|
12
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import base_t
|
|
13
14
|
|
|
14
15
|
__all__: list[str] = [
|
|
15
16
|
"BaseData",
|
|
@@ -17,9 +18,11 @@ __all__: list[str] = [
|
|
|
17
18
|
"ChannelType",
|
|
18
19
|
"DataChannel",
|
|
19
20
|
"DecimalValue",
|
|
21
|
+
"FileHeaderData",
|
|
20
22
|
"HeaderEntry",
|
|
21
23
|
"HeaderType",
|
|
22
24
|
"HeaderValue",
|
|
25
|
+
"IdValue",
|
|
23
26
|
"NumericChannelData",
|
|
24
27
|
"NumericHeaderData",
|
|
25
28
|
"ParsedFileData",
|
|
@@ -35,6 +38,7 @@ __all__: list[str] = [
|
|
|
35
38
|
|
|
36
39
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
37
40
|
class HeaderType(StrEnum):
|
|
41
|
+
FILE_HEADER = "file_header"
|
|
38
42
|
NUMERIC_HEADER = "numeric_header"
|
|
39
43
|
TEXT_HEADER = "text_header"
|
|
40
44
|
|
|
@@ -71,6 +75,15 @@ class DecimalValue:
|
|
|
71
75
|
value: Decimal
|
|
72
76
|
|
|
73
77
|
|
|
78
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
79
|
+
@serial_class(
|
|
80
|
+
named_type_path="sdk.uploader.IdValue",
|
|
81
|
+
)
|
|
82
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
83
|
+
class IdValue:
|
|
84
|
+
value: base_t.ObjectId
|
|
85
|
+
|
|
86
|
+
|
|
74
87
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
75
88
|
@serial_class(
|
|
76
89
|
named_type_path="sdk.uploader.StringValue",
|
|
@@ -90,6 +103,17 @@ class BaseData:
|
|
|
90
103
|
type: str
|
|
91
104
|
|
|
92
105
|
|
|
106
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
107
|
+
@serial_class(
|
|
108
|
+
named_type_path="sdk.uploader.FileHeaderData",
|
|
109
|
+
parse_require={"type"},
|
|
110
|
+
)
|
|
111
|
+
@dataclasses.dataclass(slots=True, kw_only=True)
|
|
112
|
+
class FileHeaderData(BaseData):
|
|
113
|
+
type: typing.Literal[HeaderType.FILE_HEADER] = HeaderType.FILE_HEADER
|
|
114
|
+
data: IdValue | None
|
|
115
|
+
|
|
116
|
+
|
|
93
117
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
94
118
|
@serial_class(
|
|
95
119
|
named_type_path="sdk.uploader.NumericHeaderData",
|
|
@@ -114,11 +138,12 @@ class TextHeaderData(BaseData):
|
|
|
114
138
|
|
|
115
139
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
116
140
|
HeaderValue = typing.Annotated[
|
|
117
|
-
NumericHeaderData | TextHeaderData,
|
|
141
|
+
FileHeaderData | NumericHeaderData | TextHeaderData,
|
|
118
142
|
serial_union_annotation(
|
|
119
143
|
named_type_path="sdk.uploader.HeaderValue",
|
|
120
144
|
discriminator="type",
|
|
121
145
|
discriminator_map={
|
|
146
|
+
"file_header": FileHeaderData,
|
|
122
147
|
"numeric_header": NumericHeaderData,
|
|
123
148
|
"text_header": TextHeaderData,
|
|
124
149
|
},
|