UncountablePythonSDK 0.0.103__tar.gz → 0.0.104__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.

Files changed (313) hide show
  1. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/.github/workflows/documentation.yml +3 -1
  2. {uncountablepythonsdk-0.0.103/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.104}/PKG-INFO +1 -1
  3. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
  4. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/integration-server/jobs/materials_auto/example_wh.py +4 -0
  5. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/serial_class.py +11 -0
  6. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/builder.py +3 -0
  7. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_python.py +8 -0
  8. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/add_time_series_data.py +1 -0
  9. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/edit_recipe_inputs.py +2 -0
  10. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_recipe_links.py +1 -0
  11. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/lock_recipes.py +1 -0
  12. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_outputs.py +1 -0
  13. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/unlock_recipes.py +1 -0
  14. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/client_config_t.py +1 -0
  15. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/field_values.py +1 -0
  16. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/field_values_t.py +15 -1
  17. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/generic_upload_t.py +1 -0
  18. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/job_definition_t.py +2 -0
  19. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_workflow_steps_t.py +1 -0
  20. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/response_t.py +1 -0
  21. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/.github/workflows/publish.yml +0 -0
  22. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/.gitignore +0 -0
  23. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/README.md +0 -0
  24. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/UncountablePythonSDK.egg-info/SOURCES.txt +0 -0
  25. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
  26. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/UncountablePythonSDK.egg-info/requires.txt +0 -0
  27. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
  28. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/.gitignore +0 -0
  29. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/conf.py +0 -0
  30. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/index.md +0 -0
  31. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/justfile +0 -0
  32. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/quickstart.md +0 -0
  33. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/requirements.txt +0 -0
  34. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/android-chrome-192x192.png +0 -0
  35. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/android-chrome-512x512.png +0 -0
  36. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/apple-touch-icon.png +0 -0
  37. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/browserconfig.xml +0 -0
  38. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/favicon-16x16.png +0 -0
  39. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/favicon-32x32.png +0 -0
  40. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/manifest.json +0 -0
  41. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/mstile-150x150.png +0 -0
  42. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/favicons/safari-pinned-tab.svg +0 -0
  43. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/docs/static/logo_blue.png +0 -0
  44. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/async_batch.py +0 -0
  45. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/create_entity.py +0 -0
  46. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/download_files.py +0 -0
  47. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/edit_recipe_inputs.py +0 -0
  48. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
  49. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
  50. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/integration-server/pyproject.toml +0 -0
  51. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/invoke_uploader.py +0 -0
  52. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/set_recipe_metadata_file.py +0 -0
  53. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/set_recipe_output_file_sdk.py +0 -0
  54. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/examples/upload_files.py +0 -0
  55. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/__init__.py +0 -0
  56. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/argument_parser/__init__.py +0 -0
  57. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/argument_parser/_is_enum.py +0 -0
  58. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/argument_parser/_is_namedtuple.py +0 -0
  59. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/argument_parser/argument_parser.py +0 -0
  60. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/argument_parser/case_convert.py +0 -0
  61. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/__init__.py +0 -0
  62. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/_blob_session.py +0 -0
  63. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
  64. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/_local_session.py +0 -0
  65. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/_s3_session.py +0 -0
  66. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/_sftp_session.py +0 -0
  67. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/file_type_utils.py +0 -0
  68. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/filesystem_utils/filesystem_session.py +0 -0
  69. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/py.typed +0 -0
  70. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/__init__.py +0 -0
  71. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/annotation.py +0 -0
  72. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/missing_sentry.py +0 -0
  73. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/opaque_key.py +0 -0
  74. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/serial_alias.py +0 -0
  75. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/serial_generic.py +0 -0
  76. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/serial_union.py +0 -0
  77. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization/yaml.py +0 -0
  78. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization_util/__init__.py +0 -0
  79. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
  80. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
  81. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization_util/dataclasses.py +0 -0
  82. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/serialization_util/serialization_helpers.py +0 -0
  83. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/strenum_compat/__init__.py +0 -0
  84. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/strenum_compat/strenum_compat.py +0 -0
  85. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/__init__.py +0 -0
  86. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/__main__.py +0 -0
  87. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/actions_registry/__init__.py +0 -0
  88. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/actions_registry/__main__.py +0 -0
  89. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
  90. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/config.py +0 -0
  91. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/cross_output_links.py +0 -0
  92. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_io_ts.py +0 -0
  93. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_open_api.py +0 -0
  94. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_open_api_util.py +0 -0
  95. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_typescript.py +0 -0
  96. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/emit_typescript_util.py +0 -0
  97. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/load_types.py +0 -0
  98. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/open_api_util.py +0 -0
  99. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/parts/base.py.prepart +0 -0
  100. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/parts/base.ts.prepart +0 -0
  101. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/test.py +0 -0
  102. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/type_info/__main__.py +0 -0
  103. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/type_info/emit_type_info.py +0 -0
  104. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/util.py +0 -0
  105. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/value_spec/__init__.py +0 -0
  106. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/value_spec/__main__.py +0 -0
  107. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/value_spec/convert_type.py +0 -0
  108. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/value_spec/emit_python.py +0 -0
  109. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pkgs/type_spec/value_spec/types.py +0 -0
  110. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/pyproject.toml +0 -0
  111. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/setup.cfg +0 -0
  112. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/__init__.py +0 -0
  113. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/__init__.py +0 -0
  114. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/async_batch.py +0 -0
  115. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/client.py +0 -0
  116. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/environment.py +0 -0
  117. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/file_upload.py +0 -0
  118. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/core/types.py +0 -0
  119. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/__init__.py +0 -0
  120. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/cli.py +0 -0
  121. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/construct_client.py +0 -0
  122. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/cron.py +0 -0
  123. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/db/__init__.py +0 -0
  124. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/db/connect.py +0 -0
  125. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/db/session.py +0 -0
  126. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/entrypoint.py +0 -0
  127. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/executors/__init__.py +0 -0
  128. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/executors/executors.py +0 -0
  129. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/executors/generic_upload_executor.py +0 -0
  130. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/executors/script_executor.py +0 -0
  131. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/job.py +0 -0
  132. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/__init__.py +0 -0
  133. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
  134. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
  135. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
  136. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  137. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
  138. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
  139. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
  140. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
  141. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/command_server/types.py +0 -0
  142. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
  143. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
  144. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
  145. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/datastore/model.py +0 -0
  146. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
  147. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/queue_runner.py +0 -0
  148. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/types.py +0 -0
  149. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/queue_runner/worker.py +0 -0
  150. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/scan_profiles.py +0 -0
  151. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/scheduler.py +0 -0
  152. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/secret_retrieval/__init__.py +0 -0
  153. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
  154. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/server.py +0 -0
  155. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/telemetry.py +0 -0
  156. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/integration/webhook_server/entrypoint.py +0 -0
  157. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/py.typed +0 -0
  158. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/__init__.py +0 -0
  159. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/__init__.py +0 -0
  160. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/batch/__init__.py +0 -0
  161. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/batch/execute_batch.py +0 -0
  162. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
  163. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/chemical/__init__.py +0 -0
  164. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
  165. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/__init__.py +0 -0
  166. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/create_entities.py +0 -0
  167. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/create_entity.py +0 -0
  168. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
  169. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/get_entities_data.py +0 -0
  170. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
  171. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/list_entities.py +0 -0
  172. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/lock_entity.py +0 -0
  173. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/lookup_entity.py +0 -0
  174. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
  175. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
  176. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/set_values.py +0 -0
  177. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
  178. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/entity/unlock_entity.py +0 -0
  179. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/equipment/__init__.py +0 -0
  180. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
  181. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/field_options/__init__.py +0 -0
  182. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
  183. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/files/__init__.py +0 -0
  184. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/files/download_file.py +0 -0
  185. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/id_source/__init__.py +0 -0
  186. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/id_source/list_id_source.py +0 -0
  187. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/id_source/match_id_source.py +0 -0
  188. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/input_groups/__init__.py +0 -0
  189. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
  190. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/__init__.py +0 -0
  191. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/create_inputs.py +0 -0
  192. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/get_input_data.py +0 -0
  193. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/get_input_names.py +0 -0
  194. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
  195. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
  196. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/set_input_category.py +0 -0
  197. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
  198. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
  199. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/material_families/__init__.py +0 -0
  200. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
  201. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/outputs/__init__.py +0 -0
  202. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/outputs/get_output_data.py +0 -0
  203. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/outputs/get_output_names.py +0 -0
  204. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
  205. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/permissions/__init__.py +0 -0
  206. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
  207. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/project/__init__.py +0 -0
  208. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/project/get_projects.py +0 -0
  209. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/project/get_projects_data.py +0 -0
  210. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipe_links/__init__.py +0 -0
  211. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
  212. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
  213. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
  214. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
  215. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/__init__.py +0 -0
  216. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
  217. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/archive_recipes.py +0 -0
  218. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
  219. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
  220. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
  221. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/create_recipe.py +0 -0
  222. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/create_recipes.py +0 -0
  223. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
  224. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
  225. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_curve.py +0 -0
  226. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
  227. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
  228. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
  229. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
  230. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
  231. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
  232. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
  233. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
  234. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
  235. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
  236. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
  237. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/triggers/__init__.py +0 -0
  238. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/triggers/run_trigger.py +0 -0
  239. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/uploader/__init__.py +0 -0
  240. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
  241. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/async_batch.py +0 -0
  242. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/async_batch_processor.py +0 -0
  243. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/async_batch_t.py +0 -0
  244. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/async_jobs.py +0 -0
  245. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/async_jobs_t.py +0 -0
  246. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/auth_retrieval.py +0 -0
  247. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/auth_retrieval_t.py +0 -0
  248. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/base.py +0 -0
  249. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/base_t.py +0 -0
  250. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/calculations.py +0 -0
  251. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/calculations_t.py +0 -0
  252. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/chemical_structure.py +0 -0
  253. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/chemical_structure_t.py +0 -0
  254. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/client_base.py +0 -0
  255. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/client_config.py +0 -0
  256. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/curves.py +0 -0
  257. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/curves_t.py +0 -0
  258. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/entity.py +0 -0
  259. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/entity_t.py +0 -0
  260. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/experiment_groups.py +0 -0
  261. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/experiment_groups_t.py +0 -0
  262. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/fields.py +0 -0
  263. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/fields_t.py +0 -0
  264. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/generic_upload.py +0 -0
  265. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/id_source.py +0 -0
  266. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/id_source_t.py +0 -0
  267. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/identifier.py +0 -0
  268. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/identifier_t.py +0 -0
  269. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/input_attributes.py +0 -0
  270. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/input_attributes_t.py +0 -0
  271. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/inputs.py +0 -0
  272. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/inputs_t.py +0 -0
  273. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/integration_server.py +0 -0
  274. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/integration_server_t.py +0 -0
  275. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/job_definition.py +0 -0
  276. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/outputs.py +0 -0
  277. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/outputs_t.py +0 -0
  278. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/overrides.py +0 -0
  279. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/overrides_t.py +0 -0
  280. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/permissions.py +0 -0
  281. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/permissions_t.py +0 -0
  282. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/phases.py +0 -0
  283. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/phases_t.py +0 -0
  284. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/post_base.py +0 -0
  285. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/post_base_t.py +0 -0
  286. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/queued_job.py +0 -0
  287. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/queued_job_t.py +0 -0
  288. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_identifiers.py +0 -0
  289. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_identifiers_t.py +0 -0
  290. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_inputs.py +0 -0
  291. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_inputs_t.py +0 -0
  292. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_links.py +0 -0
  293. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_links_t.py +0 -0
  294. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_metadata.py +0 -0
  295. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_metadata_t.py +0 -0
  296. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_output_metadata.py +0 -0
  297. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_output_metadata_t.py +0 -0
  298. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_tags.py +0 -0
  299. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_tags_t.py +0 -0
  300. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipe_workflow_steps.py +0 -0
  301. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipes.py +0 -0
  302. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/recipes_t.py +0 -0
  303. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/response.py +0 -0
  304. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/secret_retrieval.py +0 -0
  305. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/secret_retrieval_t.py +0 -0
  306. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/units.py +0 -0
  307. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/units_t.py +0 -0
  308. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/users.py +0 -0
  309. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/users_t.py +0 -0
  310. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/webhook_job.py +0 -0
  311. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/webhook_job_t.py +0 -0
  312. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/workflows.py +0 -0
  313. {uncountablepythonsdk-0.0.103 → uncountablepythonsdk-0.0.104}/uncountable/types/workflows_t.py +0 -0
