logs-py 4.0.7__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 (251) hide show
  1. LOGS/Auxiliary/CheckClassName.py +1075 -0
  2. LOGS/Auxiliary/Constants.py +99 -0
  3. LOGS/Auxiliary/CustomEntityClassGenerator.py +254 -0
  4. LOGS/Auxiliary/CustomFieldClassGenerator.py +115 -0
  5. LOGS/Auxiliary/CustomFieldValueTypeChecker.py +168 -0
  6. LOGS/Auxiliary/CustomSectionClassGenerator.py +113 -0
  7. LOGS/Auxiliary/CustomTypeClassGenerator.py +147 -0
  8. LOGS/Auxiliary/DateTimeConverter.py +66 -0
  9. LOGS/Auxiliary/Decorators.py +109 -0
  10. LOGS/Auxiliary/Exceptions.py +341 -0
  11. LOGS/Auxiliary/LOGSErrorResponse.py +89 -0
  12. LOGS/Auxiliary/MinimalModelGenerator.py +236 -0
  13. LOGS/Auxiliary/ParameterHelper.py +56 -0
  14. LOGS/Auxiliary/ReplaceMessage.py +13 -0
  15. LOGS/Auxiliary/Tools.py +432 -0
  16. LOGS/Auxiliary/__init__.py +15 -0
  17. LOGS/Converter/Conversion.py +248 -0
  18. LOGS/Converter/Converter.py +96 -0
  19. LOGS/Converter/ConverterParameter.py +88 -0
  20. LOGS/Converter/DateTimeRange.py +58 -0
  21. LOGS/Converter/ExportParameters.py +89 -0
  22. LOGS/Converter/__init__.py +13 -0
  23. LOGS/Entities/Attachment.py +84 -0
  24. LOGS/Entities/AttachmentMinimal.py +8 -0
  25. LOGS/Entities/AttachmentRequestParameter.py +42 -0
  26. LOGS/Entities/Attachments.py +53 -0
  27. LOGS/Entities/AutoloadFileInfo.py +12 -0
  28. LOGS/Entities/AutoloadStatusError.py +7 -0
  29. LOGS/Entities/AxisNaming.py +33 -0
  30. LOGS/Entities/AxisZoom.py +33 -0
  31. LOGS/Entities/Bridge.py +165 -0
  32. LOGS/Entities/BridgeClientInfo.py +93 -0
  33. LOGS/Entities/BridgeMinimal.py +8 -0
  34. LOGS/Entities/BridgeRequestParameter.py +49 -0
  35. LOGS/Entities/BridgeType.py +7 -0
  36. LOGS/Entities/Bridges.py +12 -0
  37. LOGS/Entities/CustomField.py +243 -0
  38. LOGS/Entities/CustomFieldMinimal.py +8 -0
  39. LOGS/Entities/CustomFieldModels.py +111 -0
  40. LOGS/Entities/CustomFieldRequestParameter.py +69 -0
  41. LOGS/Entities/CustomFieldSearchQuery.py +40 -0
  42. LOGS/Entities/CustomFields.py +12 -0
  43. LOGS/Entities/CustomType.py +212 -0
  44. LOGS/Entities/CustomTypeMinimal.py +8 -0
  45. LOGS/Entities/CustomTypeRequestParameter.py +60 -0
  46. LOGS/Entities/CustomTypeSection.py +63 -0
  47. LOGS/Entities/CustomTypes.py +12 -0
  48. LOGS/Entities/DataFormat.py +97 -0
  49. LOGS/Entities/DataFormatInstrument.py +18 -0
  50. LOGS/Entities/DataFormatInstrumentMinimal.py +8 -0
  51. LOGS/Entities/DataFormatInstrumentRequestParameter.py +17 -0
  52. LOGS/Entities/DataFormatInstruments.py +16 -0
  53. LOGS/Entities/DataFormatMinimal.py +18 -0
  54. LOGS/Entities/DataFormatRequestParameter.py +21 -0
  55. LOGS/Entities/DataFormats.py +12 -0
  56. LOGS/Entities/DataSource.py +218 -0
  57. LOGS/Entities/DataSourceConnectionStatus.py +12 -0
  58. LOGS/Entities/DataSourceMinimal.py +8 -0
  59. LOGS/Entities/DataSourceRequestParameter.py +57 -0
  60. LOGS/Entities/DataSourceStatus.py +108 -0
  61. LOGS/Entities/DataSourceStatusIterator.py +16 -0
  62. LOGS/Entities/DataSourceStatusRequestParameter.py +31 -0
  63. LOGS/Entities/DataSources.py +12 -0
  64. LOGS/Entities/Dataset.py +439 -0
  65. LOGS/Entities/DatasetBase.py +196 -0
  66. LOGS/Entities/DatasetCreator.py +148 -0
  67. LOGS/Entities/DatasetInfo.py +147 -0
  68. LOGS/Entities/DatasetMatchTypes.py +157 -0
  69. LOGS/Entities/DatasetMatching.py +196 -0
  70. LOGS/Entities/DatasetMinimal.py +8 -0
  71. LOGS/Entities/DatasetModels.py +33 -0
  72. LOGS/Entities/DatasetRequestParameter.py +92 -0
  73. LOGS/Entities/DatasetTemplate.py +23 -0
  74. LOGS/Entities/DatasetUploadParameter.py +14 -0
  75. LOGS/Entities/Datasets.py +142 -0
  76. LOGS/Entities/Datatrack.py +179 -0
  77. LOGS/Entities/DatatrackFormattedTable.py +25 -0
  78. LOGS/Entities/DatatrackGeneric.py +34 -0
  79. LOGS/Entities/DatatrackImage.py +25 -0
  80. LOGS/Entities/DatatrackNumericArray.py +30 -0
  81. LOGS/Entities/DatatrackNumericMatrix.py +98 -0
  82. LOGS/Entities/Entities.py +71 -0
  83. LOGS/Entities/EntitiesRequestParameter.py +18 -0
  84. LOGS/Entities/EntityOriginWriteModelWithId.py +15 -0
  85. LOGS/Entities/FileEntry.py +138 -0
  86. LOGS/Entities/FileExcludePattern.py +8 -0
  87. LOGS/Entities/FormatMetaData.py +56 -0
  88. LOGS/Entities/FormattedTable/DatatypeFormattedTable.py +135 -0
  89. LOGS/Entities/FormattedTable/DatatypeFormattedTableCell.py +108 -0
  90. LOGS/Entities/FormattedTable/DatatypeFormattedTableSettings.py +11 -0
  91. LOGS/Entities/FormattedTable/__init__.py +9 -0
  92. LOGS/Entities/HierarchyLeaf.py +15 -0
  93. LOGS/Entities/HierarchyNode.py +40 -0
  94. LOGS/Entities/ILiteraryTypedEntity.py +19 -0
  95. LOGS/Entities/InventoryItem.py +102 -0
  96. LOGS/Entities/InventoryItemMinimal.py +25 -0
  97. LOGS/Entities/InventoryItemRequestParameter.py +58 -0
  98. LOGS/Entities/InventoryItems.py +12 -0
  99. LOGS/Entities/LabNotebook.py +33 -0
  100. LOGS/Entities/LabNotebookEntries.py +16 -0
  101. LOGS/Entities/LabNotebookEntry.py +106 -0
  102. LOGS/Entities/LabNotebookEntryContent/BasicAttribute.py +15 -0
  103. LOGS/Entities/LabNotebookEntryContent/EntityAttribute.py +85 -0
  104. LOGS/Entities/LabNotebookEntryContent/EntryContentBlockquote.py +13 -0
  105. LOGS/Entities/LabNotebookEntryContent/EntryContentBulletList.py +17 -0
  106. LOGS/Entities/LabNotebookEntryContent/EntryContentCallout.py +40 -0
  107. LOGS/Entities/LabNotebookEntryContent/EntryContentContentPlaceholderNode.py +31 -0
  108. LOGS/Entities/LabNotebookEntryContent/EntryContentConverter.py +207 -0
  109. LOGS/Entities/LabNotebookEntryContent/EntryContentDocument.py +8 -0
  110. LOGS/Entities/LabNotebookEntryContent/EntryContentEntity.py +13 -0
  111. LOGS/Entities/LabNotebookEntryContent/EntryContentEntityMention.py +31 -0
  112. LOGS/Entities/LabNotebookEntryContent/EntryContentHeading.py +33 -0
  113. LOGS/Entities/LabNotebookEntryContent/EntryContentHorizontalRule.py +12 -0
  114. LOGS/Entities/LabNotebookEntryContent/EntryContentItem.py +37 -0
  115. LOGS/Entities/LabNotebookEntryContent/EntryContentListItem.py +49 -0
  116. LOGS/Entities/LabNotebookEntryContent/EntryContentOrderedList.py +31 -0
  117. LOGS/Entities/LabNotebookEntryContent/EntryContentParagraph.py +13 -0
  118. LOGS/Entities/LabNotebookEntryContent/EntryContentTable.py +17 -0
  119. LOGS/Entities/LabNotebookEntryContent/EntryContentTableCell.py +40 -0
  120. LOGS/Entities/LabNotebookEntryContent/EntryContentTableRow.py +8 -0
  121. LOGS/Entities/LabNotebookEntryContent/EntryContentTaskList.py +17 -0
  122. LOGS/Entities/LabNotebookEntryContent/EntryContentTaskListItem.py +31 -0
  123. LOGS/Entities/LabNotebookEntryContent/EntryContentText.py +33 -0
  124. LOGS/Entities/LabNotebookEntryContent/IEntryContentWithAttribute.py +23 -0
  125. LOGS/Entities/LabNotebookEntryContent/IEntryContentWithContent.py +38 -0
  126. LOGS/Entities/LabNotebookEntryContent/IEntryContentWithTextAttribute.py +16 -0
  127. LOGS/Entities/LabNotebookEntryContent/TextAttribute.py +46 -0
  128. LOGS/Entities/LabNotebookEntryContent/TextMarkAtributes.py +64 -0
  129. LOGS/Entities/LabNotebookEntryContent/TextMarkConverter.py +45 -0
  130. LOGS/Entities/LabNotebookEntryContent/TextMarks.py +71 -0
  131. LOGS/Entities/LabNotebookEntryContent/__init__.py +34 -0
  132. LOGS/Entities/LabNotebookEntryMinimal.py +8 -0
  133. LOGS/Entities/LabNotebookEntryRequestParameter.py +59 -0
  134. LOGS/Entities/LabNotebookExperiment.py +58 -0
  135. LOGS/Entities/LabNotebookExperimentMinimal.py +8 -0
  136. LOGS/Entities/LabNotebookExperimentRequestParameter.py +52 -0
  137. LOGS/Entities/LabNotebookExperiments.py +16 -0
  138. LOGS/Entities/LabNotebookMinimal.py +8 -0
  139. LOGS/Entities/LabNotebookModels.py +14 -0
  140. LOGS/Entities/LabNotebookRequestParameter.py +42 -0
  141. LOGS/Entities/LabNotebookTemplate.py +42 -0
  142. LOGS/Entities/LabNotebookTemplateMinimal.py +8 -0
  143. LOGS/Entities/LabNotebookTemplateRequestParameter.py +38 -0
  144. LOGS/Entities/LabNotebookTemplates.py +16 -0
  145. LOGS/Entities/LabNotebooks.py +12 -0
  146. LOGS/Entities/Method.py +66 -0
  147. LOGS/Entities/MethodMinimal.py +8 -0
  148. LOGS/Entities/MethodRequestParameter.py +16 -0
  149. LOGS/Entities/Methods.py +12 -0
  150. LOGS/Entities/Origin.py +53 -0
  151. LOGS/Entities/OriginMinimal.py +8 -0
  152. LOGS/Entities/OriginRequestParameter.py +28 -0
  153. LOGS/Entities/Origins.py +12 -0
  154. LOGS/Entities/ParserLog.py +49 -0
  155. LOGS/Entities/Permission.py +9 -0
  156. LOGS/Entities/Person.py +145 -0
  157. LOGS/Entities/PersonCategory.py +12 -0
  158. LOGS/Entities/PersonMinimal.py +8 -0
  159. LOGS/Entities/PersonRequestParameter.py +58 -0
  160. LOGS/Entities/Persons.py +12 -0
  161. LOGS/Entities/Project.py +52 -0
  162. LOGS/Entities/ProjectMinimal.py +8 -0
  163. LOGS/Entities/ProjectPersonPermission.py +102 -0
  164. LOGS/Entities/ProjectRequestParameter.py +58 -0
  165. LOGS/Entities/Projects.py +12 -0
  166. LOGS/Entities/Role.py +94 -0
  167. LOGS/Entities/RoleMinimal.py +8 -0
  168. LOGS/Entities/RoleRequestParameter.py +40 -0
  169. LOGS/Entities/Roles.py +12 -0
  170. LOGS/Entities/RunState.py +9 -0
  171. LOGS/Entities/Sample.py +53 -0
  172. LOGS/Entities/SampleMinimal.py +8 -0
  173. LOGS/Entities/SampleRequestParameter.py +54 -0
  174. LOGS/Entities/Samples.py +12 -0
  175. LOGS/Entities/SharedContent.py +87 -0
  176. LOGS/Entities/SharedContentMinimal.py +8 -0
  177. LOGS/Entities/SharedContentRequestParameter.py +38 -0
  178. LOGS/Entities/SharedContents.py +12 -0
  179. LOGS/Entities/Signature.py +60 -0
  180. LOGS/Entities/Track.py +93 -0
  181. LOGS/Entities/TrackData.py +20 -0
  182. LOGS/Entities/TrackImage.py +21 -0
  183. LOGS/Entities/TrackImageData.py +20 -0
  184. LOGS/Entities/TrackMatrix.py +28 -0
  185. LOGS/Entities/TrackMatrixData.py +22 -0
  186. LOGS/Entities/TrackSettings.py +55 -0
  187. LOGS/Entities/TrackTable.py +21 -0
  188. LOGS/Entities/TrackTableData.py +22 -0
  189. LOGS/Entities/TrackXY.py +40 -0
  190. LOGS/Entities/TrackXYComplex.py +51 -0
  191. LOGS/Entities/TrackXYComplexData.py +50 -0
  192. LOGS/Entities/TrackXYData.py +31 -0
  193. LOGS/Entities/Vendor.py +40 -0
  194. LOGS/Entities/VendorMinimal.py +8 -0
  195. LOGS/Entities/VendorRequestParameter.py +17 -0
  196. LOGS/Entities/Vendors.py +12 -0
  197. LOGS/Entities/__init__.py +118 -0
  198. LOGS/Entity/ConnectedEntity.py +170 -0
  199. LOGS/Entity/Entity.py +203 -0
  200. LOGS/Entity/EntityConnector.py +70 -0
  201. LOGS/Entity/EntityIterator.py +263 -0
  202. LOGS/Entity/EntityMinimal.py +141 -0
  203. LOGS/Entity/EntityMinimalWithIntId.py +36 -0
  204. LOGS/Entity/EntityMinimalWithStrId.py +36 -0
  205. LOGS/Entity/EntityMinimalWithType.py +47 -0
  206. LOGS/Entity/EntityRequestParameter.py +104 -0
  207. LOGS/Entity/EntitySortBy.py +69 -0
  208. LOGS/Entity/EntityWithIntId.py +26 -0
  209. LOGS/Entity/EntityWithStrId.py +26 -0
  210. LOGS/Entity/IGenericEntityOrderBy.py +55 -0
  211. LOGS/Entity/IdIterator.py +207 -0
  212. LOGS/Entity/SerializableContent.py +834 -0
  213. LOGS/Entity/__init__.py +23 -0
  214. LOGS/Interfaces/ICustomFieldValue.py +92 -0
  215. LOGS/Interfaces/ICustomSectionValue.py +161 -0
  216. LOGS/Interfaces/ICustomTypeValue.py +152 -0
  217. LOGS/Interfaces/ICustomValue.py +28 -0
  218. LOGS/Interfaces/IEntityInterface.py +7 -0
  219. LOGS/Interfaces/IEntryRecord.py +57 -0
  220. LOGS/Interfaces/IHierarchicalEntity.py +41 -0
  221. LOGS/Interfaces/IHierarchyType.py +63 -0
  222. LOGS/Interfaces/ILockableEntity.py +52 -0
  223. LOGS/Interfaces/IModificationRecord.py +56 -0
  224. LOGS/Interfaces/INamedEntity.py +25 -0
  225. LOGS/Interfaces/IOwnedEntity.py +27 -0
  226. LOGS/Interfaces/IPaginationRequest.py +11 -0
  227. LOGS/Interfaces/IPermissionedEntity.py +72 -0
  228. LOGS/Interfaces/IProjectBased.py +27 -0
  229. LOGS/Interfaces/ISessionedEntity.py +59 -0
  230. LOGS/Interfaces/ISignableEntity.py +49 -0
  231. LOGS/Interfaces/ISoftDeletable.py +28 -0
  232. LOGS/Interfaces/ITypedEntity.py +129 -0
  233. LOGS/Interfaces/IUniqueEntity.py +61 -0
  234. LOGS/Interfaces/IVersionedEntity.py +39 -0
  235. LOGS/Interfaces/__init__.py +7 -0
  236. LOGS/LOGS.py +1436 -0
  237. LOGS/LOGSConnection.py +647 -0
  238. LOGS/LOGSOptions.py +11 -0
  239. LOGS/Parameters/Color.py +92 -0
  240. LOGS/Parameters/ParameterBase.py +55 -0
  241. LOGS/Parameters/ParameterConverter.py +24 -0
  242. LOGS/Parameters/ParameterElement.py +99 -0
  243. LOGS/Parameters/ParameterList.py +52 -0
  244. LOGS/Parameters/ParameterTable.py +64 -0
  245. LOGS/Parameters/__init__.py +13 -0
  246. LOGS/ServerMetaData.py +120 -0
  247. LOGS/__init__.py +12 -0
  248. logs_py-4.0.7.dist-info/METADATA +51 -0
  249. logs_py-4.0.7.dist-info/RECORD +251 -0
  250. logs_py-4.0.7.dist-info/WHEEL +5 -0
  251. logs_py-4.0.7.dist-info/top_level.txt +1 -0
