tombulled / param

Enhanced function parameters
https://pypi.org/project/tombulled-param/
MIT License
0 stars 0 forks source link

:sparkles: Implement a Generic Approach to Composition #5

Closed tombulled closed 2 years ago

tombulled commented 2 years ago

E.g.

@dataclass
class Header(ParameterSpecification):
    name: str

composers = Composers()

@composers(Header)
def compose_header(func: Callable, parameter: Parameter[Header], value: Any) -> Any:
    ...
tombulled commented 2 years ago

If resolvers are made modular, a class should be used for get_params and get_arguments

Maybe named ParameterManager or some such?

E.g:

@dataclass
class ParameterManager:
    resolvers: Resolvers

    def get_params(self, func: Callable) -> Dict[str, Parameter]:
        ...

    def infer_parameter(self, parameter: inspect.Parameter) -> ParameterSpecification:
        ...

    def get_arguments(func, args: Tuple[Any, ...], kwargs: Dict[str, Any]) -> Arguments:
        ...