|
8 | 8 | The dicts defined in this module are used in the json and xml modules to translate enum members of our |
9 | 9 | implementation to the respective string and vice versa. |
10 | 10 | """ |
| 11 | + |
11 | 12 | import os |
12 | 13 | from typing import BinaryIO, Dict, IO, Type, Union |
13 | 14 |
|
|
21 | 22 |
|
22 | 23 | # JSON top-level keys and their corresponding model classes |
23 | 24 | JSON_AAS_TOP_LEVEL_KEYS_TO_TYPES = ( |
24 | | - ('assetAdministrationShells', model.AssetAdministrationShell), |
25 | | - ('submodels', model.Submodel), |
26 | | - ('conceptDescriptions', model.ConceptDescription), |
| 25 | + ("assetAdministrationShells", model.AssetAdministrationShell), |
| 26 | + ("submodels", model.Submodel), |
| 27 | + ("conceptDescriptions", model.ConceptDescription), |
27 | 28 | ) |
28 | 29 |
|
29 | 30 | # XML Namespace definition |
30 | 31 | XML_NS_MAP = {"aas": "https://admin-shell.io/aas/3/1"} |
31 | 32 | XML_NS_AAS = "{" + XML_NS_MAP["aas"] + "}" |
32 | 33 |
|
33 | 34 | MODELLING_KIND: Dict[model.ModellingKind, str] = { |
34 | | - model.ModellingKind.TEMPLATE: 'Template', |
35 | | - model.ModellingKind.INSTANCE: 'Instance'} |
| 35 | + model.ModellingKind.TEMPLATE: "Template", |
| 36 | + model.ModellingKind.INSTANCE: "Instance", |
| 37 | +} |
36 | 38 |
|
37 | 39 | ASSET_KIND: Dict[model.AssetKind, str] = { |
38 | | - model.AssetKind.TYPE: 'Type', |
39 | | - model.AssetKind.INSTANCE: 'Instance', |
40 | | - model.AssetKind.NOT_APPLICABLE: 'NotApplicable', |
41 | | - model.AssetKind.ROLE: 'Role'} |
| 40 | + model.AssetKind.TYPE: "Type", |
| 41 | + model.AssetKind.INSTANCE: "Instance", |
| 42 | + model.AssetKind.NOT_APPLICABLE: "NotApplicable", |
| 43 | + model.AssetKind.ROLE: "Role", |
| 44 | +} |
42 | 45 |
|
43 | 46 | QUALIFIER_KIND: Dict[model.QualifierKind, str] = { |
44 | | - model.QualifierKind.CONCEPT_QUALIFIER: 'ConceptQualifier', |
45 | | - model.QualifierKind.TEMPLATE_QUALIFIER: 'TemplateQualifier', |
46 | | - model.QualifierKind.VALUE_QUALIFIER: 'ValueQualifier'} |
| 47 | + model.QualifierKind.CONCEPT_QUALIFIER: "ConceptQualifier", |
| 48 | + model.QualifierKind.TEMPLATE_QUALIFIER: "TemplateQualifier", |
| 49 | + model.QualifierKind.VALUE_QUALIFIER: "ValueQualifier", |
| 50 | +} |
47 | 51 |
|
48 | 52 | DIRECTION: Dict[model.Direction, str] = { |
49 | | - model.Direction.INPUT: 'input', |
50 | | - model.Direction.OUTPUT: 'output'} |
| 53 | + model.Direction.INPUT: "input", |
| 54 | + model.Direction.OUTPUT: "output", |
| 55 | +} |
51 | 56 |
|
52 | 57 | STATE_OF_EVENT: Dict[model.StateOfEvent, str] = { |
53 | | - model.StateOfEvent.ON: 'on', |
54 | | - model.StateOfEvent.OFF: 'off'} |
| 58 | + model.StateOfEvent.ON: "on", |
| 59 | + model.StateOfEvent.OFF: "off", |
| 60 | +} |
55 | 61 |
|
56 | 62 | REFERENCE_TYPES: Dict[Type[model.Reference], str] = { |
57 | | - model.ExternalReference: 'ExternalReference', |
58 | | - model.ModelReference: 'ModelReference'} |
| 63 | + model.ExternalReference: "ExternalReference", |
| 64 | + model.ModelReference: "ModelReference", |
| 65 | +} |
59 | 66 |
|
60 | 67 | KEY_TYPES: Dict[model.KeyTypes, str] = { |
61 | | - model.KeyTypes.ASSET_ADMINISTRATION_SHELL: 'AssetAdministrationShell', |
62 | | - model.KeyTypes.CONCEPT_DESCRIPTION: 'ConceptDescription', |
63 | | - model.KeyTypes.SUBMODEL: 'Submodel', |
64 | | - model.KeyTypes.ANNOTATED_RELATIONSHIP_ELEMENT: 'AnnotatedRelationshipElement', |
65 | | - model.KeyTypes.BASIC_EVENT_ELEMENT: 'BasicEventElement', |
66 | | - model.KeyTypes.BLOB: 'Blob', |
67 | | - model.KeyTypes.CAPABILITY: 'Capability', |
68 | | - model.KeyTypes.DATA_ELEMENT: 'DataElement', |
69 | | - model.KeyTypes.ENTITY: 'Entity', |
70 | | - model.KeyTypes.EVENT_ELEMENT: 'EventElement', |
71 | | - model.KeyTypes.FILE: 'File', |
72 | | - model.KeyTypes.MULTI_LANGUAGE_PROPERTY: 'MultiLanguageProperty', |
73 | | - model.KeyTypes.OPERATION: 'Operation', |
74 | | - model.KeyTypes.PROPERTY: 'Property', |
75 | | - model.KeyTypes.RANGE: 'Range', |
76 | | - model.KeyTypes.REFERENCE_ELEMENT: 'ReferenceElement', |
77 | | - model.KeyTypes.RELATIONSHIP_ELEMENT: 'RelationshipElement', |
78 | | - model.KeyTypes.SUBMODEL_ELEMENT: 'SubmodelElement', |
79 | | - model.KeyTypes.SUBMODEL_ELEMENT_COLLECTION: 'SubmodelElementCollection', |
80 | | - model.KeyTypes.SUBMODEL_ELEMENT_LIST: 'SubmodelElementList', |
81 | | - model.KeyTypes.GLOBAL_REFERENCE: 'GlobalReference', |
82 | | - model.KeyTypes.FRAGMENT_REFERENCE: 'FragmentReference'} |
| 68 | + model.KeyTypes.ASSET_ADMINISTRATION_SHELL: "AssetAdministrationShell", |
| 69 | + model.KeyTypes.CONCEPT_DESCRIPTION: "ConceptDescription", |
| 70 | + model.KeyTypes.SUBMODEL: "Submodel", |
| 71 | + model.KeyTypes.ANNOTATED_RELATIONSHIP_ELEMENT: "AnnotatedRelationshipElement", |
| 72 | + model.KeyTypes.BASIC_EVENT_ELEMENT: "BasicEventElement", |
| 73 | + model.KeyTypes.BLOB: "Blob", |
| 74 | + model.KeyTypes.CAPABILITY: "Capability", |
| 75 | + model.KeyTypes.DATA_ELEMENT: "DataElement", |
| 76 | + model.KeyTypes.ENTITY: "Entity", |
| 77 | + model.KeyTypes.EVENT_ELEMENT: "EventElement", |
| 78 | + model.KeyTypes.FILE: "File", |
| 79 | + model.KeyTypes.MULTI_LANGUAGE_PROPERTY: "MultiLanguageProperty", |
| 80 | + model.KeyTypes.OPERATION: "Operation", |
| 81 | + model.KeyTypes.PROPERTY: "Property", |
| 82 | + model.KeyTypes.RANGE: "Range", |
| 83 | + model.KeyTypes.REFERENCE_ELEMENT: "ReferenceElement", |
| 84 | + model.KeyTypes.RELATIONSHIP_ELEMENT: "RelationshipElement", |
| 85 | + model.KeyTypes.SUBMODEL_ELEMENT: "SubmodelElement", |
| 86 | + model.KeyTypes.SUBMODEL_ELEMENT_COLLECTION: "SubmodelElementCollection", |
| 87 | + model.KeyTypes.SUBMODEL_ELEMENT_LIST: "SubmodelElementList", |
| 88 | + model.KeyTypes.GLOBAL_REFERENCE: "GlobalReference", |
| 89 | + model.KeyTypes.FRAGMENT_REFERENCE: "FragmentReference", |
| 90 | +} |
83 | 91 |
|
84 | 92 | ENTITY_TYPES: Dict[model.EntityType, str] = { |
85 | | - model.EntityType.CO_MANAGED_ENTITY: 'CoManagedEntity', |
86 | | - model.EntityType.SELF_MANAGED_ENTITY: 'SelfManagedEntity'} |
| 93 | + model.EntityType.CO_MANAGED_ENTITY: "CoManagedEntity", |
| 94 | + model.EntityType.SELF_MANAGED_ENTITY: "SelfManagedEntity", |
| 95 | +} |
87 | 96 |
|
88 | 97 | IEC61360_DATA_TYPES: Dict[model.base.DataTypeIEC61360, str] = { |
89 | | - model.base.DataTypeIEC61360.DATE: 'DATE', |
90 | | - model.base.DataTypeIEC61360.STRING: 'STRING', |
91 | | - model.base.DataTypeIEC61360.STRING_TRANSLATABLE: 'STRING_TRANSLATABLE', |
92 | | - model.base.DataTypeIEC61360.INTEGER_MEASURE: 'INTEGER_MEASURE', |
93 | | - model.base.DataTypeIEC61360.INTEGER_COUNT: 'INTEGER_COUNT', |
94 | | - model.base.DataTypeIEC61360.INTEGER_CURRENCY: 'INTEGER_CURRENCY', |
95 | | - model.base.DataTypeIEC61360.REAL_MEASURE: 'REAL_MEASURE', |
96 | | - model.base.DataTypeIEC61360.REAL_COUNT: 'REAL_COUNT', |
97 | | - model.base.DataTypeIEC61360.REAL_CURRENCY: 'REAL_CURRENCY', |
98 | | - model.base.DataTypeIEC61360.BOOLEAN: 'BOOLEAN', |
99 | | - model.base.DataTypeIEC61360.IRI: 'IRI', |
100 | | - model.base.DataTypeIEC61360.IRDI: 'IRDI', |
101 | | - model.base.DataTypeIEC61360.RATIONAL: 'RATIONAL', |
102 | | - model.base.DataTypeIEC61360.RATIONAL_MEASURE: 'RATIONAL_MEASURE', |
103 | | - model.base.DataTypeIEC61360.TIME: 'TIME', |
104 | | - model.base.DataTypeIEC61360.TIMESTAMP: 'TIMESTAMP', |
105 | | - model.base.DataTypeIEC61360.HTML: 'HTML', |
106 | | - model.base.DataTypeIEC61360.BLOB: 'BLOB', |
107 | | - model.base.DataTypeIEC61360.FILE: 'FILE', |
| 98 | + model.base.DataTypeIEC61360.DATE: "DATE", |
| 99 | + model.base.DataTypeIEC61360.STRING: "STRING", |
| 100 | + model.base.DataTypeIEC61360.STRING_TRANSLATABLE: "STRING_TRANSLATABLE", |
| 101 | + model.base.DataTypeIEC61360.INTEGER_MEASURE: "INTEGER_MEASURE", |
| 102 | + model.base.DataTypeIEC61360.INTEGER_COUNT: "INTEGER_COUNT", |
| 103 | + model.base.DataTypeIEC61360.INTEGER_CURRENCY: "INTEGER_CURRENCY", |
| 104 | + model.base.DataTypeIEC61360.REAL_MEASURE: "REAL_MEASURE", |
| 105 | + model.base.DataTypeIEC61360.REAL_COUNT: "REAL_COUNT", |
| 106 | + model.base.DataTypeIEC61360.REAL_CURRENCY: "REAL_CURRENCY", |
| 107 | + model.base.DataTypeIEC61360.BOOLEAN: "BOOLEAN", |
| 108 | + model.base.DataTypeIEC61360.IRI: "IRI", |
| 109 | + model.base.DataTypeIEC61360.IRDI: "IRDI", |
| 110 | + model.base.DataTypeIEC61360.RATIONAL: "RATIONAL", |
| 111 | + model.base.DataTypeIEC61360.RATIONAL_MEASURE: "RATIONAL_MEASURE", |
| 112 | + model.base.DataTypeIEC61360.TIME: "TIME", |
| 113 | + model.base.DataTypeIEC61360.TIMESTAMP: "TIMESTAMP", |
| 114 | + model.base.DataTypeIEC61360.HTML: "HTML", |
| 115 | + model.base.DataTypeIEC61360.BLOB: "BLOB", |
| 116 | + model.base.DataTypeIEC61360.FILE: "FILE", |
108 | 117 | } |
109 | 118 |
|
110 | 119 | IEC61360_LEVEL_TYPES: Dict[model.base.IEC61360LevelType, str] = { |
111 | | - model.base.IEC61360LevelType.MIN: 'min', |
112 | | - model.base.IEC61360LevelType.NOM: 'nom', |
113 | | - model.base.IEC61360LevelType.TYP: 'typ', |
114 | | - model.base.IEC61360LevelType.MAX: 'max', |
| 120 | + model.base.IEC61360LevelType.MIN: "min", |
| 121 | + model.base.IEC61360LevelType.NOM: "nom", |
| 122 | + model.base.IEC61360LevelType.TYP: "typ", |
| 123 | + model.base.IEC61360LevelType.MAX: "max", |
115 | 124 | } |
116 | 125 |
|
117 | | -MODELLING_KIND_INVERSE: Dict[str, model.ModellingKind] = {v: k for k, v in MODELLING_KIND.items()} |
| 126 | +MODELLING_KIND_INVERSE: Dict[str, model.ModellingKind] = { |
| 127 | + v: k for k, v in MODELLING_KIND.items() |
| 128 | +} |
118 | 129 | ASSET_KIND_INVERSE: Dict[str, model.AssetKind] = {v: k for k, v in ASSET_KIND.items()} |
119 | | -QUALIFIER_KIND_INVERSE: Dict[str, model.QualifierKind] = {v: k for k, v in QUALIFIER_KIND.items()} |
| 130 | +QUALIFIER_KIND_INVERSE: Dict[str, model.QualifierKind] = { |
| 131 | + v: k for k, v in QUALIFIER_KIND.items() |
| 132 | +} |
120 | 133 | DIRECTION_INVERSE: Dict[str, model.Direction] = {v: k for k, v in DIRECTION.items()} |
121 | | -STATE_OF_EVENT_INVERSE: Dict[str, model.StateOfEvent] = {v: k for k, v in STATE_OF_EVENT.items()} |
122 | | -REFERENCE_TYPES_INVERSE: Dict[str, Type[model.Reference]] = {v: k for k, v in REFERENCE_TYPES.items()} |
| 134 | +STATE_OF_EVENT_INVERSE: Dict[str, model.StateOfEvent] = { |
| 135 | + v: k for k, v in STATE_OF_EVENT.items() |
| 136 | +} |
| 137 | +REFERENCE_TYPES_INVERSE: Dict[str, Type[model.Reference]] = { |
| 138 | + v: k for k, v in REFERENCE_TYPES.items() |
| 139 | +} |
123 | 140 | KEY_TYPES_INVERSE: Dict[str, model.KeyTypes] = {v: k for k, v in KEY_TYPES.items()} |
124 | | -ENTITY_TYPES_INVERSE: Dict[str, model.EntityType] = {v: k for k, v in ENTITY_TYPES.items()} |
125 | | -IEC61360_DATA_TYPES_INVERSE: Dict[str, model.base.DataTypeIEC61360] = {v: k for k, v in IEC61360_DATA_TYPES.items()} |
126 | | -IEC61360_LEVEL_TYPES_INVERSE: Dict[str, model.base.IEC61360LevelType] = \ |
127 | | - {v: k for k, v in IEC61360_LEVEL_TYPES.items()} |
| 141 | +ENTITY_TYPES_INVERSE: Dict[str, model.EntityType] = { |
| 142 | + v: k for k, v in ENTITY_TYPES.items() |
| 143 | +} |
| 144 | +IEC61360_DATA_TYPES_INVERSE: Dict[str, model.base.DataTypeIEC61360] = { |
| 145 | + v: k for k, v in IEC61360_DATA_TYPES.items() |
| 146 | +} |
| 147 | +IEC61360_LEVEL_TYPES_INVERSE: Dict[str, model.base.IEC61360LevelType] = { |
| 148 | + v: k for k, v in IEC61360_LEVEL_TYPES.items() |
| 149 | +} |
128 | 150 |
|
129 | | -KEY_TYPES_CLASSES_INVERSE: Dict[model.KeyTypes, Type[model.Referable]] = \ |
130 | | - {v: k for k, v in model.KEY_TYPES_CLASSES.items()} |
| 151 | +KEY_TYPES_CLASSES_INVERSE: Dict[model.KeyTypes, Type[model.Referable]] = { |
| 152 | + v: k for k, v in model.KEY_TYPES_CLASSES.items() |
| 153 | +} |
0 commit comments