in src/mlm/batchify.py [0:0]
def __init__(self,
container: t_NamedTuple,
fn_info: t_Union[t_List[t_Callable],
t_Tuple[t_Callable],
t_Dict[AnyStr, t_Callable]]):
self._container = container
if isinstance(fn_info, (list, tuple)):
if len(container._fields) != len(fn_info):
raise ValueError('Attributes mismatch! Required fields={}, fn_info={}'
.format(container._fields, fn_info))
elif isinstance(fn_info, dict):
for name in container._fields:
if name not in fn_info:
raise ValueError('Attribute {} has not been assigned a callable. '
'Required fields={}, Found fields={}'
.format(name, container._fields, fn_info.keys()))
if len(container._fields) != len(fn_info):
raise ValueError('Attributes mimatch! Required fields={}, Found fields={}'
.format(container._fields, fn_info.keys()))
fn_info = [fn_info[name] for name in container._fields]
for fn in fn_info:
if not hasattr(fn, '__call__'):
raise ValueError('All batchify functions must be callable.')
self._fn_l = fn_info