Create a collection of type-definitions 81/11881/1
authorMartin Skorupski <martin.skorupski@highstreet-technologies.com>
Tue, 10 Oct 2023 14:17:28 +0000 (16:17 +0200)
committerMartin Skorupski <martin.skorupski@highstreet-technologies.com>
Tue, 10 Oct 2023 14:17:34 +0000 (16:17 +0200)
- TypeDefinitions.py added to app model

Issue-ID: OAM-355
Change-Id: Ifeb67b5f9b046bf79c3284d990e48152906e5a16
Signed-off-by: Martin Skorupski <martin.skorupski@highstreet-technologies.com>
code/network-generator/model/python/TypeDefinitions.py [new file with mode: 0644]

diff --git a/code/network-generator/model/python/TypeDefinitions.py b/code/network-generator/model/python/TypeDefinitions.py
new file mode 100644 (file)
index 0000000..8cc135c
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright 2023 highstreet technologies GmbH
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!/usr/bin/python
+
+"""
+A collection of TypeDefinitions
+"""
+from enum import Enum
+from model.python.Countries import Country
+
+# Define AdministrativeState enum
+class AdministrativeState(Enum):
+    LOCKED = 'locked'
+    UNLOCKED = 'unlocked'
+    SHUTTING_DOWN = 'shutting down'
+
+# Define AlarmState type
+AlarmState = int
+
+# Define Address type
+AddressType = {
+    "street": str,
+    "building": str,
+    "room": str,
+    "city": str,
+    "zip": str,
+    "state": str,
+    "country": Country
+}
+
+# Define OperationalState enum
+class OperationalState(Enum):
+    ENABLED = 'enabled'
+    DISABLED = 'disabled'
+
+# Define LifeCycleState enum
+class LifeCycleState(Enum):
+    PLANNED = 'planned'
+    ORDERED = 'ordered'
+    INSTALLED = 'installed'
+    COMMISSIONED = 'commissioned'
+    TO_BE_DESTROYED = 'to be destroyed'
+    DESTROYED = 'destroyed'
+
+# Define UsageState enum
+class UsageState(Enum):
+    USED = 'used'
+    UNUSED = 'unused'
+
+# Define Enumerate type
+def Enumerate(N, Acc=None):
+    if Acc is None:
+        Acc = []
+    if len(Acc) == N:
+        return Acc[-1]
+    return Enumerate(N, Acc + [len(Acc)])
+
+# Define Range type
+def Range(F, T):
+    return [i for i in range(F, T + 1)]
+
+# Define Procent and Utilization types
+Procent = Range(0, 100)
+Utilization = Procent