utils.py 838 B

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. import warnings
  3. from cvargparse import BaseParser
  4. from cvdatasets.utils import read_info_file
  5. from functools import wraps
  6. WARNING = """Could not find default info file \"{}\". """ + \
  7. """Some arguments (dataset, parts etc.) are not restraint to certain choices! """ + \
  8. """You can set <DATA> environment variable to change the default info file location."""
  9. DEFAULT_INFO_FILE = os.environ.get("DATA")
  10. def get_info_file():
  11. if DEFAULT_INFO_FILE is not None and os.path.isfile(DEFAULT_INFO_FILE):
  12. return read_info_file(DEFAULT_INFO_FILE)
  13. else:
  14. warnings.warn(WARNING.format(DEFAULT_INFO_FILE))
  15. return None
  16. def parser_extender(extender):
  17. @wraps(extender)
  18. def inner(parser):
  19. assert isinstance(parser, BaseParser), \
  20. "Parser should be an BaseParser instance!"
  21. extender(parser)
  22. return parser
  23. return inner