From 3e274583236ab58858025f9e4b2bc7bf060ef52d Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 27 Jun 2022 13:22:33 +0100 Subject: [PATCH] Improve `xmlrpc.client` callbacks (#8188) --- stdlib/xmlrpc/client.pyi | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/stdlib/xmlrpc/client.pyi b/stdlib/xmlrpc/client.pyi index d4e82d5e4..7c0ba5c62 100644 --- a/stdlib/xmlrpc/client.pyi +++ b/stdlib/xmlrpc/client.pyi @@ -97,32 +97,31 @@ class ExpatParser: # undocumented def feed(self, data: str | bytes) -> None: ... def close(self) -> None: ... +_WriteCallback: TypeAlias = Callable[[str], object] + class Marshaller: - - dispatch: dict[ - type[Any], Callable[[Marshaller, Any, Callable[[str], Any]], None] - ] # TODO: Replace 'Any' with some kind of binding - + # TODO: Replace 'Any' with some kind of binding + dispatch: dict[type[Any], Callable[[Marshaller, Any, _WriteCallback], None]] memo: dict[Any, None] data: None encoding: str | None allow_none: bool def __init__(self, encoding: str | None = ..., allow_none: bool = ...) -> None: ... def dumps(self, values: Fault | Iterable[_Marshallable]) -> str: ... - def __dump(self, value: _Marshallable, write: Callable[[str], Any]) -> None: ... # undocumented - def dump_nil(self, value: None, write: Callable[[str], Any]) -> None: ... - def dump_bool(self, value: bool, write: Callable[[str], Any]) -> None: ... - def dump_long(self, value: int, write: Callable[[str], Any]) -> None: ... - def dump_int(self, value: int, write: Callable[[str], Any]) -> None: ... - def dump_double(self, value: float, write: Callable[[str], Any]) -> None: ... - def dump_unicode(self, value: str, write: Callable[[str], Any], escape: Callable[[str], str] = ...) -> None: ... - def dump_bytes(self, value: bytes, write: Callable[[str], Any]) -> None: ... - def dump_array(self, value: Iterable[_Marshallable], write: Callable[[str], Any]) -> None: ... + def __dump(self, value: _Marshallable, write: _WriteCallback) -> None: ... # undocumented + def dump_nil(self, value: None, write: _WriteCallback) -> None: ... + def dump_bool(self, value: bool, write: _WriteCallback) -> None: ... + def dump_long(self, value: int, write: _WriteCallback) -> None: ... + def dump_int(self, value: int, write: _WriteCallback) -> None: ... + def dump_double(self, value: float, write: _WriteCallback) -> None: ... + def dump_unicode(self, value: str, write: _WriteCallback, escape: Callable[[str], str] = ...) -> None: ... + def dump_bytes(self, value: bytes, write: _WriteCallback) -> None: ... + def dump_array(self, value: Iterable[_Marshallable], write: _WriteCallback) -> None: ... def dump_struct( - self, value: Mapping[str, _Marshallable], write: Callable[[str], Any], escape: Callable[[str], str] = ... + self, value: Mapping[str, _Marshallable], write: _WriteCallback, escape: Callable[[str], str] = ... ) -> None: ... - def dump_datetime(self, value: _XMLDate, write: Callable[[str], Any]) -> None: ... - def dump_instance(self, value: object, write: Callable[[str], Any]) -> None: ... + def dump_datetime(self, value: _XMLDate, write: _WriteCallback) -> None: ... + def dump_instance(self, value: object, write: _WriteCallback) -> None: ... class Unmarshaller: