UncountablePythonSDK 0.0.109__tar.gz → 0.0.110__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 (315) hide show
  1. {uncountablepythonsdk-0.0.109/UncountablePythonSDK.egg-info → uncountablepythonsdk-0.0.110}/PKG-INFO +1 -1
  2. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110/UncountablePythonSDK.egg-info}/PKG-INFO +1 -1
  3. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/UncountablePythonSDK.egg-info/SOURCES.txt +2 -0
  4. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_open_api.py +27 -0
  5. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/open_api_util.py +12 -1
  6. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/type_info/emit_type_info.py +18 -1
  7. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/__init__.py +2 -0
  8. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/edit_recipe_inputs.py +11 -0
  9. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_outputs.py +2 -0
  10. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/async_batch_t.py +1 -0
  11. uncountablepythonsdk-0.0.110/uncountable/types/data.py +12 -0
  12. uncountablepythonsdk-0.0.110/uncountable/types/data_t.py +93 -0
  13. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/.github/workflows/documentation.yml +0 -0
  14. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/.github/workflows/publish.yml +0 -0
  15. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/.gitignore +0 -0
  16. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/README.md +0 -0
  17. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/UncountablePythonSDK.egg-info/dependency_links.txt +0 -0
  18. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/UncountablePythonSDK.egg-info/requires.txt +0 -0
  19. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/UncountablePythonSDK.egg-info/top_level.txt +0 -0
  20. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/.gitignore +0 -0
  21. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/conf.py +0 -0
  22. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/index.md +0 -0
  23. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/justfile +0 -0
  24. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/quickstart.md +0 -0
  25. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/requirements.txt +0 -0
  26. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/android-chrome-192x192.png +0 -0
  27. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/android-chrome-512x512.png +0 -0
  28. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/apple-touch-icon.png +0 -0
  29. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/browserconfig.xml +0 -0
  30. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/favicon-16x16.png +0 -0
  31. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/favicon-32x32.png +0 -0
  32. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/manifest.json +0 -0
  33. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/mstile-150x150.png +0 -0
  34. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/favicons/safari-pinned-tab.svg +0 -0
  35. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/docs/static/logo_blue.png +0 -0
  36. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/async_batch.py +0 -0
  37. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/create_entity.py +0 -0
  38. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/download_files.py +0 -0
  39. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/edit_recipe_inputs.py +0 -0
  40. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/integration-server/jobs/materials_auto/example_cron.py +0 -0
  41. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/integration-server/jobs/materials_auto/example_wh.py +0 -0
  42. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/integration-server/jobs/materials_auto/profile.yaml +0 -0
  43. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/integration-server/pyproject.toml +0 -0
  44. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/invoke_uploader.py +0 -0
  45. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/set_recipe_metadata_file.py +0 -0
  46. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/set_recipe_output_file_sdk.py +0 -0
  47. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/examples/upload_files.py +0 -0
  48. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/__init__.py +0 -0
  49. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/argument_parser/__init__.py +0 -0
  50. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/argument_parser/_is_enum.py +0 -0
  51. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/argument_parser/_is_namedtuple.py +0 -0
  52. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/argument_parser/argument_parser.py +0 -0
  53. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/argument_parser/case_convert.py +0 -0
  54. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/__init__.py +0 -0
  55. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/_blob_session.py +0 -0
  56. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/_gdrive_session.py +0 -0
  57. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/_local_session.py +0 -0
  58. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/_s3_session.py +0 -0
  59. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/_sftp_session.py +0 -0
  60. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/file_type_utils.py +0 -0
  61. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/filesystem_utils/filesystem_session.py +0 -0
  62. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/py.typed +0 -0
  63. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/__init__.py +0 -0
  64. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/annotation.py +0 -0
  65. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/missing_sentry.py +0 -0
  66. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/opaque_key.py +0 -0
  67. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/serial_alias.py +0 -0
  68. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/serial_class.py +0 -0
  69. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/serial_generic.py +0 -0
  70. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/serial_union.py +0 -0
  71. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization/yaml.py +0 -0
  72. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization_util/__init__.py +0 -0
  73. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization_util/_get_type_for_serialization.py +0 -0
  74. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization_util/convert_to_snakecase.py +0 -0
  75. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization_util/dataclasses.py +0 -0
  76. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/serialization_util/serialization_helpers.py +0 -0
  77. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/strenum_compat/__init__.py +0 -0
  78. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/strenum_compat/strenum_compat.py +0 -0
  79. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/__init__.py +0 -0
  80. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/__main__.py +0 -0
  81. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/actions_registry/__init__.py +0 -0
  82. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/actions_registry/__main__.py +0 -0
  83. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/actions_registry/emit_typescript.py +0 -0
  84. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/builder.py +0 -0
  85. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/config.py +0 -0
  86. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/cross_output_links.py +0 -0
  87. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_io_ts.py +0 -0
  88. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_open_api_util.py +0 -0
  89. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_python.py +0 -0
  90. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_typescript.py +0 -0
  91. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/emit_typescript_util.py +0 -0
  92. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/load_types.py +0 -0
  93. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/parts/base.py.prepart +0 -0
  94. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/parts/base.ts.prepart +0 -0
  95. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/test.py +0 -0
  96. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/type_info/__main__.py +0 -0
  97. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/util.py +0 -0
  98. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/value_spec/__init__.py +0 -0
  99. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/value_spec/__main__.py +0 -0
  100. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/value_spec/convert_type.py +0 -0
  101. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/value_spec/emit_python.py +0 -0
  102. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pkgs/type_spec/value_spec/types.py +0 -0
  103. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/pyproject.toml +0 -0
  104. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/setup.cfg +0 -0
  105. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/__init__.py +0 -0
  106. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/__init__.py +0 -0
  107. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/async_batch.py +0 -0
  108. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/client.py +0 -0
  109. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/environment.py +0 -0
  110. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/file_upload.py +0 -0
  111. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/core/types.py +0 -0
  112. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/__init__.py +0 -0
  113. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/cli.py +0 -0
  114. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/construct_client.py +0 -0
  115. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/cron.py +0 -0
  116. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/db/__init__.py +0 -0
  117. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/db/connect.py +0 -0
  118. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/db/session.py +0 -0
  119. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/entrypoint.py +0 -0
  120. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/executors/__init__.py +0 -0
  121. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/executors/executors.py +0 -0
  122. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/executors/generic_upload_executor.py +0 -0
  123. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/executors/script_executor.py +0 -0
  124. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/job.py +0 -0
  125. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/__init__.py +0 -0
  126. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/__init__.py +0 -0
  127. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/command_client.py +0 -0
  128. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/command_server.py +0 -0
  129. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  130. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/protocol/command_server.proto +0 -0
  131. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +0 -0
  132. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +0 -0
  133. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +0 -0
  134. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/command_server/types.py +0 -0
  135. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/datastore/__init__.py +0 -0
  136. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/datastore/datastore_sqlite.py +0 -0
  137. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/datastore/interface.py +0 -0
  138. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/datastore/model.py +0 -0
  139. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/job_scheduler.py +0 -0
  140. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/queue_runner.py +0 -0
  141. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/types.py +0 -0
  142. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/queue_runner/worker.py +0 -0
  143. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/scan_profiles.py +0 -0
  144. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/scheduler.py +0 -0
  145. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/secret_retrieval/__init__.py +0 -0
  146. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/secret_retrieval/retrieve_secret.py +0 -0
  147. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/server.py +0 -0
  148. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/telemetry.py +0 -0
  149. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/integration/webhook_server/entrypoint.py +0 -0
  150. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/py.typed +0 -0
  151. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/__init__.py +0 -0
  152. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/batch/__init__.py +0 -0
  153. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/batch/execute_batch.py +0 -0
  154. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/batch/execute_batch_load_async.py +0 -0
  155. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/chemical/__init__.py +0 -0
  156. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/chemical/convert_chemical_formats.py +0 -0
  157. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/__init__.py +0 -0
  158. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/create_entities.py +0 -0
  159. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/create_entity.py +0 -0
  160. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/create_or_update_entity.py +0 -0
  161. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/get_entities_data.py +0 -0
  162. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/grant_entity_permissions.py +0 -0
  163. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/list_entities.py +0 -0
  164. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/lock_entity.py +0 -0
  165. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/lookup_entity.py +0 -0
  166. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/resolve_entity_ids.py +0 -0
  167. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/set_entity_field_values.py +0 -0
  168. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/set_values.py +0 -0
  169. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/transition_entity_phase.py +0 -0
  170. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/entity/unlock_entity.py +0 -0
  171. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/equipment/__init__.py +0 -0
  172. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/equipment/associate_equipment_input.py +0 -0
  173. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/field_options/__init__.py +0 -0
  174. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/field_options/upsert_field_options.py +0 -0
  175. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/files/__init__.py +0 -0
  176. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/files/download_file.py +0 -0
  177. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/id_source/__init__.py +0 -0
  178. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/id_source/list_id_source.py +0 -0
  179. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/id_source/match_id_source.py +0 -0
  180. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/input_groups/__init__.py +0 -0
  181. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/input_groups/get_input_group_names.py +0 -0
  182. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/__init__.py +0 -0
  183. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/create_inputs.py +0 -0
  184. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/get_input_data.py +0 -0
  185. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/get_input_names.py +0 -0
  186. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/get_inputs_data.py +0 -0
  187. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/set_input_attribute_values.py +0 -0
  188. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/set_input_category.py +0 -0
  189. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/set_input_subcategories.py +0 -0
  190. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/inputs/set_intermediate_type.py +0 -0
  191. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/material_families/__init__.py +0 -0
  192. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/material_families/update_entity_material_families.py +0 -0
  193. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/outputs/__init__.py +0 -0
  194. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/outputs/get_output_data.py +0 -0
  195. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/outputs/get_output_names.py +0 -0
  196. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/outputs/resolve_output_conditions.py +0 -0
  197. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/permissions/__init__.py +0 -0
  198. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/permissions/set_core_permissions.py +0 -0
  199. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/project/__init__.py +0 -0
  200. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/project/get_projects.py +0 -0
  201. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/project/get_projects_data.py +0 -0
  202. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipe_links/__init__.py +0 -0
  203. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipe_links/create_recipe_link.py +0 -0
  204. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipe_links/remove_recipe_link.py +0 -0
  205. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipe_metadata/__init__.py +0 -0
  206. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +0 -0
  207. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/__init__.py +0 -0
  208. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/add_recipe_to_project.py +0 -0
  209. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/add_time_series_data.py +0 -0
  210. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/archive_recipes.py +0 -0
  211. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/associate_recipe_as_input.py +0 -0
  212. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/associate_recipe_as_lot.py +0 -0
  213. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/clear_recipe_outputs.py +0 -0
  214. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/create_recipe.py +0 -0
  215. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/create_recipes.py +0 -0
  216. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/disassociate_recipe_as_input.py +0 -0
  217. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_column_calculation_values.py +0 -0
  218. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_curve.py +0 -0
  219. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_recipe_calculations.py +0 -0
  220. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_recipe_links.py +0 -0
  221. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_recipe_names.py +0 -0
  222. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_recipe_output_metadata.py +0 -0
  223. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/get_recipes_data.py +0 -0
  224. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/lock_recipes.py +0 -0
  225. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/remove_recipe_from_project.py +0 -0
  226. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_inputs.py +0 -0
  227. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_metadata.py +0 -0
  228. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_output_annotations.py +0 -0
  229. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_output_file.py +0 -0
  230. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/set_recipe_tags.py +0 -0
  231. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/unarchive_recipes.py +0 -0
  232. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/recipes/unlock_recipes.py +0 -0
  233. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/triggers/__init__.py +0 -0
  234. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/triggers/run_trigger.py +0 -0
  235. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/uploader/__init__.py +0 -0
  236. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/api/uploader/invoke_uploader.py +0 -0
  237. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/async_batch.py +0 -0
  238. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/async_batch_processor.py +0 -0
  239. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/async_jobs.py +0 -0
  240. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/async_jobs_t.py +0 -0
  241. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/auth_retrieval.py +0 -0
  242. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/auth_retrieval_t.py +0 -0
  243. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/base.py +0 -0
  244. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/base_t.py +0 -0
  245. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/calculations.py +0 -0
  246. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/calculations_t.py +0 -0
  247. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/chemical_structure.py +0 -0
  248. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/chemical_structure_t.py +0 -0
  249. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/client_base.py +0 -0
  250. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/client_config.py +0 -0
  251. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/client_config_t.py +0 -0
  252. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/curves.py +0 -0
  253. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/curves_t.py +0 -0
  254. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/entity.py +0 -0
  255. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/entity_t.py +0 -0
  256. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/experiment_groups.py +0 -0
  257. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/experiment_groups_t.py +0 -0
  258. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/field_values.py +0 -0
  259. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/field_values_t.py +0 -0
  260. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/fields.py +0 -0
  261. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/fields_t.py +0 -0
  262. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/generic_upload.py +0 -0
  263. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/generic_upload_t.py +0 -0
  264. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/id_source.py +0 -0
  265. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/id_source_t.py +0 -0
  266. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/identifier.py +0 -0
  267. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/identifier_t.py +0 -0
  268. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/input_attributes.py +0 -0
  269. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/input_attributes_t.py +0 -0
  270. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/inputs.py +0 -0
  271. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/inputs_t.py +0 -0
  272. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/integration_server.py +0 -0
  273. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/integration_server_t.py +0 -0
  274. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/job_definition.py +0 -0
  275. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/job_definition_t.py +0 -0
  276. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/outputs.py +0 -0
  277. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/outputs_t.py +0 -0
  278. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/overrides.py +0 -0
  279. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/overrides_t.py +0 -0
  280. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/permissions.py +0 -0
  281. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/permissions_t.py +0 -0
  282. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/phases.py +0 -0
  283. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/phases_t.py +0 -0
  284. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/post_base.py +0 -0
  285. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/post_base_t.py +0 -0
  286. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/queued_job.py +0 -0
  287. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/queued_job_t.py +0 -0
  288. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_identifiers.py +0 -0
  289. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_identifiers_t.py +0 -0
  290. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_inputs.py +0 -0
  291. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_inputs_t.py +0 -0
  292. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_links.py +0 -0
  293. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_links_t.py +0 -0
  294. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_metadata.py +0 -0
  295. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_metadata_t.py +0 -0
  296. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_output_metadata.py +0 -0
  297. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_output_metadata_t.py +0 -0
  298. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_tags.py +0 -0
  299. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_tags_t.py +0 -0
  300. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_workflow_steps.py +0 -0
  301. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipe_workflow_steps_t.py +0 -0
  302. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipes.py +0 -0
  303. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/recipes_t.py +0 -0
  304. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/response.py +0 -0
  305. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/response_t.py +0 -0
  306. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/secret_retrieval.py +0 -0
  307. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/secret_retrieval_t.py +0 -0
  308. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/units.py +0 -0
  309. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/units_t.py +0 -0
  310. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/users.py +0 -0
  311. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/users_t.py +0 -0
  312. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/webhook_job.py +0 -0
  313. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/webhook_job_t.py +0 -0
  314. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/uncountable/types/workflows.py +0 -0
  315. {uncountablepythonsdk-0.0.109 → uncountablepythonsdk-0.0.110}/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.109
