fix(types): P3 — annotate transport in all template protocol servers; 0 errors in templates/
- asyncio.Protocol (TCP): _transport: asyncio.Transport | None = None + cast() in connection_made; assert guards in every method that directly accesses the field. Files: pop3, smtp, mqtt, postgres, mssql, mongodb, imap, ldap, redis, mysql, sip, vnc. - asyncio.DatagramProtocol (UDP): _transport: asyncio.DatagramTransport | None = None. Files: snmp, tftp, SIPUDPProtocol. - RDP: assert new_transport is not None after start_tls() to narrow Transport | None. - FTP (Twisted): assert self.transport is not None + targeted type: ignore for imprecise Twisted stubs (misc/override/arg-type/attr-defined), IReactorTCP cast for listenTCP. - conpot: proc.stdout is None guard before iteration. - Bonus fixes surfaced by annotation: - smtp: get_payload(decode=True) bytes narrowing (arg-type on sha256) - postgres: rename shadowed `msg` param to `err_msg` in _handle_startup - mongodb: base64.binascii.Error → import binascii; binascii.Error - imap: result: list[int] = [] (var-annotated)
This commit is contained in:
@@ -331,6 +331,7 @@ async def _upgrade_to_tls_and_capture(
|
||||
# into a StreamReader/StreamWriter pair the rest of the handler can use.
|
||||
new_reader = asyncio.StreamReader(loop=loop)
|
||||
new_protocol = asyncio.StreamReaderProtocol(new_reader, loop=loop)
|
||||
assert new_transport is not None
|
||||
new_transport.set_protocol(new_protocol)
|
||||
new_protocol.connection_made(new_transport)
|
||||
new_writer = asyncio.StreamWriter(new_transport, new_protocol, new_reader, loop)
|
||||
|
||||
Reference in New Issue
Block a user