def w_bound_method(*args, **kwargs): if len(args) == 2 and len(kwargs) == 0 and is_data(args[1]): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, defaults, args[1], {params[0]: args[0]}, kwargs) elif KWARGS in kwargs and is_data(kwargs[KWARGS]): # PUT args INTO kwargs packed = params_pack(params, defaults, kwargs[KWARGS], dict_zip(params, args), kwargs) else: packed = params_pack(params, defaults, dict_zip(params, args), kwargs) try: return func(**packed) except TypeError as e: raise_error(e, packed)
def w_bound_method(*args, **kwargs): if len(args) == 2 and len(kwargs) == 0 and is_data(args[1]): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) elif "kwargs" in kwargs and is_data(kwargs["kwargs"]): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) else: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) try: return func(args[0], **packed) except TypeError as e: raise_error(e, packed)
def w_constructor(*args, **kwargs): if "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) elif len(args) == 2 and len(kwargs) == 0 and isinstance(args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) else: # DO NOT INCLUDE self IN kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) try: return func(args[0], **packed) except TypeError as e: raise_error(e, packed)
def w_kwargs(*args, **kwargs): if len(args) == 1 and len(kwargs) == 0 and is_data(args[0]): # ASSUME SINGLE PARAMETER IS kwargs packed = params_pack(params, args[0], defaults) elif "kwargs" in kwargs and is_data(kwargs["kwargs"]): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params, args), kwargs["kwargs"], defaults) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, kwargs, dict_zip(params, args), defaults) try: return func(**packed) except TypeError as e: raise_error(e, packed)
def w_kwargs(*args, **kwargs): if len(args) == 1 and len(kwargs) == 0 and is_data(args[0]): # ASSUME SINGLE PARAMETER IS kwargs packed = params_pack(params, defaults, args[0]) elif KWARGS in kwargs and is_data(kwargs[KWARGS]): # PUT args INTO kwargs packed = params_pack(params, defaults, kwargs[KWARGS], dict_zip(params, args), kwargs) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, defaults, dict_zip(params, args), kwargs) try: return func(**packed) except TypeError as e: raise_error(e, packed)
def w_constructor(*args, **kwargs): if KWARGS in kwargs: packed = params_pack(params, defaults, kwargs[KWARGS], kwargs, dict_zip(params[1:], args[1:])) elif len(args) == 2 and len(kwargs) == 0 and is_data(args[1]): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, defaults, args[1]) else: # DO NOT INCLUDE self IN kwargs packed = params_pack(params, defaults, kwargs, dict_zip(params[1:], args[1:])) try: return func(args[0], **packed) except TypeError as e: packed['self'] = args[0] # DO NOT SAY IS MISSING raise_error(e, packed)
def w_constructor(*args, **kwargs): if "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) elif len(args) == 2 and len(kwargs) == 0 and isinstance( args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) else: # DO NOT INCLUDE self IN kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) try: return func(args[0], **packed) except TypeError as e: raise_error(e, packed)
def w_kwargs(*args, **kwargs): if len(args) == 1 and len(kwargs) == 0 and isinstance( args[0], Mapping): # ASSUME SINGLE PARAMETER IS kwargs packed = params_pack(params, args[0], defaults) elif "kwargs" in kwargs and isinstance(kwargs["kwargs"], Mapping): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params, args), kwargs["kwargs"], defaults) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, kwargs, dict_zip(params, args), defaults) try: return func(**packed) except TypeError as e: raise_error(e, packed)
def w_bound_method(*args, **kwargs): if len(args) == 2 and len(kwargs) == 0 and isinstance( args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) elif "kwargs" in kwargs and isinstance(kwargs["kwargs"], Mapping): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) else: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) try: return func(args[0], **packed) except TypeError as e: raise_error(e, packed)
def w_kwargs(*given_args, **given_kwargs): if len(given_args) == 1 and len(given_kwargs) == 0 and is_data( given_args[0]): # ASSUME SINGLE PARAMETER IS kwargs a, k = params_pack(params, defaults, given_args[0]) elif kwargs in given_kwargs and is_data(given_kwargs[kwargs]): # PUT given_args INTO given_kwargs a, k = params_pack(params, defaults, given_kwargs[kwargs], dict_zip(params, given_args), given_kwargs) else: # PULL kwargs OUT INTO PARAMS a, k = params_pack(params, defaults, dict_zip(params, given_args), given_kwargs) try: return func(*a, **k) except TypeError as e: raise_error(e, a, k)
def w_bound_method(*given_args, **given_kwargs): if len(given_args) == 2 and len(given_kwargs) == 0 and is_data( given_args[1]): # ASSUME SECOND UNNAMED PARAM IS kwargs a, k = params_pack(params, defaults, given_args[1], {params[0]: given_args[0]}, given_kwargs) elif kwargs in given_kwargs and is_data(given_kwargs[kwargs]): # PUT args INTO given_kwargs a, k = params_pack(params, defaults, given_kwargs[kwargs], dict_zip(params, given_args), given_kwargs) else: a, k = params_pack(params, defaults, dict_zip(params, given_args), given_kwargs) try: return func(*a, **k) except TypeError as e: raise_error(e, a, k)
def wrapper(*args, **kwargs): try: func_name = get_function_name(func) if func_name in ("__init__", "__new__") and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif func_name in ("__init__", "__new__") and len( args) == 2 and len(kwargs) == 0 and isinstance( args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif func_name in ("__init__", "__new__"): # DO NOT INCLUDE self IN kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif params[0] == "self" and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif params[0] == "self" and len(args) == 2 and len( kwargs) == 0 and isinstance(args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif params[0] == "self": packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif len(args) == 1 and len(kwargs) == 0 and isinstance( args[0], Mapping): # ASSUME SINGLE PARAMETER IS A SETTING packed = params_pack(params, args[0], defaults) return func(**packed) elif "kwargs" in kwargs and isinstance(kwargs["kwargs"], Mapping): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params, args), kwargs["kwargs"], defaults) return func(**packed) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, kwargs, dict_zip(params, args), defaults) return func(**packed) except TypeError as e: e = Except.wrap(e) if e.message.startswith(func_name) and "takes at least" in e: missing = [p for p in params if str(p) not in packed] get_logger().error( "Problem calling {{func_name}}: Expecting parameter {{missing}}, given {{given}}", func_name=func_name, missing=missing, given=packed.keys(), stack_depth=1) get_logger().error("Error dispatching call", e)
def wrapper(*args, **kwargs): try: if func.func_name in ("__init__", "__new__") and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif func.func_name in ("__init__", "__new__") and len( args) == 2 and len(kwargs) == 0 and isinstance( args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif func.func_name in ("__init__", "__new__"): # DO NOT INCLUDE self IN kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif params[0] == "self" and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif params[0] == "self" and len(args) == 2 and len( kwargs) == 0 and isinstance(args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif params[0] == "self": packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif len(args) == 1 and len(kwargs) == 0 and isinstance( args[0], Mapping): # ASSUME SINGLE PARAMETER IS A SETTING packed = params_pack(params, args[0], defaults) return func(**packed) elif "kwargs" in kwargs and isinstance(kwargs["kwargs"], Mapping): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params, args), kwargs["kwargs"], defaults) return func(**packed) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, kwargs, dict_zip(params, args), defaults) return func(**packed) except TypeError, e: if e.message.find("takes at least") >= 0: missing = [p for p in params if str(p) not in packed] get_logger().error( "Problem calling {{func_name}}: Expecting parameter {{missing}}", func_name=func.func_name, missing=missing, stack_depth=1) get_logger().error("Unexpected", e)
def wrapper(*args, **kwargs): try: if func.func_name in ("__init__", "__new__") and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif func.func_name in ("__init__", "__new__") and len(args) == 2 and len(kwargs) == 0 and isinstance(args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif func.func_name in ("__init__", "__new__"): # DO NOT INCLUDE self IN kwargs packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif params[0] == "self" and "kwargs" in kwargs: packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), kwargs["kwargs"], defaults) return func(args[0], **packed) elif params[0] == "self" and len(args) == 2 and len(kwargs) == 0 and isinstance(args[1], Mapping): # ASSUME SECOND UNNAMED PARAM IS kwargs packed = params_pack(params, args[1], defaults) return func(args[0], **packed) elif params[0] == "self": packed = params_pack(params, kwargs, dict_zip(params[1:], args[1:]), defaults) return func(args[0], **packed) elif len(args) == 1 and len(kwargs) == 0 and isinstance(args[0], Mapping): # ASSUME SINGLE PARAMETER IS A SETTING packed = params_pack(params, args[0], defaults) return func(**packed) elif "kwargs" in kwargs and isinstance(kwargs["kwargs"], Mapping): # PUT args INTO kwargs packed = params_pack(params, kwargs, dict_zip(params, args), kwargs["kwargs"], defaults) return func(**packed) else: # PULL kwargs OUT INTO PARAMS packed = params_pack(params, kwargs, dict_zip(params, args), defaults) return func(**packed) except TypeError, e: if e.message.find("takes at least") >= 0: missing = [p for p in params if str(p) not in packed] get_logger().error( "Problem calling {{func_name}}: Expecting parameter {{missing}}", func_name=func.func_name, missing=missing, stack_depth=1 ) get_logger().error("Unexpected", e)