|
1 | 1 | import platform
|
2 | 2 | import sys
|
3 | 3 |
|
| 4 | +import cryptography |
4 | 5 | import cssselect
|
5 | 6 | import lxml.etree
|
6 | 7 | import parsel
|
7 | 8 | import twisted
|
8 | 9 | import w3lib
|
9 | 10 |
|
10 | 11 | import scrapy
|
| 12 | +from scrapy.utils.ssl import get_openssl_version |
11 | 13 |
|
12 | 14 |
|
13 | 15 | def scrapy_components_versions():
|
14 | 16 | lxml_version = ".".join(map(str, lxml.etree.LXML_VERSION))
|
15 | 17 | libxml2_version = ".".join(map(str, lxml.etree.LIBXML_VERSION))
|
16 |
| - try: |
17 |
| - w3lib_version = w3lib.__version__ |
18 |
| - except AttributeError: |
19 |
| - w3lib_version = "<1.14.3" |
20 |
| - try: |
21 |
| - import cryptography |
22 |
| - cryptography_version = cryptography.__version__ |
23 |
| - except ImportError: |
24 |
| - cryptography_version = "unknown" |
25 | 18 |
|
26 | 19 | return [
|
27 | 20 | ("Scrapy", scrapy.__version__),
|
28 | 21 | ("lxml", lxml_version),
|
29 | 22 | ("libxml2", libxml2_version),
|
30 | 23 | ("cssselect", cssselect.__version__),
|
31 | 24 | ("parsel", parsel.__version__),
|
32 |
| - ("w3lib", w3lib_version), |
| 25 | + ("w3lib", w3lib.__version__), |
33 | 26 | ("Twisted", twisted.version.short()),
|
34 | 27 | ("Python", sys.version.replace("\n", "- ")),
|
35 |
| - ("pyOpenSSL", _get_openssl_version()), |
36 |
| - ("cryptography", cryptography_version), |
| 28 | + ("pyOpenSSL", get_openssl_version()), |
| 29 | + ("cryptography", cryptography.__version__), |
37 | 30 | ("Platform", platform.platform()),
|
38 | 31 | ]
|
39 |
| - |
40 |
| - |
41 |
| -def _get_openssl_version(): |
42 |
| - try: |
43 |
| - import OpenSSL |
44 |
| - openssl = OpenSSL.SSL.SSLeay_version(OpenSSL.SSL.SSLEAY_VERSION)\ |
45 |
| - .decode('ascii', errors='replace') |
46 |
| - # pyOpenSSL 0.12 does not expose openssl version |
47 |
| - except AttributeError: |
48 |
| - openssl = 'Unknown OpenSSL version' |
49 |
| - |
50 |
| - return '{} ({})'.format(OpenSSL.version.__version__, openssl) |
0 commit comments