Test auf invalid Characters implementiert. ERP_Item.ini rausgeschmissen. Sonderzeichen im Configparser nicht einfach zu lesen. FileEncoding war auch nicht utf-8. Eigene Textdatei für Sonderzeichen

This commit is contained in:
2024-03-13 11:44:12 +01:00
parent 1e917e5bbd
commit 8f74aac945
6 changed files with 163 additions and 127 deletions
+20 -17
View File
@@ -1,6 +1,6 @@
import os
import json
from configparser import ConfigParser
from configparser import ConfigParser, RawConfigParser
import pandas as pd
import update_database
@@ -447,10 +447,21 @@ class ZusatzConfig(IniBasedConfig):
def __init__(self, config_dir='.', config_file='Zusatzinformationen.cfg'):
super().__init__(config_dir, config_file)
class ERPConfig(IniBasedConfig):
class InvaldCharsConfig():
"""Auslesen der Zusatzinformationen die aus dem Änderungsindex abgeleitet werden"""
def __init__(self, config_dir='.', config_file='ERP_Item.ini'):
super().__init__(config_dir, config_file)
def __init__(self, config_dir='.', config_file='InvalidCharacters.txt'):
self.config_path = os.path.join(config_dir, config_file)
if not os.path.exists(self.config_path):
raise Exception("path does not exist")
self._isInitalized = False
file = open(self.config_path,'r')
line = file.read()
line = line.rstrip()
self._characters = line.split(',')
def get(self):
return self._characters
class Configs:
"""Sammlung aller Configdateien """
@@ -466,13 +477,12 @@ class Configs:
self.Pfade = PfadConfig(cfg_dir)
self.Werkstoffe = WerkstoffeConfig(cfg_dir)
self.Zusatz = ZusatzConfig(cfg_dir)
self.ERP = ERPConfig(cfg_dir)
self.InvalidChars = InvaldCharsConfig(cfg_dir)
self.TOSGruppen = TOSGroupsConfig(cfg_dir)
self.Materialien = MaterialTransConfig(cfg_dir)
self._TeileNummern = None
self._blacklist = None
self._env = None
def get_cfg_path(self):
return self._cfg_dir
@@ -482,23 +492,16 @@ class Configs:
def get_data_dir(self):
return self._data_dir
def set_env(self, env):
self._env = env
def get_env(self):
if self._env:
return self._env
return None
def get_ruledesigner_ids(self):
if not self._data_dir:
raise Exception("set_data_dir not called. path not set")
if not self._TeileNummern:
self._TeileNummern = RuleDesignerDatabaseConfig(self._env.data_dir).get_ruledesigner_ids()
self._TeileNummern = RuleDesignerDatabaseConfig(self._data_dir).get_ruledesigner_ids()
return self._TeileNummern
def get_blacklist(self):
if not self._data_dir:
return None
raise Exception("set_data_dir not called. path not set")
if not self._blacklist:
with open(os.path.join(self._data_dir, 'blacklist.txt')) as f:
lines = f.read().splitlines()