def check( self, # the parameters (dict) (#1). parameters={"parameter": None}, # the recognizer value for when the parameters are supposed to be empty. default=None, # the traceback id. traceback=None, ): # single. if isinstance(parameters, tuple): name, parameter = parameters if parameter == default: if traceback != None: return _response_.error( f"{traceback}: Define parameter [{name}].") else: return _response_.error(f"Define parameter [{name}].") if ":" in name: name, formats = name.split(":") while True: if " " in formats: formats = formats.replace(" ", "") else: break formats = formats.split(",") param_format = Formats.get(parameter, serialize=True) if param_format not in formats: return _response_.error( f"Incorrect parameter [{name}:{param_format}] format, correct format(s): {Array(path=False, array=formats).string(joiner=', ')}." ) return _response_.success( f"Succesfully checked parameter [{name}].") # recursive. elif isinstance(parameters, (dict, Dictionary, ResponseObject)): for id, value in parameters.items(): response = self.check(parameters=(id, value), default=default, traceback=traceback) if response["error"] != None: return response return _response_.success( f"Succesfully checked {len(parameters)} parameter(s).") # invalid. else: raise Exceptions.InstanceError( f"Parameter [parameters] requires to be a [dict, Dictionary, tuple] not [{parameters.__class__.__name__}]." )
def __le__(self, response): if not isinstance(response, self.__class__): raise Exceptions.InstanceError( f"Can not compare object {self.__class__} & {response.__class__}." ) return len(self) <= len(response)