3
+ Version: 0.0.110
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.4
2
2
  Name: UncountablePythonSDK
3
- Version: 0.0.109
3
+ Version: 0.0.110
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
@@ -159,6 +159,8 @@ uncountable/types/client_config.py
159
159
  uncountable/types/client_config_t.py
160
160
  uncountable/types/curves.py
161
161
  uncountable/types/curves_t.py
162
+ uncountable/types/data.py
163
+ uncountable/types/data_t.py
162
164
  uncountable/types/entity.py
163
165
  uncountable/types/entity_t.py
164
166
  uncountable/types/experiment_groups.py
@@ -7,6 +7,7 @@ WORK-IN-PROGRESS, DON'T USE!
7
7
  import dataclasses
8
8
  import json
9
9
  import re
10
+ from enum import StrEnum
10
11
  from typing import Collection, assert_never, cast
11
12
 
12
13
  from pkgs.serialization import yaml
@@ -62,6 +63,10 @@ base_name_map = {
62
63
  }
63
64
 
64
65
 
66
+ class OpenAPIDefaultBehavior(StrEnum):
67
+ OPTIONAL_WITH_DEFAULT = "optional_with_default"
68
+
69
+
65
70
  def _rewrite_with_notice(
66
71
  file_path: str, file_content: str, *, notice: str = MODIFY_NOTICE
67
72
  ) -> bool:
@@ -432,6 +437,18 @@ def _emit_namespace(
432
437
  _rewrite_with_notice(path, yaml.dumps(oa_namespace, sort_keys=False))
433
438
 
434
439
 
440
+ def _get_openapi_default_behavior(
441
+ prop: builder.SpecProperty,
442
+ ) -> OpenAPIDefaultBehavior | None:
443
+ if prop.ext_info is None or prop.ext_info.get("open_api") is None:
444
+ return None
445
+ value_passed = prop.ext_info["open_api"].get("default_required_behavior")
446
+ if value_passed is None:
447
+ return None
448
+ assert isinstance(value_passed, str)
449
+ return OpenAPIDefaultBehavior(value_passed)
450
+
451
+
435
452
  def _emit_type(
436
453
  ctx: EmitOpenAPIContext,
437
454
  stype: builder.SpecType,
@@ -495,6 +512,16 @@ def _emit_type(
495
512
  # arguments, thus treat like extant==missing
496
513
  # IMPROVE: if we can decide they are meant as output instead, then
497
514
  # they should be marked as required
515
+ openapi_default_beahvior = _get_openapi_default_behavior(prop)
516
+ match openapi_default_beahvior:
517
+ case None:
518
+ pass
519
+ case OpenAPIDefaultBehavior.OPTIONAL_WITH_DEFAULT:
520
+ ref_type.nullable = True
521
+ assert prop.default is not None, (
522
+ "optional_with_default requires default"
523
+ )
524
+ ref_type.default = prop.default
498
525
  properties[prop_name] = ref_type
499
526
  elif prop.extant == builder.PropertyExtant.missing:
500
527
  # Unlike optional below, missing does not imply null is possible. They
@@ -1,14 +1,23 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from enum import StrEnum
3
3
 
4
+ from pkgs.serialization_util import JsonValue
5
+
4
6
 
5
7
  class OpenAPIType(ABC):
6
8
  description: str | None = None
7
9
  nullable: bool = False
10
+ default: JsonValue
8
11
 
9
- def __init__(self, description: str | None = None, nullable: bool = False) -> None:
12
+ def __init__(
13
+ self,
14
+ description: str | None = None,
15
+ nullable: bool = False,
16
+ default: JsonValue = None,
17
+ ) -> None:
10
18
  self.description = description
11
19
  self.nullable = nullable
20
+ self.default = default
12
21
 
13
22
  @abstractmethod
14
23
  def asdict(self) -> dict[str, object]:
@@ -19,6 +28,8 @@ class OpenAPIType(ABC):
19
28
  emitted["description"] = self.description
20
29
  if self.nullable:
21
30
  emitted["nullable"] = self.nullable
31
+ if self.default is not None:
32
+ emitted["default"] = self.default
22
33
  return emitted
23
34
 
24
35
 
@@ -296,6 +296,21 @@ def _extract_and_validate_layout(
296
296
  return layout
297
297
 
298
298
 
299
+ def _pull_property_from_type_recursively(
300
+ stype: builder.SpecTypeDefnObject,
301
+ property_name: str,
302
+ ) -> builder.SpecProperty | None:
303
+ assert stype.properties is not None
304
+ prop = stype.properties.get(property_name)
305
+ if prop is not None:
306
+ return prop
307
+
308
+ if stype.base is None:
309
+ return None
310
+
311
+ return _pull_property_from_type_recursively(stype.base, property_name)
312
+
313
+
299
314
  def _validate_type_ext_info(
300
315
  stype: builder.SpecTypeDefnObject,
301
316
  ) -> tuple[ExtInfoLayout | None, type_info_t.ExtInfo | None]:
@@ -306,7 +321,7 @@ def _validate_type_ext_info(
306
321
  if ext_info.label_fields is not None:
307
322
  assert stype.properties is not None
308
323
  for name in ext_info.label_fields:
309
- prop = stype.properties.get(name)
324
+ prop = _pull_property_from_type_recursively(stype, name)
310
325
  assert prop is not None, f"missing-label-field:{name}"
311
326
 
312
327
  if not stype.is_base and isinstance(stype.base, builder.SpecTypeDefnObject):
@@ -416,6 +431,8 @@ def _parse_ext_info(in_ext: Any) -> type_info_t.ExtInfo | None:
416
431
  df["result_type"] = serialize_for_storage(converted)
417
432
  mod_ext["data_format"] = df
418
433
 
434
+ if "open_api" in mod_ext:
435
+ del mod_ext["open_api"]
419
436
  return ext_info_parser.parse_storage(mod_ext)
420
437
 
421
438
 
@@ -25,6 +25,7 @@ from .api.recipes import create_recipe as create_recipe_t
25
25
  from .api.recipe_links import create_recipe_link as create_recipe_link_t
26
26
  from .api.recipes import create_recipes as create_recipes_t
27
27
  from . import curves_t as curves_t
28
+ from . import data_t as data_t
28
29
  from .api.recipes import disassociate_recipe_as_input as disassociate_recipe_as_input_t
29
30
  from .api.files import download_file as download_file_t
30
31
  from .api.recipes import edit_recipe_inputs as edit_recipe_inputs_t
@@ -136,6 +137,7 @@ __all__: list[str] = [
136
137
  "create_recipe_link_t",
137
138
  "create_recipes_t",
138
139
  "curves_t",
140
+ "data_t",
139
141
  "disassociate_recipe_as_input_t",
140
142
  "download_file_t",
141
143
  "edit_recipe_inputs_t",
@@ -21,6 +21,7 @@ __all__: list[str] = [
21
21
  "Data",
22
22
  "ENDPOINT_METHOD",
23
23
  "ENDPOINT_PATH",
24
+ "MixStepMatchStrategy",
24
25
  "PlaceholderBase",
25
26
  "PlaceholderDisplayMode",
26
27
  "PlaceholderType",
@@ -58,6 +59,12 @@ class RecipeInputEditType(StrEnum):
58
59
  SET_PLACEHOLDER = "set_placeholder"
59
60
 
60
61
 
62
+ # DO NOT MODIFY -- This file is generated by type_spec
63
+ class MixStepMatchStrategy(StrEnum):
64
+ FIRST = "first"
65
+ LAST = "last"
66
+
67
+
61
68
  # DO NOT MODIFY -- This file is generated by type_spec
62
69
  @serial_class(
63
70
  named_type_path="sdk.api.recipes.edit_recipe_inputs.RecipeInputEditBase",
@@ -101,6 +108,7 @@ class RecipeInputEditInputBase(RecipeInputEditBase):
101
108
  @dataclasses.dataclass(kw_only=True)
102
109
  class RecipeInputEditChangeBasisViewed(RecipeInputEditInputBase):
103
110
  type: typing.Literal[RecipeInputEditType.CHANGE_BASIS] = RecipeInputEditType.CHANGE_BASIS
111
+ mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
104
112
 
105
113
 
106
114
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -112,6 +120,7 @@ class RecipeInputEditChangeBasisViewed(RecipeInputEditInputBase):
112
120
  class RecipeInputEditUpsertInput(RecipeInputEditInputBase):
113
121
  type: typing.Literal[RecipeInputEditType.UPSERT_INPUT] = RecipeInputEditType.UPSERT_INPUT
114
122
  clear_first: bool
123
+ mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
115
124
 
116
125
 
117
126
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -169,6 +178,7 @@ class RecipeInputEditUpdateAnnotations(RecipeInputEditInputBase):
169
178
  type: typing.Literal[RecipeInputEditType.UPDATE_ANNOTATIONS] = RecipeInputEditType.UPDATE_ANNOTATIONS
170
179
  clear_first: bool
171
180
  annotations: list[AnnotationEdit]
181
+ mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
172
182
 
173
183
 
174
184
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -238,6 +248,7 @@ class RecipeInputEditPlaceholder(RecipeInputEditBase):
238
248
  type: typing.Literal[RecipeInputEditType.SET_PLACEHOLDER] = RecipeInputEditType.SET_PLACEHOLDER
239
249
  ingredient_key: identifier_t.IdentifierKey
240
250
  placeholder: RecipeInputPlaceholder
251
+ mix_step_match_strategy: MixStepMatchStrategy = MixStepMatchStrategy.FIRST
241
252
 
242
253
 
243
254
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -10,6 +10,7 @@ from enum import StrEnum
10
10
  import dataclasses
11
11
  from pkgs.serialization import serial_class
12
12
  from ... import base_t
13
+ from ... import data_t
13
14
  from ... import field_values_t
14
15
  from ... import recipes_t
15
16
  from ... import response_t
@@ -59,6 +60,7 @@ class RecipeOutputValue:
59
60
  value_numeric: Decimal | None = None
60
61
  value_str: str | None = None
61
62
  value_curve: CurveValues | None = None
63
+ value_color: data_t.RecipeOutputColor | None = None
62
64
  formatting: recipes_t.RecipeAttributeFormatting | None = None
63
65
  field_values: list[field_values_t.ArgumentValueRefName | field_values_t.ArgumentValueId] | None = None
64
66
 
@@ -41,6 +41,7 @@ class AsyncBatchRequestPath(StrEnum):
41
41
  CREATE_OR_UPDATE_ENTITY = "entity/create_or_update_entity"
42
42
  ADD_TIME_SERIES_DATA = "recipes/add_time_series_data"
43
43
  LOOKUP_ENTITY = "entity/lookup_entity"
44
+ CREATE_RECIPE_LINK = "recipe_links/create_recipe_link"
44
45
 
45
46
 
46
47
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,12 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .data_t import RgbColor as RgbColor
7
+ from .data_t import CielabColor as CielabColor
8
+ from .data_t import XyzColor as XyzColor
9
+ from .data_t import LChColor as LChColor
10
+ from .data_t import HslColor as HslColor
11
+ from .data_t import RecipeOutputColor as RecipeOutputColor
12
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,93 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+
12
+ __all__: list[str] = [
13
+ "CielabColor",
14
+ "HslColor",
15
+ "LChColor",
16
+ "RecipeOutputColor",
17
+ "RgbColor",
18
+ "XyzColor",
19
+ ]
20
+
21
+
22
+ # DO NOT MODIFY -- This file is generated by type_spec
23
+ @serial_class(
24
+ named_type_path="sdk.data.RgbColor",
25
+ unconverted_keys={"B", "G", "R"},
26
+ )
27
+ @dataclasses.dataclass(kw_only=True)
28
+ class RgbColor:
29
+ R: int
30
+ G: int
31
+ B: int
32
+
33
+
34
+ # DO NOT MODIFY -- This file is generated by type_spec
35
+ @serial_class(
36
+ named_type_path="sdk.data.CielabColor",
37
+ unconverted_keys={"L", "a", "b"},
38
+ )
39
+ @dataclasses.dataclass(kw_only=True)
40
+ class CielabColor:
41
+ L: int
42
+ a: int
43
+ b: int
44
+
45
+
46
+ # DO NOT MODIFY -- This file is generated by type_spec
47
+ @serial_class(
48
+ named_type_path="sdk.data.XyzColor",
49
+ unconverted_keys={"X", "Y", "Z"},
50
+ )
51
+ @dataclasses.dataclass(kw_only=True)
52
+ class XyzColor:
53
+ X: int
54
+ Y: int
55
+ Z: int
56
+
57
+
58
+ # DO NOT MODIFY -- This file is generated by type_spec
59
+ @serial_class(
60
+ named_type_path="sdk.data.LChColor",
61
+ unconverted_keys={"C", "L", "h"},
62
+ )
63
+ @dataclasses.dataclass(kw_only=True)
64
+ class LChColor:
65
+ L: int
66
+ C: int
67
+ h: int
68
+
69
+
70
+ # DO NOT MODIFY -- This file is generated by type_spec
71
+ @serial_class(
72
+ named_type_path="sdk.data.HslColor",
73
+ unconverted_keys={"L", "h", "s"},
74
+ )
75
+ @dataclasses.dataclass(kw_only=True)
76
+ class HslColor:
77
+ h: int
78
+ s: int
79
+ L: int
80
+
81
+
82
+ # DO NOT MODIFY -- This file is generated by type_spec
83
+ @serial_class(
84
+ named_type_path="sdk.data.RecipeOutputColor",
85
+ unconverted_keys={"CIELAB", "LCH", "RGB", "XYZ"},
86
+ )
87
+ @dataclasses.dataclass(kw_only=True)
88
+ class RecipeOutputColor:
89
+ RGB: RgbColor
90
+ CIELAB: CielabColor
91
+ XYZ: XyzColor | None = None
92
+ LCH: LChColor | None = None
93
+ # DO NOT MODIFY -- This file is generated by type_spec