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.
- LOGS/Auxiliary/CheckClassName.py +1075 -0
- LOGS/Auxiliary/Constants.py +99 -0
- LOGS/Auxiliary/CustomEntityClassGenerator.py +254 -0
- LOGS/Auxiliary/CustomFieldClassGenerator.py +115 -0
- LOGS/Auxiliary/CustomFieldValueTypeChecker.py +168 -0
- LOGS/Auxiliary/CustomSectionClassGenerator.py +113 -0
- LOGS/Auxiliary/CustomTypeClassGenerator.py +147 -0
- LOGS/Auxiliary/DateTimeConverter.py +66 -0
- LOGS/Auxiliary/Decorators.py +109 -0
- LOGS/Auxiliary/Exceptions.py +341 -0
- LOGS/Auxiliary/LOGSErrorResponse.py +89 -0
- LOGS/Auxiliary/MinimalModelGenerator.py +236 -0
- LOGS/Auxiliary/ParameterHelper.py +56 -0
- LOGS/Auxiliary/ReplaceMessage.py +13 -0
- LOGS/Auxiliary/Tools.py +432 -0
- LOGS/Auxiliary/__init__.py +15 -0
- LOGS/Converter/Conversion.py +248 -0
- LOGS/Converter/Converter.py +96 -0
- LOGS/Converter/ConverterParameter.py +88 -0
- LOGS/Converter/DateTimeRange.py +58 -0
- LOGS/Converter/ExportParameters.py +89 -0
- LOGS/Converter/__init__.py +13 -0
- LOGS/Entities/Attachment.py +84 -0
- LOGS/Entities/AttachmentMinimal.py +8 -0
- LOGS/Entities/AttachmentRequestParameter.py +42 -0
- LOGS/Entities/Attachments.py +53 -0
- LOGS/Entities/AutoloadFileInfo.py +12 -0
- LOGS/Entities/AutoloadStatusError.py +7 -0
- LOGS/Entities/AxisNaming.py +33 -0
- LOGS/Entities/AxisZoom.py +33 -0
- LOGS/Entities/Bridge.py +165 -0
- LOGS/Entities/BridgeClientInfo.py +93 -0
- LOGS/Entities/BridgeMinimal.py +8 -0
- LOGS/Entities/BridgeRequestParameter.py +49 -0
- LOGS/Entities/BridgeType.py +7 -0
- LOGS/Entities/Bridges.py +12 -0
- LOGS/Entities/CustomField.py +243 -0
- LOGS/Entities/CustomFieldMinimal.py +8 -0
- LOGS/Entities/CustomFieldModels.py +111 -0
- LOGS/Entities/CustomFieldRequestParameter.py +69 -0
- LOGS/Entities/CustomFieldSearchQuery.py +40 -0
- LOGS/Entities/CustomFields.py +12 -0
- LOGS/Entities/CustomType.py +212 -0
- LOGS/Entities/CustomTypeMinimal.py +8 -0
- LOGS/Entities/CustomTypeRequestParameter.py +60 -0
- LOGS/Entities/CustomTypeSection.py +63 -0
- LOGS/Entities/CustomTypes.py +12 -0
- LOGS/Entities/DataFormat.py +97 -0
- LOGS/Entities/DataFormatInstrument.py +18 -0
- LOGS/Entities/DataFormatInstrumentMinimal.py +8 -0
- LOGS/Entities/DataFormatInstrumentRequestParameter.py +17 -0
- LOGS/Entities/DataFormatInstruments.py +16 -0
- LOGS/Entities/DataFormatMinimal.py +18 -0
- LOGS/Entities/DataFormatRequestParameter.py +21 -0
- LOGS/Entities/DataFormats.py +12 -0
- LOGS/Entities/DataSource.py +218 -0
- LOGS/Entities/DataSourceConnectionStatus.py +12 -0
- LOGS/Entities/DataSourceMinimal.py +8 -0
- LOGS/Entities/DataSourceRequestParameter.py +57 -0
- LOGS/Entities/DataSourceStatus.py +108 -0
- LOGS/Entities/DataSourceStatusIterator.py +16 -0
- LOGS/Entities/DataSourceStatusRequestParameter.py +31 -0
- LOGS/Entities/DataSources.py +12 -0
- LOGS/Entities/Dataset.py +439 -0
- LOGS/Entities/DatasetBase.py +196 -0
- LOGS/Entities/DatasetCreator.py +148 -0
- LOGS/Entities/DatasetInfo.py +147 -0
- LOGS/Entities/DatasetMatchTypes.py +157 -0
- LOGS/Entities/DatasetMatching.py +196 -0
- LOGS/Entities/DatasetMinimal.py +8 -0
- LOGS/Entities/DatasetModels.py +33 -0
- LOGS/Entities/DatasetRequestParameter.py +92 -0
- LOGS/Entities/DatasetTemplate.py +23 -0
- LOGS/Entities/DatasetUploadParameter.py +14 -0
- LOGS/Entities/Datasets.py +142 -0
- LOGS/Entities/Datatrack.py +179 -0
- LOGS/Entities/DatatrackFormattedTable.py +25 -0
- LOGS/Entities/DatatrackGeneric.py +34 -0
- LOGS/Entities/DatatrackImage.py +25 -0
- LOGS/Entities/DatatrackNumericArray.py +30 -0
- LOGS/Entities/DatatrackNumericMatrix.py +98 -0
- LOGS/Entities/Entities.py +71 -0
- LOGS/Entities/EntitiesRequestParameter.py +18 -0
- LOGS/Entities/EntityOriginWriteModelWithId.py +15 -0
- LOGS/Entities/FileEntry.py +138 -0
- LOGS/Entities/FileExcludePattern.py +8 -0
- LOGS/Entities/FormatMetaData.py +56 -0
- LOGS/Entities/FormattedTable/DatatypeFormattedTable.py +135 -0
- LOGS/Entities/FormattedTable/DatatypeFormattedTableCell.py +108 -0
- LOGS/Entities/FormattedTable/DatatypeFormattedTableSettings.py +11 -0
- LOGS/Entities/FormattedTable/__init__.py +9 -0
- LOGS/Entities/HierarchyLeaf.py +15 -0
- LOGS/Entities/HierarchyNode.py +40 -0
- LOGS/Entities/ILiteraryTypedEntity.py +19 -0
- LOGS/Entities/InventoryItem.py +102 -0
- LOGS/Entities/InventoryItemMinimal.py +25 -0
- LOGS/Entities/InventoryItemRequestParameter.py +58 -0
- LOGS/Entities/InventoryItems.py +12 -0
- LOGS/Entities/LabNotebook.py +33 -0
- LOGS/Entities/LabNotebookEntries.py +16 -0
- LOGS/Entities/LabNotebookEntry.py +106 -0
- LOGS/Entities/LabNotebookEntryContent/BasicAttribute.py +15 -0
- LOGS/Entities/LabNotebookEntryContent/EntityAttribute.py +85 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentBlockquote.py +13 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentBulletList.py +17 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentCallout.py +40 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentContentPlaceholderNode.py +31 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentConverter.py +207 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentDocument.py +8 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentEntity.py +13 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentEntityMention.py +31 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentHeading.py +33 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentHorizontalRule.py +12 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentItem.py +37 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentListItem.py +49 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentOrderedList.py +31 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentParagraph.py +13 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentTable.py +17 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentTableCell.py +40 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentTableRow.py +8 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentTaskList.py +17 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentTaskListItem.py +31 -0
- LOGS/Entities/LabNotebookEntryContent/EntryContentText.py +33 -0
- LOGS/Entities/LabNotebookEntryContent/IEntryContentWithAttribute.py +23 -0
- LOGS/Entities/LabNotebookEntryContent/IEntryContentWithContent.py +38 -0
- LOGS/Entities/LabNotebookEntryContent/IEntryContentWithTextAttribute.py +16 -0
- LOGS/Entities/LabNotebookEntryContent/TextAttribute.py +46 -0
- LOGS/Entities/LabNotebookEntryContent/TextMarkAtributes.py +64 -0
- LOGS/Entities/LabNotebookEntryContent/TextMarkConverter.py +45 -0
- LOGS/Entities/LabNotebookEntryContent/TextMarks.py +71 -0
- LOGS/Entities/LabNotebookEntryContent/__init__.py +34 -0
- LOGS/Entities/LabNotebookEntryMinimal.py +8 -0
- LOGS/Entities/LabNotebookEntryRequestParameter.py +59 -0
- LOGS/Entities/LabNotebookExperiment.py +58 -0
- LOGS/Entities/LabNotebookExperimentMinimal.py +8 -0
- LOGS/Entities/LabNotebookExperimentRequestParameter.py +52 -0
- LOGS/Entities/LabNotebookExperiments.py +16 -0
- LOGS/Entities/LabNotebookMinimal.py +8 -0
- LOGS/Entities/LabNotebookModels.py +14 -0
- LOGS/Entities/LabNotebookRequestParameter.py +42 -0
- LOGS/Entities/LabNotebookTemplate.py +42 -0
- LOGS/Entities/LabNotebookTemplateMinimal.py +8 -0
- LOGS/Entities/LabNotebookTemplateRequestParameter.py +38 -0
- LOGS/Entities/LabNotebookTemplates.py +16 -0
- LOGS/Entities/LabNotebooks.py +12 -0
- LOGS/Entities/Method.py +66 -0
- LOGS/Entities/MethodMinimal.py +8 -0
- LOGS/Entities/MethodRequestParameter.py +16 -0
- LOGS/Entities/Methods.py +12 -0
- LOGS/Entities/Origin.py +53 -0
- LOGS/Entities/OriginMinimal.py +8 -0
- LOGS/Entities/OriginRequestParameter.py +28 -0
- LOGS/Entities/Origins.py +12 -0
- LOGS/Entities/ParserLog.py +49 -0
- LOGS/Entities/Permission.py +9 -0
- LOGS/Entities/Person.py +145 -0
- LOGS/Entities/PersonCategory.py +12 -0
- LOGS/Entities/PersonMinimal.py +8 -0
- LOGS/Entities/PersonRequestParameter.py +58 -0
- LOGS/Entities/Persons.py +12 -0
- LOGS/Entities/Project.py +52 -0
- LOGS/Entities/ProjectMinimal.py +8 -0
- LOGS/Entities/ProjectPersonPermission.py +102 -0
- LOGS/Entities/ProjectRequestParameter.py +58 -0
- LOGS/Entities/Projects.py +12 -0
- LOGS/Entities/Role.py +94 -0
- LOGS/Entities/RoleMinimal.py +8 -0
- LOGS/Entities/RoleRequestParameter.py +40 -0
- LOGS/Entities/Roles.py +12 -0
- LOGS/Entities/RunState.py +9 -0
- LOGS/Entities/Sample.py +53 -0
- LOGS/Entities/SampleMinimal.py +8 -0
- LOGS/Entities/SampleRequestParameter.py +54 -0
- LOGS/Entities/Samples.py +12 -0
- LOGS/Entities/SharedContent.py +87 -0
- LOGS/Entities/SharedContentMinimal.py +8 -0
- LOGS/Entities/SharedContentRequestParameter.py +38 -0
- LOGS/Entities/SharedContents.py +12 -0
- LOGS/Entities/Signature.py +60 -0
- LOGS/Entities/Track.py +93 -0
- LOGS/Entities/TrackData.py +20 -0
- LOGS/Entities/TrackImage.py +21 -0
- LOGS/Entities/TrackImageData.py +20 -0
- LOGS/Entities/TrackMatrix.py +28 -0
- LOGS/Entities/TrackMatrixData.py +22 -0
- LOGS/Entities/TrackSettings.py +55 -0
- LOGS/Entities/TrackTable.py +21 -0
- LOGS/Entities/TrackTableData.py +22 -0
- LOGS/Entities/TrackXY.py +40 -0
- LOGS/Entities/TrackXYComplex.py +51 -0
- LOGS/Entities/TrackXYComplexData.py +50 -0
- LOGS/Entities/TrackXYData.py +31 -0
- LOGS/Entities/Vendor.py +40 -0
- LOGS/Entities/VendorMinimal.py +8 -0
- LOGS/Entities/VendorRequestParameter.py +17 -0
- LOGS/Entities/Vendors.py +12 -0
- LOGS/Entities/__init__.py +118 -0
- LOGS/Entity/ConnectedEntity.py +170 -0
- LOGS/Entity/Entity.py +203 -0
- LOGS/Entity/EntityConnector.py +70 -0
- LOGS/Entity/EntityIterator.py +263 -0
- LOGS/Entity/EntityMinimal.py +141 -0
- LOGS/Entity/EntityMinimalWithIntId.py +36 -0
- LOGS/Entity/EntityMinimalWithStrId.py +36 -0
- LOGS/Entity/EntityMinimalWithType.py +47 -0
- LOGS/Entity/EntityRequestParameter.py +104 -0
- LOGS/Entity/EntitySortBy.py +69 -0
- LOGS/Entity/EntityWithIntId.py +26 -0
- LOGS/Entity/EntityWithStrId.py +26 -0
- LOGS/Entity/IGenericEntityOrderBy.py +55 -0
- LOGS/Entity/IdIterator.py +207 -0
- LOGS/Entity/SerializableContent.py +834 -0
- LOGS/Entity/__init__.py +23 -0
- LOGS/Interfaces/ICustomFieldValue.py +92 -0
- LOGS/Interfaces/ICustomSectionValue.py +161 -0
- LOGS/Interfaces/ICustomTypeValue.py +152 -0
- LOGS/Interfaces/ICustomValue.py +28 -0
- LOGS/Interfaces/IEntityInterface.py +7 -0
- LOGS/Interfaces/IEntryRecord.py +57 -0
- LOGS/Interfaces/IHierarchicalEntity.py +41 -0
- LOGS/Interfaces/IHierarchyType.py +63 -0
- LOGS/Interfaces/ILockableEntity.py +52 -0
- LOGS/Interfaces/IModificationRecord.py +56 -0
- LOGS/Interfaces/INamedEntity.py +25 -0
- LOGS/Interfaces/IOwnedEntity.py +27 -0
- LOGS/Interfaces/IPaginationRequest.py +11 -0
- LOGS/Interfaces/IPermissionedEntity.py +72 -0
- LOGS/Interfaces/IProjectBased.py +27 -0
- LOGS/Interfaces/ISessionedEntity.py +59 -0
- LOGS/Interfaces/ISignableEntity.py +49 -0
- LOGS/Interfaces/ISoftDeletable.py +28 -0
- LOGS/Interfaces/ITypedEntity.py +129 -0
- LOGS/Interfaces/IUniqueEntity.py +61 -0
- LOGS/Interfaces/IVersionedEntity.py +39 -0
- LOGS/Interfaces/__init__.py +7 -0
- LOGS/LOGS.py +1436 -0
- LOGS/LOGSConnection.py +647 -0
- LOGS/LOGSOptions.py +11 -0
- LOGS/Parameters/Color.py +92 -0
- LOGS/Parameters/ParameterBase.py +55 -0
- LOGS/Parameters/ParameterConverter.py +24 -0
- LOGS/Parameters/ParameterElement.py +99 -0
- LOGS/Parameters/ParameterList.py +52 -0
- LOGS/Parameters/ParameterTable.py +64 -0
- LOGS/Parameters/__init__.py +13 -0
- LOGS/ServerMetaData.py +120 -0
- LOGS/__init__.py +12 -0
- logs_py-4.0.7.dist-info/METADATA +51 -0
- logs_py-4.0.7.dist-info/RECORD +251 -0
- logs_py-4.0.7.dist-info/WHEEL +5 -0
- logs_py-4.0.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
|
+
|
|
3
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
4
|
+
from LOGS.Entity.EntityWithIntId import IEntityWithIntId
|
|
5
|
+
from LOGS.Interfaces.ILockableEntity import ILockableEntity
|
|
6
|
+
from LOGS.Interfaces.INamedEntity import INamedEntity
|
|
7
|
+
from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
|
|
8
|
+
from LOGS.Interfaces.IProjectBased import IProjectBased
|
|
9
|
+
from LOGS.Interfaces.ISessionedEntity import ISessionedEntity
|
|
10
|
+
from LOGS.Interfaces.IUniqueEntity import IUniqueEntity
|
|
11
|
+
from LOGS.Interfaces.IVersionedEntity import IVersionedEntity
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@Endpoint("lab_notebook_templates")
|
|
15
|
+
class LabNotebookTemplate(
|
|
16
|
+
IEntityWithIntId,
|
|
17
|
+
IUniqueEntity,
|
|
18
|
+
INamedEntity,
|
|
19
|
+
IVersionedEntity,
|
|
20
|
+
IProjectBased,
|
|
21
|
+
IGenericPermissionEntity,
|
|
22
|
+
ISessionedEntity,
|
|
23
|
+
ILockableEntity,
|
|
24
|
+
):
|
|
25
|
+
_description: Optional[str] = None
|
|
26
|
+
_content: Optional[Dict[str, Any]] = None
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def description(self) -> Optional[str]:
|
|
30
|
+
return self._description
|
|
31
|
+
|
|
32
|
+
@description.setter
|
|
33
|
+
def description(self, value: str):
|
|
34
|
+
self._description = self.checkAndConvertNullable(value, str, "description")
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def content(self) -> Optional[Dict[str, Any]]:
|
|
38
|
+
return self._content
|
|
39
|
+
|
|
40
|
+
@content.setter
|
|
41
|
+
def content(self, value: Dict[str, Any]):
|
|
42
|
+
self._content = self.checkAndConvertNullable(value, dict, "content")
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import FullModel
|
|
2
|
+
from LOGS.Entities.LabNotebookTemplate import LabNotebookTemplate
|
|
3
|
+
from LOGS.Entity.EntityMinimalWithIntId import EntityMinimalWithIntId
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@FullModel(LabNotebookTemplate)
|
|
7
|
+
class LabNotebookTemplateMinimal(EntityMinimalWithIntId[LabNotebookTemplate]):
|
|
8
|
+
pass
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from typing import Type
|
|
3
|
+
|
|
4
|
+
from LOGS.Entity.EntityRequestParameter import EntityRequestParameter
|
|
5
|
+
from LOGS.Entity.IGenericEntityOrderBy import (
|
|
6
|
+
IGenericEntitySortingOptions,
|
|
7
|
+
IModificationRecordSortingOptions,
|
|
8
|
+
INamedEntitySortingOptions,
|
|
9
|
+
)
|
|
10
|
+
from LOGS.Interfaces.ILockableEntity import ILockableEntityRequest
|
|
11
|
+
from LOGS.Interfaces.INamedEntity import INamedEntityRequest
|
|
12
|
+
from LOGS.Interfaces.IPermissionedEntity import IPermissionedEntityRequest
|
|
13
|
+
from LOGS.Interfaces.IProjectBased import IProjectBasedRequest
|
|
14
|
+
from LOGS.Interfaces.IUniqueEntity import IUniqueEntityRequest
|
|
15
|
+
from LOGS.Interfaces.IVersionedEntity import IVersionedEntityRequest
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LabNotebookTemplateSortingOptions(
|
|
19
|
+
IGenericEntitySortingOptions,
|
|
20
|
+
INamedEntitySortingOptions,
|
|
21
|
+
IModificationRecordSortingOptions,
|
|
22
|
+
):
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class LabNotebookTemplateRequestParameter(
|
|
28
|
+
EntityRequestParameter[LabNotebookTemplateSortingOptions],
|
|
29
|
+
IPermissionedEntityRequest,
|
|
30
|
+
IUniqueEntityRequest,
|
|
31
|
+
INamedEntityRequest,
|
|
32
|
+
IProjectBasedRequest,
|
|
33
|
+
IVersionedEntityRequest[int],
|
|
34
|
+
ILockableEntityRequest,
|
|
35
|
+
):
|
|
36
|
+
_orderByType: Type[LabNotebookTemplateSortingOptions] = field(
|
|
37
|
+
default=LabNotebookTemplateSortingOptions, init=False
|
|
38
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
2
|
+
from LOGS.Entities.LabNotebookTemplate import LabNotebookTemplate
|
|
3
|
+
from LOGS.Entities.LabNotebookTemplateRequestParameter import (
|
|
4
|
+
LabNotebookTemplateRequestParameter,
|
|
5
|
+
)
|
|
6
|
+
from LOGS.Entity.EntityIterator import EntityIterator
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@Endpoint("lab_notebook_templates")
|
|
10
|
+
class LabNotebookTemplates(
|
|
11
|
+
EntityIterator[LabNotebookTemplate, LabNotebookTemplateRequestParameter]
|
|
12
|
+
):
|
|
13
|
+
"""LOGS connected LabNotebookTemplate iterator"""
|
|
14
|
+
|
|
15
|
+
_generatorType = LabNotebookTemplate
|
|
16
|
+
_parameterType = LabNotebookTemplateRequestParameter
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
2
|
+
from LOGS.Entities.LabNotebook import LabNotebook
|
|
3
|
+
from LOGS.Entities.LabNotebookRequestParameter import LabNotebookRequestParameter
|
|
4
|
+
from LOGS.Entity.EntityIterator import EntityIterator
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@Endpoint("lab_notebooks")
|
|
8
|
+
class LabNotebooks(EntityIterator[LabNotebook, LabNotebookRequestParameter]):
|
|
9
|
+
"""LOGS connected LabNotebook iterator"""
|
|
10
|
+
|
|
11
|
+
_generatorType = LabNotebook
|
|
12
|
+
_parameterType = LabNotebookRequestParameter
|
LOGS/Entities/Method.py
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING, List, Optional
|
|
2
|
+
|
|
3
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
4
|
+
from LOGS.Auxiliary.MinimalModelGenerator import MinimalModelGenerator
|
|
5
|
+
from LOGS.Entity.EntityWithStrId import EntityWithStrId
|
|
6
|
+
from LOGS.Interfaces.INamedEntity import INamedEntity
|
|
7
|
+
from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from LOGS.Entities.DataFormatMinimal import DataFormatMinimal
|
|
11
|
+
from LOGS.Entities.MethodMinimal import MethodMinimal
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@Endpoint("methods")
|
|
15
|
+
class Method(EntityWithStrId, INamedEntity, IGenericPermissionEntity):
|
|
16
|
+
_fullName: Optional[str] = None
|
|
17
|
+
_description: Optional[str] = None
|
|
18
|
+
_dataFormats: Optional[List["DataFormatMinimal"]] = None
|
|
19
|
+
_childMethods: Optional[List["MethodMinimal"]] = None
|
|
20
|
+
_parentMethod: Optional["MethodMinimal"] = None
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def fullName(self) -> Optional[str]:
|
|
24
|
+
return self._fullName
|
|
25
|
+
|
|
26
|
+
@fullName.setter
|
|
27
|
+
def fullName(self, value):
|
|
28
|
+
self._fullName = self.checkAndConvertNullable(value, str, "fullName")
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def description(self) -> Optional[str]:
|
|
32
|
+
return self._description
|
|
33
|
+
|
|
34
|
+
@description.setter
|
|
35
|
+
def description(self, value):
|
|
36
|
+
self._description = self.checkAndConvertNullable(value, str, "description")
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def dataFormats(self) -> Optional[List["DataFormatMinimal"]]:
|
|
40
|
+
return self._dataFormats
|
|
41
|
+
|
|
42
|
+
@dataFormats.setter
|
|
43
|
+
def dataFormats(self, value):
|
|
44
|
+
self._dataFormats = MinimalModelGenerator.MinimalFromList(
|
|
45
|
+
value, "DataFormatMinimal", "dataFormats", connection=self._getConnection()
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def childMethods(self) -> Optional[List["MethodMinimal"]]:
|
|
50
|
+
return self._childMethods
|
|
51
|
+
|
|
52
|
+
@childMethods.setter
|
|
53
|
+
def childMethods(self, value):
|
|
54
|
+
self._childMethods = MinimalModelGenerator.MinimalFromList(
|
|
55
|
+
value, "MethodMinimal", "childMethods", self._getConnection()
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def parentMethod(self) -> Optional["MethodMinimal"]:
|
|
60
|
+
return self._parentMethod
|
|
61
|
+
|
|
62
|
+
@parentMethod.setter
|
|
63
|
+
def parentMethod(self, value):
|
|
64
|
+
self._parentMethod = MinimalModelGenerator.MinimalFromSingle(
|
|
65
|
+
value, "MethodMinimal", "parentMethod", self._getConnection()
|
|
66
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from typing import Optional, Type
|
|
3
|
+
|
|
4
|
+
from LOGS.Entity.EntityRequestParameter import (
|
|
5
|
+
DefaultSortingOptions,
|
|
6
|
+
EntityRequestParameter,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclass
|
|
11
|
+
class MethodRequestParameter(EntityRequestParameter[DefaultSortingOptions]):
|
|
12
|
+
_orderByType: Type[DefaultSortingOptions] = field(
|
|
13
|
+
default=DefaultSortingOptions, init=False
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
name: Optional[str] = None
|
LOGS/Entities/Methods.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
2
|
+
from LOGS.Entities.Method import Method
|
|
3
|
+
from LOGS.Entities.MethodRequestParameter import MethodRequestParameter
|
|
4
|
+
from LOGS.Entity.EntityIterator import EntityIterator
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@Endpoint("methods")
|
|
8
|
+
class Methods(EntityIterator[Method, MethodRequestParameter]):
|
|
9
|
+
"""LOGS connected class FormatMethod iterator"""
|
|
10
|
+
|
|
11
|
+
_generatorType = Method
|
|
12
|
+
_parameterType = MethodRequestParameter
|
LOGS/Entities/Origin.py
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
|
|
4
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
5
|
+
from LOGS.Entity.EntityWithIntId import IEntityWithIntId
|
|
6
|
+
from LOGS.Interfaces.IEntryRecord import IEntryRecord
|
|
7
|
+
from LOGS.Interfaces.IModificationRecord import IModificationRecord
|
|
8
|
+
from LOGS.Interfaces.INamedEntity import INamedEntity
|
|
9
|
+
from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
|
|
10
|
+
from LOGS.LOGSConnection import LOGSConnection
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@Endpoint("origins")
|
|
14
|
+
class Origin(
|
|
15
|
+
IEntityWithIntId,
|
|
16
|
+
INamedEntity,
|
|
17
|
+
IModificationRecord,
|
|
18
|
+
IEntryRecord,
|
|
19
|
+
IGenericPermissionEntity,
|
|
20
|
+
):
|
|
21
|
+
_url: Optional[str] = None
|
|
22
|
+
_uid: Optional[UUID] = None
|
|
23
|
+
|
|
24
|
+
def __init__(
|
|
25
|
+
self,
|
|
26
|
+
ref=None,
|
|
27
|
+
id: Optional[int] = None,
|
|
28
|
+
connection: Optional[LOGSConnection] = None,
|
|
29
|
+
name: Optional[str] = None,
|
|
30
|
+
url: Optional[str] = None,
|
|
31
|
+
uid: Optional[UUID] = None,
|
|
32
|
+
):
|
|
33
|
+
self._name = name
|
|
34
|
+
self._url = url
|
|
35
|
+
self._uid = uid
|
|
36
|
+
|
|
37
|
+
super().__init__(ref=ref, id=id, connection=connection)
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def url(self) -> Optional[str]:
|
|
41
|
+
return self._url
|
|
42
|
+
|
|
43
|
+
@url.setter
|
|
44
|
+
def url(self, value):
|
|
45
|
+
self._url = self.checkAndConvertNullable(value, str, "url")
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def uid(self) -> Optional[UUID]:
|
|
49
|
+
return self._uid
|
|
50
|
+
|
|
51
|
+
@uid.setter
|
|
52
|
+
def uid(self, value):
|
|
53
|
+
self._uid = self.checkAndConvertNullable(value, UUID, "uid")
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from typing import List, Optional, Sequence, Type, Union
|
|
3
|
+
from uuid import UUID
|
|
4
|
+
|
|
5
|
+
from LOGS.Entity.EntityRequestParameter import (
|
|
6
|
+
DefaultSortingOptions,
|
|
7
|
+
EntityRequestParameter,
|
|
8
|
+
)
|
|
9
|
+
from LOGS.Interfaces.IEntryRecord import IEntryRecordRequest
|
|
10
|
+
from LOGS.Interfaces.IModificationRecord import IModificationRecordRequest
|
|
11
|
+
from LOGS.Interfaces.INamedEntity import INamedEntityRequest
|
|
12
|
+
from LOGS.Interfaces.IPermissionedEntity import IPermissionedEntityRequest
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class OriginRequestParameter(
|
|
17
|
+
EntityRequestParameter[DefaultSortingOptions],
|
|
18
|
+
INamedEntityRequest,
|
|
19
|
+
IModificationRecordRequest,
|
|
20
|
+
IEntryRecordRequest,
|
|
21
|
+
IPermissionedEntityRequest,
|
|
22
|
+
):
|
|
23
|
+
_orderByType: Type[DefaultSortingOptions] = field(
|
|
24
|
+
default=DefaultSortingOptions, init=False
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
urls: Optional[List[str]] = None
|
|
28
|
+
uids: Optional[Sequence[Union[UUID, str]]] = None
|
LOGS/Entities/Origins.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
2
|
+
from LOGS.Entities.Origin import Origin
|
|
3
|
+
from LOGS.Entities.OriginRequestParameter import OriginRequestParameter
|
|
4
|
+
from LOGS.Entity.EntityIterator import EntityIterator
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@Endpoint("origins")
|
|
8
|
+
class Origins(EntityIterator[Origin, OriginRequestParameter]):
|
|
9
|
+
"""LOGS connected Person iterator"""
|
|
10
|
+
|
|
11
|
+
_generatorType = Origin
|
|
12
|
+
_parameterType = OriginRequestParameter
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from LOGS.Entity.SerializableContent import SerializableContent
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ParserLog(SerializableContent):
|
|
7
|
+
_type: Optional[str] = None
|
|
8
|
+
_message: Optional[str] = None
|
|
9
|
+
_description: Optional[List[str]] = None
|
|
10
|
+
_code: Optional[int] = None
|
|
11
|
+
|
|
12
|
+
def __init__(self, ref=None):
|
|
13
|
+
super().__init__(ref=ref)
|
|
14
|
+
|
|
15
|
+
def __str__(self):
|
|
16
|
+
error = f" ({self.code})" if self.code else ""
|
|
17
|
+
return f"{type(self).__name__}.{self.type}{error}: {self.message}"
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def type(self) -> Optional[str]:
|
|
21
|
+
return self._type
|
|
22
|
+
|
|
23
|
+
@type.setter
|
|
24
|
+
def type(self, value):
|
|
25
|
+
self._type = self.checkAndConvertNullable(value, str, "type")
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def message(self) -> Optional[str]:
|
|
29
|
+
return self._message
|
|
30
|
+
|
|
31
|
+
@message.setter
|
|
32
|
+
def message(self, value):
|
|
33
|
+
self._message = self.checkAndConvertNullable(value, str, "message")
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def description(self) -> Optional[List[str]]:
|
|
37
|
+
return self._description
|
|
38
|
+
|
|
39
|
+
@description.setter
|
|
40
|
+
def description(self, value):
|
|
41
|
+
self._description = self.checkListAndConvertNullable(value, str, "description")
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def code(self) -> Optional[int]:
|
|
45
|
+
return self._code
|
|
46
|
+
|
|
47
|
+
@code.setter
|
|
48
|
+
def code(self, value):
|
|
49
|
+
self._code = self.checkAndConvertNullable(value, int, "code")
|
LOGS/Entities/Person.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
4
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
5
|
+
from LOGS.Entities.ProjectPersonPermission import ProjectPersonPermission
|
|
6
|
+
from LOGS.Entities.Role import Role
|
|
7
|
+
from LOGS.Entity.EntityWithIntId import IEntityWithIntId
|
|
8
|
+
from LOGS.Interfaces.IEntryRecord import IEntryRecord
|
|
9
|
+
from LOGS.Interfaces.ILockableEntity import ILockableEntity
|
|
10
|
+
from LOGS.Interfaces.IModificationRecord import IModificationRecord
|
|
11
|
+
from LOGS.Interfaces.INamedEntity import INamedEntity
|
|
12
|
+
from LOGS.Interfaces.IPermissionedEntity import IGenericPermissionEntity
|
|
13
|
+
from LOGS.Interfaces.ISoftDeletable import ISoftDeletable
|
|
14
|
+
from LOGS.Interfaces.ITypedEntity import ITypedEntity
|
|
15
|
+
from LOGS.Interfaces.IUniqueEntity import IUniqueEntity
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class PersonAccountState(Enum):
|
|
19
|
+
NoAccount = "NoAccount"
|
|
20
|
+
Enabled = "Enabled"
|
|
21
|
+
Disabled = "Disabled"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@Endpoint("persons")
|
|
25
|
+
class Person(
|
|
26
|
+
IEntityWithIntId,
|
|
27
|
+
IUniqueEntity,
|
|
28
|
+
INamedEntity,
|
|
29
|
+
ITypedEntity,
|
|
30
|
+
IEntryRecord,
|
|
31
|
+
IModificationRecord,
|
|
32
|
+
ISoftDeletable,
|
|
33
|
+
ILockableEntity,
|
|
34
|
+
IGenericPermissionEntity,
|
|
35
|
+
):
|
|
36
|
+
|
|
37
|
+
_personProjectPermissions: Optional[List[ProjectPersonPermission]] = None
|
|
38
|
+
|
|
39
|
+
_isSystemUser: Optional[bool] = None
|
|
40
|
+
_has2FA: Optional[bool] = None
|
|
41
|
+
_isLocalUser: Optional[bool] = None
|
|
42
|
+
|
|
43
|
+
_firstName: Optional[str] = None
|
|
44
|
+
_lastName: Optional[str] = None
|
|
45
|
+
_login: Optional[str] = None
|
|
46
|
+
_accountState: Optional[PersonAccountState] = None
|
|
47
|
+
|
|
48
|
+
_email: Optional[str] = None
|
|
49
|
+
_roles: Optional[List[Role]] = None
|
|
50
|
+
_password: Optional[str] = None
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def personProjectPermissions(self) -> Optional[List[ProjectPersonPermission]]:
|
|
54
|
+
return self._personProjectPermissions
|
|
55
|
+
|
|
56
|
+
@personProjectPermissions.setter
|
|
57
|
+
def personProjectPermissions(self, value):
|
|
58
|
+
self._personProjectPermissions = self.checkListAndConvertNullable(
|
|
59
|
+
value, ProjectPersonPermission, "personProjectPermissions"
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def isSystemUser(self) -> Optional[bool]:
|
|
64
|
+
return self._isSystemUser
|
|
65
|
+
|
|
66
|
+
@isSystemUser.setter
|
|
67
|
+
def isSystemUser(self, value):
|
|
68
|
+
self._isSystemUser = self.checkAndConvertNullable(value, bool, "isSystemUser")
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def has2FA(self) -> Optional[bool]:
|
|
72
|
+
return self._has2FA
|
|
73
|
+
|
|
74
|
+
@has2FA.setter
|
|
75
|
+
def has2FA(self, value):
|
|
76
|
+
self._has2FA = self.checkAndConvertNullable(value, bool, "has2FA")
|
|
77
|
+
|
|
78
|
+
@property
|
|
79
|
+
def isLocalUser(self) -> Optional[bool]:
|
|
80
|
+
return self._isLocalUser
|
|
81
|
+
|
|
82
|
+
@isLocalUser.setter
|
|
83
|
+
def isLocalUser(self, value):
|
|
84
|
+
self._isLocalUser = self.checkAndConvertNullable(value, bool, "isLocalUser")
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
def login(self) -> Optional[str]:
|
|
88
|
+
return self._login
|
|
89
|
+
|
|
90
|
+
@login.setter
|
|
91
|
+
def login(self, value):
|
|
92
|
+
self._login = self.checkAndConvertNullable(value, str, "login")
|
|
93
|
+
|
|
94
|
+
@property
|
|
95
|
+
def accountState(self) -> Optional[PersonAccountState]:
|
|
96
|
+
return self._accountState
|
|
97
|
+
|
|
98
|
+
@accountState.setter
|
|
99
|
+
def accountState(self, value):
|
|
100
|
+
self._accountState = self.checkAndConvertNullable(
|
|
101
|
+
value, PersonAccountState, "accountState"
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def firstName(self) -> Optional[str]:
|
|
106
|
+
return self._firstName
|
|
107
|
+
|
|
108
|
+
@firstName.setter
|
|
109
|
+
def firstName(self, value):
|
|
110
|
+
self._firstName = self.checkAndConvertNullable(value, str, "firstName")
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def lastName(self) -> Optional[str]:
|
|
114
|
+
return self._lastName
|
|
115
|
+
|
|
116
|
+
@lastName.setter
|
|
117
|
+
def lastName(self, value):
|
|
118
|
+
self._lastName = self.checkAndConvertNullable(value, str, "lastName")
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def email(self) -> Optional[str]:
|
|
122
|
+
return self._email
|
|
123
|
+
|
|
124
|
+
@email.setter
|
|
125
|
+
def email(self, value):
|
|
126
|
+
self._email = self.checkAndConvertNullable(value, str, "email")
|
|
127
|
+
|
|
128
|
+
@property
|
|
129
|
+
def roles(self) -> Optional[List[Role]]:
|
|
130
|
+
return self._roles
|
|
131
|
+
|
|
132
|
+
@roles.setter
|
|
133
|
+
def roles(self, value):
|
|
134
|
+
if value is None:
|
|
135
|
+
self._roles = None
|
|
136
|
+
else:
|
|
137
|
+
self._roles = self.checkListAndConvertNullable(value, Role, "roles")
|
|
138
|
+
|
|
139
|
+
@property
|
|
140
|
+
def password(self) -> Optional[str]:
|
|
141
|
+
return self._password
|
|
142
|
+
|
|
143
|
+
@password.setter
|
|
144
|
+
def password(self, value):
|
|
145
|
+
self._password = self.checkAndConvertNullable(value, str, "password")
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from LOGS.Entity.SerializableContent import SerializableClass
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class PersonCategory(SerializableClass):
|
|
7
|
+
id: Optional[int] = None
|
|
8
|
+
name: Optional[str] = None
|
|
9
|
+
|
|
10
|
+
def __str__(self):
|
|
11
|
+
s = (" name:'%s'" % self.name) if self.name else ""
|
|
12
|
+
return "<%s id:%s%s>" % (type(self).__name__, str(self.id), s)
|
|
@@ -0,0 +1,58 @@
|
|
|
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.Entity.EntityRequestParameter import EntityRequestParameter
|
|
7
|
+
from LOGS.Entity.IGenericEntityOrderBy import (
|
|
8
|
+
IEntryRecordSortingOptions,
|
|
9
|
+
IGenericEntitySortingOptions,
|
|
10
|
+
IModificationRecordSortingOptions,
|
|
11
|
+
ITypedEntitySortingOptions,
|
|
12
|
+
)
|
|
13
|
+
from LOGS.Interfaces.IEntryRecord import IEntryRecordRequest
|
|
14
|
+
from LOGS.Interfaces.ILockableEntity import ILockableEntityRequest
|
|
15
|
+
from LOGS.Interfaces.IModificationRecord import IModificationRecordRequest
|
|
16
|
+
from LOGS.Interfaces.IPermissionedEntity import IPermissionedEntityRequest
|
|
17
|
+
from LOGS.Interfaces.ISoftDeletable import ISoftDeletableRequest
|
|
18
|
+
from LOGS.Interfaces.ITypedEntity import ITypedEntityRequest
|
|
19
|
+
from LOGS.Interfaces.IUniqueEntity import IUniqueEntityRequest
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class PersonSortingOptions(
|
|
23
|
+
IGenericEntitySortingOptions,
|
|
24
|
+
IEntryRecordSortingOptions,
|
|
25
|
+
IModificationRecordSortingOptions,
|
|
26
|
+
ITypedEntitySortingOptions,
|
|
27
|
+
):
|
|
28
|
+
NAME: Self = cast(Self, "NAME")
|
|
29
|
+
LOGIN: Self = cast(Self, "LOGIN")
|
|
30
|
+
IS_SYSTEM_USER: Self = cast(Self, "IS_SYSTEM_USER")
|
|
31
|
+
LAST_NAME: Self = cast(Self, "LAST_NAME")
|
|
32
|
+
FIRST_NAME: Self = cast(Self, "FIRST_NAME")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass
|
|
36
|
+
class PersonRequestParameter(
|
|
37
|
+
EntityRequestParameter[PersonSortingOptions],
|
|
38
|
+
IPermissionedEntityRequest,
|
|
39
|
+
IUniqueEntityRequest,
|
|
40
|
+
IEntryRecordRequest,
|
|
41
|
+
IModificationRecordRequest,
|
|
42
|
+
ISoftDeletableRequest,
|
|
43
|
+
ILockableEntityRequest,
|
|
44
|
+
ITypedEntityRequest,
|
|
45
|
+
):
|
|
46
|
+
_orderByType: Type[PersonSortingOptions] = field(
|
|
47
|
+
default=PersonSortingOptions, init=False
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
isLocalUser: Optional[List[bool]] = None
|
|
51
|
+
roleIds: Optional[List[int]] = None
|
|
52
|
+
hasAccount: Optional[bool] = None
|
|
53
|
+
isAccountEnabled: Optional[bool] = None
|
|
54
|
+
includeSystemUsers: Optional[bool] = None
|
|
55
|
+
logins: Optional[List[str]] = None
|
|
56
|
+
emails: Optional[List[str]] = None
|
|
57
|
+
firstNames: Optional[List[str]] = None
|
|
58
|
+
lastNames: Optional[List[str]] = None
|
LOGS/Entities/Persons.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from LOGS.Auxiliary.Decorators import Endpoint
|
|
2
|
+
from LOGS.Entities.Person import Person
|
|
3
|
+
from LOGS.Entities.PersonRequestParameter import PersonRequestParameter
|
|
4
|
+
from LOGS.Entity.EntityIterator import EntityIterator
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@Endpoint("persons")
|
|
8
|
+
class Persons(EntityIterator[Person, PersonRequestParameter]):
|
|
9
|
+
"""LOGS connected Person iterator"""
|
|
10
|
+
|
|
11
|
+
_generatorType = Person
|
|
12
|
+
_parameterType = PersonRequestParameter
|