@@ -11,6 +11,8 @@ jobs:
11
11
  steps:
12
12
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
13
13
  - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
14
+ with:
15
+ python-version: '3.12'
14
16
  - uses: extractions/setup-crate@4993624604c307fbca528d28a3c8b60fa5ecc859 # v1
15
17
  with:
16
18
  repo: casey/just@0.10
@@ -23,7 +25,7 @@ jobs:
23
25
  - name: Install dependencies
24
26
  run: |
25
27
  # install the dependencies for the package
26
- uv pip install --system .
28
+ uv pip install .
27
29
  # install the dependencies for building the sphinx documentation
28
30
  just -f docs/justfile docs-setup-python
29
31
  - name: Sphinx build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.103
3
+ Version: 0.0.104
4
4
  Summary: Uncountable SDK
5
5
  Project-URL: Homepage, https://github.com/uncountableinc/uncountable-python-sdk
6
6
  Project-URL: Repository, https://github.com/uncountableinc/uncountable-python-sdk.git
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.103
3
+ Version: 0.0.104
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
@@ -13,3 +13,7 @@ class WebhookExample(WebhookJob):
13
13
  def run(self, args: JobArguments, payload: typing.Any) -> JobResult:
14
14
  args.logger.log_info(f"webhook invoked with payload: {payload}")
15
15
  return JobResult(success=True)
16
+
17
+ @property
18
+ def webhook_payload_type(self) -> typing.Any:
19
+ return dict
@@ -17,6 +17,7 @@ class _SerialClassData(SerialBase):
17
17
  to_string_values: set[str] = dataclasses.field(default_factory=set)
18
18
  parse_require: set[str] = dataclasses.field(default_factory=set)
19
19
  named_type_path: str | None = None
20
+ explicit_defaults: set[str] = dataclasses.field(default_factory=set)
20
21
 
21
22
 
22
23
  EMPTY_SERIAL_CLASS_DATA = _SerialClassData()
@@ -30,6 +31,7 @@ def serial_class(
30
31
  parse_require: set[str] | None = None,
31
32
  named_type_path: str | None = None,
32
33
  is_dynamic_allowed: bool = False,
34
+ explicit_defaults: set[str] | None = None,
33
35
  ) -> Callable[[ClassT], ClassT]:
34
36
  """
35
37
  An additional decorator to a dataclass that specifies serialization options.
@@ -52,6 +54,9 @@ def serial_class(
52
54
  requiring them for the API input.
53
55
  @param named_type_path
54
56
  The type_spec type-path to this type. This applies only to named types.
57
+ @param explicit_defaults
58
+ Fields that have explicit defaults in the definition. This is useful for
59
+ falling back onto these defaults when the field is mandatory but receives a null value.
55
60
  """
