UncountablePythonSDK 0.0.16__py3-none-any.whl → 0.0.17__py3-none-any.whl

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 (56) hide show
  1. {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.17.dist-info}/METADATA +14 -1
  2. {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.17.dist-info}/RECORD +56 -19
  3. {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.17.dist-info}/top_level.txt +1 -0
  4. docs/.gitignore +1 -0
  5. docs/conf.py +52 -0
  6. docs/index.md +13 -0
  7. docs/justfile +12 -0
  8. docs/quickstart.md +19 -0
  9. docs/requirements.txt +7 -0
  10. docs/static/favicons/android-chrome-192x192.png +0 -0
  11. docs/static/favicons/android-chrome-512x512.png +0 -0
  12. docs/static/favicons/apple-touch-icon.png +0 -0
  13. docs/static/favicons/browserconfig.xml +9 -0
  14. docs/static/favicons/favicon-16x16.png +0 -0
  15. docs/static/favicons/favicon-32x32.png +0 -0
  16. docs/static/favicons/manifest.json +18 -0
  17. docs/static/favicons/mstile-150x150.png +0 -0
  18. docs/static/favicons/safari-pinned-tab.svg +32 -0
  19. docs/static/logo_blue.png +0 -0
  20. examples/create_entity.py +23 -16
  21. pkgs/argument_parser/argument_parser.py +13 -6
  22. pkgs/type_spec/actions_registry/__init__.py +0 -0
  23. pkgs/type_spec/actions_registry/__main__.py +108 -0
  24. pkgs/type_spec/actions_registry/emit_typescript.py +106 -0
  25. pkgs/type_spec/builder.py +4 -0
  26. pkgs/type_spec/emit_python.py +35 -1
  27. pkgs/type_spec/emit_typescript.py +6 -7
  28. pkgs/type_spec/value_spec/emit_python.py +1 -0
  29. type_spec/external/api/chemical/convert_chemical_formats.yaml +33 -0
  30. type_spec/external/api/entity/create_entities.yaml +1 -1
  31. type_spec/external/api/entity/create_entity.yaml +1 -1
  32. type_spec/external/api/recipe_links/create_recipe_link.yaml +25 -0
  33. type_spec/external/api/recipes/associate_recipe_as_input.yaml +19 -0
  34. type_spec/external/api/recipes/associate_recipe_as_lot.yaml +19 -0
  35. type_spec/external/api/recipes/create_recipe.yaml +35 -0
  36. type_spec/external/api/recipes/set_recipe_inputs.yaml +3 -0
  37. type_spec/external/api/recipes/set_recipe_metadata.yaml +19 -0
  38. uncountable/core/client.py +13 -14
  39. uncountable/types/__init__.py +20 -0
  40. uncountable/types/api/chemical/__init__.py +1 -0
  41. uncountable/types/api/chemical/convert_chemical_formats.py +50 -0
  42. uncountable/types/api/entity/create_entities.py +1 -1
  43. uncountable/types/api/entity/create_entity.py +1 -1
  44. uncountable/types/api/recipe_links/__init__.py +1 -0
  45. uncountable/types/api/recipe_links/create_recipe_link.py +39 -0
  46. uncountable/types/api/recipes/associate_recipe_as_input.py +35 -0
  47. uncountable/types/api/recipes/associate_recipe_as_lot.py +36 -0
  48. uncountable/types/api/recipes/create_recipe.py +41 -0
  49. uncountable/types/api/recipes/set_recipe_inputs.py +1 -0
  50. uncountable/types/api/recipes/set_recipe_metadata.py +36 -0
  51. uncountable/types/async_batch.py +23 -0
  52. uncountable/types/chemical_structure.py +27 -0
  53. uncountable/types/client_base.py +303 -2
  54. uncountable/types/identifier.py +54 -0
  55. uncountable/types/recipe_identifiers.py +62 -0
  56. {UncountablePythonSDK-0.0.16.dist-info → UncountablePythonSDK-0.0.17.dist-info}/WHEEL +0 -0
