flag.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Apr 2 18:39:21 2013
  4. @author: pietro
  5. """
  6. from __future__ import (nested_scopes, generators, division, absolute_import,
  7. with_statement, print_function, unicode_literals)
  8. from grass.pygrass.functions import docstring_property
  9. from grass.pygrass.modules.interface import read
  10. # TODO add documentation
  11. class Flag(object):
  12. """The Flag object store all information about a flag of module.
  13. It is possible to set flags of command using this object.
  14. """
  15. def __init__(self, xflag=None, diz=None):
  16. self.value = False
  17. diz = read.element2dict(xflag) if xflag is not None else diz
  18. self.name = diz['name']
  19. self.special = True if self.name in (
  20. 'verbose', 'overwrite', 'quiet', 'run') else False
  21. self.description = diz.get('description', None)
  22. self.default = diz.get('default', None)
  23. self.guisection = diz.get('guisection', None)
  24. def get_bash(self):
  25. """Prova"""
  26. if self.value:
  27. if self.special:
  28. return '--%s' % self.name[0]
  29. else:
  30. return '-%s' % self.name
  31. else:
  32. return ''
  33. def get_python(self):
  34. """Prova"""
  35. if self.value:
  36. if self.special:
  37. return '%s=True' % self.name
  38. else:
  39. return self.name
  40. else:
  41. return ''
  42. def __str__(self):
  43. return self.get_bash()
  44. def __repr__(self):
  45. return "Flag <%s> (%s)" % (self.name, self.description)
  46. @docstring_property(__doc__)
  47. def __doc__(self):
  48. """
  49. {name}: {default}
  50. {description}"""
  51. return read.DOC['flag'].format(name=self.name,
  52. default=repr(self.default),
  53. description=self.description)