argument.py 496 B

123456789101112131415161718
  1. class Argument(object):
  2. def __init__(self, *args, **kw):
  3. super(Argument, self).__init__()
  4. self.args = args # positional arugments
  5. self.kw = kw # keyword arguments
  6. class FileArgument(Argument):
  7. def __init__(self, *args, **kw):
  8. super(FileArgument, self).__init__(*args, **kw)
  9. @classmethod
  10. def mode(cls, file_mode, encoding=None):
  11. def wrapper(*args, **kw):
  12. obj = cls(*args, **kw)
  13. obj.kw["type"] = argparse.FileType(file_mode, encoding=encoding)
  14. return obj
  15. return wrapper