Source code for pyrs.env.annotations

from .configuration import config


[docs]def ensure_meta(func, *args, **kwargs): meta = getattr(func, config['meta_field'], None) if meta is None: meta = {} setattr(func, config['meta_field'], meta) meta.update(*args, **kwargs) return meta
[docs]def get_meta(func, name=None, default=None): meta = ensure_meta(func) if name is None: return meta if name not in meta and default is not None: meta[name] = default return meta.get(name)
[docs]def annotate(_func=None, **kwargs): def decorator(_func): ensure_meta(_func, kwargs) return _func if _func is not None: return decorator(_func) return decorator