UncountablePythonSDK 0.0.104__tar.gz → 0.0.105__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.104/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.105}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/requirements.txt +1 -1
- uncountablepythonsdk-0.0.105/examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/argument_parser.py +44 -9
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/builder.py +4 -1
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__main__.py +7 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/emit_python.py +2 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/job.py +6 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/lookup_entity.py +3 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/client_base.py +21 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/entity_t.py +53 -19
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values.py +1 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values_t.py +14 -1
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job.py +1 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job_t.py +11 -0
- uncountablepythonsdk-0.0.104/examples/integration-server/jobs/materials_auto/example_wh.py +0 -19
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/.github/workflows/documentation.yml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/.github/workflows/publish.yml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/README.md +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/SOURCES.txt +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/requires.txt +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/quickstart.md +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/integration-server/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_blob_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_local_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_s3_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/_sftp_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/missing_sentry.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/opaque_key.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_io_ts.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_python.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/emit_typescript_util.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/parts/base.py.prepart +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/parts/base.ts.prepart +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pyproject.toml +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/cli.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/server.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/telemetry.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/files/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/files/download_file.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/input_groups/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/material_families/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/permissions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/triggers/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/uploader/__init__.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch_processor.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/async_batch_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/base.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/base_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/client_config_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/generic_upload_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/job_definition_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipe_workflow_steps_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/response_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/workflows_t.py +0 -0
{uncountablepythonsdk-0.0.104/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.105}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.105
|
|
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.104 → uncountablepythonsdk-0.0.105/UncountablePythonSDK.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.105
|
|
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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from uncountable.integration.job import JobArguments, WebhookJob, register_job
|
|
4
|
+
from uncountable.types import job_definition_t
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@dataclass(kw_only=True)
|
|
8
|
+
class ExampleWebhookPayload:
|
|
9
|
+
id: int
|
|
10
|
+
message: str
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@register_job
|
|
14
|
+
class WebhookExample(WebhookJob[ExampleWebhookPayload]):
|
|
15
|
+
def run(
|
|
16
|
+
self, args: JobArguments, payload: ExampleWebhookPayload
|
|
17
|
+
) -> job_definition_t.JobResult:
|
|
18
|
+
args.logger.log_info(f"webhook invoked with payload: {payload}")
|
|
19
|
+
return job_definition_t.JobResult(success=True)
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def webhook_payload_type(self) -> type:
|
|
23
|
+
return ExampleWebhookPayload
|
|
@@ -58,7 +58,9 @@ class ParserOptions:
|
|
|
58
58
|
return self.encoding == SourceEncoding.API
|
|
59
59
|
|
|
60
60
|
@property
|
|
61
|
-
def
|
|
61
|
+
def allow_direct_type(self) -> bool:
|
|
62
|
+
"""This allows parsing from a DB column without having to check whether it's
|
|
63
|
+
the native format of the type, a JSON column, or a string encoding."""
|
|
62
64
|
return self.encoding == SourceEncoding.STORAGE
|
|
63
65
|
|
|
64
66
|
|
|
@@ -97,6 +99,22 @@ def is_missing(field_type: typing.Any) -> bool:
|
|
|
97
99
|
return not (len(args) == 0 or args[0] is not MissingSentryType)
|
|
98
100
|
|
|
99
101
|
|
|
102
|
+
def _has_field_default(field: dataclasses.Field[typing.Any]) -> bool:
|
|
103
|
+
return (
|
|
104
|
+
field.default != dataclasses.MISSING
|
|
105
|
+
and not isinstance(field.default, MissingSentryType)
|
|
106
|
+
) or field.default_factory != dataclasses.MISSING
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def _get_field_default(
|
|
110
|
+
field: dataclasses.Field[typing.Any],
|
|
111
|
+
) -> typing.Any:
|
|
112
|
+
if field.default != dataclasses.MISSING:
|
|
113
|
+
return field.default
|
|
114
|
+
assert field.default_factory != dataclasses.MISSING
|
|
115
|
+
return field.default_factory()
|
|
116
|
+
|
|
117
|
+
|
|
100
118
|
def _invoke_tuple_parsers[T](
|
|
101
119
|
tuple_type: type[T],
|
|
102
120
|
arg_parsers: typing.Sequence[typing.Callable[[typing.Any], object]],
|
|
@@ -155,7 +173,7 @@ def _build_parser_discriminated_union[T](
|
|
|
155
173
|
discriminator_map: dict[str, ParserFunction[T]],
|
|
156
174
|
) -> ParserFunction[T]:
|
|
157
175
|
def parse(value: typing.Any) -> typing.Any:
|
|
158
|
-
if context.options.
|
|
176
|
+
if context.options.allow_direct_type and dataclasses.is_dataclass(value):
|
|
159
177
|
discriminant = getattr(value, discriminator)
|
|
160
178
|
else:
|
|
161
179
|
discriminant = value.get(discriminator)
|
|
@@ -318,10 +336,22 @@ def _build_parser_inner[T](
|
|
|
318
336
|
return parse_int
|
|
319
337
|
|
|
320
338
|
if parsed_type is datetime:
|
|
321
|
-
|
|
339
|
+
|
|
340
|
+
def parse_datetime(value: typing.Any) -> T:
|
|
341
|
+
if context.options.allow_direct_type and isinstance(value, datetime):
|
|
342
|
+
return value # type: ignore
|
|
343
|
+
return dateutil.parser.isoparse(value) # type:ignore
|
|
344
|
+
|
|
345
|
+
return parse_datetime
|
|
322
346
|
|
|
323
347
|
if parsed_type is date:
|
|
324
|
-
|
|
348
|
+
|
|
349
|
+
def parse_date(value: typing.Any) -> T:
|
|
350
|
+
if context.options.allow_direct_type and isinstance(value, date):
|
|
351
|
+
return value # type:ignore
|
|
352
|
+
return date.fromisoformat(value) # type:ignore
|
|
353
|
+
|
|
354
|
+
return parse_date
|
|
325
355
|
|
|
326
356
|
# MyPy: It's unclear why `parsed_type in (str, OpaqueKey)` is flagged as invalid
|
|
327
357
|
# Thus an or statement is used instead, which isn't flagged as invalid.
|
|
@@ -405,7 +435,7 @@ def _build_parser_dataclass[T](
|
|
|
405
435
|
|
|
406
436
|
def parse(value: typing.Any) -> typing.Any:
|
|
407
437
|
# Use an exact type match to prevent base/derived class mismatches
|
|
408
|
-
if context.options.
|
|
438
|
+
if context.options.allow_direct_type and type(value) is parsed_type:
|
|
409
439
|
return value
|
|
410
440
|
|
|
411
441
|
data: dict[typing.Any, typing.Any] = {}
|
|
@@ -420,10 +450,8 @@ def _build_parser_dataclass[T](
|
|
|
420
450
|
if field_raw_value == dataclasses.MISSING:
|
|
421
451
|
if serial_class_data.has_parse_require(field.name):
|
|
422
452
|
raise ValueError("missing-required-field", field.name)
|
|
423
|
-
if field
|
|
424
|
-
field_value = field
|
|
425
|
-
elif field.default_factory != dataclasses.MISSING:
|
|
426
|
-
field_value = field.default_factory()
|
|
453
|
+
if _has_field_default(field):
|
|
454
|
+
field_value = _get_field_default(field)
|
|
427
455
|
elif is_missing(field_type):
|
|
428
456
|
field_value = MissingSentryType()
|
|
429
457
|
elif is_optional(field_type):
|
|
@@ -435,6 +463,13 @@ def _build_parser_dataclass[T](
|
|
|
435
463
|
field_value = False
|
|
436
464
|
else:
|
|
437
465
|
raise ValueError("missing-value-for-field", field.name)
|
|
466
|
+
elif (
|
|
467
|
+
field_raw_value is None
|
|
468
|
+
and not is_optional(field_type)
|
|
469
|
+
and _has_field_default(field)
|
|
470
|
+
and not serial_class_data.has_parse_require(field.name)
|
|
471
|
+
):
|
|
472
|
+
field_value = _get_field_default(field)
|
|
438
473
|
elif serial_class_data.has_unconverted_value(field.name):
|
|
439
474
|
field_value = field_raw_value
|
|
440
475
|
else:
|
|
@@ -398,7 +398,10 @@ class SpecTypeDefn(SpecType):
|
|
|
398
398
|
has_default = True
|
|
399
399
|
# IMPROVE: check the type against the ptype
|
|
400
400
|
default = default_spec
|
|
401
|
-
|
|
401
|
+
if extant == PropertyExtant.missing and explicit_default:
|
|
402
|
+
raise Exception(
|
|
403
|
+
f"cannot have extant missing and default for property {name}"
|
|
404
|
+
)
|
|
402
405
|
parse_require = False
|
|
403
406
|
literal = unwrap_literal_type(ptype)
|
|
404
407
|
if literal is not None:
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/pkgs/type_spec/value_spec/__main__.py
RENAMED
|
@@ -155,6 +155,7 @@ key_return = "return"
|
|
|
155
155
|
key_description = "description"
|
|
156
156
|
key_brief = "brief"
|
|
157
157
|
key_name = "name"
|
|
158
|
+
key_draft = "draft"
|
|
158
159
|
|
|
159
160
|
|
|
160
161
|
TypeT = TypeVar("TypeT")
|
|
@@ -229,6 +230,11 @@ def main() -> None:
|
|
|
229
230
|
|
|
230
231
|
brief = get_as(spec, key_brief, str)
|
|
231
232
|
description = get_as(spec, key_description, str)
|
|
233
|
+
draft = (
|
|
234
|
+
get_as(spec, key_draft, bool)
|
|
235
|
+
if spec.get(key_draft) is not None
|
|
236
|
+
else None
|
|
237
|
+
)
|
|
232
238
|
|
|
233
239
|
return_value = get(spec, key_return)
|
|
234
240
|
where.append("return")
|
|
@@ -245,6 +251,7 @@ def main() -> None:
|
|
|
245
251
|
type=convert_to_value_spec_type(parsed.return_type_path),
|
|
246
252
|
description=return_description,
|
|
247
253
|
),
|
|
254
|
+
draft=draft,
|
|
248
255
|
)
|
|
249
256
|
)
|
|
250
257
|
where.pop()
|
|
@@ -164,6 +164,8 @@ def _emit_function(function: value_spec_t.Function, indent: str) -> str:
|
|
|
164
164
|
f"{sub_indent}description={encode_common_string(function.description)},\n"
|
|
165
165
|
)
|
|
166
166
|
out.write(f"{sub_indent}brief={encode_common_string(function.brief)},\n")
|
|
167
|
+
if function.draft:
|
|
168
|
+
out.write(f"{sub_indent}draft={function.draft},\n")
|
|
167
169
|
out.write(
|
|
168
170
|
f"{sub_indent}return_value={_emit_function_return(function.return_value, sub_indent)},\n"
|
|
169
171
|
)
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/integration/job.py
RENAMED
|
@@ -85,3 +85,9 @@ class WebhookJob[WPT](Job[webhook_job_t.WebhookEventPayload]):
|
|
|
85
85
|
def register_job(cls: type[Job]) -> type[Job]:
|
|
86
86
|
cls._unc_job_registered = True
|
|
87
87
|
return cls
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class RunsheetWebhookJob(WebhookJob[webhook_job_t.RunsheetWebhookPayload]):
|
|
91
|
+
@property
|
|
92
|
+
def webhook_payload_type(self) -> type:
|
|
93
|
+
return webhook_job_t.RunsheetWebhookPayload
|
|
@@ -13,6 +13,7 @@ from pkgs.serialization import serial_union_annotation
|
|
|
13
13
|
from ... import async_batch_t
|
|
14
14
|
from ... import base_t
|
|
15
15
|
from ... import entity_t
|
|
16
|
+
from ... import field_values_t
|
|
16
17
|
from ... import identifier_t
|
|
17
18
|
|
|
18
19
|
__all__: list[str] = [
|
|
@@ -49,11 +50,13 @@ class LookupEntityQueryBase:
|
|
|
49
50
|
@serial_class(
|
|
50
51
|
named_type_path="sdk.api.entity.lookup_entity.LookupFieldArgumentValue",
|
|
51
52
|
unconverted_values={"field_value"},
|
|
53
|
+
explicit_defaults={"value_resolution"},
|
|
52
54
|
)
|
|
53
55
|
@dataclasses.dataclass(kw_only=True)
|
|
54
56
|
class LookupFieldArgumentValue:
|
|
55
57
|
field_key: identifier_t.IdentifierKey
|
|
56
58
|
field_value: base_t.JsonValue
|
|
59
|
+
value_resolution: field_values_t.ValueResolution = field_values_t.ValueResolution.DIRECT
|
|
57
60
|
|
|
58
61
|
|
|
59
62
|
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/client_base.py
RENAMED
|
@@ -57,6 +57,7 @@ import uncountable.types.api.entity.list_entities as list_entities_t
|
|
|
57
57
|
import uncountable.types.api.id_source.list_id_source as list_id_source_t
|
|
58
58
|
import uncountable.types.api.entity.lock_entity as lock_entity_t
|
|
59
59
|
import uncountable.types.api.recipes.lock_recipes as lock_recipes_t
|
|
60
|
+
import uncountable.types.api.entity.lookup_entity as lookup_entity_t
|
|
60
61
|
import uncountable.types.api.id_source.match_id_source as match_id_source_t
|
|
61
62
|
from uncountable.types import permissions_t
|
|
62
63
|
from uncountable.types import post_base_t
|
|
@@ -1127,6 +1128,26 @@ class ClientMethods(ABC):
|
|
|
1127
1128
|
)
|
|
1128
1129
|
return self.do_request(api_request=api_request, return_type=lock_recipes_t.Data)
|
|
1129
1130
|
|
|
1131
|
+
def lookup_entity(
|
|
1132
|
+
self,
|
|
1133
|
+
*,
|
|
1134
|
+
entity_type: entity_t.EntityType,
|
|
1135
|
+
query: lookup_entity_t.LookupEntityQuery,
|
|
1136
|
+
) -> lookup_entity_t.Data:
|
|
1137
|
+
"""Look up an entity based on an identifier or field values
|
|
1138
|
+
|
|
1139
|
+
"""
|
|
1140
|
+
args = lookup_entity_t.Arguments(
|
|
1141
|
+
entity_type=entity_type,
|
|
1142
|
+
query=query,
|
|
1143
|
+
)
|
|
1144
|
+
api_request = APIRequest(
|
|
1145
|
+
method=lookup_entity_t.ENDPOINT_METHOD,
|
|
1146
|
+
endpoint=lookup_entity_t.ENDPOINT_PATH,
|
|
1147
|
+
args=args,
|
|
1148
|
+
)
|
|
1149
|
+
return self.do_request(api_request=api_request, return_type=lookup_entity_t.Data)
|
|
1150
|
+
|
|
1130
1151
|
def match_id_source(
|
|
1131
1152
|
self,
|
|
1132
1153
|
*,
|
|
@@ -44,15 +44,18 @@ __all__: list[str] = [
|
|
|
44
44
|
"condition_parameter_value": "Condition Parameter Value",
|
|
45
45
|
"constraint": "Constraint",
|
|
46
46
|
"constraint_set": "Constraint Set",
|
|
47
|
+
"control_type": "Control Type",
|
|
47
48
|
"curve_settings": "Curve Settings",
|
|
48
49
|
"custom_entity": "Custom Entity",
|
|
50
|
+
"default_permissions_new_project": "Default Permissions New Project",
|
|
49
51
|
"doe_run": "Suggest Experiments",
|
|
50
52
|
"email_record_external": "External Emails",
|
|
51
53
|
"email_relay_server": "Email Relay Server",
|
|
54
|
+
"enter_recipe_view_preference": "Enter Recipe View Preference",
|
|
52
55
|
"enter_measurement_view_preference": "Enter Measurement View Preference",
|
|
53
|
-
"enter_recipe_view_preference": "Enter Experiment View Preference",
|
|
54
56
|
"entities_viewed": "Entities Viewed",
|
|
55
57
|
"entity_annotation": "Annotation",
|
|
58
|
+
"entity_definition_field_group": "Entity Definition Field Group",
|
|
56
59
|
"entity_field": "Field",
|
|
57
60
|
"entity_field_audit_log": "Entity Field Audit Log",
|
|
58
61
|
"entity_link": "Entity Link",
|
|
@@ -82,7 +85,7 @@ __all__: list[str] = [
|
|
|
82
85
|
"ingredient_mat_family": "Ingredient Material Family",
|
|
83
86
|
"ingredient_role": "Ingredient Role",
|
|
84
87
|
"ingredient_tag": "Ingredient Subcategory",
|
|
85
|
-
"ingredient_tag_map": "Ingredient
|
|
88
|
+
"ingredient_tag_map": "Ingredient Subcategory Mapping",
|
|
86
89
|
"input_group": "Input Group",
|
|
87
90
|
"inv_local_locations": "Inventory Location",
|
|
88
91
|
"inventory_amount": "Inventory Item",
|
|
@@ -93,7 +96,9 @@ __all__: list[str] = [
|
|
|
93
96
|
"license": "License",
|
|
94
97
|
"maintenance_schedule": "Maintenance Schedule",
|
|
95
98
|
"material_family": "Material Family",
|
|
96
|
-
"
|
|
99
|
+
"measurement_group": "Measurement Group",
|
|
100
|
+
"measurement_group_input": "Measurement Group Input",
|
|
101
|
+
"measurement_group_recipe": "Measurement Group Recipe",
|
|
97
102
|
"ml_job": "Batch Processing Job",
|
|
98
103
|
"naming_scheme": "Naming Scheme",
|
|
99
104
|
"naming_counter": "Naming Counter",
|
|
@@ -108,49 +113,59 @@ __all__: list[str] = [
|
|
|
108
113
|
"output_condition_parameter_analytical_method_category": "Output Condition Parameter Analytical Method Category",
|
|
109
114
|
"output_condition_parameter_analytical_method": "Output Condition Parameter Analytical Method",
|
|
110
115
|
"output_group": "Output Group",
|
|
116
|
+
"output_preferences": "Output Preferences",
|
|
111
117
|
"permission": "Permission",
|
|
112
|
-
"permissions_recipe_link_inheritance": "Permissions
|
|
118
|
+
"permissions_recipe_link_inheritance": "Permissions Recipe Link Inheritance",
|
|
113
119
|
"phase_workflow": "Phase Workflow",
|
|
114
120
|
"platform_config": "Platform Config",
|
|
121
|
+
"portal_form": "Portal Form",
|
|
115
122
|
"predictive_model": "Predictive Model",
|
|
116
123
|
"product": "Product",
|
|
124
|
+
"product_material_family": "Product Material Family",
|
|
117
125
|
"project": "Project",
|
|
118
126
|
"project_workbook_comment": "Notebook Cell Comment",
|
|
119
127
|
"recipe": "Experiment",
|
|
120
128
|
"recipe_audit_log": "Experiment Audit Log",
|
|
121
|
-
"recipe_calculation": "
|
|
129
|
+
"recipe_calculation": "Recipe Calculation",
|
|
122
130
|
"recipe_check": "Experiment Check",
|
|
123
|
-
"recipe_export": "
|
|
131
|
+
"recipe_export": "Recipe Export",
|
|
124
132
|
"recipe_goal": "Experiment Goal",
|
|
125
|
-
"recipe_ingredient": "
|
|
126
|
-
"recipe_ingredient_actual": "
|
|
127
|
-
"recipe_ingredients_compounded": "
|
|
128
|
-
"recipe_ingredients_compounded_calculation": "
|
|
129
|
-
"recipe_output": "
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
133
|
+
"recipe_ingredient": "Recipe Ingredient",
|
|
134
|
+
"recipe_ingredient_actual": "Recipe Ingredient Actual",
|
|
135
|
+
"recipe_ingredients_compounded": "Recipe Ingredients Compounded",
|
|
136
|
+
"recipe_ingredients_compounded_calculation": "Recipe Ingredients Compounded Calculation",
|
|
137
|
+
"recipe_output": "Recipe Output",
|
|
138
|
+
"recipe_output_annotation": "Recipe Output Annotation",
|
|
139
|
+
"recipe_output_metadata": "Recipe Output Metadata",
|
|
140
|
+
"recipe_permission_view": "Recipe Permission View",
|
|
141
|
+
"recipe_project": "Recipe Project",
|
|
142
|
+
"recipe_step": "Recipe Step",
|
|
143
|
+
"recipe_workflow_step": "Recipe Workflow Step",
|
|
144
|
+
"recipe_tag": "Recipe Tag",
|
|
136
145
|
"recipe_metadata": "Experiment Metadata",
|
|
137
146
|
"recipe_metadata_mapping": "Experiment Metadata Mapping",
|
|
138
147
|
"metadata_value": "Metadata Value",
|
|
139
148
|
"review": "Review",
|
|
140
149
|
"review_entity_user_status": "Review Entity User Status",
|
|
141
150
|
"review_user": "Review User",
|
|
151
|
+
"rlw_audit_log": "Rlw Audit Log",
|
|
142
152
|
"rlw_phase": "Phase",
|
|
143
153
|
"rlw_trigger": "Trigger",
|
|
144
154
|
"rlw_trigger_set": "Trigger Set",
|
|
155
|
+
"runsheet_configuration": "Runsheet Configuration",
|
|
145
156
|
"safety_data_sheet": "Safety Data Sheet",
|
|
146
157
|
"scheduled_notification": "Scheduled Notification",
|
|
158
|
+
"scratch_pad": "Scratch Pad",
|
|
147
159
|
"specs": "Spec",
|
|
148
|
-
"
|
|
160
|
+
"save": "Save",
|
|
161
|
+
"split_template": "Test Method",
|
|
149
162
|
"structured_loading_user_config": "List Config",
|
|
163
|
+
"subscription": "Subscription",
|
|
150
164
|
"table_builder_config": "Table Builder Config",
|
|
151
165
|
"task": "Task",
|
|
152
166
|
"task_board": "Task Board",
|
|
153
167
|
"template": "Template",
|
|
168
|
+
"test_entity": "Test Entity",
|
|
154
169
|
"time_series_segment": "Time Series Segment",
|
|
155
170
|
"timesheet_entry": "Timesheet Entry",
|
|
156
171
|
"training_run": "Analyze Experiment",
|
|
@@ -161,6 +176,7 @@ __all__: list[str] = [
|
|
|
161
176
|
"units": "Units",
|
|
162
177
|
"user_favorite": "User Favorite",
|
|
163
178
|
"user": "User",
|
|
179
|
+
"user_analytics_event": "User Analytics Event",
|
|
164
180
|
"user_certification": "User Certification",
|
|
165
181
|
"user_group": "User Group",
|
|
166
182
|
"user_list_set": "User List Set",
|
|
@@ -185,6 +201,7 @@ __all__: list[str] = [
|
|
|
185
201
|
"public_data_sourced_condition_parameter": "ChemQuery Condition Parameter",
|
|
186
202
|
"public_data_sourced_company": "ChemQuery Company",
|
|
187
203
|
"uploader": "Uploader",
|
|
204
|
+
"calculation_material_family": "Calculation Material Family",
|
|
188
205
|
},
|
|
189
206
|
)
|
|
190
207
|
class EntityType(StrEnum):
|
|
@@ -205,15 +222,18 @@ class EntityType(StrEnum):
|
|
|
205
222
|
CONDITION_PARAMETER_VALUE = "condition_parameter_value"
|
|
206
223
|
CONSTRAINT = "constraint"
|
|
207
224
|
CONSTRAINT_SET = "constraint_set"
|
|
225
|
+
CONTROL_TYPE = "control_type"
|
|
208
226
|
CURVE_SETTINGS = "curve_settings"
|
|
209
227
|
CUSTOM_ENTITY = "custom_entity"
|
|
228
|
+
DEFAULT_PERMISSIONS_NEW_PROJECT = "default_permissions_new_project"
|
|
210
229
|
DOE_RUN = "doe_run"
|
|
211
230
|
EMAIL_RECORD_EXTERNAL = "email_record_external"
|
|
212
231
|
EMAIL_RELAY_SERVER = "email_relay_server"
|
|
213
|
-
ENTER_MEASUREMENT_VIEW_PREFERENCE = "enter_measurement_view_preference"
|
|
214
232
|
ENTER_RECIPE_VIEW_PREFERENCE = "enter_recipe_view_preference"
|
|
233
|
+
ENTER_MEASUREMENT_VIEW_PREFERENCE = "enter_measurement_view_preference"
|
|
215
234
|
ENTITIES_VIEWED = "entities_viewed"
|
|
216
235
|
ENTITY_ANNOTATION = "entity_annotation"
|
|
236
|
+
ENTITY_DEFINITION_FIELD_GROUP = "entity_definition_field_group"
|
|
217
237
|
ENTITY_FIELD = "entity_field"
|
|
218
238
|
ENTITY_FIELD_AUDIT_LOG = "entity_field_audit_log"
|
|
219
239
|
ENTITY_LINK = "entity_link"
|
|
@@ -254,6 +274,8 @@ class EntityType(StrEnum):
|
|
|
254
274
|
LICENSE = "license"
|
|
255
275
|
MAINTENANCE_SCHEDULE = "maintenance_schedule"
|
|
256
276
|
MATERIAL_FAMILY = "material_family"
|
|
277
|
+
MEASUREMENT_GROUP = "measurement_group"
|
|
278
|
+
MEASUREMENT_GROUP_INPUT = "measurement_group_input"
|
|
257
279
|
MEASUREMENT_GROUP_RECIPE = "measurement_group_recipe"
|
|
258
280
|
ML_JOB = "ml_job"
|
|
259
281
|
NAMING_SCHEME = "naming_scheme"
|
|
@@ -269,12 +291,15 @@ class EntityType(StrEnum):
|
|
|
269
291
|
OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD_CATEGORY = "output_condition_parameter_analytical_method_category"
|
|
270
292
|
OUTPUT_CONDITION_PARAMETER_ANALYTICAL_METHOD = "output_condition_parameter_analytical_method"
|
|
271
293
|
OUTPUT_GROUP = "output_group"
|
|
294
|
+
OUTPUT_PREFERENCES = "output_preferences"
|
|
272
295
|
PERMISSION = "permission"
|
|
273
296
|
PERMISSIONS_RECIPE_LINK_INHERITANCE = "permissions_recipe_link_inheritance"
|
|
274
297
|
PHASE_WORKFLOW = "phase_workflow"
|
|
275
298
|
PLATFORM_CONFIG = "platform_config"
|
|
299
|
+
PORTAL_FORM = "portal_form"
|
|
276
300
|
PREDICTIVE_MODEL = "predictive_model"
|
|
277
301
|
PRODUCT = "product"
|
|
302
|
+
PRODUCT_MATERIAL_FAMILY = "product_material_family"
|
|
278
303
|
PROJECT = "project"
|
|
279
304
|
PROJECT_WORKBOOK_COMMENT = "project_workbook_comment"
|
|
280
305
|
RECIPE = "recipe"
|
|
@@ -288,6 +313,7 @@ class EntityType(StrEnum):
|
|
|
288
313
|
RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
|
|
289
314
|
RECIPE_INGREDIENTS_COMPOUNDED_CALCULATION = "recipe_ingredients_compounded_calculation"
|
|
290
315
|
RECIPE_OUTPUT = "recipe_output"
|
|
316
|
+
RECIPE_OUTPUT_ANNOTATION = "recipe_output_annotation"
|
|
291
317
|
RECIPE_OUTPUT_METADATA = "recipe_output_metadata"
|
|
292
318
|
RECIPE_PERMISSION_VIEW = "recipe_permission_view"
|
|
293
319
|
RECIPE_PROJECT = "recipe_project"
|
|
@@ -300,18 +326,24 @@ class EntityType(StrEnum):
|
|
|
300
326
|
REVIEW = "review"
|
|
301
327
|
REVIEW_ENTITY_USER_STATUS = "review_entity_user_status"
|
|
302
328
|
REVIEW_USER = "review_user"
|
|
329
|
+
RLW_AUDIT_LOG = "rlw_audit_log"
|
|
303
330
|
RLW_PHASE = "rlw_phase"
|
|
304
331
|
RLW_TRIGGER = "rlw_trigger"
|
|
305
332
|
RLW_TRIGGER_SET = "rlw_trigger_set"
|
|
333
|
+
RUNSHEET_CONFIGURATION = "runsheet_configuration"
|
|
306
334
|
SAFETY_DATA_SHEET = "safety_data_sheet"
|
|
307
335
|
SCHEDULED_NOTIFICATION = "scheduled_notification"
|
|
336
|
+
SCRATCH_PAD = "scratch_pad"
|
|
308
337
|
SPECS = "specs"
|
|
338
|
+
SAVE = "save"
|
|
309
339
|
SPLIT_TEMPLATE = "split_template"
|
|
310
340
|
STRUCTURED_LOADING_USER_CONFIG = "structured_loading_user_config"
|
|
341
|
+
SUBSCRIPTION = "subscription"
|
|
311
342
|
TABLE_BUILDER_CONFIG = "table_builder_config"
|
|
312
343
|
TASK = "task"
|
|
313
344
|
TASK_BOARD = "task_board"
|
|
314
345
|
TEMPLATE = "template"
|
|
346
|
+
TEST_ENTITY = "test_entity"
|
|
315
347
|
TIME_SERIES_SEGMENT = "time_series_segment"
|
|
316
348
|
TIMESHEET_ENTRY = "timesheet_entry"
|
|
317
349
|
TRAINING_RUN = "training_run"
|
|
@@ -322,6 +354,7 @@ class EntityType(StrEnum):
|
|
|
322
354
|
UNITS = "units"
|
|
323
355
|
USER_FAVORITE = "user_favorite"
|
|
324
356
|
USER = "user"
|
|
357
|
+
USER_ANALYTICS_EVENT = "user_analytics_event"
|
|
325
358
|
USER_CERTIFICATION = "user_certification"
|
|
326
359
|
USER_GROUP = "user_group"
|
|
327
360
|
USER_LIST_SET = "user_list_set"
|
|
@@ -346,6 +379,7 @@ class EntityType(StrEnum):
|
|
|
346
379
|
PUBLIC_DATA_SOURCED_CONDITION_PARAMETER = "public_data_sourced_condition_parameter"
|
|
347
380
|
PUBLIC_DATA_SOURCED_COMPANY = "public_data_sourced_company"
|
|
348
381
|
UPLOADER = "uploader"
|
|
382
|
+
CALCULATION_MATERIAL_FAMILY = "calculation_material_family"
|
|
349
383
|
|
|
350
384
|
|
|
351
385
|
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values.py
RENAMED
|
@@ -16,6 +16,7 @@ from .field_values_t import FieldValueFieldOptions as FieldValueFieldOptions
|
|
|
16
16
|
from .field_values_t import FieldValueId as FieldValueId
|
|
17
17
|
from .field_values_t import FieldValueIds as FieldValueIds
|
|
18
18
|
from .field_values_t import FieldValueText as FieldValueText
|
|
19
|
+
from .field_values_t import FieldValueTexts as FieldValueTexts
|
|
19
20
|
from .field_values_t import FieldValueBoolean as FieldValueBoolean
|
|
20
21
|
from .field_values_t import FieldValueNumeric as FieldValueNumeric
|
|
21
22
|
from .field_values_t import FieldValueBatchReference as FieldValueBatchReference
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/field_values_t.py
RENAMED
|
@@ -32,6 +32,7 @@ __all__: list[str] = [
|
|
|
32
32
|
"FieldValueNull",
|
|
33
33
|
"FieldValueNumeric",
|
|
34
34
|
"FieldValueText",
|
|
35
|
+
"FieldValueTexts",
|
|
35
36
|
"FieldValueType",
|
|
36
37
|
"ValueResolution",
|
|
37
38
|
]
|
|
@@ -90,6 +91,7 @@ class ArgumentValueId:
|
|
|
90
91
|
class FieldValueType(StrEnum):
|
|
91
92
|
FILES = "files"
|
|
92
93
|
TEXT = "text"
|
|
94
|
+
TEXTS = "texts"
|
|
93
95
|
ID = "id"
|
|
94
96
|
IDS = "ids"
|
|
95
97
|
BOOLEAN = "boolean"
|
|
@@ -187,6 +189,17 @@ class FieldValueText(FieldValueBase):
|
|
|
187
189
|
value: str
|
|
188
190
|
|
|
189
191
|
|
|
192
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
193
|
+
@serial_class(
|
|
194
|
+
named_type_path="sdk.field_values.FieldValueTexts",
|
|
195
|
+
parse_require={"type"},
|
|
196
|
+
)
|
|
197
|
+
@dataclasses.dataclass(kw_only=True)
|
|
198
|
+
class FieldValueTexts(FieldValueBase):
|
|
199
|
+
type: typing.Literal[FieldValueType.TEXTS] = FieldValueType.TEXTS
|
|
200
|
+
value: list[str]
|
|
201
|
+
|
|
202
|
+
|
|
190
203
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
191
204
|
@serial_class(
|
|
192
205
|
named_type_path="sdk.field_values.FieldValueBoolean",
|
|
@@ -234,7 +247,7 @@ class FieldValueNull(FieldValueBase):
|
|
|
234
247
|
|
|
235
248
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
236
249
|
FieldValue = typing.Annotated[
|
|
237
|
-
FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions | FieldValueNull,
|
|
250
|
+
FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueTexts | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions | FieldValueNull,
|
|
238
251
|
serial_union_annotation(
|
|
239
252
|
named_type_path="sdk.field_values.FieldValue",
|
|
240
253
|
),
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job.py
RENAMED
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
# Kept only for SDK backwards compatibility
|
|
6
6
|
from .webhook_job_t import WebhookEventPayload as WebhookEventPayload
|
|
7
7
|
from .webhook_job_t import WebhookEventBody as WebhookEventBody
|
|
8
|
+
from .webhook_job_t import RunsheetWebhookPayload as RunsheetWebhookPayload
|
|
8
9
|
# DO NOT MODIFY -- This file is generated by type_spec
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/uncountable/types/webhook_job_t.py
RENAMED
|
@@ -9,8 +9,10 @@ from decimal import Decimal # noqa: F401
|
|
|
9
9
|
import dataclasses
|
|
10
10
|
from pkgs.serialization import serial_class
|
|
11
11
|
from . import base_t
|
|
12
|
+
from . import entity_t
|
|
12
13
|
|
|
13
14
|
__all__: list[str] = [
|
|
15
|
+
"RunsheetWebhookPayload",
|
|
14
16
|
"WebhookEventBody",
|
|
15
17
|
"WebhookEventPayload",
|
|
16
18
|
]
|
|
@@ -33,4 +35,13 @@ class WebhookEventPayload:
|
|
|
33
35
|
@dataclasses.dataclass(kw_only=True)
|
|
34
36
|
class WebhookEventBody(WebhookEventPayload):
|
|
35
37
|
event_id: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
@serial_class(
|
|
42
|
+
named_type_path="sdk.webhook_job.RunsheetWebhookPayload",
|
|
43
|
+
)
|
|
44
|
+
@dataclasses.dataclass(kw_only=True)
|
|
45
|
+
class RunsheetWebhookPayload:
|
|
46
|
+
entities: list[entity_t.Entity]
|
|
36
47
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import typing
|
|
2
|
-
|
|
3
|
-
from uncountable.integration.job import JobArguments, WebhookJob, register_job
|
|
4
|
-
from uncountable.types.job_definition_t import JobResult
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@register_job
|
|
8
|
-
class WebhookExample(WebhookJob):
|
|
9
|
-
@property
|
|
10
|
-
def payload_type(self) -> typing.Any:
|
|
11
|
-
return super().payload_type
|
|
12
|
-
|
|
13
|
-
def run(self, args: JobArguments, payload: typing.Any) -> JobResult:
|
|
14
|
-
args.logger.log_info(f"webhook invoked with payload: {payload}")
|
|
15
|
-
return JobResult(success=True)
|
|
16
|
-
|
|
17
|
-
@property
|
|
18
|
-
def webhook_payload_type(self) -> typing.Any:
|
|
19
|
-
return dict
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/.github/workflows/documentation.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/browserconfig.xml
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-16x16.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/favicon-32x32.png
RENAMED
|
File without changes
|
{uncountablepythonsdk-0.0.104 → uncountablepythonsdk-0.0.105}/docs/static/favicons/manifest.json
RENAMED
|
File without changes
|