UncountablePythonSDK 0.0.149__tar.gz → 0.0.151__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.149 → uncountablepythonsdk-0.0.151}/.github/workflows/documentation.yml +1 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/.github/workflows/publish.yml +1 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/PKG-INFO +3 -3
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/UncountablePythonSDK.egg-info/PKG-INFO +3 -3
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/UncountablePythonSDK.egg-info/SOURCES.txt +6 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/UncountablePythonSDK.egg-info/requires.txt +2 -2
- uncountablepythonsdk-0.0.151/docs/requirements.txt +9 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_parse.py +57 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/pyproject.toml +1 -1
- uncountablepythonsdk-0.0.151/examples/set_input_pdf_attribute.py +67 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/__init__.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/argument_parser.py +9 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/__init__.py +2 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_blob_session.py +2 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_gdrive_session.py +2 -2
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_local_session.py +2 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_s3_session.py +21 -7
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_sftp_session.py +2 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/__init__.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/missing_sentry.py +1 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/opaque_key.py +4 -1
- uncountablepythonsdk-0.0.151/pkgs/serialization/unknown.py +4 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/builder.py +7 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_io_ts.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_python.py +2 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_typescript_util.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/parts/base.py.prepart +4 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/parts/base.ts.prepart +2 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/type_info/emit_type_info.py +4 -4
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/value_spec/emit_python.py +5 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pyproject.toml +2 -2
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/cli.py +43 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/command_client.py +15 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/command_server.py +14 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +3 -0
- uncountablepythonsdk-0.0.151/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +74 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +28 -9
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +36 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +16 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/datastore/interface.py +5 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/server.py +2 -2
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/telemetry.py +2 -2
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/__init__.py +6 -0
- uncountablepythonsdk-0.0.151/uncountable/types/api/file_folders/modify_file_system.py +98 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/notebooks/add_notebook_content.py +145 -1
- uncountablepythonsdk-0.0.151/uncountable/types/api/outputs/update_output_condition_parameter.py +56 -0
- uncountablepythonsdk-0.0.151/uncountable/types/api/permissions/set_entity_permission.py +115 -0
- uncountablepythonsdk-0.0.151/uncountable/types/api/user/__init__.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/async_batch_processor.py +75 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/async_batch_t.py +2 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/base.py +1 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/base_t.py +5 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/client_base.py +109 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/entity_t.py +9 -1
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/inputs_t.py +4 -0
- uncountablepythonsdk-0.0.149/docs/requirements.txt +0 -9
- uncountablepythonsdk-0.0.149/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -63
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/.gitignore +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/.python-version +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/README.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/.gitignore +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/conf.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/index.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/integration_examples/create_ingredient.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/integration_examples/create_output.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/integration_examples/index.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/integration_examples/upload_file.md +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/justfile +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/android-chrome-192x192.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/android-chrome-512x512.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/apple-touch-icon.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/browserconfig.xml +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/favicon-16x16.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/favicon-32x32.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/manifest.json +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/mstile-150x150.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/favicons/safari-pinned-tab.svg +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/docs/static/logo_blue.png +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/basic_auth.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/create_ingredient_sdk.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/download_files.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/concurrent_cron.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_http.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_instrument.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_predictions.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/oauth.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/set_recipe_metadata_file.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/set_recipe_output_file_sdk.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/examples/upload_files.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/_is_enum.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/_is_namedtuple.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/case_convert.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/file_type_utils.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/filesystem_session.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/py.typed +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/annotation.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/serial_alias.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/serial_class.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/serial_generic.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/serial_union.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/yaml.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization_util/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization_util/dataclasses.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization_util/serialization_helpers.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/strenum_compat/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/strenum_compat/strenum_compat.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/actions_registry/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/actions_registry/__main__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/builder_types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/config.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/cross_output_links.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_open_api.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/emit_typescript.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/load_types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/non_discriminated_union_exceptions.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/open_api_util.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/test.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/type_info/__main__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/ui_entry_actions/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/util.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/value_spec/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/value_spec/__main__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/value_spec/convert_type.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/value_spec/types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/setup.cfg +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/client.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/environment.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/file_upload.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/core/types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/construct_client.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/cron.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/db/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/db/connect.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/db/session.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/executors/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/executors/executors.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/executors/generic_upload_executor.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/executors/script_executor.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/http_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/http_server/types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/job.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/constants.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/command_server/types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/datastore/model.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/queue_runner.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/types.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/queue_runner/worker.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/scan_profiles.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/scheduler.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/secret_retrieval/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/integration/webhook_server/entrypoint.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/py.typed +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/batch/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/batch/execute_batch.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/chemical/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/condition_parameters/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/condition_parameters/upsert_condition_match.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/create_entities.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/create_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/export_entities.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/get_entities_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/list_aggregate.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/list_entities.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/lock_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/lookup_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/set_barcode.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/set_values.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/entity/unlock_entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/equipment/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/field_options/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/files → uncountablepythonsdk-0.0.151/uncountable/types/api/file_folders}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/id_source → uncountablepythonsdk-0.0.151/uncountable/types/api/files}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/files/create_file_record.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/files/download_file.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/input_groups → uncountablepythonsdk-0.0.151/uncountable/types/api/id_source}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/id_source/list_id_source.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/id_source/match_id_source.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/inputs → uncountablepythonsdk-0.0.151/uncountable/types/api/input_groups}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/integrations → uncountablepythonsdk-0.0.151/uncountable/types/api/inputs}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/create_inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/get_input_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/get_input_names.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/set_input_category.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/listing → uncountablepythonsdk-0.0.151/uncountable/types/api/integrations}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/integrations/publish_realtime_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/integrations/push_notification.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/integrations/register_sockets_token.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/material_families → uncountablepythonsdk-0.0.151/uncountable/types/api/listing}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/listing/fetch_listing.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/notebooks → uncountablepythonsdk-0.0.151/uncountable/types/api/material_families}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/outputs → uncountablepythonsdk-0.0.151/uncountable/types/api/notebooks}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/permissions → uncountablepythonsdk-0.0.151/uncountable/types/api/outputs}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/outputs/get_output_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/outputs/get_output_names.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/outputs/get_output_organization.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/project → uncountablepythonsdk-0.0.151/uncountable/types/api/permissions}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/recipe_links → uncountablepythonsdk-0.0.151/uncountable/types/api/project}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/project/get_projects.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/project/get_projects_data.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/recipe_metadata → uncountablepythonsdk-0.0.151/uncountable/types/api/recipe_links}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/recipes → uncountablepythonsdk-0.0.151/uncountable/types/api/recipe_metadata}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/runsheet → uncountablepythonsdk-0.0.151/uncountable/types/api/recipes}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/archive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/create_mix_order.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/create_recipe.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/create_recipes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/edit_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_curve.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/lock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_outputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/set_recipe_total.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/triggers → uncountablepythonsdk-0.0.151/uncountable/types/api/runsheet}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/runsheet/complete_async_upload.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/runsheet/export_default_runsheet.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/uploader → uncountablepythonsdk-0.0.151/uncountable/types/api/triggers}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/triggers/run_trigger.py +0 -0
- {uncountablepythonsdk-0.0.149/uncountable/types/api/user → uncountablepythonsdk-0.0.151/uncountable/types/api/uploader}/__init__.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/uploader/complete_async_parse.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/api/user/get_current_user_info.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/async_batch.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/async_jobs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/async_jobs_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/auth_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/auth_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/calculations.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/calculations_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/chemical_structure.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/chemical_structure_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/client_config.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/client_config_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/curves.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/curves_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/data.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/data_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/entity.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/experiment_groups.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/experiment_groups_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/exports.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/exports_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/field_values.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/field_values_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/fields.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/fields_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/generic_upload.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/generic_upload_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/id_source.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/id_source_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/identifier.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/identifier_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/input_attributes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/input_attributes_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integration_server.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integration_server_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integration_session.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integration_session_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integrations.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/integrations_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/job_definition.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/job_definition_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/listing.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/listing_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/notices.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/notices_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/notifications.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/notifications_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/outputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/outputs_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/overrides.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/overrides_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/permissions.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/permissions_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/phases.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/phases_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/post_base.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/post_base_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/queued_job.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/queued_job_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_identifiers.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_identifiers_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_inputs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_inputs_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_links.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_links_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_metadata.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_output_metadata.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_output_metadata_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_tags.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_tags_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_workflow_steps.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipe_workflow_steps_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipes.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/recipes_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/response.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/response_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/runsheet.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/runsheet_format.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/runsheet_format_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/runsheet_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/secret_retrieval.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/secret_retrieval_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/sockets.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/sockets_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/specs.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/specs_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/units.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/units_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/uploader.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/uploader_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/users.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/users_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/webhook_job.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/webhook_job_t.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/workflows.py +0 -0
- {uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/uncountable/types/workflows_t.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.151
|
|
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
|
|
@@ -35,13 +35,13 @@ Requires-Dist: paramiko==3.*
|
|
|
35
35
|
Requires-Dist: boto3==1.*
|
|
36
36
|
Requires-Dist: flask==3.*
|
|
37
37
|
Requires-Dist: simplejson==3.*
|
|
38
|
-
Requires-Dist: grpcio==1.
|
|
38
|
+
Requires-Dist: grpcio==1.78.0
|
|
39
39
|
Requires-Dist: protobuf>=4.21.1
|
|
40
40
|
Requires-Dist: azure-storage-blob==12.*
|
|
41
41
|
Requires-Dist: boto3-stubs[essential,ses]==1.*
|
|
42
42
|
Requires-Dist: msgspec<0.21,>=0.19
|
|
43
43
|
Requires-Dist: tabulate==0.9.0
|
|
44
|
-
Requires-Dist: types-psutil~=7.1
|
|
44
|
+
Requires-Dist: types-psutil~=7.2.1
|
|
45
45
|
Requires-Dist: psutil>=5.9.0
|
|
46
46
|
Provides-Extra: test
|
|
47
47
|
Requires-Dist: mypy==1.*; extra == "test"
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/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.151
|
|
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
|
|
@@ -35,13 +35,13 @@ Requires-Dist: paramiko==3.*
|
|
|
35
35
|
Requires-Dist: boto3==1.*
|
|
36
36
|
Requires-Dist: flask==3.*
|
|
37
37
|
Requires-Dist: simplejson==3.*
|
|
38
|
-
Requires-Dist: grpcio==1.
|
|
38
|
+
Requires-Dist: grpcio==1.78.0
|
|
39
39
|
Requires-Dist: protobuf>=4.21.1
|
|
40
40
|
Requires-Dist: azure-storage-blob==12.*
|
|
41
41
|
Requires-Dist: boto3-stubs[essential,ses]==1.*
|
|
42
42
|
Requires-Dist: msgspec<0.21,>=0.19
|
|
43
43
|
Requires-Dist: tabulate==0.9.0
|
|
44
|
-
Requires-Dist: types-psutil~=7.1
|
|
44
|
+
Requires-Dist: types-psutil~=7.2.1
|
|
45
45
|
Requires-Dist: psutil>=5.9.0
|
|
46
46
|
Provides-Extra: test
|
|
47
47
|
Requires-Dist: mypy==1.*; extra == "test"
|
|
@@ -36,6 +36,7 @@ examples/download_files.py
|
|
|
36
36
|
examples/edit_recipe_inputs.py
|
|
37
37
|
examples/invoke_uploader.py
|
|
38
38
|
examples/oauth.py
|
|
39
|
+
examples/set_input_pdf_attribute.py
|
|
39
40
|
examples/set_recipe_metadata_file.py
|
|
40
41
|
examples/set_recipe_output_file_sdk.py
|
|
41
42
|
examples/upload_files.py
|
|
@@ -72,6 +73,7 @@ pkgs/serialization/serial_alias.py
|
|
|
72
73
|
pkgs/serialization/serial_class.py
|
|
73
74
|
pkgs/serialization/serial_generic.py
|
|
74
75
|
pkgs/serialization/serial_union.py
|
|
76
|
+
pkgs/serialization/unknown.py
|
|
75
77
|
pkgs/serialization/yaml.py
|
|
76
78
|
pkgs/serialization_util/__init__.py
|
|
77
79
|
pkgs/serialization_util/_get_type_for_serialization.py
|
|
@@ -294,6 +296,8 @@ uncountable/types/api/equipment/__init__.py
|
|
|
294
296
|
uncountable/types/api/equipment/associate_equipment_input.py
|
|
295
297
|
uncountable/types/api/field_options/__init__.py
|
|
296
298
|
uncountable/types/api/field_options/upsert_field_options.py
|
|
299
|
+
uncountable/types/api/file_folders/__init__.py
|
|
300
|
+
uncountable/types/api/file_folders/modify_file_system.py
|
|
297
301
|
uncountable/types/api/files/__init__.py
|
|
298
302
|
uncountable/types/api/files/create_file_record.py
|
|
299
303
|
uncountable/types/api/files/download_file.py
|
|
@@ -326,8 +330,10 @@ uncountable/types/api/outputs/get_output_data.py
|
|
|
326
330
|
uncountable/types/api/outputs/get_output_names.py
|
|
327
331
|
uncountable/types/api/outputs/get_output_organization.py
|
|
328
332
|
uncountable/types/api/outputs/resolve_output_conditions.py
|
|
333
|
+
uncountable/types/api/outputs/update_output_condition_parameter.py
|
|
329
334
|
uncountable/types/api/permissions/__init__.py
|
|
330
335
|
uncountable/types/api/permissions/set_core_permissions.py
|
|
336
|
+
uncountable/types/api/permissions/set_entity_permission.py
|
|
331
337
|
uncountable/types/api/project/__init__.py
|
|
332
338
|
uncountable/types/api/project/get_projects.py
|
|
333
339
|
uncountable/types/api/project/get_projects_data.py
|
|
@@ -17,13 +17,13 @@ paramiko==3.*
|
|
|
17
17
|
boto3==1.*
|
|
18
18
|
flask==3.*
|
|
19
19
|
simplejson==3.*
|
|
20
|
-
grpcio==1.
|
|
20
|
+
grpcio==1.78.0
|
|
21
21
|
protobuf>=4.21.1
|
|
22
22
|
azure-storage-blob==12.*
|
|
23
23
|
boto3-stubs[essential,ses]==1.*
|
|
24
24
|
msgspec<0.21,>=0.19
|
|
25
25
|
tabulate==0.9.0
|
|
26
|
-
types-psutil~=7.1
|
|
26
|
+
types-psutil~=7.2.1
|
|
27
27
|
psutil>=5.9.0
|
|
28
28
|
|
|
29
29
|
[test]
|
|
@@ -110,7 +110,63 @@ class ParseExample(WebhookJob[ParsePayload]):
|
|
|
110
110
|
),
|
|
111
111
|
),
|
|
112
112
|
],
|
|
113
|
-
)
|
|
113
|
+
),
|
|
114
|
+
uploader_t.ParsedFileData(
|
|
115
|
+
file_name=file_name,
|
|
116
|
+
file_structures=[
|
|
117
|
+
uploader_t.DataChannel(
|
|
118
|
+
type=uploader_t.StructureElementType.CHANNEL,
|
|
119
|
+
channel=uploader_t.TextChannelData(
|
|
120
|
+
name="column1",
|
|
121
|
+
type=uploader_t.ChannelType.TEXT_CHANNEL,
|
|
122
|
+
data=[
|
|
123
|
+
uploader_t.StringValue(value="value1"),
|
|
124
|
+
uploader_t.StringValue(value="value4"),
|
|
125
|
+
uploader_t.StringValue(value="value7"),
|
|
126
|
+
],
|
|
127
|
+
),
|
|
128
|
+
),
|
|
129
|
+
uploader_t.DataChannel(
|
|
130
|
+
type=uploader_t.StructureElementType.CHANNEL,
|
|
131
|
+
channel=uploader_t.TextChannelData(
|
|
132
|
+
name="column2",
|
|
133
|
+
type=uploader_t.ChannelType.TEXT_CHANNEL,
|
|
134
|
+
data=[
|
|
135
|
+
uploader_t.StringValue(value="value2"),
|
|
136
|
+
uploader_t.StringValue(value="value5"),
|
|
137
|
+
uploader_t.StringValue(value="value8"),
|
|
138
|
+
],
|
|
139
|
+
),
|
|
140
|
+
),
|
|
141
|
+
uploader_t.DataChannel(
|
|
142
|
+
type=uploader_t.StructureElementType.CHANNEL,
|
|
143
|
+
channel=uploader_t.TextChannelData(
|
|
144
|
+
name="column3",
|
|
145
|
+
type=uploader_t.ChannelType.TEXT_CHANNEL,
|
|
146
|
+
data=[
|
|
147
|
+
uploader_t.StringValue(value="value3"),
|
|
148
|
+
uploader_t.StringValue(value="value6"),
|
|
149
|
+
uploader_t.StringValue(value="value9"),
|
|
150
|
+
],
|
|
151
|
+
),
|
|
152
|
+
),
|
|
153
|
+
uploader_t.HeaderEntry(
|
|
154
|
+
type=uploader_t.StructureElementType.HEADER,
|
|
155
|
+
value=uploader_t.NumericHeaderData(
|
|
156
|
+
name="file structure number",
|
|
157
|
+
data=uploader_t.DecimalValue(value=Decimal(99)),
|
|
158
|
+
),
|
|
159
|
+
),
|
|
160
|
+
uploader_t.HeaderEntry(
|
|
161
|
+
type=uploader_t.StructureElementType.HEADER,
|
|
162
|
+
value=uploader_t.TextHeaderData(
|
|
163
|
+
name="uploaded file name",
|
|
164
|
+
type=uploader_t.HeaderType.TEXT_HEADER,
|
|
165
|
+
data=uploader_t.StringValue(value=file_name),
|
|
166
|
+
),
|
|
167
|
+
),
|
|
168
|
+
],
|
|
169
|
+
),
|
|
114
170
|
]
|
|
115
171
|
|
|
116
172
|
complete_async_parse_req = args.batch_processor.complete_async_parse(
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Example: Upload a PDF file and set it as an input (ingredient) attribute value.
|
|
3
|
+
|
|
4
|
+
This example demonstrates the end-to-end flow for setting a PDF attribute on an input:
|
|
5
|
+
1. Upload a PDF file using the upload_files API
|
|
6
|
+
2. Call set_input_attribute_values with the file_id to associate the PDF with an input attribute
|
|
7
|
+
|
|
8
|
+
Prerequisites:
|
|
9
|
+
- You need an input (ingredient) ID and an attribute ID that is of type PDF
|
|
10
|
+
- You can find these by:
|
|
11
|
+
- Going to the Inputs page in the platform
|
|
12
|
+
- Selecting an input to get its ID from the URL
|
|
13
|
+
- Looking at the attribute configuration to find a PDF-type attribute ID
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
export UNC_API_ID="your_api_id"
|
|
17
|
+
export UNC_API_SECRET_KEY="your_api_secret_key"
|
|
18
|
+
python set_input_pdf_attribute.py
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
import os
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
|
|
24
|
+
import uncountable.types.api.inputs.set_input_attribute_values as set_input_attribute_values_t
|
|
25
|
+
from uncountable.core import AuthDetailsApiKey, Client, MediaFileUpload
|
|
26
|
+
|
|
27
|
+
# Initialize the client
|
|
28
|
+
client = Client(
|
|
29
|
+
base_url="http://localhost:5000",
|
|
30
|
+
auth_details=AuthDetailsApiKey(
|
|
31
|
+
api_id=os.environ["UNC_API_ID"],
|
|
32
|
+
api_secret_key=os.environ["UNC_API_SECRET_KEY"],
|
|
33
|
+
),
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
# Configuration - update these values for your specific use case
|
|
37
|
+
PDF_FILE_PATH = str(
|
|
38
|
+
(Path.home() / "Downloads" / "All Projects - January 15, 2026.pdf").absolute()
|
|
39
|
+
)
|
|
40
|
+
INPUT_ID = 1 # Replace with your actual input (ingredient) ID
|
|
41
|
+
PDF_ATTRIBUTE_ID = 136 # Replace with your actual PDF attribute ID
|
|
42
|
+
|
|
43
|
+
# Step 1: Upload the PDF file
|
|
44
|
+
print(f"Uploading PDF file: {PDF_FILE_PATH}")
|
|
45
|
+
uploaded_files = client.upload_files(
|
|
46
|
+
file_uploads=[
|
|
47
|
+
MediaFileUpload(path=PDF_FILE_PATH),
|
|
48
|
+
]
|
|
49
|
+
)
|
|
50
|
+
uploaded_file = uploaded_files[0]
|
|
51
|
+
print(f"File uploaded successfully. File ID: {uploaded_file.file_id}")
|
|
52
|
+
|
|
53
|
+
# Step 2: Set the PDF attribute on the input
|
|
54
|
+
print(f"Setting PDF attribute {PDF_ATTRIBUTE_ID} on input {INPUT_ID}...")
|
|
55
|
+
client.set_input_attribute_values(
|
|
56
|
+
attribute_values=[
|
|
57
|
+
set_input_attribute_values_t.InputAttributeValue(
|
|
58
|
+
input_id=INPUT_ID,
|
|
59
|
+
attribute_id=PDF_ATTRIBUTE_ID,
|
|
60
|
+
file_ids=[uploaded_file.file_id],
|
|
61
|
+
),
|
|
62
|
+
],
|
|
63
|
+
)
|
|
64
|
+
print("PDF attribute set successfully!")
|
|
65
|
+
|
|
66
|
+
# After running this script, you should be able to view/download the PDF
|
|
67
|
+
# in the platform by navigating to the input's attribute values.
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/argument_parser/__init__.py
RENAMED
|
@@ -5,6 +5,7 @@ from .argument_parser import ParserError as ParserError
|
|
|
5
5
|
from .argument_parser import ParserExtraFieldsError as ParserExtraFieldsError
|
|
6
6
|
from .argument_parser import ParserFunction as ParserFunction
|
|
7
7
|
from .argument_parser import ParserOptions as ParserOptions
|
|
8
|
+
from .argument_parser import ParserTypeError as ParserTypeError
|
|
8
9
|
from .argument_parser import SourceEncoding as SourceEncoding
|
|
9
10
|
from .argument_parser import build_parser as build_parser
|
|
10
11
|
from .argument_parser import is_missing as is_missing
|
|
@@ -18,6 +18,7 @@ import msgspec.yaml
|
|
|
18
18
|
from pkgs.serialization import (
|
|
19
19
|
MissingSentryType,
|
|
20
20
|
OpaqueKey,
|
|
21
|
+
UnknownBrand,
|
|
21
22
|
get_serial_class_data,
|
|
22
23
|
get_serial_union_data,
|
|
23
24
|
)
|
|
@@ -84,6 +85,9 @@ class ParserExtraFieldsError(ParserError):
|
|
|
84
85
|
return f"extra fields were provided: {', '.join(self.extra_fields)}"
|
|
85
86
|
|
|
86
87
|
|
|
88
|
+
class ParserTypeError(ParserError): ...
|
|
89
|
+
|
|
90
|
+
|
|
87
91
|
def is_union(field_type: typing.Any) -> bool:
|
|
88
92
|
origin = typing.get_origin(field_type)
|
|
89
93
|
return origin is typing.Union or origin is types.UnionType
|
|
@@ -500,6 +504,11 @@ def _build_parser_inner(
|
|
|
500
504
|
|
|
501
505
|
return error
|
|
502
506
|
|
|
507
|
+
if typing.get_origin(parsed_type) is typing.Annotated and typing.get_args(
|
|
508
|
+
parsed_type
|
|
509
|
+
) == (object, UnknownBrand):
|
|
510
|
+
raise ParserTypeError("Cannot build parser for unknown type")
|
|
511
|
+
|
|
503
512
|
# Check last for generic annotated types and process them unwrapped
|
|
504
513
|
# this must be last, since some of the expected types, like Unions,
|
|
505
514
|
# will also be annotated, but have a special form
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/__init__.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from ._blob_session import BlobSession as BlobSession
|
|
1
2
|
from ._gdrive_session import GDriveSession as GDriveSession
|
|
2
3
|
from ._gdrive_session import delete_gdrive_file as delete_gdrive_file
|
|
3
4
|
from ._gdrive_session import download_gdrive_file as download_gdrive_file
|
|
@@ -10,6 +11,7 @@ from ._sftp_session import SFTPSession as SFTPSession
|
|
|
10
11
|
from ._sftp_session import list_sftp_files as list_sftp_files
|
|
11
12
|
from ._sftp_session import move_sftp_files as move_sftp_files
|
|
12
13
|
from .file_type_utils import FileObjectData as FileObjectData
|
|
14
|
+
from .file_type_utils import FileSystemBlobConfig as FileSystemBlobConfig
|
|
13
15
|
from .file_type_utils import FileSystemFileReference as FileSystemFileReference
|
|
14
16
|
from .file_type_utils import FileSystemObject as FileSystemObject
|
|
15
17
|
from .file_type_utils import FileSystemS3Config as FileSystemS3Config
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_blob_session.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from io import BytesIO
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
from azure.core.credentials import AzureSasCredential
|
|
4
5
|
from azure.storage.blob import BlobServiceClient, ContainerClient
|
|
@@ -36,7 +37,7 @@ class BlobSession(FileSystemSession):
|
|
|
36
37
|
self.service_client.get_container_client(self.config.container)
|
|
37
38
|
)
|
|
38
39
|
|
|
39
|
-
def __enter__(self) ->
|
|
40
|
+
def __enter__(self) -> Self:
|
|
40
41
|
self.start()
|
|
41
42
|
return self
|
|
42
43
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from io import BytesIO
|
|
3
|
-
from typing import Any
|
|
3
|
+
from typing import Any, Self
|
|
4
4
|
|
|
5
5
|
from google.oauth2 import service_account
|
|
6
6
|
from googleapiclient.discovery import build as build_gdrive_connection
|
|
@@ -304,7 +304,7 @@ class GDriveSession(FileSystemSession):
|
|
|
304
304
|
downloaded_files.append(downloaded_file)
|
|
305
305
|
return downloaded_files
|
|
306
306
|
|
|
307
|
-
def __enter__(self) ->
|
|
307
|
+
def __enter__(self) -> Self:
|
|
308
308
|
self.start()
|
|
309
309
|
return self
|
|
310
310
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from io import BytesIO
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
from pkgs.filesystem_utils.file_type_utils import (
|
|
5
6
|
FileObjectData,
|
|
@@ -19,7 +20,7 @@ class LocalSession(FileSystemSession):
|
|
|
19
20
|
def start(self) -> None:
|
|
20
21
|
return None
|
|
21
22
|
|
|
22
|
-
def __enter__(self) ->
|
|
23
|
+
def __enter__(self) -> Self:
|
|
23
24
|
return self
|
|
24
25
|
|
|
25
26
|
def __exit__(self, exc_type: object, exc_val: object, exc_tb: object) -> None:
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_s3_session.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from io import BytesIO
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
from boto3.session import Session
|
|
4
5
|
from mypy_boto3_s3.service_resource import Bucket
|
|
@@ -40,7 +41,7 @@ class S3Session(FileSystemSession):
|
|
|
40
41
|
|
|
41
42
|
self.bucket: Bucket | None = s3_resource.Bucket(self.config.bucket_name)
|
|
42
43
|
|
|
43
|
-
def __enter__(self) ->
|
|
44
|
+
def __enter__(self) -> Self:
|
|
44
45
|
self.start()
|
|
45
46
|
return self
|
|
46
47
|
|
|
@@ -54,21 +55,34 @@ class S3Session(FileSystemSession):
|
|
|
54
55
|
recursive: bool = False,
|
|
55
56
|
valid_extensions: list[str] | None = None,
|
|
56
57
|
) -> list[FileSystemObject]:
|
|
58
|
+
"""List S3 objects under the given directory, optionally recursively and filtered by file extension."""
|
|
57
59
|
if not isinstance(dir_path, FileSystemFileReference):
|
|
58
60
|
raise IncompatibleFileReference()
|
|
59
61
|
|
|
60
62
|
assert self.bucket is not None, "call to list_files on uninitialized s3 session"
|
|
61
63
|
|
|
64
|
+
prefix: str = dir_path.filepath
|
|
65
|
+
if prefix and not prefix.endswith("/"):
|
|
66
|
+
prefix += "/"
|
|
67
|
+
|
|
62
68
|
filesystem_references: list[FileSystemObject] = []
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
|
|
70
|
+
if recursive:
|
|
71
|
+
object_keys = (obj.key for obj in self.bucket.objects.filter(Prefix=prefix))
|
|
72
|
+
else:
|
|
73
|
+
s3_client = self.bucket.meta.client
|
|
74
|
+
response = s3_client.list_objects_v2(
|
|
75
|
+
Bucket=self.bucket.name, Prefix=prefix, Delimiter="/"
|
|
76
|
+
)
|
|
77
|
+
object_keys = (obj_dict["Key"] for obj_dict in response.get("Contents", []))
|
|
78
|
+
|
|
79
|
+
for obj_key in object_keys:
|
|
80
|
+
if obj_key == prefix:
|
|
66
81
|
continue
|
|
67
82
|
if valid_extensions is None or any(
|
|
68
|
-
|
|
69
|
-
for valid_extension in valid_extensions
|
|
83
|
+
obj_key.endswith(ext) for ext in valid_extensions
|
|
70
84
|
):
|
|
71
|
-
filesystem_references.append(FileSystemFileReference(
|
|
85
|
+
filesystem_references.append(FileSystemFileReference(obj_key))
|
|
72
86
|
|
|
73
87
|
return filesystem_references
|
|
74
88
|
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/filesystem_utils/_sftp_session.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from collections.abc import Iterable
|
|
3
3
|
from io import BytesIO
|
|
4
|
+
from typing import Self
|
|
4
5
|
|
|
5
6
|
import paramiko
|
|
6
7
|
import pysftp
|
|
@@ -96,7 +97,7 @@ class SFTPSession(FileSystemSession):
|
|
|
96
97
|
"Must specify either a private key path or a password."
|
|
97
98
|
)
|
|
98
99
|
|
|
99
|
-
def __enter__(self) ->
|
|
100
|
+
def __enter__(self) -> Self:
|
|
100
101
|
self.start()
|
|
101
102
|
return self
|
|
102
103
|
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/__init__.py
RENAMED
|
@@ -15,3 +15,4 @@ from .serial_class import serial_string_enum as serial_string_enum
|
|
|
15
15
|
from .serial_generic import get_serial_data as get_serial_data
|
|
16
16
|
from .serial_union import get_serial_union_data as get_serial_union_data
|
|
17
17
|
from .serial_union import serial_union_annotation as serial_union_annotation
|
|
18
|
+
from .unknown import UnknownBrand as UnknownBrand
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/serialization/missing_sentry.py
RENAMED
|
@@ -11,7 +11,7 @@ class MissingSentryType:
|
|
|
11
11
|
|
|
12
12
|
_instance: Optional["MissingSentryType"] = None
|
|
13
13
|
|
|
14
|
-
def __new__(cls) -> "MissingSentryType":
|
|
14
|
+
def __new__(cls) -> "MissingSentryType": # noqa: PYI034
|
|
15
15
|
if cls._instance is None:
|
|
16
16
|
cls._instance = super().__new__(cls)
|
|
17
17
|
return cls._instance
|
|
@@ -98,6 +98,7 @@ class BaseTypeName(StrEnum):
|
|
|
98
98
|
s_dict = "Dict"
|
|
99
99
|
s_integer = "Integer"
|
|
100
100
|
s_json_value = "JsonValue"
|
|
101
|
+
s_unknown = "Unknown"
|
|
101
102
|
s_list = "List"
|
|
102
103
|
s_lossy_decimal = "LossyDecimal"
|
|
103
104
|
# The explicit None type is useful in certain discriminating unions and aliases
|
|
@@ -1450,6 +1451,12 @@ class SpecBuilder:
|
|
|
1450
1451
|
"JsonScalar",
|
|
1451
1452
|
is_predefined=True,
|
|
1452
1453
|
)
|
|
1454
|
+
base_namespace.types["Unknown"] = SpecTypeDefnObject(
|
|
1455
|
+
base_namespace,
|
|
1456
|
+
"Unknown",
|
|
1457
|
+
is_predefined=True,
|
|
1458
|
+
_is_value_converted=True,
|
|
1459
|
+
)
|
|
1453
1460
|
|
|
1454
1461
|
def push_where(self, msg: str) -> None:
|
|
1455
1462
|
self.where.append(msg)
|
|
@@ -491,6 +491,7 @@ def _create_sdk_compat_namespace(namespace: builder.SpecNamespace) -> io.StringI
|
|
|
491
491
|
from .base_t import JsonScalar as JsonScalar
|
|
492
492
|
from .base_t import JsonValue as JsonValue
|
|
493
493
|
from .base_t import ObjectId as ObjectId
|
|
494
|
+
from .base_t import Unknown as Unknown
|
|
494
495
|
""")
|
|
495
496
|
else:
|
|
496
497
|
for stype in namespace.types.values():
|
|
@@ -1057,6 +1058,7 @@ base_name_map = {
|
|
|
1057
1058
|
builder.BaseTypeName.s_readonly_array: "tuple",
|
|
1058
1059
|
builder.BaseTypeName.s_union: "typing.Union",
|
|
1059
1060
|
builder.BaseTypeName.s_literal: "typing.Literal",
|
|
1061
|
+
builder.BaseTypeName.s_unknown: "Unknown",
|
|
1060
1062
|
}
|
|
1061
1063
|
|
|
1062
1064
|
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/parts/base.py.prepart
RENAMED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Types that type_spec will use in the emitted files.
|
|
3
3
|
"""
|
|
4
|
-
from typing import Union, Any, TYPE_CHECKING
|
|
4
|
+
from typing import Union, Any, TYPE_CHECKING, Annotated
|
|
5
5
|
from collections.abc import Mapping, Sequence
|
|
6
6
|
|
|
7
7
|
# These two are part of the core output, thus don't duplicate here
|
|
8
8
|
# from decimal import Decimal
|
|
9
9
|
# import datetime
|
|
10
10
|
|
|
11
|
+
from pkgs.serialization import UnknownBrand
|
|
12
|
+
|
|
11
13
|
# Decimal/datetime are included as this list includes JSON serializable objects
|
|
12
14
|
# It is preferred to use ExtJsonScalar and leave JsonScalar as deprecated, as
|
|
13
15
|
# a type that we intend on migrating.
|
|
@@ -45,6 +47,7 @@ else:
|
|
|
45
47
|
ExtJsonValue = JsonValue
|
|
46
48
|
PureJsonValue = Union[PureJsonScalar, dict[str, Any], list[Any]]
|
|
47
49
|
|
|
50
|
+
Unknown = Annotated[object, UnknownBrand]
|
|
48
51
|
ObjectId = int
|
|
49
52
|
|
|
50
53
|
|
{uncountablepythonsdk-0.0.149 → uncountablepythonsdk-0.0.151}/pkgs/type_spec/parts/base.ts.prepart
RENAMED
|
@@ -6,11 +6,13 @@ import * as IO from 'io-ts';
|
|
|
6
6
|
|
|
7
7
|
type localJsonScalar = JsonScalar
|
|
8
8
|
type localJsonValue = JsonValue
|
|
9
|
+
type localUnknown = JsonValue
|
|
9
10
|
type localObjectId = ObjectId
|
|
10
11
|
|
|
11
12
|
export type {
|
|
12
13
|
localJsonScalar as JsonScalar,
|
|
13
14
|
localJsonValue as JsonValue,
|
|
15
|
+
localUnknown as Unknown,
|
|
14
16
|
localObjectId as ObjectId,
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -89,11 +89,11 @@ def _dict_null_strip(data: dict[str, object]) -> dict[str, object]:
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
class JsonEncoder(json.JSONEncoder):
|
|
92
|
-
def default(self,
|
|
93
|
-
if isinstance(
|
|
94
|
-
return str(
|
|
92
|
+
def default(self, o: object) -> object:
|
|
93
|
+
if isinstance(o, decimal.Decimal):
|
|
94
|
+
return str(o)
|
|
95
95
|
|
|
96
|
-
return json.JSONEncoder.default(self,
|
|
96
|
+
return json.JSONEncoder.default(self, o)
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
def emit_type_info(build: builder.SpecBuilder, output: str) -> None:
|
|
@@ -124,6 +124,11 @@ BASE_TYPE_NAME_MAP = {
|
|
|
124
124
|
def _emit_python_type(value_type: value_spec_t.ValueType) -> str:
|
|
125
125
|
# IMPROVE: Ideally we'd find a way to translate into type_spec types, or load directly, and
|
|
126
126
|
# rely on the other conversions. This might be requier to avoid duplication in emitting TypeScript code later
|
|
127
|
+
if value_type.base_type == value_spec_t.BaseType.OPTIONAL:
|
|
128
|
+
assert value_type.parameters is not None and len(value_type.parameters) == 1
|
|
129
|
+
inner_type = _emit_python_type(value_type.parameters[0])
|
|
130
|
+
return f"{inner_type} | None"
|
|
131
|
+
|
|
127
132
|
out = io.StringIO()
|
|
128
133
|
out.write(BASE_TYPE_NAME_MAP[value_type.base_type])
|
|
129
134
|
if value_type.parameters is not None:
|
|
@@ -70,13 +70,13 @@ dependencies = [
|
|
|
70
70
|
"boto3 == 1.*",
|
|
71
71
|
"flask == 3.*",
|
|
72
72
|
"simplejson == 3.*",
|
|
73
|
-
"grpcio == 1.
|
|
73
|
+
"grpcio == 1.78.0",
|
|
74
74
|
"protobuf >= 4.21.1",
|
|
75
75
|
"azure-storage-blob == 12.*",
|
|
76
76
|
"boto3-stubs[essential,ses]==1.*",
|
|
77
77
|
"msgspec>=0.19,<0.21",
|
|
78
78
|
"tabulate == 0.9.0",
|
|
79
|
-
"types-psutil~=7.1
|
|
79
|
+
"types-psutil~=7.2.1",
|
|
80
80
|
"psutil>=5.9.0",
|
|
81
81
|
]
|
|
82
82
|
dynamic = ["version"]
|