benchling-api-client 2.0.411__py3-none-any.whl → 2.0.412__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.
Files changed (49) hide show
  1. benchling_api_client/models/aa_sequence.py +32 -0
  2. benchling_api_client/models/aa_sequence_with_entity_type.py +32 -0
  3. benchling_api_client/models/benchling_app.py +4 -4
  4. benchling_api_client/models/box_schema.py +41 -0
  5. benchling_api_client/models/custom_entity.py +32 -0
  6. benchling_api_client/models/custom_entity_with_entity_type.py +32 -0
  7. benchling_api_client/models/dna_sequence.py +68 -0
  8. benchling_api_client/models/dna_sequence_with_entity_type.py +68 -0
  9. benchling_api_client/models/entry_schema_detailed.py +41 -0
  10. benchling_api_client/models/location_schema.py +41 -0
  11. benchling_api_client/models/monomer.py +32 -0
  12. benchling_api_client/models/plate_schema.py +41 -0
  13. benchling_api_client/models/request_response_samples_item_entity.py +68 -0
  14. benchling_api_client/models/rna_sequence.py +68 -0
  15. benchling_api_client/models/workflow_output.py +40 -0
  16. benchling_api_client/models/workflow_task.py +87 -0
  17. benchling_api_client/models/workflow_task_base.py +40 -0
  18. benchling_api_client/models/workflow_task_group.py +87 -0
  19. benchling_api_client/models/workflow_task_group_base.py +40 -0
  20. benchling_api_client/models/workflow_task_schema.py +41 -0
  21. benchling_api_client/v2/beta/models/aa_sequence.py +32 -0
  22. benchling_api_client/v2/beta/models/custom_entity.py +32 -0
  23. benchling_api_client/v2/beta/models/dna_sequence.py +68 -0
  24. benchling_api_client/v2/beta/openapi.yaml +14 -0
  25. benchling_api_client/v2/stable/models/aa_sequence.py +32 -0
  26. benchling_api_client/v2/stable/models/aa_sequence_with_entity_type.py +32 -0
  27. benchling_api_client/v2/stable/models/benchling_app.py +4 -4
  28. benchling_api_client/v2/stable/models/box_schema.py +41 -0
  29. benchling_api_client/v2/stable/models/custom_entity.py +32 -0
  30. benchling_api_client/v2/stable/models/custom_entity_with_entity_type.py +32 -0
  31. benchling_api_client/v2/stable/models/dna_sequence.py +68 -0
  32. benchling_api_client/v2/stable/models/dna_sequence_with_entity_type.py +68 -0
  33. benchling_api_client/v2/stable/models/entry_schema_detailed.py +41 -0
  34. benchling_api_client/v2/stable/models/location_schema.py +41 -0
  35. benchling_api_client/v2/stable/models/monomer.py +32 -0
  36. benchling_api_client/v2/stable/models/plate_schema.py +41 -0
  37. benchling_api_client/v2/stable/models/request_response_samples_item_entity.py +68 -0
  38. benchling_api_client/v2/stable/models/rna_sequence.py +68 -0
  39. benchling_api_client/v2/stable/models/workflow_output.py +40 -0
  40. benchling_api_client/v2/stable/models/workflow_task.py +87 -0
  41. benchling_api_client/v2/stable/models/workflow_task_base.py +40 -0
  42. benchling_api_client/v2/stable/models/workflow_task_group.py +87 -0
  43. benchling_api_client/v2/stable/models/workflow_task_group_base.py +40 -0
  44. benchling_api_client/v2/stable/models/workflow_task_schema.py +41 -0
  45. benchling_api_client/v2/stable/openapi.yaml +78 -2
  46. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/METADATA +1 -1
  47. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/RECORD +49 -49
  48. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/LICENSE +0 -0
  49. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/WHEEL +0 -0
@@ -36,6 +36,7 @@ class DnaSequenceWithEntityType:
36
36
  _created_at: Union[Unset, datetime.datetime] = UNSET
37
37
  _creator: Union[Unset, UserSummary] = UNSET
38
38
  _custom_fields: Union[Unset, CustomFields] = UNSET
39
+ _dna_alignment_ids: Union[Unset, List[str]] = UNSET
39
40
  _entity_registry_id: Union[Unset, None, str] = UNSET
40
41
  _fields: Union[Unset, Fields] = UNSET
41
42
  _folder_id: Union[Unset, None, str] = UNSET
