def mapply(self, fn, args, kwargs): try: memo = typeguard._CallMemo(fn, args=args, kwargs=kwargs) typeguard.check_argument_types(memo) except TypeError as exc: raise XMLRPCInvalidParamTypes(exc) return super().mapply(fn, args, kwargs)
def mapply(self, fn, args, kwargs): try: memo = typeguard._CallMemo(fn, args=args, kwargs=kwargs) typeguard.check_argument_types(memo) except TypeError as exc: print(exc) raise XMLRPCInvalidParamTypes(exc) return super().mapply(fn, args, kwargs)
def _call_func(func_key, args=None, kwargs=None): args = args or () kwargs = kwargs or {} for func in _registry[func_key].values(): try: check_argument_types(_CallMemo(func, args=args, kwargs=kwargs)) except TypeError: continue return func(*args, **kwargs) raise PolypieException("Matсhing signature for function '{func}' with " "args={args} and kwargs={kwargs} not found".format( func=func_key, args=args, kwargs=kwargs))
def _call_func(func_key, args=None, kwargs=None): args = args or () kwargs = kwargs or {} for func in _registry[func_key].values(): try: check_argument_types(_CallMemo(func, args=args, kwargs=kwargs)) except TypeError: continue return func(*args, **kwargs) raise PolypieException( "Matсhing signature for function '{func}' with " "args={args} and kwargs={kwargs} not found".format( func=func_key, args=args, kwargs=kwargs) )
def _check_result(self, result: typing.Any) -> None: if not self.check_types: return hints = typing.get_type_hints(self.func) if 'return' not in hints: return memo = typeguard._CallMemo( func=self.func, args=self.args, kwargs=self.kwargs, ) typeguard.check_argument_types(memo=memo) typeguard.check_type( argname='the return value', value=result, expected_type=hints['return'], memo=memo, )
def taskwrapper(*args, **kwargs): _repr_function(target=target, args=args, kwargs=kwargs) # Warning for explicit parameters if args: short = [str(a)[:20] for a in args] _LOGGER.warning("Use explicit parameters, instead of %s", short) # Warning on parameter types call_memo = _CallMemo(target, args=args, kwargs=kwargs) try: check_argument_types(call_memo) except TypeError as err: _LOGGER.warning(err) if validator: validator(kwargs) try: value = target(*args, **kwargs) except Exception as err: _LOGGER.error( "Error while running task `%s` - %s: %s", name, type(err).__name__, err ) raise if isgeneratorfunction(target) or ( isinstance(value, list) and not isinstance(value, ATable) ): value = ATable(value) try: check_return_type(value, call_memo) except TypeError as err: _LOGGER.error(err) return value