[+] release .whl, fix ruff

This commit is contained in:
Siarhei Siniak 2025-06-21 14:05:31 +03:00
parent 91dbbde50d
commit 1e73d19122
2 changed files with 60 additions and 59 deletions

@ -3,44 +3,45 @@ import inspect
import collections
from typing import (
TypeVar, Callable, Any, Optional,
Mapping, cast,
TypeVar,
Callable,
Any,
Optional,
Mapping,
cast,
)
P = TypeVar('P')
R = TypeVar('R')
def validate_params(
view: Callable[..., R]
) -> Callable[..., R]:
import inspect
def validate_params(view: Callable[..., R]) -> Callable[..., R]:
class Parameter:
kind: Any
annotation: Any
parameters = cast(
Mapping[str, Parameter],
inspect.signature(view).parameters
)
parameters = cast(Mapping[str, Parameter], inspect.signature(view).parameters)
positional_parameters: collections.OrderedDict[str, type[Any]] = \
collections.OrderedDict((
positional_parameters: collections.OrderedDict[str, type[Any]] = collections.OrderedDict(
(
(k, v.annotation)
for k, v in parameters.items()
if v.kind in (
if v.kind
in (
inspect.Parameter.POSITIONAL_ONLY,
inspect.Parameter.POSITIONAL_OR_KEYWORD,
)
))
)
)
positional_names = list(positional_parameters)
model = pydantic.create_model(
getattr(view, '__name__'),
**{
k : v.annotation
k: v.annotation
for k, v in parameters.items()
if v.kind in (
if v.kind
in (
inspect.Parameter.POSITIONAL_OR_KEYWORD,
inspect.Parameter.POSITIONAL_ONLY,
inspect.Parameter.KEYWORD_ONLY,
@ -48,16 +49,13 @@ def validate_params(
},
__config__=pydantic.ConfigDict(
arbitrary_types_allowed=True,
)
),
)
def wrapper(*args: Any, **kwargs: Any) -> R:
#data = model.model_validate(
# data = model.model_validate(
kwargs_to_check : dict[str, Any] = {
k : v
for k, v in kwargs.items()
}
kwargs_to_check: dict[str, Any] = {k: v for k, v in kwargs.items()}
for i, o in enumerate(args):
k = positional_names[i]
@ -71,10 +69,10 @@ def validate_params(
model.model_validate(
kwargs_to_check,
)
#).dict()
# ).dict()
return view(
#**data,
# **data,
*args,
**kwargs,
)

Binary file not shown.