robotframework-pythonlibcore
Advanced tools
+1
-1
| Metadata-Version: 2.1 | ||
| Name: robotframework-pythonlibcore | ||
| Version: 4.1.1 | ||
| Version: 4.1.2 | ||
| Summary: Tools to ease creating larger test libraries for Robot Framework using Python. | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/robotframework/PythonLibCore |
| Metadata-Version: 2.1 | ||
| Name: robotframework-pythonlibcore | ||
| Version: 4.1.1 | ||
| Version: 4.1.2 | ||
| Summary: Tools to ease creating larger test libraries for Robot Framework using Python. | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/robotframework/PythonLibCore |
+21
-26
@@ -24,3 +24,3 @@ # Copyright 2017- Robot Framework Foundation | ||
| from dataclasses import dataclass | ||
| from typing import Any, List, Optional, get_type_hints | ||
| from typing import Any, Callable, List, Optional, get_type_hints | ||
@@ -31,3 +31,3 @@ from robot.api.deco import keyword # noqa F401 | ||
| __version__ = "4.1.1" | ||
| __version__ = "4.1.2" | ||
@@ -201,7 +201,5 @@ | ||
| arg_spec = cls._get_arg_spec(unwrap_function) | ||
| argument_specification = cls._get_default_and_named_args(arg_spec, function) | ||
| argument_specification.extend(cls._get_var_args(arg_spec)) | ||
| kw_only_args = cls._get_kw_only(arg_spec) | ||
| if kw_only_args: | ||
| argument_specification.extend(kw_only_args) | ||
| argument_specification = cls._get_args(arg_spec, function) | ||
| argument_specification.extend(cls._get_varargs(arg_spec)) | ||
| argument_specification.extend(cls._get_named_only_args(arg_spec)) | ||
| argument_specification.extend(cls._get_kwargs(arg_spec)) | ||
@@ -211,7 +209,7 @@ return argument_specification | ||
| @classmethod | ||
| def _get_arg_spec(cls, function): | ||
| def _get_arg_spec(cls, function: Callable): | ||
| return inspect.getfullargspec(function) | ||
| @classmethod | ||
| def _get_default_and_named_args(cls, arg_spec, function): | ||
| def _get_args(cls, arg_spec: inspect.FullArgSpec, function: Callable): | ||
| args = cls._drop_self_from_args(function, arg_spec) | ||
@@ -230,29 +228,26 @@ args.reverse() | ||
| @classmethod | ||
| def _drop_self_from_args(cls, function, arg_spec): | ||
| def _drop_self_from_args(cls, function: Callable, arg_spec: inspect.FullArgSpec): | ||
| return arg_spec.args[1:] if inspect.ismethod(function) else arg_spec.args | ||
| @classmethod | ||
| def _get_var_args(cls, arg_spec): | ||
| if arg_spec.varargs: | ||
| return [f"*{arg_spec.varargs}"] | ||
| return [] | ||
| def _get_varargs(cls, arg_spec: inspect.FullArgSpec) -> list: | ||
| return [f"*{arg_spec.varargs}"] if arg_spec.varargs else [] | ||
| @classmethod | ||
| def _get_kwargs(cls, arg_spec): | ||
| def _get_kwargs(cls, arg_spec: inspect.FullArgSpec) -> list: | ||
| return [f"**{arg_spec.varkw}"] if arg_spec.varkw else [] | ||
| @classmethod | ||
| def _get_kw_only(cls, arg_spec): | ||
| kw_only_args = [] | ||
| def _get_named_only_args(cls, arg_spec: inspect.FullArgSpec) -> list: | ||
| rf_spec = [] | ||
| kw_only_args = arg_spec.kwonlyargs if arg_spec.kwonlyargs else [] | ||
| if not arg_spec.varargs and kw_only_args: | ||
| rf_spec.append("*") | ||
| kw_only_defaults = arg_spec.kwonlydefaults if arg_spec.kwonlydefaults else [] | ||
| for arg in arg_spec.kwonlyargs: | ||
| if not arg_spec.varargs and arg not in kw_only_defaults and not kw_only_args: | ||
| kw_only_args.append("*") | ||
| kw_only_args.append(arg) | ||
| elif arg not in kw_only_defaults: | ||
| kw_only_args.append(arg) | ||
| for kw_only_arg in kw_only_args: | ||
| if kw_only_arg in kw_only_defaults: | ||
| rf_spec.append((kw_only_arg, kw_only_defaults[kw_only_arg])) | ||
| else: | ||
| value = arg_spec.kwonlydefaults.get(arg, "") | ||
| kw_only_args.append((arg, value)) | ||
| return kw_only_args | ||
| rf_spec.append(kw_only_arg) | ||
| return rf_spec | ||
@@ -259,0 +254,0 @@ @classmethod |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
43685
0.01%332
-1.48%