version.py 1021 B

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import print_function
  2. import scrapy
  3. from scrapy.commands import ScrapyCommand
  4. from scrapy.utils.versions import scrapy_components_versions
  5. class Command(ScrapyCommand):
  6. default_settings = {'LOG_ENABLED': False,
  7. 'SPIDER_LOADER_WARN_ONLY': True}
  8. def syntax(self):
  9. return "[-v]"
  10. def short_desc(self):
  11. return "Print Scrapy version"
  12. def add_options(self, parser):
  13. ScrapyCommand.add_options(self, parser)
  14. parser.add_option("--verbose", "-v", dest="verbose", action="store_true",
  15. help="also display twisted/python/platform info (useful for bug reports)")
  16. def run(self, args, opts):
  17. if opts.verbose:
  18. versions = scrapy_components_versions()
  19. width = max(len(n) for (n, _) in versions)
  20. patt = "%-{}s : %s".format(width)
  21. for name, version in versions:
  22. print(patt % (name, version))
  23. else:
  24. print("Scrapy %s" % scrapy.__version__)