(methods: T.Set[DependencyMethods])
return inner
Decorator for handling methods for dependency factory functions.

    This helps to make factory functions self documenting
    >>> @factory_methods([DependencyMethods.PKGCONFIG, DependencyMethods.CMAKE])
    >>> def factory(env: Environment, for_machine: MachineChoice, kwargs: T.Dict[str, T.Any], methods: T.List[DependencyMethods]) -> T.List['DependencyGenerator']:
    >>>     pass
Decorator for handling methods for dependency factory functions.
Decorator for handling methods for dependency factory functions .
def factory_methods(methods: T.Set[DependencyMethods]) -> T.Callable[['FactoryFunc'], 'WrappedFactoryFunc']:
    """Decorator for handling methods for dependency factory functions.

    This helps to make factory functions self documenting
    >>> @factory_methods([DependencyMethods.PKGCONFIG, DependencyMethods.CMAKE])
    >>> def factory(env: Environment, for_machine: MachineChoice, kwargs: T.Dict[str, T.Any], methods: T.List[DependencyMethods]) -> T.List['DependencyGenerator']:
    >>>     pass
    """

    def inner(func: 'FactoryFunc') -> 'WrappedFactoryFunc':

        @functools.wraps(func)
        def wrapped(env: 'Environment', for_machine: MachineChoice, kwargs: T.Dict[str, T.Any]) -> T.List['DependencyGenerator']:
            return func(env, for_machine, kwargs, process_method_kw(methods, kwargs))

        return wrapped

    return inner
def factory_methods ( methods : T . Set [ DependencyMethods ] ) -> T . Callable [ [ 'FactoryFunc' ] , 'WrappedFactoryFunc' ] : def inner ( func : 'FactoryFunc' ) -> 'WrappedFactoryFunc' : @ functools . wraps ( func ) def wrapped ( env : 'Environment' , for_machine : MachineChoice , kwargs : T . Dict [ str , T . Any ] ) -> T . List [ 'DependencyGenerator' ] : return func ( env , for_machine , kwargs , process_method_kw ( methods , kwargs ) ) return wrapped return inner