In Klasse umgestrickt
This commit is contained in:
Vendored
+24
-1
@@ -20,10 +20,33 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${file}",
|
"program": "${file}",
|
||||||
"console": "integratedTerminal",
|
"console": "integratedTerminal",
|
||||||
"justMyCode": true
|
"justMyCode": true,
|
||||||
"args": [
|
"args": [
|
||||||
"--sivas=829522001"
|
"--sivas=829522001"
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"name": "Python: create TOS sring",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"justMyCode": true,
|
||||||
|
"args": [
|
||||||
|
"--console"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"name": "Python: TOS string to file",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"justMyCode": true,
|
||||||
|
"args": [
|
||||||
|
"--outfile=blubb.txt"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+68
-51
@@ -13,58 +13,74 @@ Codebereich liegt bei Calk Link 10
|
|||||||
- Dort dann die Powershell "Tomcat-IIS_reset" ausführen.
|
- Dort dann die Powershell "Tomcat-IIS_reset" ausführen.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
def get_children_keys(tos_hierarchy, currentId, result):
|
|
||||||
# wenn eine Referenz nicht weiter in der TOS Hierarchy vorkommt, dann nicht mit einsammeln
|
|
||||||
if currentId not in tos_hierarchy:
|
|
||||||
return None
|
|
||||||
childIds = tos_hierarchy[currentId]["reference-ids"].values()
|
|
||||||
level = tos_hierarchy[currentId]["TOS-level"]
|
|
||||||
if len(childIds) > 0:
|
|
||||||
for cId in childIds:
|
|
||||||
# prüfen, ob die Referenz sonst noch verwendet wird
|
|
||||||
if cId in tos_hierarchy:
|
|
||||||
result[cId] = level
|
|
||||||
for cId in childIds:
|
|
||||||
get_children_keys(tos_hierarchy, cId, result)
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_keywords(tos_hierarchy):
|
class TOSGroupsConfig:
|
||||||
# hole dir das erste Keyword
|
"""Auslesen der Config Angaben zu den TOS Gruppen"""
|
||||||
rootid = tos_hierarchy["root"]
|
|
||||||
# und von dort aus alle Referenzen
|
|
||||||
result = dict()
|
|
||||||
# root als Nullte Ebene dazu
|
|
||||||
result[rootid] = 0
|
|
||||||
get_children_keys(tos_hierarchy, rootid, result)
|
|
||||||
return result
|
|
||||||
|
|
||||||
def get_keywords_of_level(allKeywords, levelnum):
|
config_dir = os.environ.get('CREMIG_CFG')
|
||||||
ret = list()
|
config_path = os.path.join(config_dir, 'TOS-Gruppen.json')
|
||||||
for kw in allKeywords:
|
|
||||||
if allKeywords[kw] == levelnum:
|
def __init__(self):
|
||||||
ret.append(kw)
|
self.tos_hierarchy = None
|
||||||
return ret
|
|
||||||
|
def get_children_keys(self, tos_hierarchy, currentId, result):
|
||||||
|
# wenn eine Referenz nicht weiter in der TOS Hierarchy vorkommt, dann nicht mit einsammeln
|
||||||
|
if currentId not in tos_hierarchy:
|
||||||
|
return None
|
||||||
|
childIds = tos_hierarchy[currentId]["reference-ids"].values()
|
||||||
|
level = tos_hierarchy[currentId]["TOS-level"]
|
||||||
|
if len(childIds) > 0:
|
||||||
|
for cId in childIds:
|
||||||
|
# prüfen, ob die Referenz sonst noch verwendet wird
|
||||||
|
if cId in tos_hierarchy:
|
||||||
|
result[cId] = level
|
||||||
|
for cId in childIds:
|
||||||
|
self.get_children_keys(tos_hierarchy, cId, result)
|
||||||
|
|
||||||
|
def get_all_keywords(self):
|
||||||
|
"""hole alle TOS Keywords, welche in der config Datei definiert sind"""
|
||||||
|
|
||||||
|
# lazy. nur einmal laden, wenn noch nicht geschehen
|
||||||
|
if not self.tos_hierarchy:
|
||||||
|
self.load_tos_hierarchy()
|
||||||
|
|
||||||
|
# beginne mit root als ersten, vordefiniertem Keyword
|
||||||
|
rootid = self.tos_hierarchy["root"]
|
||||||
|
# und von dort aus folge dann allen Referenzen
|
||||||
|
result = dict()
|
||||||
|
# root als Nullte Ebene dazu
|
||||||
|
result[rootid] = 0
|
||||||
|
self.get_children_keys(self.tos_hierarchy, rootid, result)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def get_keywords_of_level(self, allKeywords, levelnum):
|
||||||
|
"""hole alle TOS Keywords der gegebenen Hierarchiestufe "levelnum" """
|
||||||
|
ret = list()
|
||||||
|
for kw in allKeywords:
|
||||||
|
if allKeywords[kw] == levelnum:
|
||||||
|
ret.append(kw)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def load_tos_hierarchy(self):
|
||||||
|
"""lade die gegebenen Hierarchy aus dem Config File in eine json Objekt"""
|
||||||
|
with open(self.config_path, 'r', encoding='utf-8') as fh:
|
||||||
|
self.tos_hierarchy = json.loads(fh.read())
|
||||||
|
|
||||||
|
|
||||||
def create_tos_string(config_path):
|
def create_tos_string():
|
||||||
|
|
||||||
|
TOS_CFG = TOSGroupsConfig()
|
||||||
|
|
||||||
|
allKeywords = TOS_CFG.get_all_keywords()
|
||||||
|
myIds = list()
|
||||||
|
for level in range(0,5):
|
||||||
|
myIds.extend(TOS_CFG.get_keywords_of_level(allKeywords, level))
|
||||||
|
|
||||||
res = 'CalcMaster=EdmCodVal("'
|
res = 'CalcMaster=EdmCodVal("'
|
||||||
if os.path.isfile(config_path):
|
res += '")&EdmCodVal("'.join(myIds)
|
||||||
tos_hierarchy = ""
|
res += '")'
|
||||||
with open(config_path, 'r', encoding='utf-8') as fh:
|
return res
|
||||||
tos_hierarchy = json.loads(fh.read())
|
|
||||||
allKeywords = get_all_keywords(tos_hierarchy)
|
|
||||||
|
|
||||||
myIds = list()
|
|
||||||
for level in range(0,5):
|
|
||||||
myIds.extend(get_keywords_of_level(allKeywords, level))
|
|
||||||
|
|
||||||
res += '")&EdmCodVal("'.join(myIds)
|
|
||||||
res += '")'
|
|
||||||
return res
|
|
||||||
else:
|
|
||||||
print(f"Can't create tos string.")
|
|
||||||
return None
|
|
||||||
|
|
||||||
# CalcMaster=EdmCodVal("TOS-Gruppe")&EdmCodVal("TOS_Schoenenberger_Produkt")&EdmCodVal("TOS_Automation")&EdmCodVal("TOS_Maschinenelement")&EdmCodVal("TOS_Schoenenberger_Komponenten")&EdmCodVal("TOS_Pneumatik")&EdmCodVal("TOS_Konfig")&EdmCodVal("TOS_ILS")&EdmCodVal("TOS_MAS")&EdmCodVal("TOS_Spinnereikomponente")&EdmCodVal("TOS_Betriebsmittel")&EdmCodVal("TOS_Geruest")&EdmCodVal("TOS_FremdTransport")&EdmCodVal("TOS_MAS_Konfig")&EdmCodVal("TOS_Schaltschrank")&EdmCodVal("TOS_Schalt_Einbau")&EdmCodVal("TOS_Dezentral")&EdmCodVal("TOS_Automation_Sensorik")&EdmCodVal("TOS_Kabel")&EdmCodVal("TOS_Installation")&EdmCodVal("TOS_Automation_Sonstiges")&EdmCodVal("TOS_Verbindungselement")&EdmCodVal("TOS_Lager")&EdmCodVal("TOS_Kraft_Drehmoment")&EdmCodVal("TOS_Sicherungselement")&EdmCodVal("TOS_Bedienungselement")&EdmCodVal("TOS_ILS_2")&EdmCodVal("TOS_ILS_Foerderer")&EdmCodVal("TOS_MAS_Fahrstecke")&EdmCodVal("TOS_Trolley")&EdmCodVal("TOS_Trolley_Projekte")&EdmCodVal("TOS_Trolley_Omniflo")&EdmCodVal("TOS_Trolley_Spinnerei")&EdmCodVal("TOS_Trolley_ILS")
|
# CalcMaster=EdmCodVal("TOS-Gruppe")&EdmCodVal("TOS_Schoenenberger_Produkt")&EdmCodVal("TOS_Automation")&EdmCodVal("TOS_Maschinenelement")&EdmCodVal("TOS_Schoenenberger_Komponenten")&EdmCodVal("TOS_Pneumatik")&EdmCodVal("TOS_Konfig")&EdmCodVal("TOS_ILS")&EdmCodVal("TOS_MAS")&EdmCodVal("TOS_Spinnereikomponente")&EdmCodVal("TOS_Betriebsmittel")&EdmCodVal("TOS_Geruest")&EdmCodVal("TOS_FremdTransport")&EdmCodVal("TOS_MAS_Konfig")&EdmCodVal("TOS_Schaltschrank")&EdmCodVal("TOS_Schalt_Einbau")&EdmCodVal("TOS_Dezentral")&EdmCodVal("TOS_Automation_Sensorik")&EdmCodVal("TOS_Kabel")&EdmCodVal("TOS_Installation")&EdmCodVal("TOS_Automation_Sonstiges")&EdmCodVal("TOS_Verbindungselement")&EdmCodVal("TOS_Lager")&EdmCodVal("TOS_Kraft_Drehmoment")&EdmCodVal("TOS_Sicherungselement")&EdmCodVal("TOS_Bedienungselement")&EdmCodVal("TOS_ILS_2")&EdmCodVal("TOS_ILS_Foerderer")&EdmCodVal("TOS_MAS_Fahrstecke")&EdmCodVal("TOS_Trolley")&EdmCodVal("TOS_Trolley_Projekte")&EdmCodVal("TOS_Trolley_Omniflo")&EdmCodVal("TOS_Trolley_Spinnerei")&EdmCodVal("TOS_Trolley_ILS")
|
||||||
|
|
||||||
@@ -75,15 +91,16 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
out_dir = os.environ.get('CREMIG_DATA')
|
out_dir = os.environ.get('CREMIG_WORK')
|
||||||
config_dir = os.environ.get('CREMIG_CFG')
|
|
||||||
config_path = os.path.join(config_dir, 'TOS-Gruppen.json')
|
|
||||||
|
|
||||||
if args.outfile:
|
if args.outfile:
|
||||||
res = create_tos_string(config_path)
|
tos_string = create_tos_string()
|
||||||
|
out_path = os.path.join(out_dir, args.outfile)
|
||||||
|
with open(out_path, "w") as fh_out:
|
||||||
|
print(tos_string, file=fh_out)
|
||||||
elif args.console:
|
elif args.console:
|
||||||
res = create_tos_string(config_path)
|
tos_string = create_tos_string()
|
||||||
print(res)
|
print(tos_string)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
|
|||||||
Reference in New Issue
Block a user