56
61
 
57
62
  def decorate(orig_class: ClassT) -> ClassT:
@@ -63,6 +68,7 @@ def serial_class(
63
68
  named_type_path=named_type_path,
64
69
  from_decorator=True,
65
70
  is_dynamic_allowed=is_dynamic_allowed,
71
+ explicit_defaults=explicit_defaults or set(),
66
72
  )
67
73
  return orig_class
68
74
 
@@ -90,6 +96,9 @@ class SerialClassDataInspector(SerialInspector[ClassT]):
90
96
  def has_parse_require(self, key: str) -> bool:
91
97
  return key in self.current.parse_require
92
98
 
99
+ def has_explicit_default(self, key: str) -> bool:
100
+ return key in self.current.explicit_defaults
101
+
93
102
 
94
103
  def get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | None:
95
104
  base_class_data = (
@@ -115,6 +124,8 @@ def get_merged_serial_class_data(type_class: type[Any]) -> _SerialClassData | No
115
124
  | curr_base_class_data.to_string_values,
116
125
  parse_require=base_class_data.parse_require
117
126
  | curr_base_class_data.parse_require,
127
+ explicit_defaults=base_class_data.explicit_defaults
128
+ | curr_base_class_data.explicit_defaults,
118
129
  )
119
130
  return base_class_data