@@ -51,6 +52,7 @@ class DnaSequenceWithEntityType:
51
52
  _schema: Union[Unset, None, SchemaSummary] = UNSET
52
53
  _transcriptions: Union[Unset, List[DnaSequenceTranscription]] = UNSET
53
54
  _translations: Union[Unset, List[Translation]] = UNSET
55
+ _url: Union[Unset, str] = UNSET
54
56
  _web_url: Union[Unset, str] = UNSET
55
57
  additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
56
58
 
@@ -66,6 +68,7 @@ class DnaSequenceWithEntityType:
66
68
  fields.append("created_at={}".format(repr(self._created_at)))
67
69
  fields.append("creator={}".format(repr(self._creator)))
68
70
  fields.append("custom_fields={}".format(repr(self._custom_fields)))
71
+ fields.append("dna_alignment_ids={}".format(repr(self._dna_alignment_ids)))
69
72
  fields.append("entity_registry_id={}".format(repr(self._entity_registry_id)))
70
73
  fields.append("fields={}".format(repr(self._fields)))
71
74
  fields.append("folder_id={}".format(repr(self._folder_id)))
@@ -81,6 +84,7 @@ class DnaSequenceWithEntityType:
81
84
  fields.append("schema={}".format(repr(self._schema)))
82
85
  fields.append("transcriptions={}".format(repr(self._transcriptions)))
83
86
  fields.append("translations={}".format(repr(self._translations)))
87
+ fields.append("url={}".format(repr(self._url)))
84
88
  fields.append("web_url={}".format(repr(self._web_url)))
85
89
  fields.append("additional_properties={}".format(repr(self.additional_properties)))
86
90
  return "DnaSequenceWithEntityType({})".format(", ".join(fields))
@@ -128,6 +132,10 @@ class DnaSequenceWithEntityType:
128
132
  if not isinstance(self._custom_fields, Unset):
129
133
  custom_fields = self._custom_fields.to_dict()
130
134
 
135
+ dna_alignment_ids: Union[Unset, List[Any]] = UNSET
136
+ if not isinstance(self._dna_alignment_ids, Unset):
137
+ dna_alignment_ids = self._dna_alignment_ids
138
+
131
139
  entity_registry_id = self._entity_registry_id
132
140
  fields: Union[Unset, Dict[str, Any]] = UNSET
133
141
  if not isinstance(self._fields, Unset):
@@ -183,6 +191,7 @@ class DnaSequenceWithEntityType:
183
191
 
184
192
  translations.append(translations_item)
185
193
 
194
+ url = self._url
186
195
  web_url = self._web_url
187
196
 
188
197
  field_dict: Dict[str, Any] = {}
@@ -208,6 +217,8 @@ class DnaSequenceWithEntityType:
208
217
  field_dict["creator"] = creator
209
218
  if custom_fields is not UNSET:
210
219
  field_dict["customFields"] = custom_fields
220
+ if dna_alignment_ids is not UNSET:
221
+ field_dict["dnaAlignmentIds"] = dna_alignment_ids
211
222
  if entity_registry_id is not UNSET:
212
223
  field_dict["entityRegistryId"] = entity_registry_id
213
224
  if fields is not UNSET:
@@ -238,6 +249,8 @@ class DnaSequenceWithEntityType:
238
249
  field_dict["transcriptions"] = transcriptions
239
250
  if translations is not UNSET:
240
251
  field_dict["translations"] = translations
252
+ if url is not UNSET:
253
+ field_dict["url"] = url
241
254
  if web_url is not UNSET:
242
255
  field_dict["webURL"] = web_url
243
256
 
@@ -396,6 +409,18 @@ class DnaSequenceWithEntityType:
396
409
  raise
397
410
  custom_fields = cast(Union[Unset, CustomFields], UNSET)
398
411
 
412
+ def get_dna_alignment_ids() -> Union[Unset, List[str]]:
413
+ dna_alignment_ids = cast(List[str], d.pop("dnaAlignmentIds"))
414
+
415
+ return dna_alignment_ids
416
+
417
+ try:
418
+ dna_alignment_ids = get_dna_alignment_ids()
419
+ except KeyError:
420
+ if strict:
421
+ raise
422
+ dna_alignment_ids = cast(Union[Unset, List[str]], UNSET)
423
+
399
424
  def get_entity_registry_id() -> Union[Unset, None, str]:
400
425
  entity_registry_id = d.pop("entityRegistryId")
401
426
  return entity_registry_id
@@ -606,6 +631,17 @@ class DnaSequenceWithEntityType:
606
631
  raise
