def _func2method(func, method_name):
def method(self, name, default=ma.missing, subcast=None, **kwargs):
name = self._prefix + name if self._prefix else name
parsed_key, raw_value = _get_from_environ(name, default)
if raw_value is ma.missing:
raise EnvError('Environment variable "{}" not set'.format(parsed_key))
value = func(raw_value, **kwargs)
self._fields[name] = ma.fields.Field(**kwargs)
self._values[name] = value
return value
method.__name__ = str(method_name) # cast to str for Py2 compat
return method