sapiopycommons 2024.10.24a342__tar.gz → 2024.10.25a345__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sapiopycommons might be problematic. Click here for more details.
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/PKG-INFO +1 -1
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/pyproject.toml +1 -1
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/chem/Molecules.py +1 -1
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/customreport/column_builder.py +2 -2
- sapiopycommons-2024.10.25a345/src/sapiopycommons/datatype/pseudo_data_types.py +440 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/eln/experiment_handler.py +44 -20
- sapiopycommons-2024.10.25a345/src/sapiopycommons/eln/experiment_report_util.py +245 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/aliases.py +50 -3
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/audit_log.py +40 -47
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/time_util.py +6 -40
- sapiopycommons-2024.10.25a345/src/sapiopycommons/sftpconnect/sftp_builder.py +69 -0
- sapiopycommons-2024.10.25a345/tests/_do_not_add_init_py_here +0 -0
- sapiopycommons-2024.10.24a342/src/sapiopycommons/eln/experiment_report_util.py +0 -118
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/.gitignore +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/LICENSE +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/README.md +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/callbacks/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/callbacks/callback_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/chem/IndigoMolecules.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/chem/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/customreport/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/customreport/custom_report_builder.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/customreport/term_builder.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/datatype/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/datatype/attachment_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/eln/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/eln/plate_designer.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/complex_data_loader.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_bridge.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_bridge_handler.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_data_handler.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_validator.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/files/file_writer.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/flowcyto/flow_cyto.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/flowcyto/flowcyto_data.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/accession_service.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/custom_report_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/exceptions.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/popup_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/sapio_links.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/general/storage_util.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/multimodal/multimodal.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/multimodal/multimodal_data.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/processtracking/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/processtracking/endpoints.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/recordmodel/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/recordmodel/record_handler.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/rules/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/rules/eln_rule_handler.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/rules/on_save_rule_handler.py +0 -0
- {sapiopycommons-2024.10.24a342/src/sapiopycommons/webhook → sapiopycommons-2024.10.25a345/src/sapiopycommons/sftpconnect}/__init__.py +0 -0
- /sapiopycommons-2024.10.24a342/tests/_do_not_add_init_py_here → /sapiopycommons-2024.10.25a345/src/sapiopycommons/webhook/__init__.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/webhook/webhook_handlers.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/webhook/webservice_handlers.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/accession_test.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/bio_reg_test.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/chem_test.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/chem_test_curation_queue.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/curation_queue_test.sdf +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/data_type_models.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto/101_DEN084Y5_15_E01_008_clean.fcs +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto/101_DEN084Y5_15_E03_009_clean.fcs +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto/101_DEN084Y5_15_E05_010_clean.fcs +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto/8_color_ICS.wsp +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto/COVID19_W_001_O.fcs +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/flowcyto_test.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/kappa.chains.fasta +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/mafft_test.py +0 -0
- {sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/tests/test.gb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sapiopycommons
|
|
3
|
-
Version: 2024.10.
|
|
3
|
+
Version: 2024.10.25a345
|
|
4
4
|
Summary: Official Sapio Python API Utilities Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/sapiosciences
|
|
6
6
|
Author-email: Jonathan Steck <jsteck@sapiosciences.com>, Yechen Qiao <yqiao@sapiosciences.com>
|
{sapiopycommons-2024.10.24a342 → sapiopycommons-2024.10.25a345}/src/sapiopycommons/chem/Molecules.py
RENAMED
|
@@ -231,7 +231,7 @@ def mol_to_sapio_substance(mol: Mol, include_stereoisomers=False,
|
|
|
231
231
|
indigo_mol.aromatize()
|
|
232
232
|
if enhanced_stereo:
|
|
233
233
|
# Remove enhanced stereo layer when generating InChI as the stereo hash is generated separately for reg.
|
|
234
|
-
mol_copy: Mol = Chem.
|
|
234
|
+
mol_copy: Mol = Chem.Mol(mol)
|
|
235
235
|
Chem.CanonicalizeEnhancedStereo(mol_copy)
|
|
236
236
|
molecule["inchi"] = Chem.MolToInchi(mol_copy)
|
|
237
237
|
molecule["inchiKey"] = Chem.MolToInchiKey(mol_copy)
|
|
@@ -52,9 +52,9 @@ class ColumnBuilder:
|
|
|
52
52
|
:param field: The field name to return the type of.
|
|
53
53
|
:return: The field type of the given field name.
|
|
54
54
|
"""
|
|
55
|
-
# Check if the field name is a system field. If it
|
|
55
|
+
# Check if the field name is a system field. If it is, use the field type defined in this file.
|
|
56
56
|
field_name: str = AliasUtil.to_data_field_name(field)
|
|
57
57
|
if field_name in SYSTEM_FIELDS:
|
|
58
58
|
return SYSTEM_FIELDS.get(field_name)
|
|
59
59
|
# Otherwise, check if the field type can be found from the wrapper.
|
|
60
|
-
return AliasUtil.to_field_type(
|
|
60
|
+
return AliasUtil.to_field_type(field, data_type)
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
from sapiopylib.rest.pojo.datatype.FieldDefinition import FieldType
|
|
2
|
+
from sapiopylib.rest.utils.recordmodel.RecordModelWrapper import WrapperField
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ActiveTaskPseudoDef:
|
|
6
|
+
DATA_TYPE_NAME: str = "ActiveTask"
|
|
7
|
+
ACTIVE_TASK_ID__FIELD_NAME = WrapperField("ActiveTaskId", FieldType.LONG)
|
|
8
|
+
ACTIVE_WORKFLOW_ID__FIELD_NAME = WrapperField("ActiveWorkflowId", FieldType.LONG)
|
|
9
|
+
DATE_EDITED__FIELD_NAME = WrapperField("DateEdited", FieldType.DATE)
|
|
10
|
+
EDITED_BY__FIELD_NAME = WrapperField("EditedBy", FieldType.STRING)
|
|
11
|
+
STATUS__FIELD_NAME = WrapperField("Status", FieldType.ENUM)
|
|
12
|
+
TASK_USAGE_ID__FIELD_NAME = WrapperField("TaskUsageId", FieldType.LONG)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ActiveWorkflowPseudoDef:
|
|
16
|
+
DATA_TYPE_NAME: str = "ActiveWorkflow"
|
|
17
|
+
ACTIVE_WORKFLOW_ID__FIELD_NAME = WrapperField("ActiveWorkflowId", FieldType.LONG)
|
|
18
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
19
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
20
|
+
DATE_EDITED__FIELD_NAME = WrapperField("DateEdited", FieldType.STRING)
|
|
21
|
+
EDITED_BY__FIELD_NAME = WrapperField("EditedBy", FieldType.STRING)
|
|
22
|
+
ESTIMATED_ATTACHMENTS__FIELD_NAME = WrapperField("EstimatedAttachments", FieldType.LONG)
|
|
23
|
+
NAME__FIELD_NAME = WrapperField("Name", FieldType.STRING)
|
|
24
|
+
RELATED_RECORD_ID__FIELD_NAME = WrapperField("RelatedRecordId", FieldType.LONG)
|
|
25
|
+
STATUS__FIELD_NAME = WrapperField("Status", FieldType.ENUM)
|
|
26
|
+
WORKFLOW_ID__FIELD_NAME = WrapperField("WorkflowId", FieldType.LONG)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class AuditLogPseudoDef:
|
|
30
|
+
DATA_TYPE_NAME: str = "AuditLog"
|
|
31
|
+
DATA_FIELD_NAME__FIELD_NAME = WrapperField("DataFieldName", FieldType.STRING)
|
|
32
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
33
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
34
|
+
EVENT_TYPE__FIELD_NAME = WrapperField("EventType", FieldType.ENUM)
|
|
35
|
+
FULL_NAME__FIELD_NAME = WrapperField("FullName", FieldType.STRING)
|
|
36
|
+
NEW_VALUE__FIELD_NAME = WrapperField("NewValue", FieldType.STRING)
|
|
37
|
+
ORIGINAL_VALUE__FIELD_NAME = WrapperField("OriginalValue", FieldType.STRING)
|
|
38
|
+
RECORD_ID__FIELD_NAME = WrapperField("RecordId", FieldType.LONG)
|
|
39
|
+
RECORD_NAME__FIELD_NAME = WrapperField("RecordName", FieldType.STRING)
|
|
40
|
+
TIME_STAMP__FIELD_NAME = WrapperField("TimeStamp", FieldType.DATE)
|
|
41
|
+
USER_COMMENT__FIELD_NAME = WrapperField("UserComment", FieldType.STRING)
|
|
42
|
+
USER_NAME__FIELD_NAME = WrapperField("UserName", FieldType.STRING)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class DataFieldDefinitionPseudoDef:
|
|
46
|
+
DATA_TYPE_NAME: str = "DataFieldDefinition"
|
|
47
|
+
APPROVE_EDIT__FIELD_NAME = WrapperField("ApproveEdit", FieldType.BOOLEAN)
|
|
48
|
+
AUTO_CLEAR_FIELD_LIST__FIELD_NAME = WrapperField("AutoClearFieldList", FieldType.STRING)
|
|
49
|
+
AUTO_SORT__FIELD_NAME = WrapperField("AutoSort", FieldType.BOOLEAN)
|
|
50
|
+
COLOR_MAPPING_ID__FIELD_NAME = WrapperField("ColorMappingId", FieldType.LONG)
|
|
51
|
+
DATA_FIELD_NAME__FIELD_NAME = WrapperField("DataFieldName", FieldType.STRING)
|
|
52
|
+
DATA_FIELD_TAG__FIELD_NAME = WrapperField("DataFieldTag", FieldType.STRING)
|
|
53
|
+
DATA_FIELD_TYPE__FIELD_NAME = WrapperField("DataFieldType", FieldType.STRING)
|
|
54
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
55
|
+
DECIMAL_DIGITS__FIELD_NAME = WrapperField("DecimalDigits", FieldType.INTEGER)
|
|
56
|
+
DEFAULT_VALUE__FIELD_NAME = WrapperField("DefaultValue", FieldType.STRING)
|
|
57
|
+
DEPENDENT_FIELDS__FIELD_NAME = WrapperField("Dependent_Fields", FieldType.STRING)
|
|
58
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
59
|
+
DIRECT_EDIT__FIELD_NAME = WrapperField("DirectEdit", FieldType.BOOLEAN)
|
|
60
|
+
DISPLAY_NAME__FIELD_NAME = WrapperField("DisplayName", FieldType.STRING)
|
|
61
|
+
EDITABLE__FIELD_NAME = WrapperField("Editable", FieldType.BOOLEAN)
|
|
62
|
+
ENUM_VALUES__FIELD_NAME = WrapperField("EnumValues", FieldType.STRING)
|
|
63
|
+
FORM_COL__FIELD_NAME = WrapperField("FormCol", FieldType.SHORT)
|
|
64
|
+
FORM_COL_SPAN__FIELD_NAME = WrapperField("FormColSpan", FieldType.SHORT)
|
|
65
|
+
FORM_NAME__FIELD_NAME = WrapperField("FormName", FieldType.STRING)
|
|
66
|
+
HTML_EDITOR__FIELD_NAME = WrapperField("HtmlEditor", FieldType.BOOLEAN)
|
|
67
|
+
IDENTIFIER__FIELD_NAME = WrapperField("Identifier", FieldType.BOOLEAN)
|
|
68
|
+
INDEX_FOR_SEARCH__FIELD_NAME = WrapperField("IndexForSearch", FieldType.BOOLEAN)
|
|
69
|
+
LINK_OUT__FIELD_NAME = WrapperField("LinkOut", FieldType.BOOLEAN)
|
|
70
|
+
LINK_OUT_URL__FIELD_NAME = WrapperField("LinkOutUrl", FieldType.BOOLEAN)
|
|
71
|
+
MAX_LENGTH__FIELD_NAME = WrapperField("MaxLength", FieldType.INTEGER)
|
|
72
|
+
MAXIMUM_VALUE__FIELD_NAME = WrapperField("MaximumValue", FieldType.DOUBLE)
|
|
73
|
+
MINIMUM_VALUE__FIELD_NAME = WrapperField("MinimumValue", FieldType.DOUBLE)
|
|
74
|
+
MULT_SELECT__FIELD_NAME = WrapperField("MultSelect", FieldType.BOOLEAN)
|
|
75
|
+
NUM_LINES__FIELD_NAME = WrapperField("NumLines", FieldType.INTEGER)
|
|
76
|
+
REQUIRED__FIELD_NAME = WrapperField("Required", FieldType.BOOLEAN)
|
|
77
|
+
SORT_KEY__FIELD_NAME = WrapperField("SortKey", FieldType.BOOLEAN)
|
|
78
|
+
STATIC_DATE__FIELD_NAME = WrapperField("StaticDate", FieldType.BOOLEAN)
|
|
79
|
+
UNIQUE_VALUE__FIELD_NAME = WrapperField("UniqueValue", FieldType.BOOLEAN)
|
|
80
|
+
VISIBLE__FIELD_NAME = WrapperField("Visible", FieldType.BOOLEAN)
|
|
81
|
+
WORKFLOW_ONLY_EDITING__FIELD_NAME = WrapperField("WorkflowOnlyEditing", FieldType.BOOLEAN)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class DataTypeDefinitionPseudoDef:
|
|
85
|
+
DATA_TYPE_NAME: str = "DataTypeDefinition"
|
|
86
|
+
ADDABLE__FIELD_NAME = WrapperField("Addable", FieldType.BOOLEAN)
|
|
87
|
+
ATTACHMENT__FIELD_NAME = WrapperField("Attachment", FieldType.BOOLEAN)
|
|
88
|
+
ATTACHMENT_TYPE__FIELD_NAME = WrapperField("AttachmentType", FieldType.STRING)
|
|
89
|
+
DATA_TYPE_TAG__FIELD_NAME = WrapperField("DATA_TYPE_TAG", FieldType.STRING)
|
|
90
|
+
DATA_TYPE_ID__FIELD_NAME = WrapperField("DataTypeId", FieldType.LONG)
|
|
91
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
92
|
+
DELETABLE__FIELD_NAME = WrapperField("Deletable", FieldType.BOOLEAN)
|
|
93
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
94
|
+
DISPLAY_NAME__FIELD_NAME = WrapperField("DisplayName", FieldType.STRING)
|
|
95
|
+
EXTENSION_TYPE__FIELD_NAME = WrapperField("ExtensionType", FieldType.BOOLEAN)
|
|
96
|
+
GROUP_ADDABLE__FIELD_NAME = WrapperField("GroupAddable", FieldType.BOOLEAN)
|
|
97
|
+
HIDE_DATA_RECORDS__FIELD_NAME = WrapperField("HideDataRecords", FieldType.BOOLEAN)
|
|
98
|
+
HIGH_VOLUME__FIELD_NAME = WrapperField("HighVolume", FieldType.BOOLEAN)
|
|
99
|
+
IS_HIDE_IN_MOBILE__FIELD_NAME = WrapperField("IS_HIDE_IN_MOBILE", FieldType.BOOLEAN)
|
|
100
|
+
IS_HVDT_ON_SAVE_ENABLED__FIELD_NAME = WrapperField("IS_HVDT_ON_SAVE_ENABLED", FieldType.BOOLEAN)
|
|
101
|
+
IS_PUBLIC_ATTACHMENT__FIELD_NAME = WrapperField("IS_PUBLIC_ATTACHMENT", FieldType.BOOLEAN)
|
|
102
|
+
ICON_COLOR__FIELD_NAME = WrapperField("IconColor", FieldType.STRING)
|
|
103
|
+
ICON_NAME__FIELD_NAME = WrapperField("IconName", FieldType.STRING)
|
|
104
|
+
IMPORTABLE__FIELD_NAME = WrapperField("Importable", FieldType.BOOLEAN)
|
|
105
|
+
IS_ACTIVE__FIELD_NAME = WrapperField("IsActive", FieldType.BOOLEAN)
|
|
106
|
+
IS_HIDDEN__FIELD_NAME = WrapperField("IsHidden", FieldType.BOOLEAN)
|
|
107
|
+
MAX_TABLE_ROW_COUNT__FIELD_NAME = WrapperField("MaxTableRowCount", FieldType.LONG)
|
|
108
|
+
PLURAL_DISPLAY_NAME__FIELD_NAME = WrapperField("PluralDisplayName", FieldType.STRING)
|
|
109
|
+
RECORD_ASSIGNABLE__FIELD_NAME = WrapperField("RecordAssignable", FieldType.BOOLEAN)
|
|
110
|
+
RECORD_IMAGE_ASSIGNABLE__FIELD_NAME = WrapperField("RecordImageAssignable", FieldType.BOOLEAN)
|
|
111
|
+
RECORD_IMAGE_MANUALLY_ADDABLE__FIELD_NAME = WrapperField("RecordImageManuallyAddable", FieldType.BOOLEAN)
|
|
112
|
+
REMOVABLE__FIELD_NAME = WrapperField("Removable", FieldType.BOOLEAN)
|
|
113
|
+
RESTRICTED__FIELD_NAME = WrapperField("Restricted", FieldType.BOOLEAN)
|
|
114
|
+
SHOW_ON_HOME_SCREEN__FIELD_NAME = WrapperField("ShowOnHomeScreen", FieldType.BOOLEAN)
|
|
115
|
+
SHOW_SUB_TABLES__FIELD_NAME = WrapperField("ShowSubTables", FieldType.BOOLEAN)
|
|
116
|
+
SHOW_TABS__FIELD_NAME = WrapperField("ShowTabs", FieldType.BOOLEAN)
|
|
117
|
+
SINGLE_PARENT__FIELD_NAME = WrapperField("SingleParent", FieldType.BOOLEAN)
|
|
118
|
+
UNDER_CONTAINER__FIELD_NAME = WrapperField("UnderContainer", FieldType.BOOLEAN)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class EnbDataTypeDefinitionPseudoDef:
|
|
122
|
+
DATA_TYPE_NAME: str = "EnbDataTypeDefinition"
|
|
123
|
+
DATA_TYPE_ID__FIELD_NAME = WrapperField("DataTypeId", FieldType.LONG)
|
|
124
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
125
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
126
|
+
DISPLAY_NAME__FIELD_NAME = WrapperField("DisplayName", FieldType.STRING)
|
|
127
|
+
ENB_DATA_TYPE_NAME__FIELD_NAME = WrapperField("EnbDataTypeName", FieldType.STRING)
|
|
128
|
+
ICON_COLOR__FIELD_NAME = WrapperField("IconColor", FieldType.STRING)
|
|
129
|
+
ICON_NAME__FIELD_NAME = WrapperField("IconName", FieldType.STRING)
|
|
130
|
+
NOTEBOOK_EXPERIMENT_ID__FIELD_NAME = WrapperField("Notebook_Experiment_ID", FieldType.LONG)
|
|
131
|
+
PLURAL_DISPLAY_NAME__FIELD_NAME = WrapperField("PluralDisplayName", FieldType.STRING)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class EnbEntryPseudoDef:
|
|
135
|
+
DATA_TYPE_NAME: str = "EnbEntry"
|
|
136
|
+
APPROVAL_DUE_DATE__FIELD_NAME = WrapperField("ApprovalDueDate", FieldType.DATE)
|
|
137
|
+
COLUMN_ORDER__FIELD_NAME = WrapperField("ColumnOrder", FieldType.INTEGER)
|
|
138
|
+
COLUMN_SPAN__FIELD_NAME = WrapperField("ColumnSpan", FieldType.INTEGER)
|
|
139
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
140
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
141
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
142
|
+
DEPENDENT_ENTRY_ID_LIST__FIELD_NAME = WrapperField("DependentEntryIdList", FieldType.STRING)
|
|
143
|
+
ENTRY_DESCRIPTION__FIELD_NAME = WrapperField("EntryDescription", FieldType.STRING)
|
|
144
|
+
ENTRY_HEIGHT__FIELD_NAME = WrapperField("EntryHeight", FieldType.INTEGER)
|
|
145
|
+
ENTRY_ID__FIELD_NAME = WrapperField("EntryId", FieldType.LONG)
|
|
146
|
+
ENTRY_NAME__FIELD_NAME = WrapperField("EntryName", FieldType.STRING)
|
|
147
|
+
ENTRY_ORDER__FIELD_NAME = WrapperField("EntryOrder", FieldType.INTEGER)
|
|
148
|
+
ENTRY_REQUIRES_E_SIGN__FIELD_NAME = WrapperField("EntryRequiresESign", FieldType.BOOLEAN)
|
|
149
|
+
ENTRY_SINGLETON_ID__FIELD_NAME = WrapperField("EntrySingletonId", FieldType.STRING)
|
|
150
|
+
ENTRY_STATUS__FIELD_NAME = WrapperField("EntryStatus", FieldType.STRING)
|
|
151
|
+
ENTRY_TYPE__FIELD_NAME = WrapperField("EntryType", FieldType.STRING)
|
|
152
|
+
EXPERIMENT_ID__FIELD_NAME = WrapperField("ExperimentId", FieldType.LONG)
|
|
153
|
+
HAS_COMMENTS__FIELD_NAME = WrapperField("HasComments", FieldType.BOOLEAN)
|
|
154
|
+
IS_CREATED_FROM_TEMPLATE__FIELD_NAME = WrapperField("IsCreatedFromTemplate", FieldType.BOOLEAN)
|
|
155
|
+
IS_REQUIRED_ENTRY__FIELD_NAME = WrapperField("IsRequiredEntry", FieldType.BOOLEAN)
|
|
156
|
+
IS_SHOWN_IN_TEMPLATE__FIELD_NAME = WrapperField("IsShownInTemplate", FieldType.BOOLEAN)
|
|
157
|
+
LAST_MODIFIED_BY__FIELD_NAME = WrapperField("LastModifiedBy", FieldType.STRING)
|
|
158
|
+
LAST_MODIFIED_DATE__FIELD_NAME = WrapperField("LastModifiedDate", FieldType.DATE)
|
|
159
|
+
RELATED_ENTRY_ID_LIST__FIELD_NAME = WrapperField("RelatedEntryIdList", FieldType.STRING)
|
|
160
|
+
REQUIRES_GRABBER_PLUGIN__FIELD_NAME = WrapperField("RequriesGrabberPlugin", FieldType.BOOLEAN)
|
|
161
|
+
SOURCE_ENTRY_ID__FIELD_NAME = WrapperField("SourceEntryId", FieldType.LONG)
|
|
162
|
+
SUBMITTED_BY__FIELD_NAME = WrapperField("SubmittedBy", FieldType.STRING)
|
|
163
|
+
SUBMITTED_DATE__FIELD_NAME = WrapperField("SubmittedDate", FieldType.DATE)
|
|
164
|
+
TAB_ID__FIELD_NAME = WrapperField("TabId", FieldType.LONG)
|
|
165
|
+
TEMPLATE_ITEM_FULFILLED_TIME_STAMP__FIELD_NAME = WrapperField("TemplateItemFulfilledTimeStamp", FieldType.LONG)
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
class EnbEntryOptionsPseudoDef:
|
|
169
|
+
DATA_TYPE_NAME: str = "EnbEntryOptions"
|
|
170
|
+
ENTRY_ID__FIELD_NAME = WrapperField("EntryId", FieldType.LONG)
|
|
171
|
+
ENTRY_OPTION_VALUE__FIELD_NAME = WrapperField("EntryOptionValue", FieldType.STRING)
|
|
172
|
+
ENTRY_OPTION_KEY__FIELD_NAME = WrapperField("EntryOptionkey", FieldType.STRING)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class ExperimentEntryRecordPseudoDef:
|
|
176
|
+
DATA_TYPE_NAME: str = "ExperimentEntryRecord"
|
|
177
|
+
ENTRY_ID__FIELD_NAME = WrapperField("EntryId", FieldType.LONG)
|
|
178
|
+
RECORD_ID__FIELD_NAME = WrapperField("RecordId", FieldType.LONG)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class LimsUserPseudoDef:
|
|
182
|
+
DATA_TYPE_NAME: str = "LimsUser"
|
|
183
|
+
API_USER__FIELD_NAME = WrapperField("ApiUser", FieldType.BOOLEAN)
|
|
184
|
+
EMAIL_ADDRESS__FIELD_NAME = WrapperField("EmailAddress", FieldType.STRING)
|
|
185
|
+
FIRST_NAME__FIELD_NAME = WrapperField("FirstName", FieldType.STRING)
|
|
186
|
+
LAST_NAME__FIELD_NAME = WrapperField("LastName", FieldType.STRING)
|
|
187
|
+
MIDDLE_NAME__FIELD_NAME = WrapperField("MiddleName", FieldType.STRING)
|
|
188
|
+
PWD_EXPIRE_DATE__FIELD_NAME = WrapperField("PwdExpireDate", FieldType.DATE)
|
|
189
|
+
PWD_EXPIRE_INTERVAL__FIELD_NAME = WrapperField("PwdExpireInterval", FieldType.INTEGER)
|
|
190
|
+
USER_NAME__FIELD_NAME = WrapperField("UserName", FieldType.STRING)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class NotebookExperimentPseudoDef:
|
|
194
|
+
DATA_TYPE_NAME: str = "NotebookExperiment"
|
|
195
|
+
ACCESS_LEVEL__FIELD_NAME = WrapperField("AccessLevel", FieldType.STRING)
|
|
196
|
+
APPROVAL_DUE_DATE__FIELD_NAME = WrapperField("ApprovalDueDate", FieldType.DATE)
|
|
197
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
198
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
199
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
200
|
+
EXPERIMENT_ID__FIELD_NAME = WrapperField("ExperimentId", FieldType.LONG)
|
|
201
|
+
EXPERIMENT_NAME__FIELD_NAME = WrapperField("ExperimentName", FieldType.STRING)
|
|
202
|
+
EXPERIMENT_OWNER__FIELD_NAME = WrapperField("ExperimentOwner", FieldType.STRING)
|
|
203
|
+
EXPERIMENT_RECORD_ID__FIELD_NAME = WrapperField("ExperimentRecordId", FieldType.LONG)
|
|
204
|
+
EXPERIMENT_TYPE_NAME__FIELD_NAME = WrapperField("ExperimentTypeName", FieldType.STRING)
|
|
205
|
+
IS_ACTIVE__FIELD_NAME = WrapperField("IsActive", FieldType.BOOLEAN)
|
|
206
|
+
IS_MODIFIABLE__FIELD_NAME = WrapperField("IsModifiable", FieldType.BOOLEAN)
|
|
207
|
+
IS_TEMPLATE__FIELD_NAME = WrapperField("IsTemplate", FieldType.BOOLEAN)
|
|
208
|
+
IS_PROTOCOL_TEMPLATE__FIELD_NAME = WrapperField("Is_Protocol_Template", FieldType.BOOLEAN)
|
|
209
|
+
LAST_MODIFIED_BY__FIELD_NAME = WrapperField("LastModifiedBy", FieldType.STRING)
|
|
210
|
+
LAST_MODIFIED_DATE__FIELD_NAME = WrapperField("LastModifiedDate", FieldType.DATE)
|
|
211
|
+
SOURCE_TEMPLATE_ID__FIELD_NAME = WrapperField("SourceTemplateId", FieldType.LONG)
|
|
212
|
+
STATUS__FIELD_NAME = WrapperField("Status", FieldType.STRING)
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class NotebookExperimentOptionPseudoDef:
|
|
216
|
+
DATA_TYPE_NAME: str = "NotebookExperimentOption"
|
|
217
|
+
EXPERIMENT_ID__FIELD_NAME = WrapperField("ExperimentId", FieldType.LONG)
|
|
218
|
+
OPTION_KEY__FIELD_NAME = WrapperField("OptionKey", FieldType.STRING)
|
|
219
|
+
OPTION_VALUE__FIELD_NAME = WrapperField("OptionValue", FieldType.STRING)
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
class SystemLogPseudoDef:
|
|
223
|
+
DATA_TYPE_NAME: str = "SystemLog"
|
|
224
|
+
DATA_FIELD_NAME__FIELD_NAME = WrapperField("DataFieldName", FieldType.STRING)
|
|
225
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("DataTypeName", FieldType.STRING)
|
|
226
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
227
|
+
EVENT_ID__FIELD_NAME = WrapperField("EventId", FieldType.LONG)
|
|
228
|
+
EVENT_TYPE__FIELD_NAME = WrapperField("EventType", FieldType.STRING)
|
|
229
|
+
FULL_NAME__FIELD_NAME = WrapperField("FullName", FieldType.STRING)
|
|
230
|
+
NEW_VALUE__FIELD_NAME = WrapperField("NewValue", FieldType.STRING)
|
|
231
|
+
ORIGINAL_VALUE__FIELD_NAME = WrapperField("OriginalValue", FieldType.STRING)
|
|
232
|
+
RECORD_ID__FIELD_NAME = WrapperField("RecordId", FieldType.LONG)
|
|
233
|
+
RECORD_NAME__FIELD_NAME = WrapperField("RecordName", FieldType.STRING)
|
|
234
|
+
TIMESTAMP__FIELD_NAME = WrapperField("Timestamp", FieldType.DATE)
|
|
235
|
+
USER_COMMENT__FIELD_NAME = WrapperField("UserComment", FieldType.STRING)
|
|
236
|
+
USERNAME__FIELD_NAME = WrapperField("Username", FieldType.STRING)
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class SystemObjectChangeLogPseudoDef:
|
|
240
|
+
DATA_TYPE_NAME: str = "System_Object_Change_Log"
|
|
241
|
+
ALT_ID__FIELD_NAME = WrapperField("Alt_Id", FieldType.STRING)
|
|
242
|
+
ATTRIBUTE_NAME__FIELD_NAME = WrapperField("Attribute_Name", FieldType.STRING)
|
|
243
|
+
CHANGE_TYPE__FIELD_NAME = WrapperField("Change_Type", FieldType.STRING)
|
|
244
|
+
DATA_FIELD_NAME__FIELD_NAME = WrapperField("Data_Field_Name", FieldType.STRING)
|
|
245
|
+
DATA_TYPE_NAME__FIELD_NAME = WrapperField("Data_Type_Name", FieldType.STRING)
|
|
246
|
+
EVENT_ID__FIELD_NAME = WrapperField("Event_Id", FieldType.STRING)
|
|
247
|
+
NEW_VALUE__FIELD_NAME = WrapperField("New_Value", FieldType.STRING)
|
|
248
|
+
OBJECT_ID__FIELD_NAME = WrapperField("Object_Id", FieldType.STRING)
|
|
249
|
+
OBJECT_TYPE__FIELD_NAME = WrapperField("Object_Type", FieldType.STRING)
|
|
250
|
+
OLD_VALUE__FIELD_NAME = WrapperField("Old_Value", FieldType.STRING)
|
|
251
|
+
TIMESTAMP__FIELD_NAME = WrapperField("Timestamp", FieldType.DATE)
|
|
252
|
+
USERNAME__FIELD_NAME = WrapperField("Username", FieldType.STRING)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
class TaskPseudoDef:
|
|
256
|
+
DATA_TYPE_NAME: str = "Task"
|
|
257
|
+
ATTACHMENT_REQUIRED__FIELD_NAME = WrapperField("AttachmentRequired", FieldType.BOOLEAN)
|
|
258
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
259
|
+
CUSTOM_ACTION__FIELD_NAME = WrapperField("CustomAction", FieldType.STRING)
|
|
260
|
+
DATA_TYPE_NAME_LIST__FIELD_NAME = WrapperField("DataTypeNameList", FieldType.STRING)
|
|
261
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
262
|
+
DATE_EDITED__FIELD_NAME = WrapperField("DateEdited", FieldType.DATE)
|
|
263
|
+
DISPLAY_TYPE__FIELD_NAME = WrapperField("DisplayType", FieldType.ENUM)
|
|
264
|
+
EDITED_BY__FIELD_NAME = WrapperField("EditedBy", FieldType.STRING)
|
|
265
|
+
INPUT_DATA_TYPE_NAME__FIELD_NAME = WrapperField("InputDataTypeName", FieldType.STRING)
|
|
266
|
+
IS_TEMPLATE__FIELD_NAME = WrapperField("IsTemplate", FieldType.BOOLEAN)
|
|
267
|
+
LONG_DESC__FIELD_NAME = WrapperField("LongDesc", FieldType.STRING)
|
|
268
|
+
MENU_TASK_ID__FIELD_NAME = WrapperField("MenuTaskId", FieldType.ENUM)
|
|
269
|
+
NAME__FIELD_NAME = WrapperField("Name", FieldType.STRING)
|
|
270
|
+
SHORT_DESC__FIELD_NAME = WrapperField("ShortDesc", FieldType.STRING)
|
|
271
|
+
TASK_ID__FIELD_NAME = WrapperField("TaskId", FieldType.LONG)
|
|
272
|
+
TASK_VERSION__FIELD_NAME = WrapperField("TaskVersion", FieldType.LONG)
|
|
273
|
+
TEMPLATE_TASK_ID__FIELD_NAME = WrapperField("TemplateTaskId", FieldType.LONG)
|
|
274
|
+
TYPE__FIELD_NAME = WrapperField("Type", FieldType.ENUM)
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
class TaskAttachmentPseudoDef:
|
|
278
|
+
DATA_TYPE_NAME: str = "TaskAttachment"
|
|
279
|
+
ACTIVE_TASK_ID__FIELD_NAME = WrapperField("ActiveTaskId", FieldType.LONG)
|
|
280
|
+
RECORD_ID__FIELD_NAME = WrapperField("RecordId", FieldType.LONG)
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
class TaskOptionPseudoDef:
|
|
284
|
+
DATA_TYPE_NAME: str = "TaskOption"
|
|
285
|
+
OPTION_KEY__FIELD_NAME = WrapperField("OptionKey", FieldType.STRING)
|
|
286
|
+
OPTION_VALUE__FIELD_NAME = WrapperField("OptionValue", FieldType.STRING)
|
|
287
|
+
TASK_ID__FIELD_NAME = WrapperField("TaskId", FieldType.LONG)
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
class TaskUsagePseudoDef:
|
|
291
|
+
DATA_TYPE_NAME: str = "TaskUsage"
|
|
292
|
+
FORCE_ATTACH__FIELD_NAME = WrapperField("ForceAttach", FieldType.BOOLEAN)
|
|
293
|
+
IS_TEMPLATE__FIELD_NAME = WrapperField("IsTemplate", FieldType.BOOLEAN)
|
|
294
|
+
TASK_ID__FIELD_NAME = WrapperField("TaskId", FieldType.LONG)
|
|
295
|
+
TASK_ORDER__FIELD_NAME = WrapperField("TaskOrder", FieldType.INTEGER)
|
|
296
|
+
TASK_USAGE_ID__FIELD_NAME = WrapperField("TaskUsageId", FieldType.LONG)
|
|
297
|
+
WORKFLOW_ID__FIELD_NAME = WrapperField("WorkflowId", FieldType.LONG)
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
class VeloxWebhookPseudoDef:
|
|
301
|
+
DATA_TYPE_NAME: str = "VELOXWEBHOOK"
|
|
302
|
+
CUSTOM_PLUGIN_POINT__FIELD_NAME = WrapperField("CUSTOM_PLUGIN_POINT", FieldType.STRING)
|
|
303
|
+
DATA_TYPE_NAME_SET__FIELD_NAME = WrapperField("DATA_TYPE_NAME_SET", FieldType.STRING)
|
|
304
|
+
DESCRIPTION__FIELD_NAME = WrapperField("DESCRIPTION", FieldType.STRING)
|
|
305
|
+
ENB_ENTRY_TYPE__FIELD_NAME = WrapperField("ENB_ENTRY_TYPE", FieldType.STRING)
|
|
306
|
+
EXPERIMENT_ENTRY_NAME__FIELD_NAME = WrapperField("EXPERIMENT_ENTRY_NAME", FieldType.STRING)
|
|
307
|
+
GUID__FIELD_NAME = WrapperField("GUID", FieldType.STRING)
|
|
308
|
+
ICON_COLOR__FIELD_NAME = WrapperField("ICON_COLOR", FieldType.STRING)
|
|
309
|
+
ICON_GUID__FIELD_NAME = WrapperField("ICON_GUID", FieldType.STRING)
|
|
310
|
+
IS_RETRY_ON_FAILURE__FIELD_NAME = WrapperField("IS_RETRY_ON_FAILURE", FieldType.BOOLEAN)
|
|
311
|
+
IS_TRANSACTIONAL__FIELD_NAME = WrapperField("IS_TRANSACTIONAL", FieldType.BOOLEAN)
|
|
312
|
+
LINE_1_TEXT__FIELD_NAME = WrapperField("LINE_1_TEXT", FieldType.STRING)
|
|
313
|
+
LINE_2_TEXT__FIELD_NAME = WrapperField("LINE_2_TEXT", FieldType.STRING)
|
|
314
|
+
PLUGIN_ORDER__FIELD_NAME = WrapperField("PLUGIN_ORDER", FieldType.INTEGER)
|
|
315
|
+
PLUGIN_POINT__FIELD_NAME = WrapperField("PLUGIN_POINT", FieldType.STRING)
|
|
316
|
+
SECTION_NAME_PATH__FIELD_NAME = WrapperField("SECTION_NAME_PATH", FieldType.STRING)
|
|
317
|
+
TEMPLATE_NAME__FIELD_NAME = WrapperField("TEMPLATE_NAME", FieldType.STRING)
|
|
318
|
+
WEBHOOK_URL__FIELD_NAME = WrapperField("WEBHOOK_URL", FieldType.STRING)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
class VeloxWebhookExecutionPseudoDef:
|
|
322
|
+
DATA_TYPE_NAME: str = "VELOXWEBHOOK_EXECUTION"
|
|
323
|
+
EXECUTION_TIMESTAMP__FIELD_NAME = WrapperField("EXECUTION_TIMESTAMP", FieldType.DATE)
|
|
324
|
+
EXECUTION_USERNAME__FIELD_NAME = WrapperField("EXECUTION_USERNAME", FieldType.STRING)
|
|
325
|
+
GUID__FIELD_NAME = WrapperField("GUID", FieldType.STRING)
|
|
326
|
+
LAST_ATTEMPT_NUMBER__FIELD_NAME = WrapperField("LAST_ATTEMPT_NUMBER", FieldType.INTEGER)
|
|
327
|
+
LAST_ATTEMPT_RESULT__FIELD_NAME = WrapperField("LAST_ATTEMPT_RESULT", FieldType.STRING)
|
|
328
|
+
REQUEST_BODY__FIELD_NAME = WrapperField("REQUEST_BODY", FieldType.STRING)
|
|
329
|
+
WEBHOOK_GUID__FIELD_NAME = WrapperField("WEBHOOK_GUID", FieldType.STRING)
|
|
330
|
+
WEBHOOK_URL__FIELD_NAME = WrapperField("WEBHOOK_URL", FieldType.STRING)
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
class VeloxWebhookExecutionAttemptPseudoDef:
|
|
334
|
+
DATA_TYPE_NAME: str = "VELOXWEBHOOK_EXECUTION_ATTEMPT"
|
|
335
|
+
ATTEMPT_DURATION__FIELD_NAME = WrapperField("ATTEMPT_DURATION", FieldType.INTEGER)
|
|
336
|
+
ATTEMPT_NUMBER__FIELD_NAME = WrapperField("ATTEMPT_NUMBER", FieldType.INTEGER)
|
|
337
|
+
ATTEMPT_RESULT__FIELD_NAME = WrapperField("ATTEMPT_RESULT", FieldType.STRING)
|
|
338
|
+
ATTEMPT_TIMESTAMP__FIELD_NAME = WrapperField("ATTEMPT_TIMESTAMP", FieldType.DATE)
|
|
339
|
+
EXECUTION_GUID__FIELD_NAME = WrapperField("EXECUTION_GUID", FieldType.STRING)
|
|
340
|
+
GUID__FIELD_NAME = WrapperField("GUID", FieldType.STRING)
|
|
341
|
+
RESPONSE_BODY__FIELD_NAME = WrapperField("RESPONSE_BODY", FieldType.STRING)
|
|
342
|
+
RESPONSE_CODE__FIELD_NAME = WrapperField("RESPONSE_CODE", FieldType.INTEGER)
|
|
343
|
+
WEBHOOK_GUID__FIELD_NAME = WrapperField("WEBHOOK_GUID", FieldType.STRING)
|
|
344
|
+
WEBHOOK_URL__FIELD_NAME = WrapperField("WEBHOOK_URL", FieldType.STRING)
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
class VeloxWebhookExecutionLogPseudoDef:
|
|
348
|
+
DATA_TYPE_NAME: str = "VELOXWEBHOOK_EXECUTION_LOG"
|
|
349
|
+
ATTEMPT_GUID__FIELD_NAME = WrapperField("ATTEMPT_GUID", FieldType.STRING)
|
|
350
|
+
LOG_LEVEL__FIELD_NAME = WrapperField("LOG_LEVEL", FieldType.STRING)
|
|
351
|
+
LOG_LINE_NUM__FIELD_NAME = WrapperField("LOG_LINE_NUM", FieldType.INTEGER)
|
|
352
|
+
LOG_MESSAGE__FIELD_NAME = WrapperField("LOG_MESSAGE", FieldType.STRING)
|
|
353
|
+
LOG_TIMESTAMP__FIELD_NAME = WrapperField("LOG_TIMESTAMP", FieldType.DATE)
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class VeloxRuleCostPseudoDef:
|
|
357
|
+
DATA_TYPE_NAME: str = "VELOX_RULE_COST"
|
|
358
|
+
ACTION_COST__FIELD_NAME = WrapperField("ACTION_COST", FieldType.LONG)
|
|
359
|
+
ACTION_COUNT__FIELD_NAME = WrapperField("ACTION_COUNT", FieldType.LONG)
|
|
360
|
+
ANCESTOR_DESCENDANT_COUNT__FIELD_NAME = WrapperField("ANCESTOR_DESCENDANT_COUNT", FieldType.LONG)
|
|
361
|
+
PARENT_CHILD_COUNT__FIELD_NAME = WrapperField("PARENT_CHILD_COUNT", FieldType.LONG)
|
|
362
|
+
PROCESSING_TIME__FIELD_NAME = WrapperField("PROCESSING_TIME", FieldType.LONG)
|
|
363
|
+
RULE_GUID__FIELD_NAME = WrapperField("RULE_GUID", FieldType.STRING)
|
|
364
|
+
SOURCE_RECORD_COUNT__FIELD_NAME = WrapperField("SOURCE_RECORD_COUNT", FieldType.LONG)
|
|
365
|
+
TIMESTAMP__FIELD_NAME = WrapperField("TIMESTAMP", FieldType.DATE)
|
|
366
|
+
TOTAL_COST__FIELD_NAME = WrapperField("TOTAL_COST", FieldType.LONG)
|
|
367
|
+
TRANSACTION_GUID__FIELD_NAME = WrapperField("TRANSACTION_GUID", FieldType.STRING)
|
|
368
|
+
USERNAME__FIELD_NAME = WrapperField("USERNAME", FieldType.STRING)
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
class VeloxConversationPseudoDef:
|
|
372
|
+
DATA_TYPE_NAME: str = "VeloxConversation"
|
|
373
|
+
CONVERSATION_DESCRIPTION__FIELD_NAME = WrapperField("ConversationDescription", FieldType.STRING)
|
|
374
|
+
CONVERSATION_GUID__FIELD_NAME = WrapperField("ConversationGuid", FieldType.STRING)
|
|
375
|
+
CONVERSATION_NAME__FIELD_NAME = WrapperField("ConversationName", FieldType.STRING)
|
|
376
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
377
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
378
|
+
SERVER_PLUGIN_PATH__FIELD_NAME = WrapperField("Server_Plugin_Path", FieldType.STRING)
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
class VeloxConversationMessagePseudoDef:
|
|
382
|
+
DATA_TYPE_NAME: str = "VeloxConversationMessage"
|
|
383
|
+
CONVERSATION_GUID__FIELD_NAME = WrapperField("ConversationGuid", FieldType.STRING)
|
|
384
|
+
MESSAGE__FIELD_NAME = WrapperField("Message", FieldType.STRING)
|
|
385
|
+
MESSAGE_GUID__FIELD_NAME = WrapperField("MessageGuid", FieldType.STRING)
|
|
386
|
+
MESSAGE_SENDER__FIELD_NAME = WrapperField("MessageSender", FieldType.STRING)
|
|
387
|
+
MESSAGE_TIMESTAMP__FIELD_NAME = WrapperField("MessageTimestamp", FieldType.DATE)
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
class VeloxScriptPseudoDef:
|
|
391
|
+
DATA_TYPE_NAME: str = "VeloxScript"
|
|
392
|
+
CODE__FIELD_NAME = WrapperField("Code", FieldType.STRING)
|
|
393
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
394
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.LONG)
|
|
395
|
+
LAST_MODIFIED_BY__FIELD_NAME = WrapperField("LastModifiedBy", FieldType.STRING)
|
|
396
|
+
LAST_MODIFIED_DATE__FIELD_NAME = WrapperField("LastModifiedDate", FieldType.LONG)
|
|
397
|
+
PATH__FIELD_NAME = WrapperField("Path", FieldType.STRING)
|
|
398
|
+
PLUGIN_DESCRIPTION__FIELD_NAME = WrapperField("PluginDescription", FieldType.STRING)
|
|
399
|
+
PLUGIN_LINE1_TEXT__FIELD_NAME = WrapperField("PluginLine1Text", FieldType.STRING)
|
|
400
|
+
PLUGIN_LINE2_TEXT__FIELD_NAME = WrapperField("PluginLine2Text", FieldType.STRING)
|
|
401
|
+
PLUGIN_ORDER__FIELD_NAME = WrapperField("PluginOrder", FieldType.INTEGER)
|
|
402
|
+
PLUGIN_POINT__FIELD_NAME = WrapperField("PluginPoint", FieldType.STRING)
|
|
403
|
+
PROJECT_GUID__FIELD_NAME = WrapperField("ProjectGuid", FieldType.STRING)
|
|
404
|
+
SCRIPT_GUID__FIELD_NAME = WrapperField("ScriptGuid", FieldType.STRING)
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
class VeloxScriptProjectPseudoDef:
|
|
408
|
+
DATA_TYPE_NAME: str = "VeloxScriptProject"
|
|
409
|
+
CLASS_PATH__FIELD_NAME = WrapperField("ClassPath", FieldType.STRING)
|
|
410
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
411
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.LONG)
|
|
412
|
+
DEPLOYMENT_OUT_OF_DATE__FIELD_NAME = WrapperField("DeploymentOutOfDate", FieldType.BOOLEAN)
|
|
413
|
+
DESCRIPTION__FIELD_NAME = WrapperField("Description", FieldType.STRING)
|
|
414
|
+
PROJECT_GUID__FIELD_NAME = WrapperField("ProjectGuid", FieldType.STRING)
|
|
415
|
+
PROJECT_NAME__FIELD_NAME = WrapperField("ProjectName", FieldType.STRING)
|
|
416
|
+
SCRIPT_LANGUAGE__FIELD_NAME = WrapperField("ScriptLanguage", FieldType.STRING)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
class WorkflowPseudoDef:
|
|
420
|
+
DATA_TYPE_NAME: str = "Workflow"
|
|
421
|
+
ALL_ACCESS__FIELD_NAME = WrapperField("AllAccess", FieldType.BOOLEAN)
|
|
422
|
+
CATEGORY__FIELD_NAME = WrapperField("Category", FieldType.STRING)
|
|
423
|
+
CREATED_BY__FIELD_NAME = WrapperField("CreatedBy", FieldType.STRING)
|
|
424
|
+
DATE_CREATED__FIELD_NAME = WrapperField("DateCreated", FieldType.DATE)
|
|
425
|
+
DATE_EDITED__FIELD_NAME = WrapperField("DateEdited", FieldType.DATE)
|
|
426
|
+
DIRECT_LAUNCH__FIELD_NAME = WrapperField("DirectLaunch", FieldType.BOOLEAN)
|
|
427
|
+
EDITED_BY__FIELD_NAME = WrapperField("EditedBy", FieldType.STRING)
|
|
428
|
+
IS_TEMPLATE__FIELD_NAME = WrapperField("IsTemplate", FieldType.BOOLEAN)
|
|
429
|
+
LONG_DESC__FIELD_NAME = WrapperField("LongDesc", FieldType.STRING)
|
|
430
|
+
NAME__FIELD_NAME = WrapperField("Name", FieldType.STRING)
|
|
431
|
+
SHORT_DESC__FIELD_NAME = WrapperField("ShortDesc", FieldType.STRING)
|
|
432
|
+
WORKFLOW_ID__FIELD_NAME = WrapperField("WorkflowId", FieldType.LONG)
|
|
433
|
+
WORKFLOW_VERSION__FIELD_NAME = WrapperField("WorkflowVersion", FieldType.LONG)
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class WorkflowOptionPseudoDef:
|
|
437
|
+
DATA_TYPE_NAME: str = "WorkflowOption"
|
|
438
|
+
OPTION_KEY__FIELD_NAME = WrapperField("OptionKey", FieldType.STRING)
|
|
439
|
+
OPTION_VALUE__FIELD_NAME = WrapperField("OptionValue", FieldType.STRING)
|
|
440
|
+
WORKFLOW_ID__FIELD_NAME = WrapperField("WorkflowId", FieldType.LONG)
|
|
@@ -23,6 +23,7 @@ from sapiopylib.rest.utils.recordmodel.RecordModelManager import RecordModelInst
|
|
|
23
23
|
from sapiopylib.rest.utils.recordmodel.RecordModelWrapper import WrappedType
|
|
24
24
|
from sapiopylib.rest.utils.recordmodel.properties import Child
|
|
25
25
|
|
|
26
|
+
from sapiopycommons.eln.experiment_report_util import ExperimentReportUtil
|
|
26
27
|
from sapiopycommons.general.aliases import AliasUtil, SapioRecord, ExperimentIdentifier, UserIdentifier, \
|
|
27
28
|
DataTypeIdentifier, RecordModel
|
|
28
29
|
from sapiopycommons.general.exceptions import SapioException
|
|
@@ -67,9 +68,9 @@ class ExperimentHandler:
|
|
|
67
68
|
"""Whether this ExperimentHandler has queried the system for all steps in the experiment."""
|
|
68
69
|
__steps: dict[str, ElnEntryStep]
|
|
69
70
|
"""Steps from this experiment. All steps are cached the first time any individual step is accessed."""
|
|
70
|
-
__step_options: dict[
|
|
71
|
-
"""Entry options for each step in this experiment.
|
|
72
|
-
The cache is updated whenever the entry options for a step are changed by this handler."""
|
|
71
|
+
__step_options: dict[int, dict[str, str]]
|
|
72
|
+
"""Entry options for each step in this experiment. All entry options are cached the first time any individual step's
|
|
73
|
+
options are queried. The cache is updated whenever the entry options for a step are changed by this handler."""
|
|
73
74
|
|
|
74
75
|
# Constants
|
|
75
76
|
__ENTRY_COMPLETE_STATUSES = [ExperimentEntryStatus.Completed, ExperimentEntryStatus.CompletedApproved]
|
|
@@ -549,6 +550,39 @@ class ExperimentHandler:
|
|
|
549
550
|
data_type: str = AliasUtil.to_data_type_name(data_type)
|
|
550
551
|
return [x for x in all_steps if data_type in x.get_data_type_names()]
|
|
551
552
|
|
|
553
|
+
def get_step_by_option(self, key: str, value: str | None = None) -> ElnEntryStep:
|
|
554
|
+
"""
|
|
555
|
+
Retrieve the step in this experiment that contains an entry option with the provided key and value.
|
|
556
|
+
Throws an exception if no entries or multiple entries in the experiment match.
|
|
557
|
+
|
|
558
|
+
:param key: The key of the entry option to match on.
|
|
559
|
+
:param value: The value of the entry option to match on. If not provided, then only matches on key.
|
|
560
|
+
:return: The entry in this experiment that matches the provided entry option key and value.
|
|
561
|
+
"""
|
|
562
|
+
steps: list[ElnEntryStep] = self.get_steps_by_option(key, value)
|
|
563
|
+
count: int = len(steps)
|
|
564
|
+
if count != 1:
|
|
565
|
+
option = key + ("::" + value if value is not None else "")
|
|
566
|
+
raise SapioException(f"{('No' if count == 0 else 'Multiple')} entries in this experiment match the "
|
|
567
|
+
f"provided option: {option}")
|
|
568
|
+
return steps[0]
|
|
569
|
+
|
|
570
|
+
def get_steps_by_option(self, key: str, value: str | None = None) -> list[ElnEntryStep]:
|
|
571
|
+
"""
|
|
572
|
+
Retrieve every step in this experiment that contains an entry option with the provided key and value.
|
|
573
|
+
|
|
574
|
+
:param key: The key of the entry option to match on.
|
|
575
|
+
:param value: The value of the entry option to match on. If not provided, then only matches on key.
|
|
576
|
+
:return: The entries in this experiment that match the provided entry option key and value.
|
|
577
|
+
"""
|
|
578
|
+
ret_list: list[ElnEntryStep] = []
|
|
579
|
+
for step in self.get_all_steps():
|
|
580
|
+
options: dict[str, str] = self.get_step_options(step)
|
|
581
|
+
if key in options:
|
|
582
|
+
if value is None or options[key] == value:
|
|
583
|
+
ret_list.append(step)
|
|
584
|
+
return ret_list
|
|
585
|
+
|
|
552
586
|
def get_step_records(self, step: Step) -> list[DataRecord]:
|
|
553
587
|
"""
|
|
554
588
|
Query for the data records for the given step. The returned records are not cached by the ExperimentHandler.
|
|
@@ -966,7 +1000,7 @@ class ExperimentHandler:
|
|
|
966
1000
|
if clear_template_item_fulfilled_timestamp is True:
|
|
967
1001
|
entry.template_item_fulfilled_timestamp = None
|
|
968
1002
|
if entry_options_map is not None:
|
|
969
|
-
self.__step_options.update({step: entry_options_map})
|
|
1003
|
+
self.__step_options.update({step.get_id(): entry_options_map})
|
|
970
1004
|
|
|
971
1005
|
def get_step_option(self, step: Step, option: str) -> str:
|
|
972
1006
|
"""
|
|
@@ -996,8 +1030,8 @@ class ExperimentHandler:
|
|
|
996
1030
|
list of steps in the experiment and caches them.
|
|
997
1031
|
|
|
998
1032
|
Getting the step options requires a webservice query, which is made the first time any step option
|
|
999
|
-
method is called for
|
|
1000
|
-
method
|
|
1033
|
+
method is called for any step in this experiment. The step options are cached so that subsequent calls of this
|
|
1034
|
+
method don't make a webservice call.
|
|
1001
1035
|
|
|
1002
1036
|
:param step:
|
|
1003
1037
|
The step to get the options of.
|
|
@@ -1005,7 +1039,10 @@ class ExperimentHandler:
|
|
|
1005
1039
|
If given a name, throws an exception if no step of the given name exists in the experiment.
|
|
1006
1040
|
:return: The map of options for the input step.
|
|
1007
1041
|
"""
|
|
1008
|
-
|
|
1042
|
+
step = self.__to_eln_step(step)
|
|
1043
|
+
if step not in self.__step_options:
|
|
1044
|
+
self.__step_options.update(ExperimentReportUtil.get_experiment_entry_options(self.user, self.get_all_steps()))
|
|
1045
|
+
return self.__step_options[step.get_id()]
|
|
1009
1046
|
|
|
1010
1047
|
def add_step_options(self, step: Step, mapping: Mapping[str, str]):
|
|
1011
1048
|
"""
|
|
@@ -1175,16 +1212,3 @@ class ExperimentHandler:
|
|
|
1175
1212
|
return self.__exp_options
|
|
1176
1213
|
self.__exp_options = self.__eln_man.get_notebook_experiment_options(self.__exp_id)
|
|
1177
1214
|
return self.__exp_options
|
|
1178
|
-
|
|
1179
|
-
def __get_step_options(self, step: Step) -> dict[str, str]:
|
|
1180
|
-
"""
|
|
1181
|
-
Cache the options for the input step if they haven't been cached yet.
|
|
1182
|
-
|
|
1183
|
-
:return: The entry options for the input step.
|
|
1184
|
-
"""
|
|
1185
|
-
step = self.__to_eln_step(step)
|
|
1186
|
-
if step in self.__step_options:
|
|
1187
|
-
return self.__step_options.get(step)
|
|
1188
|
-
options: dict[str, str] = step.get_options()
|
|
1189
|
-
self.__step_options.update({step: options})
|
|
1190
|
-
return options
|