#!/usr/bin/python # -*- coding: utf-8 -*- # --------------------------------------------------------------------------------------------------------- # Author : Ulrich Carmesin # Source : gitea.ucarmesin.de # --------------------------------------------------------------------------------------------------------- import os import basic.program import basic.constants as B import utils.path_const as P EXP_KEY_MISSING = "key is missing {}" EXP_KEY_DOESNT_EXIST = "key doesnt exist in domain {}" class Catalog: __instance = None """ in this class there should be managed each defined key-value-pairs the pairs ara loaded from the path testdata/catalog: * initially the csv-file catalog.csv * on demand other csv-files in the path """ def __init__(self): self.catalog = {} Catalog.__instance = self pass @staticmethod def getInstance(): if Catalog.__instance == None: return Catalog() return Catalog.__instance def getValue(self, domain, key): """ this function gets the value of the domain an key :param domain: :param key: :return: """ job = basic.program.Job.getInstance() if not (isinstance(domain, str) and len(domain)): raise Exception(EXP_KEY_MISSING, (domain, key)) if not (isinstance(key, str) and len(key)): raise Exception(EXP_KEY_MISSING, (domain, key)) if domain not in self.catalog: self.readDomain(domain) if key not in self.catalog[domain][key]: raise Exception(EXP_KEY_DOESNT_EXIST, (domain, key)) return self.catalog[domain][key] def readDomain(self, domain): """ :param domain: :return: """ job = basic.program.Job.getInstance() if not (isinstance(domain, str) and len(domain)): raise Exception(EXP_KEY_MISSING, (domain))