Move methods to a new scrapy.utils.versions

This commit is contained in:
Paul Tremberth 2017-07-27 20:07:14 +02:00
parent 219c8aa0b6
commit bf7ef3e4c3
3 changed files with 47 additions and 44 deletions

View File

@ -2,7 +2,7 @@ from __future__ import print_function
import scrapy
from scrapy.commands import ScrapyCommand
from scrapy.utils.log import scrapy_components_versions
from scrapy.utils.versions import scrapy_components_versions
class Command(ScrapyCommand):

View File

@ -11,6 +11,8 @@ from twisted.python import log as twisted_log
import scrapy
from scrapy.settings import overridden_settings, Settings
from scrapy.exceptions import ScrapyDeprecationWarning
from scrapy.utils.versions import scrapy_components_versions
logger = logging.getLogger(__name__)
@ -139,49 +141,6 @@ def _get_handler(settings):
return handler
def scrapy_components_versions():
import platform
import cssselect
import parsel
import lxml.etree
import twisted
import w3lib
lxml_version = ".".join(map(str, lxml.etree.LXML_VERSION))
libxml2_version = ".".join(map(str, lxml.etree.LIBXML_VERSION))
try:
w3lib_version = w3lib.__version__
except AttributeError:
w3lib_version = "<1.14.3"
return [
("Scrapy", scrapy.__version__),
("lxml", lxml_version),
("libxml2", libxml2_version),
("cssselect", cssselect.__version__),
("parsel", parsel.__version__),
("w3lib", w3lib_version),
("Twisted", twisted.version.short()),
("Python", sys.version.replace("\n", "- ")),
("pyOpenSSL", _get_openssl_version()),
("Platform", platform.platform()),
]
def _get_openssl_version():
try:
import OpenSSL
openssl = OpenSSL.SSL.SSLeay_version(OpenSSL.SSL.SSLEAY_VERSION)\
.decode('ascii', errors='replace')
# pyOpenSSL 0.12 does not expose openssl version
except AttributeError:
openssl = 'Unknown OpenSSL version'
return '{} ({})'.format(OpenSSL.version.__version__, openssl)
def log_scrapy_info(settings):
logger.info("Scrapy %(version)s started (bot: %(bot)s)",
{'version': scrapy.__version__, 'bot': settings['BOT_NAME']})

44
scrapy/utils/versions.py Normal file
View File

@ -0,0 +1,44 @@
import platform
import sys
import cssselect
import lxml.etree
import parsel
import twisted
import w3lib
import scrapy
def scrapy_components_versions():
lxml_version = ".".join(map(str, lxml.etree.LXML_VERSION))
libxml2_version = ".".join(map(str, lxml.etree.LIBXML_VERSION))
try:
w3lib_version = w3lib.__version__
except AttributeError:
w3lib_version = "<1.14.3"
return [
("Scrapy", scrapy.__version__),
("lxml", lxml_version),
("libxml2", libxml2_version),
("cssselect", cssselect.__version__),
("parsel", parsel.__version__),
("w3lib", w3lib_version),
("Twisted", twisted.version.short()),
("Python", sys.version.replace("\n", "- ")),
("pyOpenSSL", _get_openssl_version()),
("Platform", platform.platform()),
]
def _get_openssl_version():
try:
import OpenSSL
openssl = OpenSSL.SSL.SSLeay_version(OpenSSL.SSL.SSLEAY_VERSION)\
.decode('ascii', errors='replace')
# pyOpenSSL 0.12 does not expose openssl version
except AttributeError:
openssl = 'Unknown OpenSSL version'
return '{} ({})'.format(OpenSSL.version.__version__, openssl)