@@ -0,0 +1,39 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from ... import async_batch as async_batch_t
12
+ from ... import identifier as identifier_t
13
+ from ... import recipe_links as recipe_links_t
14
+
15
+ __all__: list[str] = [
16
+ "Arguments",
17
+ "Data",
18
+ "ENDPOINT_METHOD",
19
+ "ENDPOINT_PATH",
20
+ ]
21
+
22
+ ENDPOINT_METHOD = "POST"
23
+ ENDPOINT_PATH = "api/external/recipe_links/create_recipe_link"
24
+
25
+
26
+ # DO NOT MODIFY -- This file is generated by type_spec
27
+ @dataclass(kw_only=True)
28
+ class Arguments:
29
+ recipe_from_key: identifier_t.IdentifierKey
30
+ recipe_to_key: identifier_t.IdentifierKey
31
+ link_type: typing.Union[typing.Literal[recipe_links_t.RecipeLinkType.CHILD], typing.Literal[recipe_links_t.RecipeLinkType.CONTROL], typing.Literal[recipe_links_t.RecipeLinkType.USER_LINK]]
32
+ name: str
33
+
34
+
35
+ # DO NOT MODIFY -- This file is generated by type_spec
36
+ @dataclass(kw_only=True)
37
+ class Data(async_batch_t.AsyncBatchActionReturn):
38
+ pass
39
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,35 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from ... import base as base_t
12
+ from ... import identifier as identifier_t
13
+
14
+ __all__: list[str] = [
15
+ "Arguments",
16
+ "Data",
17
+ "ENDPOINT_METHOD",
18
+ "ENDPOINT_PATH",
19
+ ]
20
+
21
+ ENDPOINT_METHOD = "POST"
22
+ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_input"
23
+
24
+
25
+ # DO NOT MODIFY -- This file is generated by type_spec
26
+ @dataclass(kw_only=True)
27
+ class Arguments:
28
+ recipe_key: identifier_t.IdentifierKey
29
+
30
+
31
+ # DO NOT MODIFY -- This file is generated by type_spec
32
+ @dataclass(kw_only=True)
33
+ class Data:
34
+ result_id: base_t.ObjectId
35
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,36 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from ... import async_batch as async_batch_t
12
+ from ... import identifier as identifier_t
13
+
14
+ __all__: list[str] = [
15
+ "Arguments",
16
+ "Data",
17
+ "ENDPOINT_METHOD",
18
+ "ENDPOINT_PATH",
19
+ ]
20
+
21
+ ENDPOINT_METHOD = "POST"
22
+ ENDPOINT_PATH = "api/external/recipes/associate_recipe_as_lot"
23
+
24
+
25
+ # DO NOT MODIFY -- This file is generated by type_spec
26
+ @dataclass(kw_only=True)
27
+ class Arguments:
28
+ recipe_key: identifier_t.IdentifierKey
29
+ ingredient_key: identifier_t.IdentifierKey
30
+
31
+
32
+ # DO NOT MODIFY -- This file is generated by type_spec
33
+ @dataclass(kw_only=True)
34
+ class Data(async_batch_t.AsyncBatchActionReturn):
35
+ pass
36
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,41 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from ... import base as base_t
12
+ from ... import recipe_identifiers as recipe_identifiers_t
13
+ from ... import recipe_metadata as recipe_metadata_t
14
+
15
+ __all__: list[str] = [
16
+ "Arguments",
17
+ "Data",
18
+ "ENDPOINT_METHOD",
19
+ "ENDPOINT_PATH",
20
+ ]
21
+
22
+ ENDPOINT_METHOD = "POST"
23
+ ENDPOINT_PATH = "api/external/recipes/create_recipe"
24
+
25
+
26
+ # DO NOT MODIFY -- This file is generated by type_spec
27
+ @dataclass(kw_only=True)
28
+ class Arguments:
29
+ material_family_id: base_t.ObjectId
30
+ workflow_id: base_t.ObjectId
31
+ identifiers: recipe_identifiers_t.RecipeIdentifiers
32
+ name: typing.Optional[str] = None
33
+ workflow_variant_id: typing.Optional[typing.Optional[base_t.ObjectId]] = None
34
+ recipe_metadata: typing.Optional[list[recipe_metadata_t.MetadataValue]] = None
35
+
36
+
37
+ # DO NOT MODIFY -- This file is generated by type_spec
38
+ @dataclass(kw_only=True)
39
+ class Data:
40
+ result_id: base_t.ObjectId
41
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -35,6 +35,7 @@ class RecipeInputValue:
35
35
  value_numeric: typing.Optional[Decimal] = None
36
36
  value_str: typing.Optional[str] = None
37
37
  set_actual_value: typing.Optional[bool] = None
38
+ lot_recipe_id: typing.Optional[base_t.ObjectId] = None
38
39
 
39
40
 
40
41
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,36 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from ... import identifier as identifier_t
12
+ from ... import recipe_metadata as recipe_metadata_t
13
+
14
+ __all__: list[str] = [
15
+ "Arguments",
16
+ "Data",
17
+ "ENDPOINT_METHOD",
18
+ "ENDPOINT_PATH",
19
+ ]
20
+
21
+ ENDPOINT_METHOD = "POST"
22
+ ENDPOINT_PATH = "api/external/recipes/set_recipe_metadata"
23
+
24
+
25
+ # DO NOT MODIFY -- This file is generated by type_spec
26
+ @dataclass(kw_only=True)
27
+ class Arguments:
28
+ recipe_key: identifier_t.IdentifierKey
29
+ recipe_metadata: list[recipe_metadata_t.MetadataValue]
30
+
31
+
32
+ # DO NOT MODIFY -- This file is generated by type_spec
33
+ @dataclass(kw_only=True)
34
+ class Data:
35
+ pass
36
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,23 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from . import base as base_t
12
+
13
+ __all__: list[str] = [
14
+ "AsyncBatchActionReturn",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @dataclass(kw_only=True)
20
+ class AsyncBatchActionReturn:
21
+ modification_made: bool
22
+ result_id: typing.Optional[base_t.ObjectId] = None
23
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,27 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # flake8: noqa: F821
3
+ # ruff: noqa: E402
4
+ # fmt: off
5
+ # isort: skip_file
6
+ from __future__ import annotations
7
+ import typing # noqa: F401
8
+ import datetime # noqa: F401
9
+ from decimal import Decimal # noqa: F401
10
+ from dataclasses import dataclass
11
+ from pkgs.serialization import serial_class
12
+
13
+ __all__: list[str] = [
14
+ "ChemicalStructure",
15
+ ]
16
+
17
+
18
+ # DO NOT MODIFY -- This file is generated by type_spec
19
+ @serial_class(
20
+ to_string_values={"molecular_weight"},
21
+ )
22
+ @dataclass(kw_only=True)
23
+ class ChemicalStructure:
24
+ ketcher_file: typing.Optional[str] = None
25
+ gross_formula: typing.Optional[str] = None
26
+ molecular_weight: typing.Optional[Decimal] = None
27
+ # DO NOT MODIFY -- This file is generated by type_spec