Small typing improvements in scrapy/core/downloader/contextfactory.py.

This commit is contained in:
Andrey Rakhmatullin 2024-05-04 17:07:19 +05:00
parent 563ecbe966
commit c4d2748ff5
4 changed files with 8 additions and 5 deletions

View File

@ -21,6 +21,7 @@ from scrapy.core.downloader.tls import (
ScrapyClientTLSOptions,
openssl_methods,
)
from scrapy.crawler import Crawler
from scrapy.settings import BaseSettings
from scrapy.utils.misc import build_from_crawler, load_object
@ -102,7 +103,7 @@ class ScrapyClientContextFactory(BrowserLikePolicyForHTTPS):
# kept for old-style HTTP/1.0 downloader context twisted calls,
# e.g. connectSSL()
def getContext(self, hostname: Any = None, port: Any = None) -> SSL.Context:
ctx = self.getCertificateOptions().getContext()
ctx: SSL.Context = self.getCertificateOptions().getContext()
ctx.set_options(0x4) # OP_LEGACY_SERVER_CONNECT
return ctx
@ -165,7 +166,9 @@ class AcceptableProtocolsContextFactory:
return options
def load_context_factory_from_settings(settings, crawler):
def load_context_factory_from_settings(
settings: BaseSettings, crawler: Crawler
) -> IPolicyForHTTPS:
ssl_method = openssl_methods[settings.get("DOWNLOADER_CLIENT_TLS_METHOD")]
context_factory_cls = load_object(settings["DOWNLOADER_CLIENTCONTEXTFACTORY"])
# try method-aware context factory

View File

@ -16,7 +16,7 @@ if TYPE_CHECKING:
class HTTP10DownloadHandler:
lazy = False
def __init__(self, settings, crawler=None):
def __init__(self, settings, crawler):
self.HTTPClientFactory = load_object(settings["DOWNLOADER_HTTPCLIENTFACTORY"])
self.ClientContextFactory = load_object(
settings["DOWNLOADER_CLIENTCONTEXTFACTORY"]

View File

@ -46,7 +46,7 @@ logger = logging.getLogger(__name__)
class HTTP11DownloadHandler:
lazy = False
def __init__(self, settings, crawler=None):
def __init__(self, settings, crawler):
self._crawler = crawler
from twisted.internet import reactor

View File

@ -24,7 +24,7 @@ if TYPE_CHECKING:
class H2DownloadHandler:
def __init__(self, settings: Settings, crawler: Optional[Crawler] = None):
def __init__(self, settings: Settings, crawler: Crawler):
self._crawler = crawler
from twisted.internet import reactor