607
632
  translations = cast(Union[Unset, List[Translation]], UNSET)
608
633
 
634
+ def get_url() -> Union[Unset, str]:
635
+ url = d.pop("url")
636
+ return url
637
+
638
+ try:
639
+ url = get_url()
640
+ except KeyError:
641
+ if strict:
642
+ raise
643
+ url = cast(Union[Unset, str], UNSET)
644
+
609
645
  def get_web_url() -> Union[Unset, str]:
610
646
  web_url = d.pop("webURL")
611
647
  return web_url
@@ -628,6 +664,7 @@ class DnaSequenceWithEntityType:
628
664
  created_at=created_at,
629
665
  creator=creator,
630
666
  custom_fields=custom_fields,
667
+ dna_alignment_ids=dna_alignment_ids,
631
668
  entity_registry_id=entity_registry_id,
632
669
  fields=fields,
633
670
  folder_id=folder_id,
@@ -643,6 +680,7 @@ class DnaSequenceWithEntityType:
643
680
  schema=schema,
644
681
  transcriptions=transcriptions,
645
682
  translations=translations,
683
+ url=url,
646
684
  web_url=web_url,
647
685
  )
648
686
 
@@ -809,6 +847,21 @@ class DnaSequenceWithEntityType:
809
847
  def custom_fields(self) -> None:
810
848
  self._custom_fields = UNSET
811
849
 
850
+ @property
851
+ def dna_alignment_ids(self) -> List[str]:
852
+ """ API IDs of Nucleotide Alignments involving the RNA sequence """
853
+ if isinstance(self._dna_alignment_ids, Unset):
854
+ raise NotPresentError(self, "dna_alignment_ids")
855
+ return self._dna_alignment_ids
856
+
857
+ @dna_alignment_ids.setter
858
+ def dna_alignment_ids(self, value: List[str]) -> None:
859
+ self._dna_alignment_ids = value
860
+
861
+ @dna_alignment_ids.deleter
862
+ def dna_alignment_ids(self) -> None:
863
+ self._dna_alignment_ids = UNSET
864
+
812
865
  @property
813
866
  def entity_registry_id(self) -> Optional[str]:
814
867
  if isinstance(self._entity_registry_id, Unset):
@@ -1019,6 +1072,21 @@ class DnaSequenceWithEntityType:
1019
1072
  def translations(self) -> None:
1020
1073
  self._translations = UNSET
1021
1074
 
1075
+ @property
1076
+ def url(self) -> str:
1077
+ """ The path of the web URL, omitting the tenant domain """
1078
+ if isinstance(self._url, Unset):
1079
+ raise NotPresentError(self, "url")
1080
+ return self._url
1081
+
1082
+ @url.setter
1083
+ def url(self, value: str) -> None:
1084
+ self._url = value
1085
+
1086
+ @url.deleter
1087
+ def url(self) -> None:
1088
+ self._url = UNSET
1089
+
1022
1090
  @property
1023
1091
  def web_url(self) -> str:
1024
1092
  if isinstance(self._web_url, Unset):
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -19,6 +21,7 @@ T = TypeVar("T", bound="EntrySchemaDetailed")
19
21
  class EntrySchemaDetailed:
20
22
  """ """
21
23
 
24
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
22
25
  _type: Union[Unset, EntrySchemaDetailedType] = UNSET
23
26
  _prefix: Union[Unset, str] = UNSET
24
27
  _registry_id: Union[Unset, str] = UNSET
@@ -42,6 +45,7 @@ class EntrySchemaDetailed:
42
45
 
43
46
  def __repr__(self):
44
47
  fields = []
48
+ fields.append("modified_at={}".format(repr(self._modified_at)))
45
49
  fields.append("type={}".format(repr(self._type)))
46
50
  fields.append("prefix={}".format(repr(self._prefix)))
47
51
  fields.append("registry_id={}".format(repr(self._registry_id)))
@@ -53,6 +57,10 @@ class EntrySchemaDetailed:
53
57
  return "EntrySchemaDetailed({})".format(", ".join(fields))
54
58
 
55
59
  def to_dict(self) -> Dict[str, Any]:
60
+ modified_at: Union[Unset, str] = UNSET
61
+ if not isinstance(self._modified_at, Unset):
62
+ modified_at = self._modified_at.isoformat()
63
+
56
64
  type: Union[Unset, int] = UNSET
57
65
  if not isinstance(self._type, Unset):
58
66
  type = self._type.value
