Mercurial > hg > Lemuriformes
diff lemuriformes/decorators.py @ 13:2227ff372388
decorators module
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 10 Dec 2017 17:07:29 -0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lemuriformes/decorators.py Sun Dec 10 17:07:29 2017 -0800 @@ -0,0 +1,26 @@ +try: + # python2 + string = (str, unicode) +except NameError: + # python3 + string = (str,) + + +class fileobj(object): + """ + fileobj decorator: + inner function may take a file-like object or a string as path to file + The decorated function must take this as the first argument + """ + + + def __init__(self, function): + self.wrapped = function + + def __call__(self, fp, *args, **kwargs): + + if isinstance(fp, string): + with open(fp) as f: + return self.wrapped(f, *args, **kwargs) + + return self.wrapped(fp, *args, **kwargs)