1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
import argparse
import scrapy
from scrapy.commands import ScrapyCommand
from scrapy.utils.versions import get_versions
class Command(ScrapyCommand):
default_settings = {"LOG_ENABLED": False, "SPIDER_LOADER_WARN_ONLY": True}
def syntax(self) -> str:
return "[-v]"
def short_desc(self) -> str:
return "Print Scrapy version"
def add_options(self, parser: argparse.ArgumentParser) -> None:
super().add_options(parser)
parser.add_argument(
"--verbose",
"-v",
dest="verbose",
action="store_true",
help="also display twisted/python/platform info (useful for bug reports)",
)
def run(self, args: list[str], opts: argparse.Namespace) -> None:
if opts.verbose:
versions = get_versions()
width = max(len(n) for (n, _) in versions)
for name, version in versions:
print(f"{name:<{width}} : {version}")
else:
print(f"Scrapy {scrapy.__version__}")
|