mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-01-25 00:34:19 +03:00
Make Request class a generic container
This commit is contained in:
parent
8f89dbb5c2
commit
84e14c2ec4
|
@ -1,7 +1,10 @@
|
||||||
import struct
|
import struct
|
||||||
|
from typing import Generic, TypeVar
|
||||||
|
|
||||||
|
Return = TypeVar("Return")
|
||||||
|
|
||||||
|
|
||||||
class Request(bytes):
|
class Request(bytes, Generic[Return]):
|
||||||
__slots__ = ()
|
__slots__ = ()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
|
from ..tl_parser.tl.parameter_type import NormalParameter
|
||||||
from .fakefs import FakeFs, SourceWriter
|
from .fakefs import FakeFs, SourceWriter
|
||||||
from .loader import ParsedTl
|
from .loader import ParsedTl
|
||||||
from .serde.common import (
|
from .serde.common import (
|
||||||
|
@ -139,8 +140,6 @@ def generate(fs: FakeFs, tl: ParsedTl) -> None:
|
||||||
writer.write(f" pass")
|
writer.write(f" pass")
|
||||||
|
|
||||||
for functiondef in tl.functiondefs:
|
for functiondef in tl.functiondefs:
|
||||||
required_params = [p for p in functiondef.params if not is_computed(p.ty)]
|
|
||||||
|
|
||||||
if len(functiondef.namespace) >= 2:
|
if len(functiondef.namespace) >= 2:
|
||||||
raise NotImplementedError("nested function-namespaces are not supported")
|
raise NotImplementedError("nested function-namespaces are not supported")
|
||||||
elif len(functiondef.namespace) == 1:
|
elif len(functiondef.namespace) == 1:
|
||||||
|
@ -161,10 +160,12 @@ def generate(fs: FakeFs, tl: ParsedTl) -> None:
|
||||||
writer.write(f"from ..core import Request, serialize_bytes_to")
|
writer.write(f"from ..core import Request, serialize_bytes_to")
|
||||||
|
|
||||||
# def name(params, ...)
|
# def name(params, ...)
|
||||||
|
required_params = [p for p in functiondef.params if not is_computed(p.ty)]
|
||||||
params = "".join(f", {p.name}: {param_type_fmt(p.ty)}" for p in required_params)
|
params = "".join(f", {p.name}: {param_type_fmt(p.ty)}" for p in required_params)
|
||||||
star = "*" if params else ""
|
star = "*" if params else ""
|
||||||
|
return_ty = param_type_fmt(NormalParameter(ty=functiondef.ty, flag=None))
|
||||||
writer.write(
|
writer.write(
|
||||||
f"def {to_method_name(functiondef.name)}({star}{params}) -> Request:"
|
f"def {to_method_name(functiondef.name)}({star}{params}) -> Request[{return_ty}]:"
|
||||||
)
|
)
|
||||||
writer.indent(2)
|
writer.indent(2)
|
||||||
generate_function(writer, functiondef)
|
generate_function(writer, functiondef)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user