@@ -0,0 +1,8 @@
1
+ from LOGS.Auxiliary.Decorators import FullModel
2
+ from LOGS.Entities.CustomType import CustomType
3
+ from LOGS.Entity.EntityMinimalWithIntId import EntityMinimalWithIntId
4
+
5
+
6
+ @FullModel(CustomType)
7
+ class CustomTypeMinimal(EntityMinimalWithIntId[CustomType]):
8
+ pass
@@ -0,0 +1,60 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import List, Optional, Type, cast
3
+
4
+ from typing_extensions import Self
5
+
6
+ from LOGS.Entities.CustomFieldModels import CustomTypeEntityType
7
+ from LOGS.Entity.EntityRequestParameter import EntityRequestParameter
8
+ from LOGS.Entity.IGenericEntityOrderBy import (
9
+ IEntryRecordSortingOptions,
10
+ IGenericEntitySortingOptions,
11
+ IModificationRecordSortingOptions,
12
+ INamedEntitySortingOptions,
13
+ )
14
+ from LOGS.Interfaces.IEntryRecord import IEntryRecordRequest
15
+ from LOGS.Interfaces.IModificationRecord import IModificationRecordRequest
16
+ from LOGS.Interfaces.INamedEntity import INamedEntityRequest
17
+ from LOGS.Interfaces.IPaginationRequest import IPaginationRequest
18
+ from LOGS.Interfaces.IPermissionedEntity import IPermissionedEntityRequest
19
+ from LOGS.Interfaces.ISoftDeletable import ISoftDeletableRequest
20
+
21
+
22
+ class CustomTypeSortingOptions(
23
+ IGenericEntitySortingOptions,
24
+ INamedEntitySortingOptions,
25
+ IEntryRecordSortingOptions,
26
+ IModificationRecordSortingOptions,
27
+ ):
28
+ NUMBER_OF_ITEMS: Self = cast(Self, "NUMBER_OF_ITEMS")
29
+ INVENTORY_NAME: Self = cast(Self, "INVENTORY_NAME")
30
+ LAYOUT: Self = cast(Self, "LAYOUT")
31
+
32
+
33
+ @dataclass
34
+ class CustomTypeRequestParameter(
35
+ EntityRequestParameter[CustomTypeSortingOptions],
36
+ IPaginationRequest,
37
+ IPermissionedEntityRequest,
38
+ IEntryRecordRequest,
39
+ IModificationRecordRequest,
40
+ ISoftDeletableRequest,
41
+ INamedEntityRequest,
42
+ ):
43
+ _orderByType: Type[CustomTypeSortingOptions] = field(
44
+ default=CustomTypeSortingOptions, init=False
45
+ )
46
+
47
+ excludeDisabled: Optional[bool] = None
48
+ isEnabled: Optional[bool] = None
49
+ customFieldIds: Optional[List[int]] = None
50
+ entityTypes: Optional[List[CustomTypeEntityType]] = None
51
+ extendSearchToInventoryItems: Optional[bool] = None
52
+ parentTypeIds: Optional[List[int]] = None
53
+ hasRestrictedAddPermission: Optional[bool] = None
54
+ hasRestrictedEditPermission: Optional[bool] = None
55
+ hasRestrictedReadPermission: Optional[bool] = None
56
+ rootHierarchyIds: Optional[List[int]] = None
57
+ isInventory: Optional[bool] = None
58
+ isHierarchyRoot: Optional[bool] = None
59
+ inventoryNames: Optional[List[str]] = None
60
+ excludeNonInventories: Optional[bool] = None
@@ -0,0 +1,63 @@
1
+ from typing import List, Optional
2
+
3
+ from LOGS.Entities.CustomField import CustomField
4
+ from LOGS.Entities.ILiteraryTypedEntity import ILiteraryTypedEntity
5
+ from LOGS.Entity.ConnectedEntity import ConnectedEntity
6
+
7
+
8
+ class CustomTypeSection(ConnectedEntity, ILiteraryTypedEntity):
9
+ _name: Optional[str] = None
10
+ _isFolded: Optional[bool] = None
11
+ _isHeadless: Optional[bool] = None
12
+ _customFields: Optional[List[CustomField]] = None
13
+
14
+ _type = "CustomTypeSection"
15
+
16
+ def contentToString(self, indentation: int = 1, hideNone: bool = False) -> str:
17
+ bak = self._noSerialize
18
+ self._noSerialize = [*bak, "customFields"]
19
+ tab = self._indentationString * indentation
20
+ tabContent = self._indentationString * (indentation + 1)
21
+ s = super().contentToString(indentation, hideNone)
22
+ s += f"{tab}customFields=\n"
23
+ self._noSerialize = bak
24
+ for field in self.customFields or []:
25
+ if not field and hideNone:
26
+ continue
27
+ s += f"{tabContent}{str(field)}\n"
28
+
29
+ return s
30
+
31
+ @property
32
+ def name(self) -> Optional[str]:
33
+ return self._name
34
+
35
+ @name.setter
36
+ def name(self, value):
37
+ self._name = self.checkAndConvertNullable(value, str, "name")
38
+
39
+ @property
40
+ def isFolded(self) -> Optional[bool]:
41
+ return self._isFolded
42
+
43
+ @isFolded.setter
44
+ def isFolded(self, value):
45
+ self._isFolded = self.checkAndConvertNullable(value, bool, "isFolded")
46
+
47
+ @property
48
+ def isHeadless(self) -> Optional[bool]:
49
+ return self._isHeadless
50
+
51
+ @isHeadless.setter
52
+ def isHeadless(self, value):
53
+ self._isHeadless = self.checkAndConvertNullable(value, bool, "isHeadless")
54
+
55
+ @property
56
+ def customFields(self) -> Optional[List[CustomField]]:
57
+ return self._customFields
58
+
59
+ @customFields.setter
60
+ def customFields(self, value):
61
+ self._customFields = self.checkListAndConvertNullable(
62
+ value, CustomField, "customFields"
63
+ )
@@ -0,0 +1,12 @@
1
+ from LOGS.Auxiliary.Decorators import Endpoint
2
+ from LOGS.Entities.CustomType import CustomType
3
+ from LOGS.Entities.CustomTypeRequestParameter import CustomTypeRequestParameter
4
+ from LOGS.Entity.EntityIterator import EntityIterator
5
+
6
+
7
+ @Endpoint("types")
8
+ class CustomTypes(EntityIterator[CustomType, CustomTypeRequestParameter]):
9
+ """LOGS connected CustomTypes iterator"""
10
+
11
+ _generatorType = CustomType
12
+ _parameterType = CustomTypeRequestParameter
@@ -0,0 +1,97 @@
1
+ from typing import List, Optional
2
+
3
+ from LOGS.Auxiliary.Decorators import Endpoint
4
+ from LOGS.Entity.EntityWithStrId import EntityWithStrId
5
+ from LOGS.Interfaces.INamedEntity import INamedEntity
6
+ from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
7
+
8
+
9
+ @Endpoint("data_formats")
10
+ class DataFormat(EntityWithStrId, INamedEntity, IGenericPermissionEntity):
11
+
12
+ _description: Optional[str] = None
13
+ _formatVersion: Optional[List[str]] = []
14
+ _isCustom: Optional[bool] = None
15
+ _version: Optional[str] = None
16
+ _hasVisualization: Optional[bool] = None
17
+
18
+ _vendors: List[str] = []
19
+ _methods: List[str] = []
20
+ _formats: List[str] = []
21
+ _instruments: List[str] = []
22
+
23
+ @property
24
+ def formatVersion(self) -> Optional[List[str]]:
25
+ return self._formatVersion
26
+
27
+ @formatVersion.setter
28
+ def formatVersion(self, value):
29
+ self._formatVersion = self.checkListAndConvertNullable(
30
+ value, str, "formatVersion"
31
+ )
32
+
33
+ @property
34
+ def vendors(self) -> List[str]:
35
+ return self._vendors
36
+
37
+ @vendors.setter
38
+ def vendors(self, value):
39
+ self._vendors = self.checkListAndConvert(value, str, "vendors")
40
+
41
+ @property
42
+ def methods(self) -> List[str]:
43
+ return self._methods
44
+
45
+ @methods.setter
46
+ def methods(self, value):
47
+ self._methods = self.checkListAndConvert(value, str, "methods")
48
+
49
+ @property
50
+ def formats(self) -> List[str]:
51
+ return self._formats
52
+
53
+ @formats.setter
54
+ def formats(self, value):
55
+ self._formats = self.checkListAndConvert(value, str, "formats")
56
+
57
+ @property
58
+ def instruments(self) -> List[str]:
59
+ return self._instruments
60
+
61
+ @instruments.setter
62
+ def instruments(self, value):
63
+ self._instruments = self.checkListAndConvert(value, str, "instruments")
64
+
65
+ @property
66
+ def hasVisualization(self) -> Optional[bool]:
67
+ return self._hasVisualization
68
+
69
+ @hasVisualization.setter
70
+ def hasVisualization(self, value: Optional[bool]):
71
+ self._hasVisualization = self.checkAndConvertNullable(
72
+ value, bool, "hasVisualization"
73
+ )
74
+
75
+ @property
76
+ def description(self) -> Optional[str]:
77
+ return self._description
78
+
79
+ @description.setter
80
+ def description(self, value: Optional[str]):
81
+ self._description = self.checkAndConvertNullable(value, str, "description")
82
+
83
+ @property
84
+ def isCustom(self) -> Optional[bool]:
85
+ return self._isCustom
86
+
87
+ @isCustom.setter
88
+ def isCustom(self, value: Optional[bool]):
89
+ self._isCustom = self.checkAndConvertNullable(value, bool, "isCustom")
90
+
91
+ @property
92
+ def version(self) -> Optional[str]:
93
+ return self._version
94
+
95
+ @version.setter
96
+ def version(self, value: Optional[str]):
97
+ self._version = self.checkAndConvertNullable(value, str, "version")
@@ -0,0 +1,18 @@
1
+ from typing import Optional
2
+
3
+ from LOGS.Auxiliary.Decorators import Endpoint
4
+ from LOGS.Entity.EntityWithStrId import EntityWithStrId
5
+ from LOGS.Interfaces.INamedEntity import INamedEntity
6
+
7
+
8
+ @Endpoint("data_format_instruments")
9
+ class DataFormatInstrument(EntityWithStrId, INamedEntity):
10
+ _description: Optional[str] = None
11
+
12
+ @property
13
+ def description(self) -> Optional[str]:
14
+ return self._description
15
+
16
+ @description.setter
17
+ def description(self, value):
18
+ self._description = self.checkAndConvertNullable(value, str, "description")
@@ -0,0 +1,8 @@
1
+ from LOGS.Auxiliary.Decorators import FullModel
2
+ from LOGS.Entities.DataFormatInstrument import DataFormatInstrument
3
+ from LOGS.Entity.EntityMinimalWithStrId import EntityMinimalWithStrId
4
+
5
+
6
+ @FullModel(DataFormatInstrument)
7
+ class DataFormatInstrumentMinimal(EntityMinimalWithStrId[DataFormatInstrument]):
8
+ pass
@@ -0,0 +1,17 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import Type
3
+
4
+ from LOGS.Entity.EntityRequestParameter import (
5
+ DefaultSortingOptions,
6
+ EntityRequestParameter,
7
+ )
8
+ from LOGS.Interfaces.INamedEntity import INamedEntityRequest
9
+
10
+
11
+ @dataclass
12
+ class DataFormatInstrumentRequestParameter(
13
+ EntityRequestParameter[DefaultSortingOptions], INamedEntityRequest
14
+ ):
15
+ _orderByType: Type[DefaultSortingOptions] = field(
16
+ default=DefaultSortingOptions, init=False
17
+ )
@@ -0,0 +1,16 @@
1
+ from LOGS.Auxiliary.Decorators import Endpoint
2
+ from LOGS.Entities.DataFormatInstrument import DataFormatInstrument
3
+ from LOGS.Entities.DataFormatInstrumentRequestParameter import (
4
+ DataFormatInstrumentRequestParameter,
5
+ )
6
+ from LOGS.Entity.EntityIterator import EntityIterator
7
+
8
+
9
+ @Endpoint("data_format_instruments")
10
+ class DataFormatInstruments(
11
+ EntityIterator[DataFormatInstrument, DataFormatInstrumentRequestParameter]
12
+ ):
13
+ """LOGS connected class DataFormatInstrument iterator"""
14
+
15
+ _generatorType = DataFormatInstrument
16
+ _parameterType = DataFormatInstrumentRequestParameter
@@ -0,0 +1,18 @@
1
+ from typing import List, Optional
2
+
3
+ from LOGS.Auxiliary.Decorators import FullModel
4
+ from LOGS.Entities.DataFormat import DataFormat
5
+ from LOGS.Entity.EntityMinimalWithStrId import EntityMinimalWithStrId
6
+
7
+
8
+ @FullModel(DataFormat)
9
+ class DataFormatMinimal(EntityMinimalWithStrId[DataFormat]):
10
+ _version: Optional[List[str]] = None
11
+
12
+ @property
13
+ def version(self) -> Optional[List[str]]:
14
+ return self._version
15
+
16
+ @version.setter
17
+ def version(self, value):
18
+ self._version = self.checkListAndConvertNullable(value, str, "version")
@@ -0,0 +1,21 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import List, Optional, Type
3
+
4
+ from LOGS.Entity.EntityRequestParameter import (
5
+ DefaultSortingOptions,
6
+ EntityRequestParameter,
7
+ )
8
+
9
+
10
+ @dataclass
11
+ class DataFormatRequestParameter(EntityRequestParameter[DefaultSortingOptions]):
12
+ _orderByType: Type[DefaultSortingOptions] = field(
13
+ default=DefaultSortingOptions, init=False
14
+ )
15
+
16
+ name: Optional[str] = None
17
+ vendors: Optional[List[str]] = None
18
+ vendors: Optional[List[str]] = None
19
+ methods: Optional[List[str]] = None
20
+ formats: Optional[List[str]] = None
21
+ instruments: Optional[List[str]] = None
@@ -0,0 +1,12 @@
1
+ from LOGS.Auxiliary.Decorators import Endpoint
2
+ from LOGS.Entities import DataFormat
3
+ from LOGS.Entities.DataFormatRequestParameter import DataFormatRequestParameter
4
+ from LOGS.Entity.EntityIterator import EntityIterator
5
+
6
+
7
+ @Endpoint("data_formats")
8
+ class DataFormats(EntityIterator[DataFormat, DataFormatRequestParameter]):
9
+ """LOGS connected Formats iterator"""
10
+
11
+ _generatorType = DataFormat
12
+ _parameterType = DataFormatRequestParameter
@@ -0,0 +1,218 @@
1
+ from datetime import datetime
2
+ from enum import Enum
3
+ from typing import TYPE_CHECKING, List, Optional
4
+
5
+ from LOGS.Auxiliary.Decorators import Endpoint
6
+ from LOGS.Auxiliary.Exceptions import EntityAPIException
7
+ from LOGS.Auxiliary.MinimalModelGenerator import MinimalModelGenerator
8
+ from LOGS.Entities.Bridge import Bridge
9
+ from LOGS.Entities.DataFormat import DataFormat
10
+ from LOGS.Entities.DatasetTemplate import DatasetTemplate
11
+ from LOGS.Entities.DataSourceConnectionStatus import DataSourceConnectionStatus
12
+ from LOGS.Entities.DataSourceStatusIterator import DataSourceStatusIterator
13
+ from LOGS.Entities.DataSourceStatusRequestParameter import (
14
+ DataSourceStatusRequestParameter,
15
+ DataSourceStatusSortingOptions,
16
+ )
17
+ from LOGS.Entities.FileExcludePattern import FileExcludePattern
18
+ from LOGS.Entity.EntityMinimalWithStrId import EntityMinimalWithStrId
19
+ from LOGS.Entity.EntityWithIntId import IEntityWithIntId
20
+ from LOGS.Interfaces.IEntryRecord import IEntryRecord
21
+ from LOGS.Interfaces.IModificationRecord import IModificationRecord
22
+ from LOGS.Interfaces.INamedEntity import INamedEntity
23
+ from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
24
+ from LOGS.Interfaces.IUniqueEntity import IUniqueEntity
25
+
26
+ if TYPE_CHECKING:
27
+ from LOGS.Entities.DataFormatMinimal import DataFormatMinimal
28
+
29
+
30
+ class DataSourceType(Enum):
31
+ Crawler = "Crawler"
32
+ IconNMR = "IconNMR"
33
+
34
+
35
+ class DataSourceUpdateMode(Enum):
36
+ Deactivated = "Deactivated"
37
+ UseHash = "UseHash"
38
+ UsePath = "UsePath"
39
+
40
+
41
+ @Endpoint("data_sources")
42
+ class DataSource(
43
+ IEntityWithIntId,
44
+ INamedEntity,
45
+ IUniqueEntity,
46
+ IEntryRecord,
47
+ IModificationRecord,
48
+ IGenericPermissionEntity,
49
+ ):
50
+ _type: Optional[DataSourceType] = None
51
+ _enabled: Optional[bool] = None
52
+ _bridge: Optional["Bridge"] = None
53
+ _format: Optional["DataFormatMinimal"] = None
54
+ _customImport: Optional[EntityMinimalWithStrId] = None
55
+ _datasetUpdateMode: Optional[DataSourceUpdateMode] = None
56
+ _parser: Optional[DataFormat] = None
57
+ _directories: Optional[List[str]] = None
58
+ _intervalInSeconds: Optional[int] = None
59
+ _cutoffDate: Optional[datetime] = None
60
+ _fileExcludePatterns: Optional[List[FileExcludePattern]] = None
61
+ _status: Optional[DataSourceConnectionStatus] = None
62
+ _datasetTemplate: Optional[DatasetTemplate] = None
63
+
64
+ def triggerAutoload(self):
65
+ connection, endpoint, id = self._getConnectionData()
66
+
67
+ _, responseError = connection.getEndpoint(endpoint + [id, "trigger_autoload"])
68
+ if responseError:
69
+ raise EntityAPIException(entity=self, responseError=responseError)
70
+
71
+ @property
72
+ def history(self) -> Optional[DataSourceStatusIterator]:
73
+ return DataSourceStatusIterator(
74
+ self._getConnection(),
75
+ DataSourceStatusRequestParameter(
76
+ dataSourceIds=[self.id],
77
+ sortBy=DataSourceStatusSortingOptions.STARTED_ON,
78
+ ),
79
+ )
80
+
81
+ @property
82
+ def enabled(self) -> Optional[bool]:
83
+ return self._enabled
84
+
85
+ @enabled.setter
86
+ def enabled(self, value):
87
+ self._enabled = self.checkAndConvertNullable(value, bool, "enabled")
88
+
89
+ @property
90
+ def formats(self) -> Optional[List["DataFormatMinimal"]]:
91
+ return self._formats
92
+
93
+ @formats.setter
94
+ def formats(self, value):
95
+ self._formats = MinimalModelGenerator.MinimalFromList(
96
+ value, "DataFormatMinimal", "formats", connection=self._getConnection()
97
+ )
98
+
99
+ @property
100
+ def directories(self) -> Optional[List[str]]:
101
+ return self._directories
102
+
103
+ @directories.setter
104
+ def directories(self, value):
105
+ self._directories = self.checkListAndConvertNullable(value, str, "directories")
106
+
107
+ @property
108
+ def intervalInSeconds(self) -> Optional[int]:
109
+ return self._intervalInSeconds
110
+
111
+ @intervalInSeconds.setter
112
+ def intervalInSeconds(self, value):
113
+ self._intervalInSeconds = self.checkAndConvertNullable(
114
+ value, int, "intervalInSeconds"
115
+ )
116
+
117
+ @property
118
+ def cutoffDate(self) -> Optional[datetime]:
119
+ return self._cutoffDate
120
+
121
+ @cutoffDate.setter
122
+ def cutoffDate(self, value):
123
+ self._cutoffDate = self.checkAndConvertNullable(value, datetime, "cutoffDate")
124
+
125
+ @property
126
+ def fileExcludePatterns(self) -> Optional[List[FileExcludePattern]]:
127
+ return self._fileExcludePatterns
128
+
129
+ @fileExcludePatterns.setter
130
+ def fileExcludePatterns(self, value):
131
+ self._fileExcludePatterns = self.checkListAndConvertNullable(
132
+ value, FileExcludePattern, "fileExcludePatterns"
133
+ )
134
+
135
+ @property
136
+ def customImportId(self) -> Optional[str]:
137
+ return self._customImportId
138
+
139
+ @customImportId.setter
140
+ def customImportId(self, value):
141
+ print("customImportId", value)
142
+ self._customImportId = self.checkAndConvertNullable(
143
+ value, str, "customImportId"
144
+ )
145
+
146
+ @property
147
+ def status(self) -> Optional[DataSourceConnectionStatus]:
148
+ return self._status
149
+
150
+ @status.setter
151
+ def status(self, value):
152
+ self._status = self.checkAndConvertNullable(
153
+ value, DataSourceConnectionStatus, "status"
154
+ )
155
+
156
+ @property
157
+ def type(self) -> Optional[DataSourceType]:
158
+ return self._type
159
+
160
+ @type.setter
161
+ def type(self, value):
162
+ self._type = self.checkAndConvertNullable(value, DataSourceType, "type")
163
+
164
+ @property
165
+ def bridge(self) -> Optional["Bridge"]:
166
+ return self._bridge
167
+
168
+ @bridge.setter
169
+ def bridge(self, value):
170
+ self._bridge = self.checkAndConvertNullable(value, Bridge, "bridge")
171
+
172
+ @property
173
+ def format(self) -> Optional["DataFormatMinimal"]:
174
+ return self._format
175
+
176
+ @format.setter
177
+ def format(self, value):
178
+ self._format = MinimalModelGenerator.MinimalFromSingle(
179
+ value, "DataFormatMinimal", "format", connection=self._getConnection()
180
+ )
181
+
182
+ @property
183
+ def customImport(self) -> Optional[EntityMinimalWithStrId]:
184
+ return self._customImport
185
+
186
+ @customImport.setter
187
+ def customImport(self, value):
188
+ self._customImport = self.checkAndConvertNullable(
189
+ value, EntityMinimalWithStrId, "customImport"
190
+ )
191
+
192
+ @property
193
+ def datasetUpdateMode(self) -> Optional[DataSourceUpdateMode]:
194
+ return self._datasetUpdateMode
195
+
196
+ @datasetUpdateMode.setter
197
+ def datasetUpdateMode(self, value):
198
+ self._datasetUpdateMode = self.checkAndConvertNullable(
199
+ value, DataSourceUpdateMode, "datasetUpdateMode"
200
+ )
201
+
202
+ @property
203
+ def parser(self) -> Optional[DataFormat]:
204
+ return self._parser
205
+
206
+ @parser.setter
207
+ def parser(self, value):
208
+ self._parser = self.checkAndConvertNullable(value, DataFormat, "parser")
209
+
210
+ @property
211
+ def datasetTemplate(self) -> Optional[DatasetTemplate]:
212
+ return self._datasetTemplate
213
+
214
+ @datasetTemplate.setter
215
+ def datasetTemplate(self, value):
216
+ self._datasetTemplate = self.checkAndConvertNullable(
217
+ value, DatasetTemplate, "datasetTemplate"
218
+ )
@@ -0,0 +1,12 @@
1
+ from datetime import datetime
2
+ from typing import List, Optional
3
+
4
+ from LOGS.Entities.DataSourceStatus import DataSourceStatus
5
+ from LOGS.Entity.SerializableContent import SerializableClass
6
+
7
+
8
+ class DataSourceConnectionStatus(SerializableClass):
9
+ isConnected: Optional[bool] = None
10
+ nextScheduledDate: Optional[datetime] = None
11
+ lastClientStatus: Optional[DataSourceStatus] = None
12
+ statusHistory: Optional[List[DataSourceStatus]] = None
@@ -0,0 +1,8 @@
1
+ from LOGS.Auxiliary.Decorators import FullModel
2
+ from LOGS.Entities.DataSource import DataSource
3
+ from LOGS.Entity.EntityMinimalWithIntId import EntityMinimalWithIntId
4
+
5
+
6
+ @FullModel(DataSource)
7
+ class DataSourceMinimal(EntityMinimalWithIntId[DataSource]):
8
+ pass
@@ -0,0 +1,57 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import List, Optional, Type, cast
3
+
4
+ from typing_extensions import Self
5
+
6
+ from LOGS.Entities.BridgeType import BridgeType
7
+ from LOGS.Entities.DataSource import DataSourceType
8
+ from LOGS.Entity.EntityRequestParameter import EntityRequestParameter
9
+ from LOGS.Entity.IGenericEntityOrderBy import (
10
+ IEntryRecordSortingOptions,
11
+ IGenericEntitySortingOptions,
12
+ IModificationRecordSortingOptions,
13
+ INamedEntitySortingOptions,
14
+ )
15
+ from LOGS.Interfaces.IEntryRecord import IEntryRecordRequest
16
+ from LOGS.Interfaces.IModificationRecord import IModificationRecordRequest
17
+ from LOGS.Interfaces.INamedEntity import INamedEntityRequest
18
+ from LOGS.Interfaces.IPermissionedEntity import IPermissionedEntityRequest
19
+ from LOGS.Interfaces.IUniqueEntity import IUniqueEntityRequest
20
+
21
+
22
+ class DataSourceSortingOptions(
23
+ IGenericEntitySortingOptions,
24
+ INamedEntitySortingOptions,
25
+ IEntryRecordSortingOptions,
26
+ IModificationRecordSortingOptions,
27
+ ):
28
+ TYPE: Self = cast(Self, "TYPE")
29
+ BRIDGE: Self = cast(Self, "BRIDGE")
30
+ BRIDGE_TYPE: Self = cast(Self, "BRIDGE_TYPE")
31
+ INTERVAL: Self = cast(Self, "INTERVAL")
32
+ ENABLED: Self = cast(Self, "ENABLED")
33
+
34
+
35
+ @dataclass
36
+ class DataSourceRequestParameter(
37
+ EntityRequestParameter[DataSourceSortingOptions],
38
+ INamedEntityRequest,
39
+ IUniqueEntityRequest,
40
+ IEntryRecordRequest,
41
+ IModificationRecordRequest,
42
+ IPermissionedEntityRequest,
43
+ ):
44
+ _orderByType: Type[DataSourceSortingOptions] = field(
45
+ default=DataSourceSortingOptions, init=False
46
+ )
47
+
48
+ enabled: Optional[bool] = None
49
+ bridgeIds: Optional[List[int]] = None
50
+ bridgeTypes: Optional[List[BridgeType]] = None
51
+ datasetIds: Optional[List[int]] = None
52
+ formatIds: Optional[List[str]] = None
53
+ customImportIds: Optional[List[str]] = None
54
+ directories: Optional[List[str]] = None
55
+ sourceHostnames: Optional[List[str]] = None
56
+ sourceIpAddresses: Optional[List[str]] = None
57
+ types: Optional[List[DataSourceType]] = None