command.py 842 B

1234567891011121314151617181920212223242526272829303132333435
  1. from docker import Client
  2. import logging
  3. import os
  4. import re
  5. import yaml
  6. from ..project import Project
  7. from .docopt_command import DocoptCommand
  8. from .formatter import Formatter
  9. from .utils import cached_property, docker_url
  10. log = logging.getLogger(__name__)
  11. class Command(DocoptCommand):
  12. @cached_property
  13. def client(self):
  14. return Client(docker_url())
  15. @cached_property
  16. def project(self):
  17. config = yaml.load(open('fig.yml'))
  18. return Project.from_config(self.project_name, config, self.client)
  19. @cached_property
  20. def project_name(self):
  21. project = os.path.basename(os.getcwd())
  22. project = re.sub(r'[^a-zA-Z0-9]', '', project)
  23. if not project:
  24. project = 'default'
  25. return project
  26. @cached_property
  27. def formatter(self):
  28. return Formatter()