import griffe
from griffe.dataclasses import Function, Parametersparser
Parse objects for rendering in documentation.
def func_data(func:Function):
assert func.is_function, f'{func} is not a function'
return {'func_name': func.name,
'parameters': [p.as_dict() for p in func.parameters]}func = griffe.load('fastcore.parallel.parallel')
func<Function('parallel', 103, 117)>
func_data(func){'func_name': 'parallel',
'parameters': [{'name': 'f',
'annotation': None,
'kind': <ParameterKind.positional_or_keyword: 'positional or keyword'>,
'default': None},
{'name': 'items',
'annotation': None,
'kind': <ParameterKind.positional_or_keyword: 'positional or keyword'>,
'default': None},
{'name': 'args',
'annotation': None,
'kind': <ParameterKind.var_positional: 'variadic positional'>,
'default': '()'},
{'name': 'n_workers',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'defaults.cpus'},
{'name': 'total',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'None'},
{'name': 'progress',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'None'},
{'name': 'pause',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': '0'},
{'name': 'method',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'None'},
{'name': 'threadpool',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'False'},
{'name': 'timeout',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': 'None'},
{'name': 'chunksize',
'annotation': None,
'kind': <ParameterKind.keyword_only: 'keyword-only'>,
'default': '1'},
{'name': 'kwargs',
'annotation': None,
'kind': <ParameterKind.var_keyword: 'variadic keyword'>,
'default': '{}'}]}