def overrideSignatures(toOverride, original, forceName=None, forceModuleName=None): try: if ObjectHelper.isNotNone(original): toOverride.__name__ = original.__name__ if ObjectHelper.isNone( forceName) else set(forceName) toOverride.__qualname__ = original.__qualname__ if ObjectHelper.isNone( forceName) else set(forceName) toOverride.__module__ = original.__module__ if ObjectHelper.isNone( forceName) else set(c.NOTHING) else: toOverride.__name__ = forceName if ObjectHelper.isNotNone( forceName) else set(toOverride.__name__) toOverride.__qualname__ = forceName if ObjectHelper.isNotNone( forceName) else set(toOverride.__qualname__) toOverride.__module__ = forceModuleName if ObjectHelper.isNotNone( forceModuleName) else set(toOverride.__module__) except Exception as exception: LogHelper.error( overrideSignatures, f'''Not possible to override signatures of {toOverride} by signatures of {original} method''', exception) raise exception
def handleSettingInjectionList(settingInjectionList, settingTree, fallbackSettingTree=None): if ObjectHelper.isNotEmptyCollection( settingInjectionList) and ObjectHelper.isNotNone(settingTree): try: done, stuck = handleSettingInjectionListLoop( False, False, settingTree, settingInjectionList, fallbackSettingTree, getSettingInjectionValueIgnoringFallbackSettingTree, verifyer=verifyDefaultSettingInjectionListHandler) except Exception as exception: LogHelper.error( handleSettingInjectionList, 'Not possible to load setting injections properly', exception) raise exception
def updateSettingValue(settingKey, settingValue, nodeKey, settingTree, isSameDepth=False, isSettingInjection=False): # print(f'settingKey: {settingKey}, settingValue: {settingValue}, nodeKey: {nodeKey}, settingTree: {settingTree}, isSameDepth: {isSameDepth}') if StringHelper.isNotBlank(settingKey) and ObjectHelper.isNotNone( settingKey): # print(f'accessTree({nodeKey},{settingTree})[{settingKey}]: {accessTree(nodeKey,settingTree)}[{settingKey}]') # print(f'type(accessTree(nodeKey,settingTree)): {type(accessTree(nodeKey,settingTree))}') accessTree(nodeKey, settingTree)[settingKey] = getSettingValueOrNewNode( nodeKey, settingKey, settingValue, isSameDepth=isSameDepth, isSettingInjection=isSettingInjection) elif StringHelper.isNotBlank(nodeKey) and ObjectHelper.isNotNone(nodeKey): splittedNodeKey = nodeKey.split(c.DOT) if 1 < len(splittedNodeKey): accessSettingKey = splittedNodeKey[-1] accessNodeKey = c.DOT.join(splittedNodeKey[:-1]) else: accessSettingKey = splittedNodeKey[-1] accessNodeKey = None accessTree(accessNodeKey, settingTree)[accessSettingKey] = getSettingValueOrNewNode( nodeKey, settingKey, settingValue, isSameDepth=isSameDepth, isSettingInjection=isSettingInjection) else: errorMessage = 'Node key and setting key cannot be None at the same time' exception = Exception(errorMessage) LogHelper.error( updateSettingValue, f'Error parsing settingKey: "{settingKey}", settingValue: {settingValue}, nodeKey: {nodeKey}, settingTree: {StringHelper.prettyPython(settingTree)}', errorMessage) raise exception
def getArgsOrder(targetClass): noneArgs = [] noneInstance = instanciateItWithNoArgsConstructor(targetClass, amountOfNoneArgs=0, args=noneArgs) strArgs = [] for arg in range(len(noneArgs)): strArgs.append(RandomHelper.string(minimum=10)) try: instance = targetClass(*strArgs) instanceDataDictionary = getAttributeDataDictionary(instance) argsOrderDictionary = {} for key, value in instanceDataDictionary.items(): if StringHelper.isNotBlank(value): argsOrderDictionary[strArgs.index(value)] = key argsOrder = [ argsOrderDictionary[key] for key in sorted(argsOrderDictionary) ] except Exception as exception: errorMessage = f'Not possible to get args order from "{getName(targetClass)}" target class' LogHelper.error(getArgsOrder, errorMessage, exception) raise Exception(errorMessage) return argsOrder
def getSet(avoidRecursiveCall=False) : try : return json.loads(str(OS.environ)[8:-1].replace(c.DOUBLE_QUOTE, c.BACK_SLASH_DOUBLE_QUOTE).replace(c.SINGLE_QUOTE, c.DOUBLE_QUOTE)) except Exception as exception : LogHelper.error(getSet, 'Not possible to load os.environ as a json. Returning os.environ as string by default', exception) return str(OS.environ)[8:-1]