120
131
 
@@ -62,6 +62,7 @@ class SpecProperty:
62
62
  # Holds extra information that will be emitted along with type_info. The builder knows nothing
63
63
  # about the contents of this information.
64
64
  ext_info: Any = None
65
+ explicit_default: bool = False
65
66
 
66
67
 
67
68
  class NameCase(StrEnum):
@@ -389,6 +390,7 @@ class SpecTypeDefn(SpecType):
389
390
  ptype = builder.parse_type(self.namespace, data_type, scope=self)
390
391
 
391
392
  default_spec = data.get("default", MISSING)
393
+ explicit_default = default_spec != MISSING
392
394
  if default_spec == MISSING:
393
395
  has_default = False
394
396
  default = None
@@ -419,6 +421,7 @@ class SpecTypeDefn(SpecType):
419
421
  parse_require=parse_require,
420
422
  desc=data.get("desc", None),
421
423
  ext_info=ext_info,
424
+ explicit_default=explicit_default,
422
425
  )
423
426
  finally:
424
427
  builder.pop_where()
@@ -697,6 +697,7 @@ class EmittedPropertiesMetadata:
697
697
  unconverted_values: set[str]
698
698
  to_string_values: set[str]
699
699
  parse_require: set[str]
700
+ explicit_defaults: set[str]
700
701
 
701
702
 
