Fix ConversionPoint.fn_args ignorance of type annot override

This commit is contained in:
2025-07-21 15:45:48 +03:00
parent 90409ec774
commit e767ccae15
3 changed files with 13 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
[project]
name = "breakshaft"
version = "0.1.1"
version = "0.1.1.post1"
description = "Library for in-time codegen for type conversion"
authors = [
{ name = "nikto_b", email = "niktob560@yandex.ru" }

View File

@@ -10,7 +10,7 @@ from typing import Callable, Optional, get_type_hints, get_origin, Generator, ge
from .util import extract_func_argtypes, extract_func_argtypes_seq, is_sync_context_manager_factory, \
is_async_context_manager_factory, \
all_combinations, is_context_manager_factory, extract_func_arg_defaults, extract_func_args
all_combinations, is_context_manager_factory, extract_func_arg_defaults, extract_func_args, extract_func_argnames
@dataclass(frozen=True)
@@ -35,7 +35,8 @@ class ConversionPoint:
@property
def fn_args(self) -> list[tuple[str, type]]:
return extract_func_args(self.fn)
funcnames = extract_func_argnames(self.fn)
return list(zip(funcnames, self.requires + self.opt_args))
@property
def is_ctx_manager(self) -> bool:

View File

@@ -3,6 +3,15 @@ from itertools import product
from typing import Callable, get_type_hints, TypeVar, Any, Optional
def extract_func_argnames(func: Callable) -> list[str]:
sig = inspect.signature(func)
params = sig.parameters
args_info = []
for name, _ in params.items():
args_info.append(name)
return args_info
def extract_return_type(func: Callable) -> Optional[type]:
hints = get_type_hints(func)
return hints.get('return')