@@ -92,6 +100,8 @@ class EntrySchemaDetailed:
92
100
  field_dict: Dict[str, Any] = {}
93
101
  field_dict.update(self.additional_properties)
94
102
  # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
103
+ if modified_at is not UNSET:
104
+ field_dict["modifiedAt"] = modified_at
95
105
  if type is not UNSET:
96
106
  field_dict["type"] = type
97
107
  if prefix is not UNSET:
@@ -113,6 +123,21 @@ class EntrySchemaDetailed:
113
123
  def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
114
124
  d = src_dict.copy()
115
125
 
126
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
127
+ modified_at: Union[Unset, datetime.datetime] = UNSET
128
+ _modified_at = d.pop("modifiedAt")
129
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
130
+ modified_at = isoparse(cast(str, _modified_at))
131
+
132
+ return modified_at
133
+
134
+ try:
135
+ modified_at = get_modified_at()
136
+ except KeyError:
137
+ if strict:
138
+ raise
139
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
140
+
116
141
  def get_type() -> Union[Unset, EntrySchemaDetailedType]:
117
142
  type = UNSET
118
143
  _type = d.pop("type")
@@ -297,6 +322,7 @@ class EntrySchemaDetailed:
297
322
  name = cast(Union[Unset, str], UNSET)
298
323
 