702
703
  def _emit_type_properties(
@@ -728,6 +729,7 @@ def _emit_properties(
728
729
  unconverted_values: set[str] = set()
729
730
  to_string_values: set[str] = set()
730
731
  parse_require: set[str] = set()
732
+ explicit_defaults: set[str] = set()
731
733
 
732
734
  if len(properties) > 0:
733
735
 
@@ -748,6 +750,9 @@ def _emit_properties(
748
750
  if prop.parse_require:
749
751
  parse_require.add(py_name)
750
752
 
753
+ if prop.explicit_default:
754
+ explicit_defaults.add(py_name)
755
+
751
756
  ref_type = refer_to(ctx, stype)
752
757
  default = None
753
758
  if prop.extant == builder.PropertyExtant.missing:
@@ -791,6 +796,7 @@ def _emit_properties(
791
796
  unconverted_values=unconverted_values,
792
797
  to_string_values=to_string_values,
793
798
  parse_require=parse_require,
799
+ explicit_defaults=explicit_defaults,
794
800
  )
795
801
 
796
802
 
@@ -881,6 +887,7 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
881
887
  unconverted_values = emitted_properties_metadata.unconverted_values
882
888
  to_string_values = emitted_properties_metadata.to_string_values
883
889
  parse_require = emitted_properties_metadata.parse_require
890
+ explicit_defaults = emitted_properties_metadata.explicit_defaults
884
891
 
885
892
  _emit_generics(ctx, generics)
886
893
 
@@ -902,6 +909,7 @@ def _emit_type(ctx: Context, stype: builder.SpecType) -> None:
902
909
  write_values("unconverted_values", unconverted_values)
903
910
  write_values("to_string_values", to_string_values)
904
911
  write_values("parse_require", parse_require)
912
+ write_values("explicit_defaults", explicit_defaults)
905
913
 
906
914
  ctx.out.write(")\n")
907
915
 
@@ -45,6 +45,7 @@ class TimeSeriesDatum:
45
45
  # DO NOT MODIFY -- This file is generated by type_spec
46
46
  @serial_class(
47
47
  named_type_path="sdk.api.recipes.add_time_series_data.Arguments",
48
+ explicit_defaults={"on_conflict"},
48
49
  )
49
50
  @dataclasses.dataclass(kw_only=True)
50
51
  class Arguments:
@@ -81,6 +81,7 @@ class RecipeInputEditClearInputs(RecipeInputEditBase):
81
81
  @serial_class(
82
82
  named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditInputBase",
83
83
  to_string_values={"value_numeric"},
84
+ explicit_defaults={"input_value_type", "quantity_basis"},
84
85
  )
85
86
  @dataclasses.dataclass(kw_only=True)
86
87
  class RecipeInputEditInputBase(RecipeInputEditBase):
@@ -196,6 +197,7 @@ class PlaceholderDisplayMode(StrEnum):
196
197
  # DO NOT MODIFY -- This file is generated by type_spec
197
198
  @serial_class(
198
199
  named_type_path="sdk.api.recipes.edit_recipe_inputs.PlaceholderBase",
200
+ explicit_defaults={"display_mode", "require_for_creation"},
199
201
  )
200
202
  @dataclasses.dataclass(kw_only=True)
201
203
  class PlaceholderBase:
@@ -25,6 +25,7 @@ ENDPOINT_PATH = "api/external/recipes/external_get_recipe_links"
25
25
  # DO NOT MODIFY -- This file is generated by type_spec
26
26
  @serial_class(
27
27
  named_type_path="sdk.api.recipes.get_recipe_links.Arguments",
28
+ explicit_defaults={"depth"},
28
29
  )
29
30
  @dataclasses.dataclass(kw_only=True)
30
31
  class Arguments:
@@ -42,6 +42,7 @@ class RecipeLockBase:
42
42
  # DO NOT MODIFY -- This file is generated by type_spec
43
43
  @serial_class(
44
44
  named_type_path="sdk.api.recipes.lock_recipes.Arguments",
45
+ explicit_defaults={"type"},
45
46
  )
46
47
  @dataclasses.dataclass(kw_only=True)
47
48
  class Arguments:
@@ -48,6 +48,7 @@ class NullBehavior(StrEnum):
48
48
  @serial_class(
49
49
  named_type_path="sdk.api.recipes.set_recipe_outputs.RecipeOutputValue",
50
50
  to_string_values={"value_numeric"},
51
+ explicit_defaults={"null_behavior"},
51
52
  )
52
53
  @dataclasses.dataclass(kw_only=True)
53
54
  class RecipeOutputValue:
@@ -31,6 +31,7 @@ class RecipeUnlockType(StrEnum):
31
31
  # DO NOT MODIFY -- This file is generated by type_spec
32
32
  @serial_class(
33
33
  named_type_path="sdk.api.recipes.unlock_recipes.Arguments",
34
+ explicit_defaults={"type"},
34
35
  )
35
36
  @dataclasses.dataclass(kw_only=True)
36
37
  class Arguments:
@@ -17,6 +17,7 @@ __all__: list[str] = [
17
17
  # DO NOT MODIFY -- This file is generated by type_spec
18
18
  @serial_class(
19
19
  named_type_path="sdk.client_config.ClientConfigOptions",
20
+ explicit_defaults={"allow_insecure_tls"},
20
21
  )
21
22
  @dataclasses.dataclass(kw_only=True)
22
23
  class ClientConfigOptions:
@@ -19,6 +19,7 @@ from .field_values_t import FieldValueText as FieldValueText
19
19
  from .field_values_t import FieldValueBoolean as FieldValueBoolean
20
20
  from .field_values_t import FieldValueNumeric as FieldValueNumeric
21
21
  from .field_values_t import FieldValueBatchReference as FieldValueBatchReference
22
+ from .field_values_t import FieldValueNull as FieldValueNull
22
23
  from .field_values_t import FieldValue as FieldValue
23
24
  from .field_values_t import FieldArgumentValue as FieldArgumentValue
24
25
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -29,6 +29,7 @@ __all__: list[str] = [
29
29
  "FieldValueFiles",
30
30
  "FieldValueId",
31
31
  "FieldValueIds",
32
+ "FieldValueNull",
32
33
  "FieldValueNumeric",
33
34
  "FieldValueText",
34
35
  "FieldValueType",
@@ -96,6 +97,7 @@ class FieldValueType(StrEnum):
96
97
  BATCH_REFERENCE = "batch_reference"
97
98
  FIELD_OPTION = "field_option"
98
99
  FIELD_OPTIONS = "field_options"
100
+ NULL_VALUE = "null_value"
99
101
 
100
102
 
101
103
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -128,6 +130,7 @@ class ValueResolution(StrEnum):
128
130
  @serial_class(
129
131
  named_type_path="sdk.field_values.FieldValueFieldOption",
130
132
  parse_require={"type"},
133
+ explicit_defaults={"value_resolution"},
131
134
  )
132
135
  @dataclasses.dataclass(kw_only=True)
133
136
  class FieldValueFieldOption(FieldValueBase):
@@ -140,6 +143,7 @@ class FieldValueFieldOption(FieldValueBase):
140
143
  @serial_class(
141
144
  named_type_path="sdk.field_values.FieldValueFieldOptions",
142
145
  parse_require={"type"},
146
+ explicit_defaults={"value_resolution"},
143
147
  )
144
148
  @dataclasses.dataclass(kw_only=True)
145
149
  class FieldValueFieldOptions(FieldValueBase):
@@ -218,9 +222,19 @@ class FieldValueBatchReference(FieldValueBase):
218
222
  data_key: str
219
223
 
220
224
 
225
+ # DO NOT MODIFY -- This file is generated by type_spec
226
+ @serial_class(
227
+ named_type_path="sdk.field_values.FieldValueNull",
228
+ parse_require={"type"},
229
+ )
230
+ @dataclasses.dataclass(kw_only=True)
231
+ class FieldValueNull(FieldValueBase):
232
+ type: typing.Literal[FieldValueType.NULL_VALUE] = FieldValueType.NULL_VALUE
233
+
234
+
221
235
  # DO NOT MODIFY -- This file is generated by type_spec
222
236
  FieldValue = typing.Annotated[
223
- FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions,
237
+ FieldValueFiles | FieldValueId | FieldValueIds | FieldValueText | FieldValueBoolean | FieldValueNumeric | FieldValueBatchReference | FieldValueFieldOption | FieldValueFieldOptions | FieldValueNull,
224
238
  serial_union_annotation(
225
239
  named_type_path="sdk.field_values.FieldValue",
226
240
  ),
@@ -109,6 +109,7 @@ UploadDestination = typing.Annotated[
109
109
  # DO NOT MODIFY -- This file is generated by type_spec
110
110
  @serial_class(
111
111
  named_type_path="sdk.generic_upload.GenericUploadStrategy",
112
+ explicit_defaults={"skip_moving_files"},
112
113
  )
113
114
  @dataclasses.dataclass(kw_only=True)
114
115
  class GenericUploadStrategy:
@@ -168,6 +168,7 @@ JobExecutor = typing.Annotated[
168
168
  # DO NOT MODIFY -- This file is generated by type_spec
169
169
  @serial_class(
170
170
  named_type_path="sdk.job_definition.JobLoggingSettings",
171
+ explicit_defaults={"enabled"},
171
172
  )
172
173
  @dataclasses.dataclass(kw_only=True)
173
174
  class JobLoggingSettings:
@@ -178,6 +179,7 @@ class JobLoggingSettings:
178
179
  # DO NOT MODIFY -- This file is generated by type_spec
179
180
  @serial_class(
180
181
  named_type_path="sdk.job_definition.JobDefinitionBase",
182
+ explicit_defaults={"enabled"},
181
183
  )
182
184
  @dataclasses.dataclass(kw_only=True)
183
185
  class JobDefinitionBase:
@@ -59,6 +59,7 @@ class RecipeWorkflowStepPosition(StrEnum):
59
59
  @serial_class(
60
60
  named_type_path="sdk.recipe_workflow_steps.RecipeWorkflowStepIdentifierWorkflowStep",
61
61
  parse_require={"type"},
62
+ explicit_defaults={"position"},
62
63
  )
63
64
  @dataclasses.dataclass(kw_only=True)
64
65
  class RecipeWorkflowStepIdentifierWorkflowStep(RecipeWorkflowStepIdentifierBase):
@@ -18,6 +18,7 @@ __all__: list[str] = [
18
18
  @serial_class(
19
19
  named_type_path="sdk.response.Response",
20
20
  parse_require={"status"},
21
+ explicit_defaults={"status"},
21
22
  )
22
23
  @dataclasses.dataclass(kw_only=True)
23
24
  class Response: