Python inspect.Parameter.VAR_POSITIONAL Examples
The following are 8
code examples of inspect.Parameter.VAR_POSITIONAL().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
inspect.Parameter
, or try the search function
.
Example #1
Source File: model.py From Seq2Seq-Tensorflow with MIT License | 7 votes |
def auto_assign(func): # Signature: sig = signature(func) for name, param in sig.parameters.items(): if param.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD): raise RuntimeError('Unable to auto assign if *args or **kwargs in signature.') # Wrapper: @functools.wraps(func) def wrapper(self, *args, **kwargs): for i, (name, param) in enumerate(sig.parameters.items()): # Skip 'self' param: if i == 0: continue # Search value in args, kwargs or defaults: if i - 1 < len(args): val = args[i - 1] elif name in kwargs: val = kwargs[name] else: val = param.default setattr(self, name, val) func(self, *args, **kwargs) return wrapper
Example #2
Source File: gate_utils.py From qiskit-terra with Apache License 2.0 | 6 votes |
def _get_free_params(fun, ignore=None): """Get the names of the free parameters of the function ``f``. Args: fun (callable): The function to inspect. ignore (list[str]): A list of argument names (as str) to ignore. Returns: list[str]: The name of the free parameters not listed in ``ignore``. """ ignore = ignore or [] free_params = [] for name, param in signature(fun).parameters.items(): if param.default == Parameter.empty and param.kind != Parameter.VAR_POSITIONAL: if name not in ignore: free_params.append(name) return free_params
Example #3
Source File: compat.py From easy_cache with MIT License | 6 votes |
def getargspec(func): signature = inspect.signature(func) args = [] varargs = None keywords = None defaults = [] for param in signature.parameters.values(): # type: Parameter if param.kind == Parameter.VAR_POSITIONAL: varargs = param.name elif param.kind in ( Parameter.POSITIONAL_ONLY, Parameter.KEYWORD_ONLY, Parameter.POSITIONAL_OR_KEYWORD): args.append(param.name) elif param.kind == Parameter.VAR_KEYWORD: keywords = param.name # noinspection PyProtectedMember if param.default is not inspect._empty: defaults.append(param.default) return ArgSpec(args, varargs, keywords, tuple(defaults))
Example #4
Source File: sequence.py From chainerrl with MIT License | 5 votes |
def accept_variable_arguments(func): for param in signature(func).parameters.values(): if param.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD): return True return False
Example #5
Source File: signature.py From sacred with MIT License | 5 votes |
def get_argspec(f): sig = inspect.signature(f) args = [n for n, p in sig.parameters.items() if p.kind in ARG_TYPES] pos_args = [ n for n, p in sig.parameters.items() if p.kind in POSARG_TYPES and p.default == inspect._empty ] varargs = [ n for n, p in sig.parameters.items() if p.kind == Parameter.VAR_POSITIONAL ] # only use first vararg (how on earth would you have more anyways?) vararg_name = varargs[0] if varargs else None varkws = [n for n, p in sig.parameters.items() if p.kind == Parameter.VAR_KEYWORD] # only use first varkw (how on earth would you have more anyways?) kw_wildcard_name = varkws[0] if varkws else None kwargs = OrderedDict( [ (n, p.default) for n, p in sig.parameters.items() if p.default != inspect._empty ] ) return args, vararg_name, kw_wildcard_name, pos_args, kwargs
Example #6
Source File: signature.py From ray with Apache License 2.0 | 5 votes |
def _convert_from_parameter_kind(kind): if kind == Parameter.POSITIONAL_ONLY: return 0 if kind == Parameter.POSITIONAL_OR_KEYWORD: return 1 if kind == Parameter.VAR_POSITIONAL: return 2 if kind == Parameter.KEYWORD_ONLY: return 3 if kind == Parameter.VAR_KEYWORD: return 4
Example #7
Source File: signature.py From ray with Apache License 2.0 | 5 votes |
def _convert_to_parameter_kind(value): if value == 0: return Parameter.POSITIONAL_ONLY if value == 1: return Parameter.POSITIONAL_OR_KEYWORD if value == 2: return Parameter.VAR_POSITIONAL if value == 3: return Parameter.KEYWORD_ONLY if value == 4: return Parameter.VAR_KEYWORD
Example #8
Source File: __init__.py From holoviews with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _update_backend(cls, backend): if cls.__original_docstring__ is None: cls.__original_docstring__ = cls.__doc__ all_keywords = set() element_keywords = cls._element_keywords(backend) for element, keywords in element_keywords.items(): with param.logging_level('CRITICAL'): all_keywords |= set(keywords) setattr(cls, element, cls._create_builder(element, keywords)) filtered_keywords = [k for k in all_keywords if k not in cls._no_completion] sorted_kw_set = sorted(set(filtered_keywords)) if sys.version_info.major == 2: kws = ', '.join('{opt}=None'.format(opt=opt) for opt in sorted_kw_set) old_doc = cls.__original_docstring__.replace( 'params(strict=Boolean, name=String)','') cls.__doc__ = '\n opts({kws})'.format(kws=kws) + old_doc else: from inspect import Parameter, Signature signature = Signature([Parameter('args', Parameter.VAR_POSITIONAL)] + [Parameter(kw, Parameter.KEYWORD_ONLY) for kw in sorted_kw_set]) cls.__init__.__signature__ = signature