299
324
  entry_schema_detailed = cls(
325
+ modified_at=modified_at,
300
326
  type=type,
301
327
  prefix=prefix,
302
328
  registry_id=registry_id,
@@ -328,6 +354,21 @@ class EntrySchemaDetailed:
328
354
  def get(self, key, default=None) -> Optional[Any]:
329
355
  return self.additional_properties.get(key, default)
330
356
 
357
+ @property
358
+ def modified_at(self) -> datetime.datetime:
359
+ """ DateTime the Entry Schema was last modified """
360
+ if isinstance(self._modified_at, Unset):
361
+ raise NotPresentError(self, "modified_at")
362
+ return self._modified_at
363
+
364
+ @modified_at.setter
365
+ def modified_at(self, value: datetime.datetime) -> None:
366
+ self._modified_at = value
367
+
368
+ @modified_at.deleter
369
+ def modified_at(self) -> None:
370
+ self._modified_at = UNSET
371
+
331
372
  @property
332
373
  def type(self) -> EntrySchemaDetailedType:
333
374
  if isinstance(self._type, Unset):
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -19,6 +21,7 @@ T = TypeVar("T", bound="LocationSchema")
19
21
  class LocationSchema:
20
22
  """ """
21
23
 
24
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
22
25
  _type: Union[Unset, LocationSchemaType] = UNSET
23
26
  _prefix: Union[Unset, str] = UNSET
24
27
  _registry_id: Union[Unset, str] = UNSET
@@ -42,6 +45,7 @@ class LocationSchema:
42
45
 
43
46
  def __repr__(self):
44
47
  fields = []
48
+ fields.append("modified_at={}".format(repr(self._modified_at)))
45
49
  fields.append("type={}".format(repr(self._type)))
46
50
  fields.append("prefix={}".format(repr(self._prefix)))
47
51
  fields.append("registry_id={}".format(repr(self._registry_id)))
@@ -53,6 +57,10 @@ class LocationSchema:
53
57
  return "LocationSchema({})".format(", ".join(fields))
54
58
 
55
59
  def to_dict(self) -> Dict[str, Any]:
60
+ modified_at: Union[Unset, str] = UNSET
61
+ if not isinstance(self._modified_at, Unset):
62
+ modified_at = self._modified_at.isoformat()
63
+
56
64
  type: Union[Unset, int] = UNSET
57
65
  if not isinstance(self._type, Unset):
58
66
  type = self._type.value
@@ -92,6 +100,8 @@ class LocationSchema:
92
100
  field_dict: Dict[str, Any] = {}
93
101
  field_dict.update(self.additional_properties)
94
102
  # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
103
+ if modified_at is not UNSET:
104
+ field_dict["modifiedAt"] = modified_at
95
105
  if type is not UNSET:
96
106
  field_dict["type"] = type
97
107
  if prefix is not UNSET:
@@ -113,6 +123,21 @@ class LocationSchema:
113
123
  def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
114
124
  d = src_dict.copy()
115
125
 
126
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
127
+ modified_at: Union[Unset, datetime.datetime] = UNSET
128
+ _modified_at = d.pop("modifiedAt")
129
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
130
+ modified_at = isoparse(cast(str, _modified_at))
131
+
132
+ return modified_at
133
+
134
+ try:
135
+ modified_at = get_modified_at()
136
+ except KeyError:
137
+ if strict:
138
+ raise
139
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
140
+
116
141
  def get_type() -> Union[Unset, LocationSchemaType]:
117
142
  type = UNSET
118
143
  _type = d.pop("type")
@@ -297,6 +322,7 @@ class LocationSchema:
297
322
  name = cast(Union[Unset, str], UNSET)
298
323
 
299
324
  location_schema = cls(
325
+ modified_at=modified_at,
300
326
  type=type,
301
327
  prefix=prefix,
302
328
  registry_id=registry_id,
@@ -328,6 +354,21 @@ class LocationSchema:
328
354
  def get(self, key, default=None) -> Optional[Any]:
329
355
  return self.additional_properties.get(key, default)
330
356
 
357
+ @property
358
+ def modified_at(self) -> datetime.datetime:
359
+ """ DateTime the Location Schema was last modified """
360
+ if isinstance(self._modified_at, Unset):
361
+ raise NotPresentError(self, "modified_at")
362
+ return self._modified_at
363
+
364
+ @modified_at.setter
365
+ def modified_at(self, value: datetime.datetime) -> None:
366
+ self._modified_at = value
367
+
368
+ @modified_at.deleter
369
+ def modified_at(self) -> None:
370
+ self._modified_at = UNSET
371
+
331
372
  @property
332
373
  def type(self) -> LocationSchemaType:
333
374
  if isinstance(self._type, Unset):
@@ -24,6 +24,7 @@ class Monomer:
24
24
  _canonical_smiles: Union[Unset, str] = UNSET
25
25
  _created_at: Union[Unset, datetime.datetime] = UNSET
26
26
  _custom_molecular_weight: Union[Unset, None, float] = UNSET
27
+ _exact_molecular_weight: Union[Unset, float] = UNSET
27
28
  _id: Union[Unset, str] = UNSET
28
29
  _modified_at: Union[Unset, datetime.datetime] = UNSET
29
30
  _monomer_type: Union[Unset, MonomerType] = UNSET
@@ -44,6 +45,7 @@ class Monomer:
44
45
  fields.append("canonical_smiles={}".format(repr(self._canonical_smiles)))
45
46
  fields.append("created_at={}".format(repr(self._created_at)))
46
47
  fields.append("custom_molecular_weight={}".format(repr(self._custom_molecular_weight)))
48
+ fields.append("exact_molecular_weight={}".format(repr(self._exact_molecular_weight)))
47
49
  fields.append("id={}".format(repr(self._id)))
48
50
  fields.append("modified_at={}".format(repr(self._modified_at)))
49
51
  fields.append("monomer_type={}".format(repr(self._monomer_type)))
@@ -73,6 +75,7 @@ class Monomer:
73
75
  created_at = self._created_at.isoformat()
74
76
 
75
77
  custom_molecular_weight = self._custom_molecular_weight
78
+ exact_molecular_weight = self._exact_molecular_weight
76
79
  id = self._id
77
80
  modified_at: Union[Unset, str] = UNSET
78
81
  if not isinstance(self._modified_at, Unset):
@@ -110,6 +113,8 @@ class Monomer:
110
113
  field_dict["createdAt"] = created_at
111
114
  if custom_molecular_weight is not UNSET:
112
115
  field_dict["customMolecularWeight"] = custom_molecular_weight
116
+ if exact_molecular_weight is not UNSET:
117
+ field_dict["exactMolecularWeight"] = exact_molecular_weight
113
118
  if id is not UNSET:
114
119
  field_dict["id"] = id
115
120
  if modified_at is not UNSET:
@@ -213,6 +218,17 @@ class Monomer:
213
218
  raise
214
219
  custom_molecular_weight = cast(Union[Unset, None, float], UNSET)
215
220
 
221
+ def get_exact_molecular_weight() -> Union[Unset, float]:
222
+ exact_molecular_weight = d.pop("exactMolecularWeight")
223
+ return exact_molecular_weight
224
+
225
+ try:
226
+ exact_molecular_weight = get_exact_molecular_weight()
227
+ except KeyError:
228
+ if strict:
229
+ raise
230
+ exact_molecular_weight = cast(Union[Unset, float], UNSET)
231
+
216
232
  def get_id() -> Union[Unset, str]:
217
233
  id = d.pop("id")
218
234
  return id
@@ -355,6 +371,7 @@ class Monomer:
355
371
  canonical_smiles=canonical_smiles,
356
372
  created_at=created_at,
357
373
  custom_molecular_weight=custom_molecular_weight,
374
+ exact_molecular_weight=exact_molecular_weight,
358
375
  id=id,
359
376
  modified_at=modified_at,
360
377
  monomer_type=monomer_type,
@@ -478,6 +495,21 @@ class Monomer:
478
495
  def custom_molecular_weight(self) -> None:
479
496
  self._custom_molecular_weight = UNSET
480
497
 
498
+ @property
499
+ def exact_molecular_weight(self) -> float:
500
+ """ The exact molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure """
501
+ if isinstance(self._exact_molecular_weight, Unset):
502
+ raise NotPresentError(self, "exact_molecular_weight")
503
+ return self._exact_molecular_weight
504
+
505
+ @exact_molecular_weight.setter
506
+ def exact_molecular_weight(self, value: float) -> None:
507
+ self._exact_molecular_weight = value
508
+
509
+ @exact_molecular_weight.deleter
510
+ def exact_molecular_weight(self) -> None:
511
+ self._exact_molecular_weight = UNSET
512
+
481
513
  @property
482
514
  def id(self) -> str:
483
515
  """ ID of the monomer """
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -22,6 +24,7 @@ class PlateSchema:
22
24
 
23
25
  _container_schema: Union[Unset, None, PlateSchemaContainerSchema] = UNSET
24
26
  _height: Union[Unset, float] = UNSET
27
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
25
28
  _plate_type: Union[Unset, str] = UNSET
26
29
  _type: Union[Unset, PlateSchemaType] = UNSET
27
30
  _width: Union[Unset, float] = UNSET
@@ -49,6 +52,7 @@ class PlateSchema:
49
52
  fields = []
50
53
  fields.append("container_schema={}".format(repr(self._container_schema)))
51
54
  fields.append("height={}".format(repr(self._height)))
55
+ fields.append("modified_at={}".format(repr(self._modified_at)))
52
56
  fields.append("plate_type={}".format(repr(self._plate_type)))
53
57
  fields.append("type={}".format(repr(self._type)))
54
58
  fields.append("width={}".format(repr(self._width)))
@@ -67,6 +71,10 @@ class PlateSchema:
67
71
  container_schema = self._container_schema.to_dict() if self._container_schema else None
68
72
 
69
73
  height = self._height
74
+ modified_at: Union[Unset, str] = UNSET
75
+ if not isinstance(self._modified_at, Unset):
76
+ modified_at = self._modified_at.isoformat()
77
+
70
78
  plate_type = self._plate_type
71
79
  type: Union[Unset, int] = UNSET
72
80
  if not isinstance(self._type, Unset):
@@ -112,6 +120,8 @@ class PlateSchema:
112
120
  field_dict["containerSchema"] = container_schema
113
121
  if height is not UNSET:
114
122
  field_dict["height"] = height
123
+ if modified_at is not UNSET:
124
+ field_dict["modifiedAt"] = modified_at
115
125
  if plate_type is not UNSET:
116
126
  field_dict["plateType"] = plate_type
117
127
  if type is not UNSET:
@@ -164,6 +174,21 @@ class PlateSchema:
164
174
  raise
165
175
  height = cast(Union[Unset, float], UNSET)
166
176
 
177
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
178
+ modified_at: Union[Unset, datetime.datetime] = UNSET
179
+ _modified_at = d.pop("modifiedAt")
180
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
181
+ modified_at = isoparse(cast(str, _modified_at))
182
+
183
+ return modified_at
184
+
185
+ try:
186
+ modified_at = get_modified_at()
187
+ except KeyError:
188
+ if strict:
189
+ raise
190
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
191
+
167
192
  def get_plate_type() -> Union[Unset, str]:
168
193
  plate_type = d.pop("plateType")
169
194
  return plate_type
@@ -372,6 +397,7 @@ class PlateSchema:
372
397
  plate_schema = cls(
373
398
  container_schema=container_schema,
374
399
  height=height,
400
+ modified_at=modified_at,
375
401
  plate_type=plate_type,
376
402
  type=type,
377
403
  width=width,
@@ -433,6 +459,21 @@ class PlateSchema:
433
459
  def height(self) -> None:
434
460
  self._height = UNSET
435
461
 
462
+ @property
463
+ def modified_at(self) -> datetime.datetime:
464
+ """ DateTime the Plate Schema was last modified """
465
+ if isinstance(self._modified_at, Unset):
466
+ raise NotPresentError(self, "modified_at")
467
+ return self._modified_at
468
+
469
+ @modified_at.setter
470
+ def modified_at(self, value: datetime.datetime) -> None:
471
+ self._modified_at = value
472
+
473
+ @modified_at.deleter
474
+ def modified_at(self) -> None:
475
+ self._modified_at = UNSET
476
+
436
477
  @property
437
478
  def plate_type(self) -> str:
438
479
  if isinstance(self._plate_type, Unset):
@@ -48,6 +48,7 @@ class RequestResponseSamplesItemEntity:
48
48
  _registration_origin: Union[Unset, None, RegistrationOrigin] = UNSET
49
49
  _registry_id: Union[Unset, None, str] = UNSET
50
50
  _schema: Union[Unset, None, SchemaSummary] = UNSET
51
+ _url: Union[Unset, str] = UNSET
51
52
  _web_url: Union[Unset, str] = UNSET
52
53
  _annotations: Union[Unset, List[DnaAnnotation]] = UNSET
53
54
  _bases: Union[Unset, str] = UNSET
@@ -61,6 +62,7 @@ class RequestResponseSamplesItemEntity:
61
62
  _ingredients: Union[Unset, List[Ingredient]] = UNSET
62
63
  _units: Union[Unset, MixtureMeasurementUnits] = UNSET
63
64
  _amino_acids: Union[Unset, str] = UNSET
65
+ _dna_alignment_ids: Union[Unset, List[str]] = UNSET
64
66
  _is_circular: Union[Unset, bool] = UNSET
65
67
  _parts: Union[Unset, List[DnaSequencePart]] = UNSET
66
68
  _primers: Union[Unset, List[Primer]] = UNSET
@@ -89,6 +91,7 @@ class RequestResponseSamplesItemEntity:
89
91
  fields.append("registration_origin={}".format(repr(self._registration_origin)))
90
92
  fields.append("registry_id={}".format(repr(self._registry_id)))
91
93
  fields.append("schema={}".format(repr(self._schema)))
94
+ fields.append("url={}".format(repr(self._url)))
92
95
  fields.append("web_url={}".format(repr(self._web_url)))
93
96
  fields.append("annotations={}".format(repr(self._annotations)))
94
97
  fields.append("bases={}".format(repr(self._bases)))
@@ -102,6 +105,7 @@ class RequestResponseSamplesItemEntity:
102
105
  fields.append("ingredients={}".format(repr(self._ingredients)))
103
106
  fields.append("units={}".format(repr(self._units)))
104
107
  fields.append("amino_acids={}".format(repr(self._amino_acids)))
108
+ fields.append("dna_alignment_ids={}".format(repr(self._dna_alignment_ids)))
105
109
  fields.append("is_circular={}".format(repr(self._is_circular)))
106
110
  fields.append("parts={}".format(repr(self._parts)))
107
111
  fields.append("primers={}".format(repr(self._primers)))
@@ -167,6 +171,7 @@ class RequestResponseSamplesItemEntity:
167
171
  if not isinstance(self._schema, Unset):
168
172
  schema = self._schema.to_dict() if self._schema else None
169
173
 
174
+ url = self._url
170
175
  web_url = self._web_url
171
176
  annotations: Union[Unset, List[Any]] = UNSET
172
177
  if not isinstance(self._annotations, Unset):
@@ -200,6 +205,10 @@ class RequestResponseSamplesItemEntity:
200
205
  units = self._units.value
201
206
 
202
207
  amino_acids = self._amino_acids
208
+ dna_alignment_ids: Union[Unset, List[Any]] = UNSET
209
+ if not isinstance(self._dna_alignment_ids, Unset):
210
+ dna_alignment_ids = self._dna_alignment_ids
211
+
203
212
  is_circular = self._is_circular
204
213
  parts: Union[Unset, List[Any]] = UNSET
205
214
  if not isinstance(self._parts, Unset):
@@ -274,6 +283,8 @@ class RequestResponseSamplesItemEntity:
274
283
  field_dict["registryId"] = registry_id
275
284
  if schema is not UNSET:
276
285
  field_dict["schema"] = schema
286
+ if url is not UNSET:
287
+ field_dict["url"] = url
277
288
  if web_url is not UNSET:
278
289
  field_dict["webURL"] = web_url
279
290
  if annotations is not UNSET:
@@ -300,6 +311,8 @@ class RequestResponseSamplesItemEntity:
300
311
  field_dict["units"] = units
301
312
  if amino_acids is not UNSET:
302
313
  field_dict["aminoAcids"] = amino_acids
314
+ if dna_alignment_ids is not UNSET:
315
+ field_dict["dnaAlignmentIds"] = dna_alignment_ids
303
316
  if is_circular is not UNSET:
304
317
  field_dict["isCircular"] = is_circular
305
318
  if parts is not UNSET:
@@ -578,6 +591,17 @@ class RequestResponseSamplesItemEntity:
578
591
  raise
579
592
  schema = cast(Union[Unset, None, SchemaSummary], UNSET)
580
593
 
594
+ def get_url() -> Union[Unset, str]:
595
+ url = d.pop("url")
596
+ return url
597
+
598
+ try:
599
+ url = get_url()
600
+ except KeyError:
601
+ if strict:
602
+ raise
603
+ url = cast(Union[Unset, str], UNSET)
604
+
581
605
  def get_web_url() -> Union[Unset, str]:
582
606
  web_url = d.pop("webURL")
583
607
  return web_url
@@ -747,6 +771,18 @@ class RequestResponseSamplesItemEntity:
747
771
  raise
748
772
  amino_acids = cast(Union[Unset, str], UNSET)
749
773
 
774
+ def get_dna_alignment_ids() -> Union[Unset, List[str]]:
775
+ dna_alignment_ids = cast(List[str], d.pop("dnaAlignmentIds"))
776
+
777
+ return dna_alignment_ids
778
+
779
+ try:
780
+ dna_alignment_ids = get_dna_alignment_ids()
781
+ except KeyError:
782
+ if strict:
783
+ raise
784
+ dna_alignment_ids = cast(Union[Unset, List[str]], UNSET)
785
+
750
786
  def get_is_circular() -> Union[Unset, bool]:
751
787
  is_circular = d.pop("isCircular")
752
788
  return is_circular
@@ -848,6 +884,7 @@ class RequestResponseSamplesItemEntity:
848
884
  registration_origin=registration_origin,
849
885
  registry_id=registry_id,
850
886
  schema=schema,
887
+ url=url,
851
888
  web_url=web_url,
852
889
  annotations=annotations,
853
890
  bases=bases,
@@ -861,6 +898,7 @@ class RequestResponseSamplesItemEntity:
861
898
  ingredients=ingredients,
862
899
  units=units,
863
900
  amino_acids=amino_acids,
901
+ dna_alignment_ids=dna_alignment_ids,
864
902
  is_circular=is_circular,
865
903
  parts=parts,
866
904
  primers=primers,
@@ -1158,6 +1196,21 @@ class RequestResponseSamplesItemEntity:
1158
1196
  def schema(self) -> None:
1159
1197
  self._schema = UNSET
1160
1198
 
1199
+ @property
1200
+ def url(self) -> str:
1201
+ """ The path of the web URL, omitting the tenant domain """
1202
+ if isinstance(self._url, Unset):
1203
+ raise NotPresentError(self, "url")
1204
+ return self._url
1205
+
1206
+ @url.setter
1207
+ def url(self, value: str) -> None:
1208
+ self._url = value
1209
+
1210
+ @url.deleter
1211
+ def url(self) -> None:
1212
+ self._url = UNSET
1213
+
1161
1214
  @property
1162
1215
  def web_url(self) -> str:
1163
1216
  if isinstance(self._web_url, Unset):
@@ -1348,6 +1401,21 @@ class RequestResponseSamplesItemEntity:
1348
1401
  def amino_acids(self) -> None:
1349
1402
  self._amino_acids = UNSET
1350
1403
 
1404
+ @property
1405
+ def dna_alignment_ids(self) -> List[str]:
1406
+ """ API IDs of Nucleotide Alignments involving the RNA sequence """
1407
+ if isinstance(self._dna_alignment_ids, Unset):
1408
+ raise NotPresentError(self, "dna_alignment_ids")
1409
+ return self._dna_alignment_ids
1410
+
1411
+ @dna_alignment_ids.setter
1412
+ def dna_alignment_ids(self, value: List[str]) -> None:
1413
+ self._dna_alignment_ids = value
1414
+
1415
+ @dna_alignment_ids.deleter
1416
+ def dna_alignment_ids(self) -> None:
1417
+ self._dna_alignment_ids = UNSET
1418
+
1351
1419
  @property
1352
1420
  def is_circular(self) -> bool:
1353
1421
  if isinstance(self._is_circular, Unset):