UncountablePythonSDK 0.0.154__py3-none-any.whl → 0.0.156__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.
- docs/requirements.txt +4 -4
- examples/async_batch_large_parse.py +47 -0
- pkgs/type_spec/emit_typescript.py +1 -0
- pkgs/type_spec/parts/base.ts.prepart +1 -1
- uncountable/core/client.py +5 -0
- uncountable/integration/queue_runner/worker.py +14 -4
- uncountable/types/__init__.py +2 -0
- uncountable/types/api/notebooks/add_notebook_content.py +5 -0
- uncountable/types/api/notebooks/get_notebook_content.py +276 -0
- uncountable/types/api/triggers/run_trigger.py +1 -0
- uncountable/types/async_batch_processor.py +39 -0
- uncountable/types/async_batch_t.py +1 -0
- uncountable/types/client_base.py +53 -0
- uncountable/types/entity_t.py +6 -0
- {uncountablepythonsdk-0.0.154.dist-info → uncountablepythonsdk-0.0.156.dist-info}/METADATA +1 -1
- {uncountablepythonsdk-0.0.154.dist-info → uncountablepythonsdk-0.0.156.dist-info}/RECORD +18 -16
- {uncountablepythonsdk-0.0.154.dist-info → uncountablepythonsdk-0.0.156.dist-info}/WHEEL +1 -1
- {uncountablepythonsdk-0.0.154.dist-info → uncountablepythonsdk-0.0.156.dist-info}/top_level.txt +0 -0
docs/requirements.txt
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
furo==2025.12.19
|
|
2
2
|
myst-parser==5.0.0
|
|
3
|
-
sphinx-autoapi==3.
|
|
3
|
+
sphinx-autoapi==3.7.0
|
|
4
4
|
sphinx-copybutton==0.5.2
|
|
5
|
-
Sphinx==
|
|
5
|
+
Sphinx==9.1.0
|
|
6
6
|
sphinx_design==0.7.0
|
|
7
|
-
sphinx-favicon==1.0
|
|
7
|
+
sphinx-favicon==1.1.0
|
|
8
8
|
astroid==4.0.3
|
|
9
|
-
docutils==0.
|
|
9
|
+
docutils==0.22.4
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from decimal import Decimal
|
|
3
|
+
|
|
4
|
+
from uncountable.core import AsyncBatchProcessor, AuthDetailsApiKey, Client
|
|
5
|
+
from uncountable.types.generic_upload_t import UploadDestinationRecipe
|
|
6
|
+
from uncountable.types.identifier import IdentifierKeyId
|
|
7
|
+
from uncountable.types.uploader_t import (
|
|
8
|
+
DataChannel,
|
|
9
|
+
DecimalValue,
|
|
10
|
+
NumericChannelData,
|
|
11
|
+
ParsedFileData,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
client = Client(
|
|
15
|
+
base_url=os.environ["UNC_BASE_URL"],
|
|
16
|
+
auth_details=AuthDetailsApiKey(
|
|
17
|
+
api_id=os.environ["UNC_API_ID"], api_secret_key=os.environ["UNC_API_SECRET_KEY"]
|
|
18
|
+
),
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
ROWS = 1_000_000
|
|
22
|
+
CHANNELS = 2
|
|
23
|
+
|
|
24
|
+
parsed_file_data = [
|
|
25
|
+
ParsedFileData(
|
|
26
|
+
file_name="large_timeseries.csv",
|
|
27
|
+
file_structures=[
|
|
28
|
+
DataChannel(
|
|
29
|
+
channel=NumericChannelData(
|
|
30
|
+
name=f"channel_{i}",
|
|
31
|
+
data=[DecimalValue(value=Decimal("1.0"))] * ROWS,
|
|
32
|
+
),
|
|
33
|
+
)
|
|
34
|
+
for i in range(CHANNELS)
|
|
35
|
+
],
|
|
36
|
+
)
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
batch_loader = AsyncBatchProcessor(client=client)
|
|
40
|
+
batch_loader.complete_async_parse(
|
|
41
|
+
parsed_file_data=parsed_file_data,
|
|
42
|
+
async_job_key=IdentifierKeyId(id=1),
|
|
43
|
+
upload_destination=UploadDestinationRecipe(
|
|
44
|
+
recipe_key=IdentifierKeyId(id=1),
|
|
45
|
+
),
|
|
46
|
+
)
|
|
47
|
+
job_id = batch_loader.send()
|
|
@@ -26,6 +26,7 @@ def emit_typescript(builder: builder.SpecBuilder, config: TypeScriptConfig) -> N
|
|
|
26
26
|
|
|
27
27
|
def _emit_types(builder: builder.SpecBuilder, config: TypeScriptConfig) -> None:
|
|
28
28
|
index_out = io.StringIO()
|
|
29
|
+
index_out.write("// biome-ignore-all assist/source/organizeImports: codegen\n")
|
|
29
30
|
index_out.write(MODIFY_NOTICE)
|
|
30
31
|
|
|
31
32
|
index_out_end = io.StringIO()
|
uncountable/core/client.py
CHANGED
|
@@ -259,6 +259,7 @@ class Client(ClientMethods):
|
|
|
259
259
|
attributes: Attributes = {
|
|
260
260
|
"method": http_request.method,
|
|
261
261
|
"endpoint": api_request.endpoint,
|
|
262
|
+
"request_id": request_id,
|
|
262
263
|
}
|
|
263
264
|
with push_scope_optional(self._cfg.logger, "api_call", attributes=attributes):
|
|
264
265
|
if self._cfg.logger is not None:
|
|
@@ -381,6 +382,10 @@ class Client(ClientMethods):
|
|
|
381
382
|
assert isinstance(http_request, HTTPGetRequest)
|
|
382
383
|
request.params = http_request.query_params
|
|
383
384
|
response = self._send_request(request)
|
|
385
|
+
|
|
386
|
+
if response.status_code == 404:
|
|
387
|
+
return []
|
|
388
|
+
|
|
384
389
|
self._validate_response_status(response, request_id)
|
|
385
390
|
|
|
386
391
|
content = response.content
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import
|
|
2
|
+
import sys
|
|
3
|
+
import typing
|
|
3
4
|
from concurrent.futures import ProcessPoolExecutor
|
|
4
5
|
from dataclasses import dataclass
|
|
5
6
|
|
|
6
7
|
import psutil
|
|
8
|
+
|
|
9
|
+
if typing.TYPE_CHECKING:
|
|
10
|
+
import resource as resource
|
|
11
|
+
elif sys.platform != "win32":
|
|
12
|
+
import resource as resource
|
|
13
|
+
else:
|
|
14
|
+
resource = None
|
|
15
|
+
|
|
7
16
|
from opentelemetry.trace import get_current_span
|
|
8
17
|
|
|
9
18
|
from uncountable.core.async_batch import AsyncBatchProcessor
|
|
@@ -84,9 +93,10 @@ def run_queued_job(
|
|
|
84
93
|
queued_job: queued_job_t.QueuedJob,
|
|
85
94
|
) -> job_definition_t.JobResult:
|
|
86
95
|
with get_otel_tracer().start_as_current_span(name="run_queued_job") as span:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
96
|
+
if resource is not None:
|
|
97
|
+
total_mem = psutil.virtual_memory().total
|
|
98
|
+
limit_bytes = int(total_mem * 0.9)
|
|
99
|
+
resource.setrlimit(resource.RLIMIT_AS, (limit_bytes, limit_bytes))
|
|
90
100
|
|
|
91
101
|
job_details = get_registered_job_details(queued_job.job_ref_name)
|
|
92
102
|
job_logger = JobLogger(
|
uncountable/types/__init__.py
CHANGED
|
@@ -54,6 +54,7 @@ from .api.inputs import get_input_data as get_input_data_t
|
|
|
54
54
|
from .api.input_groups import get_input_group_names as get_input_group_names_t
|
|
55
55
|
from .api.inputs import get_input_names as get_input_names_t
|
|
56
56
|
from .api.inputs import get_inputs_data as get_inputs_data_t
|
|
57
|
+
from .api.notebooks import get_notebook_content as get_notebook_content_t
|
|
57
58
|
from .api.outputs import get_output_data as get_output_data_t
|
|
58
59
|
from .api.outputs import get_output_names as get_output_names_t
|
|
59
60
|
from .api.outputs import get_output_organization as get_output_organization_t
|
|
@@ -199,6 +200,7 @@ __all__: list[str] = [
|
|
|
199
200
|
"get_input_group_names_t",
|
|
200
201
|
"get_input_names_t",
|
|
201
202
|
"get_inputs_data_t",
|
|
203
|
+
"get_notebook_content_t",
|
|
202
204
|
"get_output_data_t",
|
|
203
205
|
"get_output_names_t",
|
|
204
206
|
"get_output_organization_t",
|
|
@@ -160,6 +160,8 @@ class InputContentImage:
|
|
|
160
160
|
"ketcher": "Ketcher",
|
|
161
161
|
"mol_2000": "MOL 2000",
|
|
162
162
|
"mol_3000": "MOL 3000",
|
|
163
|
+
"rxn": "RXN",
|
|
164
|
+
"sdf": "SDF",
|
|
163
165
|
},
|
|
164
166
|
)
|
|
165
167
|
class ChemicalStructureSourceType(StrEnum):
|
|
@@ -167,6 +169,8 @@ class ChemicalStructureSourceType(StrEnum):
|
|
|
167
169
|
KETCHER = "ketcher"
|
|
168
170
|
MOL_2000 = "mol_2000"
|
|
169
171
|
MOL_3000 = "mol_3000"
|
|
172
|
+
RXN = "rxn"
|
|
173
|
+
SDF = "sdf"
|
|
170
174
|
|
|
171
175
|
|
|
172
176
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -179,6 +183,7 @@ class InputContentChemicalStructure:
|
|
|
179
183
|
type: typing.Literal[InputContentType.CHEMICAL_STRUCTURE] = InputContentType.CHEMICAL_STRUCTURE
|
|
180
184
|
structure_format: ChemicalStructureSourceType
|
|
181
185
|
structure_data: str
|
|
186
|
+
split_sdf_into_separate_cells: bool | None = None
|
|
182
187
|
|
|
183
188
|
|
|
184
189
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,276 @@
|
|
|
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
|
+
from enum import StrEnum
|
|
10
|
+
import dataclasses
|
|
11
|
+
from pkgs.serialization import serial_class
|
|
12
|
+
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from pkgs.serialization import serial_string_enum
|
|
14
|
+
from ... import base_t
|
|
15
|
+
from ... import identifier_t
|
|
16
|
+
|
|
17
|
+
__all__: list[str] = [
|
|
18
|
+
"Arguments",
|
|
19
|
+
"ChemicalStructureOutputFormat",
|
|
20
|
+
"Data",
|
|
21
|
+
"ENDPOINT_METHOD",
|
|
22
|
+
"ENDPOINT_PATH",
|
|
23
|
+
"OutputContent",
|
|
24
|
+
"OutputContentChemicalStructure",
|
|
25
|
+
"OutputContentChemicalStructureError",
|
|
26
|
+
"OutputContentEquation",
|
|
27
|
+
"OutputContentFiles",
|
|
28
|
+
"OutputContentImage",
|
|
29
|
+
"OutputContentReactionTable",
|
|
30
|
+
"OutputContentTable",
|
|
31
|
+
"OutputContentTextHtml",
|
|
32
|
+
"OutputContentType",
|
|
33
|
+
"OutputTableCell",
|
|
34
|
+
"OutputTableCellContent",
|
|
35
|
+
"OutputTableCellContentImage",
|
|
36
|
+
"OutputTableCellContentText",
|
|
37
|
+
"OutputTableCellContentType",
|
|
38
|
+
"OutputTableCellStyle",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
ENDPOINT_METHOD = "GET"
|
|
42
|
+
ENDPOINT_PATH = "api/external/notebooks/get_notebook_content"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
46
|
+
@serial_string_enum(
|
|
47
|
+
labels={
|
|
48
|
+
"text_html": "Text HTML",
|
|
49
|
+
"table": "Table",
|
|
50
|
+
"chemical_structure": "Chemical Structure",
|
|
51
|
+
"chemical_structure_error": "Chemical Structure Error",
|
|
52
|
+
"equation": "Equation",
|
|
53
|
+
"files": "Files",
|
|
54
|
+
"image": "Image",
|
|
55
|
+
"reaction_table": "Reaction Table",
|
|
56
|
+
},
|
|
57
|
+
)
|
|
58
|
+
class OutputContentType(StrEnum):
|
|
59
|
+
TEXT_HTML = "text_html"
|
|
60
|
+
TABLE = "table"
|
|
61
|
+
CHEMICAL_STRUCTURE = "chemical_structure"
|
|
62
|
+
CHEMICAL_STRUCTURE_ERROR = "chemical_structure_error"
|
|
63
|
+
EQUATION = "equation"
|
|
64
|
+
FILES = "files"
|
|
65
|
+
IMAGE = "image"
|
|
66
|
+
REACTION_TABLE = "reaction_table"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
70
|
+
@serial_string_enum(
|
|
71
|
+
labels={
|
|
72
|
+
"mol_3000": "MOL 3000",
|
|
73
|
+
"rxn_3000": "RXN 3000",
|
|
74
|
+
},
|
|
75
|
+
)
|
|
76
|
+
class ChemicalStructureOutputFormat(StrEnum):
|
|
77
|
+
MOL_3000 = "mol_3000"
|
|
78
|
+
RXN_3000 = "rxn_3000"
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
82
|
+
@serial_class(
|
|
83
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentTextHtml",
|
|
84
|
+
parse_require={"type"},
|
|
85
|
+
)
|
|
86
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
87
|
+
class OutputContentTextHtml:
|
|
88
|
+
type: typing.Literal[OutputContentType.TEXT_HTML] = OutputContentType.TEXT_HTML
|
|
89
|
+
text_html: str
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
93
|
+
@serial_string_enum(
|
|
94
|
+
labels={
|
|
95
|
+
"text": "Text",
|
|
96
|
+
"image": "Image",
|
|
97
|
+
},
|
|
98
|
+
)
|
|
99
|
+
class OutputTableCellContentType(StrEnum):
|
|
100
|
+
TEXT = "text"
|
|
101
|
+
IMAGE = "image"
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
105
|
+
@serial_class(
|
|
106
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputTableCellContentText",
|
|
107
|
+
parse_require={"type"},
|
|
108
|
+
)
|
|
109
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
110
|
+
class OutputTableCellContentText:
|
|
111
|
+
type: typing.Literal[OutputTableCellContentType.TEXT] = OutputTableCellContentType.TEXT
|
|
112
|
+
text: str
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
116
|
+
@serial_class(
|
|
117
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputTableCellContentImage",
|
|
118
|
+
parse_require={"type"},
|
|
119
|
+
)
|
|
120
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
121
|
+
class OutputTableCellContentImage:
|
|
122
|
+
type: typing.Literal[OutputTableCellContentType.IMAGE] = OutputTableCellContentType.IMAGE
|
|
123
|
+
file_name: str
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
127
|
+
OutputTableCellContent = typing.Annotated[
|
|
128
|
+
OutputTableCellContentText | OutputTableCellContentImage,
|
|
129
|
+
serial_union_annotation(
|
|
130
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputTableCellContent",
|
|
131
|
+
discriminator="type",
|
|
132
|
+
discriminator_map={
|
|
133
|
+
"text": OutputTableCellContentText,
|
|
134
|
+
"image": OutputTableCellContentImage,
|
|
135
|
+
},
|
|
136
|
+
),
|
|
137
|
+
]
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
141
|
+
@serial_class(
|
|
142
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputTableCellStyle",
|
|
143
|
+
)
|
|
144
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
145
|
+
class OutputTableCellStyle:
|
|
146
|
+
background_color: str | None = None
|
|
147
|
+
bold: bool | None = None
|
|
148
|
+
italic: bool | None = None
|
|
149
|
+
underline: bool | None = None
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
153
|
+
@serial_class(
|
|
154
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputTableCell",
|
|
155
|
+
)
|
|
156
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
157
|
+
class OutputTableCell:
|
|
158
|
+
content: OutputTableCellContent
|
|
159
|
+
style: OutputTableCellStyle | None = None
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
163
|
+
@serial_class(
|
|
164
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentTable",
|
|
165
|
+
parse_require={"type"},
|
|
166
|
+
)
|
|
167
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
168
|
+
class OutputContentTable:
|
|
169
|
+
type: typing.Literal[OutputContentType.TABLE] = OutputContentType.TABLE
|
|
170
|
+
rows: list[list[OutputTableCell]]
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
174
|
+
@serial_class(
|
|
175
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentChemicalStructure",
|
|
176
|
+
parse_require={"type"},
|
|
177
|
+
)
|
|
178
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
179
|
+
class OutputContentChemicalStructure:
|
|
180
|
+
type: typing.Literal[OutputContentType.CHEMICAL_STRUCTURE] = OutputContentType.CHEMICAL_STRUCTURE
|
|
181
|
+
structure_format: ChemicalStructureOutputFormat
|
|
182
|
+
structure_data: str
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
186
|
+
@serial_class(
|
|
187
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentEquation",
|
|
188
|
+
parse_require={"type"},
|
|
189
|
+
)
|
|
190
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
191
|
+
class OutputContentEquation:
|
|
192
|
+
type: typing.Literal[OutputContentType.EQUATION] = OutputContentType.EQUATION
|
|
193
|
+
equation: str
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
197
|
+
@serial_class(
|
|
198
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentFiles",
|
|
199
|
+
parse_require={"type"},
|
|
200
|
+
)
|
|
201
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
202
|
+
class OutputContentFiles:
|
|
203
|
+
type: typing.Literal[OutputContentType.FILES] = OutputContentType.FILES
|
|
204
|
+
file_names: list[str]
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
208
|
+
@serial_class(
|
|
209
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentImage",
|
|
210
|
+
parse_require={"type"},
|
|
211
|
+
)
|
|
212
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
213
|
+
class OutputContentImage:
|
|
214
|
+
type: typing.Literal[OutputContentType.IMAGE] = OutputContentType.IMAGE
|
|
215
|
+
file_names: list[str]
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
219
|
+
@serial_class(
|
|
220
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentChemicalStructureError",
|
|
221
|
+
parse_require={"type"},
|
|
222
|
+
)
|
|
223
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
224
|
+
class OutputContentChemicalStructureError:
|
|
225
|
+
type: typing.Literal[OutputContentType.CHEMICAL_STRUCTURE_ERROR] = OutputContentType.CHEMICAL_STRUCTURE_ERROR
|
|
226
|
+
message: str
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
230
|
+
@serial_class(
|
|
231
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContentReactionTable",
|
|
232
|
+
parse_require={"type"},
|
|
233
|
+
)
|
|
234
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
235
|
+
class OutputContentReactionTable:
|
|
236
|
+
type: typing.Literal[OutputContentType.REACTION_TABLE] = OutputContentType.REACTION_TABLE
|
|
237
|
+
reaction_data: str
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
241
|
+
OutputContent = typing.Annotated[
|
|
242
|
+
OutputContentTextHtml | OutputContentTable | OutputContentChemicalStructure | OutputContentEquation | OutputContentChemicalStructureError | OutputContentFiles | OutputContentImage | OutputContentReactionTable,
|
|
243
|
+
serial_union_annotation(
|
|
244
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.OutputContent",
|
|
245
|
+
discriminator="type",
|
|
246
|
+
discriminator_map={
|
|
247
|
+
"text_html": OutputContentTextHtml,
|
|
248
|
+
"table": OutputContentTable,
|
|
249
|
+
"chemical_structure": OutputContentChemicalStructure,
|
|
250
|
+
"equation": OutputContentEquation,
|
|
251
|
+
"chemical_structure_error": OutputContentChemicalStructureError,
|
|
252
|
+
"files": OutputContentFiles,
|
|
253
|
+
"image": OutputContentImage,
|
|
254
|
+
"reaction_table": OutputContentReactionTable,
|
|
255
|
+
},
|
|
256
|
+
),
|
|
257
|
+
]
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
261
|
+
@serial_class(
|
|
262
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.Arguments",
|
|
263
|
+
)
|
|
264
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
265
|
+
class Arguments:
|
|
266
|
+
notebook_key: identifier_t.IdentifierKey
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
270
|
+
@serial_class(
|
|
271
|
+
named_type_path="sdk.api.notebooks.get_notebook_content.Data",
|
|
272
|
+
)
|
|
273
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
274
|
+
class Data:
|
|
275
|
+
contents: list[OutputContent]
|
|
276
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -30,6 +30,7 @@ ENDPOINT_PATH = "api/external/triggers/run_trigger"
|
|
|
30
30
|
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
31
31
|
class Arguments:
|
|
32
32
|
trigger_ref_name: str
|
|
33
|
+
entity_identifier: entity_t.EntityIdentifier | None = None
|
|
33
34
|
entity: entity_t.Entity | None = None
|
|
34
35
|
|
|
35
36
|
|
|
@@ -35,6 +35,7 @@ import uncountable.types.api.integrations.push_notification as push_notification
|
|
|
35
35
|
from uncountable.types import recipe_identifiers_t
|
|
36
36
|
from uncountable.types import recipe_metadata_t
|
|
37
37
|
from uncountable.types import recipe_workflow_steps_t
|
|
38
|
+
import uncountable.types.api.triggers.run_trigger as run_trigger_t
|
|
38
39
|
import uncountable.types.api.entity.set_barcode as set_barcode_t
|
|
39
40
|
import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
|
|
40
41
|
import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
|
|
@@ -680,6 +681,44 @@ class AsyncBatchProcessorBase(ABC):
|
|
|
680
681
|
batch_reference=req.batch_reference,
|
|
681
682
|
)
|
|
682
683
|
|
|
684
|
+
def run_trigger(
|
|
685
|
+
self,
|
|
686
|
+
*,
|
|
687
|
+
trigger_ref_name: str,
|
|
688
|
+
entity_identifier: entity_t.EntityIdentifier | None = None,
|
|
689
|
+
entity: entity_t.Entity | None = None,
|
|
690
|
+
depends_on: list[str] | None = None,
|
|
691
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
692
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
693
|
+
"""Runs a trigger. Requires admin access
|
|
694
|
+
|
|
695
|
+
:param entity_identifier: Identifier of the entity to run the trigger on.
|
|
696
|
+
:param entity: [Deprecated: use entity_identifier] Entity to run the trigger on.
|
|
697
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
698
|
+
"""
|
|
699
|
+
args = run_trigger_t.Arguments(
|
|
700
|
+
entity_identifier=entity_identifier,
|
|
701
|
+
entity=entity,
|
|
702
|
+
trigger_ref_name=trigger_ref_name,
|
|
703
|
+
)
|
|
704
|
+
json_data = serialize_for_api(args)
|
|
705
|
+
|
|
706
|
+
batch_reference = str(uuid.uuid4())
|
|
707
|
+
|
|
708
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
709
|
+
path=async_batch_t.AsyncBatchRequestPath.RUN_TRIGGER,
|
|
710
|
+
data=json_data,
|
|
711
|
+
depends_on=depends_on,
|
|
712
|
+
batch_reference=batch_reference,
|
|
713
|
+
)
|
|
714
|
+
|
|
715
|
+
self._enqueue(req)
|
|
716
|
+
|
|
717
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
718
|
+
path=req.path,
|
|
719
|
+
batch_reference=req.batch_reference,
|
|
720
|
+
)
|
|
721
|
+
|
|
683
722
|
def set_barcode(
|
|
684
723
|
self,
|
|
685
724
|
*,
|
uncountable/types/client_base.py
CHANGED
|
@@ -38,6 +38,7 @@ import uncountable.types.api.batch.execute_batch as execute_batch_t
|
|
|
38
38
|
import uncountable.types.api.batch.execute_batch_load_async as execute_batch_load_async_t
|
|
39
39
|
import uncountable.types.api.runsheet.export_default_runsheet as export_default_runsheet_t
|
|
40
40
|
import uncountable.types.api.entity.export_entities as export_entities_t
|
|
41
|
+
import uncountable.types.api.listing.export_listing as export_listing_t
|
|
41
42
|
from uncountable.types import exports_t
|
|
42
43
|
import uncountable.types.api.listing.fetch_listing as fetch_listing_t
|
|
43
44
|
from uncountable.types import field_values_t
|
|
@@ -50,6 +51,7 @@ import uncountable.types.api.inputs.get_input_data as get_input_data_t
|
|
|
50
51
|
import uncountable.types.api.input_groups.get_input_group_names as get_input_group_names_t
|
|
51
52
|
import uncountable.types.api.inputs.get_input_names as get_input_names_t
|
|
52
53
|
import uncountable.types.api.inputs.get_inputs_data as get_inputs_data_t
|
|
54
|
+
import uncountable.types.api.notebooks.get_notebook_content as get_notebook_content_t
|
|
53
55
|
import uncountable.types.api.outputs.get_output_data as get_output_data_t
|
|
54
56
|
import uncountable.types.api.outputs.get_output_names as get_output_names_t
|
|
55
57
|
import uncountable.types.api.outputs.get_output_organization as get_output_organization_t
|
|
@@ -793,6 +795,33 @@ class ClientMethods(ABC):
|
|
|
793
795
|
)
|
|
794
796
|
return self.do_request(api_request=api_request, return_type=export_entities_t.Data)
|
|
795
797
|
|
|
798
|
+
def export_listing(
|
|
799
|
+
self,
|
|
800
|
+
*,
|
|
801
|
+
entity_type: entity_t.EntityType,
|
|
802
|
+
columns: list[listing_t.ColumnIdentifier],
|
|
803
|
+
filters: listing_t.FilterNode | None = None,
|
|
804
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
805
|
+
) -> export_listing_t.Data:
|
|
806
|
+
"""Generate an asynchronous listing export with the provided columns and filters
|
|
807
|
+
|
|
808
|
+
:param entity_type: The entity type to fetch listing entries for
|
|
809
|
+
:param columns: The columns to include in the results
|
|
810
|
+
:param filters: Structured filters to apply to the listing, represented by a FilterNode object
|
|
811
|
+
"""
|
|
812
|
+
args = export_listing_t.Arguments(
|
|
813
|
+
entity_type=entity_type,
|
|
814
|
+
columns=columns,
|
|
815
|
+
filters=filters,
|
|
816
|
+
)
|
|
817
|
+
api_request = APIRequest(
|
|
818
|
+
method=export_listing_t.ENDPOINT_METHOD,
|
|
819
|
+
endpoint=export_listing_t.ENDPOINT_PATH,
|
|
820
|
+
args=args,
|
|
821
|
+
request_options=_request_options,
|
|
822
|
+
)
|
|
823
|
+
return self.do_request(api_request=api_request, return_type=export_listing_t.Data)
|
|
824
|
+
|
|
796
825
|
def fetch_listing(
|
|
797
826
|
self,
|
|
798
827
|
*,
|
|
@@ -1020,6 +1049,26 @@ class ClientMethods(ABC):
|
|
|
1020
1049
|
)
|
|
1021
1050
|
return self.do_request(api_request=api_request, return_type=get_inputs_data_t.Data)
|
|
1022
1051
|
|
|
1052
|
+
def get_notebook_content(
|
|
1053
|
+
self,
|
|
1054
|
+
*,
|
|
1055
|
+
notebook_key: identifier_t.IdentifierKey,
|
|
1056
|
+
_request_options: client_config_t.RequestOptions | None = None,
|
|
1057
|
+
) -> get_notebook_content_t.Data:
|
|
1058
|
+
"""Gets the structured content of a notebook. Only exportable cell types are included in the response — currently text, table, chemical structure, equation, file, image, and reaction table. Other cell types (e.g. charts, graphs, dashboards) are omitted. Cells marked as excluded from export are also omitted.
|
|
1059
|
+
|
|
1060
|
+
"""
|
|
1061
|
+
args = get_notebook_content_t.Arguments(
|
|
1062
|
+
notebook_key=notebook_key,
|
|
1063
|
+
)
|
|
1064
|
+
api_request = APIRequest(
|
|
1065
|
+
method=get_notebook_content_t.ENDPOINT_METHOD,
|
|
1066
|
+
endpoint=get_notebook_content_t.ENDPOINT_PATH,
|
|
1067
|
+
args=args,
|
|
1068
|
+
request_options=_request_options,
|
|
1069
|
+
)
|
|
1070
|
+
return self.do_request(api_request=api_request, return_type=get_notebook_content_t.Data)
|
|
1071
|
+
|
|
1023
1072
|
def get_output_data(
|
|
1024
1073
|
self,
|
|
1025
1074
|
*,
|
|
@@ -1755,13 +1804,17 @@ class ClientMethods(ABC):
|
|
|
1755
1804
|
self,
|
|
1756
1805
|
*,
|
|
1757
1806
|
trigger_ref_name: str,
|
|
1807
|
+
entity_identifier: entity_t.EntityIdentifier | None = None,
|
|
1758
1808
|
entity: entity_t.Entity | None = None,
|
|
1759
1809
|
_request_options: client_config_t.RequestOptions | None = None,
|
|
1760
1810
|
) -> run_trigger_t.Data:
|
|
1761
1811
|
"""Runs a trigger. Requires admin access
|
|
1762
1812
|
|
|
1813
|
+
:param entity_identifier: Identifier of the entity to run the trigger on.
|
|
1814
|
+
:param entity: [Deprecated: use entity_identifier] Entity to run the trigger on.
|
|
1763
1815
|
"""
|
|
1764
1816
|
args = run_trigger_t.Arguments(
|
|
1817
|
+
entity_identifier=entity_identifier,
|
|
1765
1818
|
entity=entity,
|
|
1766
1819
|
trigger_ref_name=trigger_ref_name,
|
|
1767
1820
|
)
|
uncountable/types/entity_t.py
CHANGED
|
@@ -65,6 +65,7 @@ __all__: list[str] = [
|
|
|
65
65
|
"entity_definition_field": "Entity Definition Field",
|
|
66
66
|
"entity_definition_field_group": "Entity Definition Field Group",
|
|
67
67
|
"entity_definition_transition": "Entity Definition Transition",
|
|
68
|
+
"entity_internal_version_tracker": "Entity Internal Version Tracker",
|
|
68
69
|
"entity_field": "Field",
|
|
69
70
|
"entity_field_audit_log": "Entity Field Audit Log",
|
|
70
71
|
"entity_fingerprint": "Entity Fingerprint",
|
|
@@ -92,6 +93,7 @@ __all__: list[str] = [
|
|
|
92
93
|
"ingredient": "Ingredient",
|
|
93
94
|
"ingredient_attribute": "Ingredient Attribute",
|
|
94
95
|
"ingredient_attribute_category": "Ingredient Attribute Category",
|
|
96
|
+
"ingredient_attribute_annotation": "Ingredient Attribute Annotation",
|
|
95
97
|
"ingredient_attribute_value": "Ingredient Attribute Value",
|
|
96
98
|
"ingredient_category": "Ingredient Category (Project)",
|
|
97
99
|
"ingredient_category_all": "Ingredient Category",
|
|
@@ -159,6 +161,7 @@ __all__: list[str] = [
|
|
|
159
161
|
"recipe_export": "Recipe Export",
|
|
160
162
|
"recipe_goal": "Experiment Goal",
|
|
161
163
|
"recipe_ingredient": "Recipe Ingredient",
|
|
164
|
+
"recipe_ingredient_annotation": "Recipe Ingredient Annotation",
|
|
162
165
|
"recipe_ingredient_actual": "Recipe Ingredient Actual",
|
|
163
166
|
"recipe_ingredient_calculation": "Recipe Ingredient Calculation",
|
|
164
167
|
"recipe_ingredients_compounded": "Recipe Ingredients Compounded",
|
|
@@ -290,6 +293,7 @@ class EntityType(StrEnum):
|
|
|
290
293
|
ENTITY_DEFINITION_FIELD = "entity_definition_field"
|
|
291
294
|
ENTITY_DEFINITION_FIELD_GROUP = "entity_definition_field_group"
|
|
292
295
|
ENTITY_DEFINITION_TRANSITION = "entity_definition_transition"
|
|
296
|
+
ENTITY_INTERNAL_VERSION_TRACKER = "entity_internal_version_tracker"
|
|
293
297
|
ENTITY_FIELD = "entity_field"
|
|
294
298
|
ENTITY_FIELD_AUDIT_LOG = "entity_field_audit_log"
|
|
295
299
|
ENTITY_FINGERPRINT = "entity_fingerprint"
|
|
@@ -317,6 +321,7 @@ class EntityType(StrEnum):
|
|
|
317
321
|
INGREDIENT = "ingredient"
|
|
318
322
|
INGREDIENT_ATTRIBUTE = "ingredient_attribute"
|
|
319
323
|
INGREDIENT_ATTRIBUTE_CATEGORY = "ingredient_attribute_category"
|
|
324
|
+
INGREDIENT_ATTRIBUTE_ANNOTATION = "ingredient_attribute_annotation"
|
|
320
325
|
INGREDIENT_ATTRIBUTE_VALUE = "ingredient_attribute_value"
|
|
321
326
|
INGREDIENT_CATEGORY = "ingredient_category"
|
|
322
327
|
INGREDIENT_CATEGORY_ALL = "ingredient_category_all"
|
|
@@ -384,6 +389,7 @@ class EntityType(StrEnum):
|
|
|
384
389
|
RECIPE_EXPORT = "recipe_export"
|
|
385
390
|
RECIPE_GOAL = "recipe_goal"
|
|
386
391
|
RECIPE_INGREDIENT = "recipe_ingredient"
|
|
392
|
+
RECIPE_INGREDIENT_ANNOTATION = "recipe_ingredient_annotation"
|
|
387
393
|
RECIPE_INGREDIENT_ACTUAL = "recipe_ingredient_actual"
|
|
388
394
|
RECIPE_INGREDIENT_CALCULATION = "recipe_ingredient_calculation"
|
|
389
395
|
RECIPE_INGREDIENTS_COMPOUNDED = "recipe_ingredients_compounded"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: UncountablePythonSDK
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.156
|
|
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
|
|
@@ -2,7 +2,7 @@ docs/.gitignore,sha256=_ebkZUcwfvfnGEJ95rfj1lxoBNd6EE9ZvtOc7FsbfFE,7
|
|
|
2
2
|
docs/conf.py,sha256=Ky-_Y76T7pwN2aBG-dSF79Av70e7ASgcOXEdQ1qyor4,3542
|
|
3
3
|
docs/index.md,sha256=g4Yi5831fEkywYkkcFohYLkKzSI91SOZF7DxKsm9zgI,3193
|
|
4
4
|
docs/justfile,sha256=WymCEQ6W2A8Ak79iUPmecmuaUNN2htb7STUrz5K7ELE,273
|
|
5
|
-
docs/requirements.txt,sha256=
|
|
5
|
+
docs/requirements.txt,sha256=gVAxkq2HhYRQ8HIlV4Mnuou1L4cEKTq3jJ4--adr24M,172
|
|
6
6
|
docs/integration_examples/create_ingredient.md,sha256=bzTQ943YhINxa3HQylEA26rbAsjr6HvvN_HkVkrzUeA,1547
|
|
7
7
|
docs/integration_examples/create_output.md,sha256=aDn2TjzKgY-HnxnvgsZS578cvajmHpF1y2HKkHfdtd4,2104
|
|
8
8
|
docs/integration_examples/index.md,sha256=LaQiK1fT8XLtazxLvPr2YjIf3Jh_Mi-goOMLatiozK8,85
|
|
@@ -18,6 +18,7 @@ docs/static/favicons/manifest.json,sha256=6q_3nZkcg_x0xut4eE-xpdeMY1TydwiZIcbXlL
|
|
|
18
18
|
docs/static/favicons/mstile-150x150.png,sha256=eAK4QdEofhdLtfmjuPTpnX3MJqYnvGXsHYUjlcQekyY,1035
|
|
19
19
|
docs/static/favicons/safari-pinned-tab.svg,sha256=S84fRnz0ZxLnQrKtmmFZytiRyu1xLtMR_RVy5jmwU7k,1926
|
|
20
20
|
examples/async_batch.py,sha256=tEyvgxk2uf681mKlN4TDuPMkb1OHyM9oO8pYW4A7HvM,1142
|
|
21
|
+
examples/async_batch_large_parse.py,sha256=jFM57xQsJpgDmHMhVrrFG4HU6dRfucRKtGHgCV6dh9U,1264
|
|
21
22
|
examples/basic_auth.py,sha256=RU7dx_y5sWiS-wN70BXReWLwHoZ8TNmGh14e_JyG8tw,228
|
|
22
23
|
examples/create_entity.py,sha256=t6WBZsWRDbWZgFCWXKGgKL5LAB6-38oaiNYGxMAa2No,686
|
|
23
24
|
examples/create_ingredient_sdk.py,sha256=3Wte0MUH0-vOs6VtSLPIVQEmBVbR85u_qq0L9MmeP4Q,1054
|
|
@@ -81,7 +82,7 @@ pkgs/type_spec/emit_io_ts.py,sha256=-y-HvggrD_ly57jbXd8QCh7GoRnVFdf7bvVE1X2_R-0,
|
|
|
81
82
|
pkgs/type_spec/emit_open_api.py,sha256=n3VNr796xKpmwQWtVXyGDxBQYpJ8X7nqKn5H-ESWV9M,27967
|
|
82
83
|
pkgs/type_spec/emit_open_api_util.py,sha256=bTmRvrGP82-eB75hwf9ySI7pDEC87FNQTF18VKEWSXY,2367
|
|
83
84
|
pkgs/type_spec/emit_python.py,sha256=AGP3icnRmWt65JBT5hCKMn8Li8fwL25JeaDvxxgk13s,56987
|
|
84
|
-
pkgs/type_spec/emit_typescript.py,sha256=
|
|
85
|
+
pkgs/type_spec/emit_typescript.py,sha256=Qu9f1Yv_wc449KHcBGO58hatbzvPvgMbZ11jferi3oY,11567
|
|
85
86
|
pkgs/type_spec/emit_typescript_util.py,sha256=bLFf9cE0le-yjpcNtk0z5tVrwdErREjsQ4GVO9Shpis,13153
|
|
86
87
|
pkgs/type_spec/load_types.py,sha256=GsZSWJGBRr5GdC0aYXHz6qWjFEc7A7yjLW-Hugscl5o,4297
|
|
87
88
|
pkgs/type_spec/non_discriminated_union_exceptions.py,sha256=JB4WNDJWc3e9WMOabX4aTd0-6K7n1hctIW2lGf1bYts,612
|
|
@@ -92,7 +93,7 @@ pkgs/type_spec/actions_registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
92
93
|
pkgs/type_spec/actions_registry/__main__.py,sha256=SRw6kIhHTW7W2wGijYq66JARzoc4KpPmbLqwvnETyTE,4277
|
|
93
94
|
pkgs/type_spec/actions_registry/emit_typescript.py,sha256=W1lI36ITdJ7MBf37wlTB7H3X9Ljt217vIGMv4e3fxfY,5986
|
|
94
95
|
pkgs/type_spec/parts/base.py.prepart,sha256=TqhZbxne0nkkm_VFpZsLiZdANmKmd-1CFCpI4b7oSYo,2467
|
|
95
|
-
pkgs/type_spec/parts/base.ts.prepart,sha256=
|
|
96
|
+
pkgs/type_spec/parts/base.ts.prepart,sha256=lbI-H8O1vtQOFafttLRJziU6SNeVpYNG6A9kjAkQtug,1373
|
|
96
97
|
pkgs/type_spec/type_info/__main__.py,sha256=TLNvCHGcmaj_8Sj5bAQNpuNaaw2dpDzoFDWZds0V4Qo,1002
|
|
97
98
|
pkgs/type_spec/type_info/emit_type_info.py,sha256=mLDt_4J7j_nKdRXvE9LqIITTj26i1ALTNMCiDZCkWsQ,17155
|
|
98
99
|
pkgs/type_spec/ui_entry_actions/__init__.py,sha256=WiHE_BexOEZWbkkbD7EnFau1aMLNmfgQywG9PTQNCkw,135
|
|
@@ -106,7 +107,7 @@ uncountable/__init__.py,sha256=8l8XWNCKsu7TG94c-xa2KHpDegvxDC2FyQISdWC763Y,89
|
|
|
106
107
|
uncountable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
108
|
uncountable/core/__init__.py,sha256=RFv0kO6rKFf1PtBPu83hCGmxqkJamRtsgQ9_-ztw7tA,341
|
|
108
109
|
uncountable/core/async_batch.py,sha256=9pYGFzVCQXt8059qFHgutweGIFPquJ5Xfq6NT5P-1K0,1206
|
|
109
|
-
uncountable/core/client.py,sha256=
|
|
110
|
+
uncountable/core/client.py,sha256=5_yzxpnl_-YVXaDVX4XflqarHVK1AU9EoDUXzcuYTao,14679
|
|
110
111
|
uncountable/core/environment.py,sha256=Z9vu7JtnSDgQB_KKcZnjTFNyARXjRr_PDW9krwxNNAo,1132
|
|
111
112
|
uncountable/core/file_upload.py,sha256=PTSikMVgBRZVndGwtnRZn_LzjSYtC8Nu4OC9maXBr0Y,4679
|
|
112
113
|
uncountable/core/types.py,sha256=s2CjqYJpsmbC7xMwxxT7kJ_V9bwokrjjWVVjpMcQpKI,333
|
|
@@ -133,7 +134,7 @@ uncountable/integration/queue_runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
133
134
|
uncountable/integration/queue_runner/job_scheduler.py,sha256=RWWDADzLFoTVVIAFqSzDedh8Kcpz9ChamEnjCZZa6Aw,9799
|
|
134
135
|
uncountable/integration/queue_runner/queue_runner.py,sha256=N4sUXmlGzVquybiJ7NQZavCJOBGrxBj6k7mb-TITaN0,1139
|
|
135
136
|
uncountable/integration/queue_runner/types.py,sha256=8HS6KnYMS_vc5XHeMpg0BFAQC-5P3QLzd-aDYDMMt3E,244
|
|
136
|
-
uncountable/integration/queue_runner/worker.py,sha256=
|
|
137
|
+
uncountable/integration/queue_runner/worker.py,sha256=Xvg3MGxvAKtq1GoynhUsLKw8bkCGorgRVm3gQRdkTMs,5136
|
|
137
138
|
uncountable/integration/queue_runner/command_server/__init__.py,sha256=hMCDLWct8zW4B2a9BaIAsMhtaEgFlxONjeow-6nf6dg,675
|
|
138
139
|
uncountable/integration/queue_runner/command_server/command_client.py,sha256=znMu7QJZas6Jqj4i8TOKWhvdSiO58fYv3SpNhD_lF4M,5754
|
|
139
140
|
uncountable/integration/queue_runner/command_server/command_server.py,sha256=9fh2udUGJ4s6VgO1w_IqsELyM0Qn-39_1o7i_VEjQqY,7704
|
|
@@ -151,10 +152,10 @@ uncountable/integration/queue_runner/datastore/model.py,sha256=YPqlULU7FxuwjmhXG
|
|
|
151
152
|
uncountable/integration/secret_retrieval/__init__.py,sha256=3QXVj35w8rRMxVvmmsViFYDi3lcb3g70incfalOEm6o,87
|
|
152
153
|
uncountable/integration/secret_retrieval/retrieve_secret.py,sha256=LBEf18KHtXZxg-ZZ80stJ1vW39AWf0CQllP6pNu3Eq8,2994
|
|
153
154
|
uncountable/integration/webhook_server/entrypoint.py,sha256=RQndrVCKdaVBk-xJ592eGqeN-O0IOM7flXDGoJ2HXsc,3505
|
|
154
|
-
uncountable/types/__init__.py,sha256=
|
|
155
|
+
uncountable/types/__init__.py,sha256=ApHBQPfdsERb_lWeFAtwDb1yJO7YztgBt2BKa4-HlcI,12545
|
|
155
156
|
uncountable/types/async_batch.py,sha256=yCCWrrLQfxXVqZp-KskxLBNkNmuELdz4PJjx8ULppgs,662
|
|
156
|
-
uncountable/types/async_batch_processor.py,sha256=
|
|
157
|
-
uncountable/types/async_batch_t.py,sha256=
|
|
157
|
+
uncountable/types/async_batch_processor.py,sha256=u1HH3sKLrxsJQQYe-Kh81BFpKMO_VTr97x1aXggh-4w,36680
|
|
158
|
+
uncountable/types/async_batch_t.py,sha256=2o6BGg8L6JoYl57AHkdhCvT8t-JZKEPlKmpih8_p42k,4170
|
|
158
159
|
uncountable/types/async_jobs.py,sha256=JI0ScfawaqMRbJ2jbgW3YQLhijPnBeYdMnZJjygSxHg,322
|
|
159
160
|
uncountable/types/async_jobs_t.py,sha256=u4xd3i512PZ-9592Q2ZgWh_faMiI4UMm0F_gOmZnerI,1389
|
|
160
161
|
uncountable/types/auth_retrieval.py,sha256=770zjN1K9EF5zs1Xml7x6ke6Hkze7rcMT5FdDVCIl9M,549
|
|
@@ -165,7 +166,7 @@ uncountable/types/calculations.py,sha256=fApOFpgBemt_t7IVneVR0VdI3X5EOxiG6Xhzr6R
|
|
|
165
166
|
uncountable/types/calculations_t.py,sha256=pl-lhjyDQuj11Sf9g1-0BsSkN7Ez8UxDp8-KMQ_3enM,709
|
|
166
167
|
uncountable/types/chemical_structure.py,sha256=ujyragaD26-QG5jgKnWhO7TN3N1V9b_04T2WhqNYxxo,281
|
|
167
168
|
uncountable/types/chemical_structure_t.py,sha256=VFFyits_vx4t5L2euu_qFiSpsGJjURkDPr3ISnr3nPc,855
|
|
168
|
-
uncountable/types/client_base.py,sha256=
|
|
169
|
+
uncountable/types/client_base.py,sha256=2DdQ2wU4mt7BgshN1mlfPmhTNxmihL3td1SaAYGacY0,107904
|
|
169
170
|
uncountable/types/client_config.py,sha256=xTQfTRTwnAc8ArvOuQdkKGy1uvGcXgQ_cgqsxhQLFgU,342
|
|
170
171
|
uncountable/types/client_config_t.py,sha256=8JoXNcyYT26uJSs5qP3L6yaPgkn23y-o0NhLFU3ilbc,1089
|
|
171
172
|
uncountable/types/curves.py,sha256=QyEyC20jsG-LGKVx6miiF-w70vKMwNkILFBDIJ5Ok9g,345
|
|
@@ -173,7 +174,7 @@ uncountable/types/curves_t.py,sha256=DxYepdC3QKKR7mepOOBoyarNcFZQdUa5ZYH-hwCY3BI
|
|
|
173
174
|
uncountable/types/data.py,sha256=u2isf4XEug3Eu-xSIoqGaCQmW2dFaKBHCkP_WKYwwBc,500
|
|
174
175
|
uncountable/types/data_t.py,sha256=vFoypK_WMGfN28r1sSlDYHZNUdBQC0XCN7-_Mlo4FJk,2832
|
|
175
176
|
uncountable/types/entity.py,sha256=Zclk1LYcRaYrMDhqyCjMSLEg0fE6_q8LHvV22Qvscgs,566
|
|
176
|
-
uncountable/types/entity_t.py,sha256=
|
|
177
|
+
uncountable/types/entity_t.py,sha256=8a3EWGsGWxsHaby0Ji95nd6uwA9txiR_UQWmpfl0Ic4,25606
|
|
177
178
|
uncountable/types/experiment_groups.py,sha256=qUpFOx1AKgzaT_4khCOv5Xs6jwiQGbvHH-GUh3v1nv4,288
|
|
178
179
|
uncountable/types/experiment_groups_t.py,sha256=29Ct-WPejpYMuGfnFfOoosU9iSfjzxpabpBX6oTPFUA,761
|
|
179
180
|
uncountable/types/exports.py,sha256=VMmxUO2PpV1Y63hZ2AnVor4H-B6aswJ7YpSru_u89lU,334
|
|
@@ -316,7 +317,8 @@ uncountable/types/api/listing/fetch_listing.py,sha256=JmMnD4BxPiSBwzWgwbl8iAoPOY
|
|
|
316
317
|
uncountable/types/api/material_families/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
317
318
|
uncountable/types/api/material_families/update_entity_material_families.py,sha256=qWJgAKH0MayadXvxckePCdo9yd34QXOmGZ7cKz5VLNo,1761
|
|
318
319
|
uncountable/types/api/notebooks/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
319
|
-
uncountable/types/api/notebooks/add_notebook_content.py,sha256=
|
|
320
|
+
uncountable/types/api/notebooks/add_notebook_content.py,sha256=Z8jDCXaKRnG479Uk8tDZoSJQ_0Cgvj-v6xiIbSYOtMQ,13881
|
|
321
|
+
uncountable/types/api/notebooks/get_notebook_content.py,sha256=xU1EbFpopNAe0_LIrPrJGsEIIAadZtsP0La_Km14d4s,9513
|
|
320
322
|
uncountable/types/api/outputs/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
321
323
|
uncountable/types/api/outputs/get_output_data.py,sha256=luGoQZzbZsGIzo2dXMD5f6rDlXEgBjnnUU9n5T-VL9Q,3069
|
|
322
324
|
uncountable/types/api/outputs/get_output_names.py,sha256=myxLS1YedzWlKs3st64jmM9XMUphrUltxKISBz4pVSo,1539
|
|
@@ -368,13 +370,13 @@ uncountable/types/api/runsheet/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr
|
|
|
368
370
|
uncountable/types/api/runsheet/complete_async_upload.py,sha256=r3zsmD8tcalMfa67MNdF7LE_YJjBsSXK07zZ9fMap0Y,1156
|
|
369
371
|
uncountable/types/api/runsheet/export_default_runsheet.py,sha256=Jk6e5U5LQXN_rjbJV7g6FO2YFEDVhK3m0PxDEywHDOk,1425
|
|
370
372
|
uncountable/types/api/triggers/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
371
|
-
uncountable/types/api/triggers/run_trigger.py,sha256=
|
|
373
|
+
uncountable/types/api/triggers/run_trigger.py,sha256=AlrVsqtbKVS55OgEjfckTTIGd6vwbXfH-ZuT8M04EXI,1267
|
|
372
374
|
uncountable/types/api/uploader/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
373
375
|
uncountable/types/api/uploader/complete_async_parse.py,sha256=nYYBzjT_j4L7_1Ge-iqgFhI4HYSQ20kO6r8b7rhwZTE,1412
|
|
374
376
|
uncountable/types/api/uploader/invoke_uploader.py,sha256=Bj7Dq4A90k00suacwk3bLA_dCb2aovS1kAbVam2AQnM,1395
|
|
375
377
|
uncountable/types/api/user/__init__.py,sha256=gCgbynxG3jA8FQHzercKtrHKHkiIKr8APdZYUniAor8,55
|
|
376
378
|
uncountable/types/api/user/get_current_user_info.py,sha256=Avqi_RXtRgbefrT_dwJ9MrO6eDNSSa_Nu650FSuESlg,1109
|
|
377
|
-
uncountablepythonsdk-0.0.
|
|
378
|
-
uncountablepythonsdk-0.0.
|
|
379
|
-
uncountablepythonsdk-0.0.
|
|
380
|
-
uncountablepythonsdk-0.0.
|
|
379
|
+
uncountablepythonsdk-0.0.156.dist-info/METADATA,sha256=9u-RDFRJ1_lz5oPMfPWrioiOVEh05abn1x3JhqsT-4I,2243
|
|
380
|
+
uncountablepythonsdk-0.0.156.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
381
|
+
uncountablepythonsdk-0.0.156.dist-info/top_level.txt,sha256=1UVGjAU-6hJY9qw2iJ7nCBeEwZ793AEN5ZfKX9A1uj4,31
|
|
382
|
+
uncountablepythonsdk-0.0.156.dist-info/RECORD,,
|
{uncountablepythonsdk-0.0.154.dist-info → uncountablepythonsdk-0.0.156.dist-info}/top_level.txt
RENAMED
|
File without changes
|