diff --git a/generator/src/telethon_generator/_impl/codegen/__init__.py b/generator/src/telethon_generator/_impl/codegen/__init__.py index 2d1540b9..60a1c5a6 100644 --- a/generator/src/telethon_generator/_impl/codegen/__init__.py +++ b/generator/src/telethon_generator/_impl/codegen/__init__.py @@ -1,5 +1,4 @@ from .fakefs import FakeFs, SourceWriter from .generator import generate -from .loader import ParsedTl, load_tl_file -__all__ = ["FakeFs", "SourceWriter", "generate", "ParsedTl", "load_tl_file"] +__all__ = ["FakeFs", "SourceWriter", "generate"] diff --git a/generator/src/telethon_generator/_impl/codegen/generator.py b/generator/src/telethon_generator/_impl/codegen/generator.py index 938fc43e..d06146b3 100644 --- a/generator/src/telethon_generator/_impl/codegen/generator.py +++ b/generator/src/telethon_generator/_impl/codegen/generator.py @@ -1,9 +1,8 @@ from pathlib import Path from typing import Set -from ..tl_parser import NormalParameter +from ..tl_parser import NormalParameter, ParsedTl from .fakefs import FakeFs, SourceWriter -from .loader import ParsedTl from .serde.common import ( inner_type_fmt, is_computed, diff --git a/generator/src/telethon_generator/_impl/tl_parser/__init__.py b/generator/src/telethon_generator/_impl/tl_parser/__init__.py index a43149de..4a8d71e8 100644 --- a/generator/src/telethon_generator/_impl/tl_parser/__init__.py +++ b/generator/src/telethon_generator/_impl/tl_parser/__init__.py @@ -1,3 +1,4 @@ +from .loader import ParsedTl, load_tl_file from .tl import ( BaseParameter, Definition, @@ -23,4 +24,6 @@ __all__ = [ "FlagsParameter", "NormalParameter", "Type", + "ParsedTl", + "load_tl_file", ] diff --git a/generator/src/telethon_generator/_impl/codegen/loader.py b/generator/src/telethon_generator/_impl/tl_parser/loader.py similarity index 79% rename from generator/src/telethon_generator/_impl/codegen/loader.py rename to generator/src/telethon_generator/_impl/tl_parser/loader.py index 7355a200..5cedb824 100644 --- a/generator/src/telethon_generator/_impl/codegen/loader.py +++ b/generator/src/telethon_generator/_impl/tl_parser/loader.py @@ -1,8 +1,10 @@ import re from dataclasses import dataclass -from typing import List, Optional +from pathlib import Path +from typing import List, Optional, Union -from ..tl_parser import Definition, FunctionDef, TypeDef, parse_tl_file +from .tl import Definition +from .tl_iterator import FunctionDef, TypeDef, iterate @dataclass @@ -12,7 +14,7 @@ class ParsedTl: functiondefs: List[Definition] -def load_tl_file(path: str) -> ParsedTl: +def load_tl_file(path: Union[str, Path]) -> ParsedTl: typedefs, functiondefs = [], [] with open(path, "r", encoding="utf-8") as fd: contents = fd.read() @@ -22,7 +24,7 @@ def load_tl_file(path: str) -> ParsedTl: else: layer = None - for definition in parse_tl_file(contents): + for definition in iterate(contents): if isinstance(definition, Exception): # generic types (such as vector) is known to not be implemented if definition.args[0] != "not implemented": diff --git a/generator/src/telethon_generator/codegen/__init__.py b/generator/src/telethon_generator/codegen/__init__.py index b90b5b06..dfe700aa 100644 --- a/generator/src/telethon_generator/codegen/__init__.py +++ b/generator/src/telethon_generator/codegen/__init__.py @@ -1,3 +1,3 @@ -from .._impl.codegen import FakeFs, ParsedTl, generate +from .._impl.codegen import FakeFs, generate -__all__ = ["FakeFs", "ParsedTl", "generate"] +__all__ = ["FakeFs", "generate"] diff --git a/generator/src/telethon_generator/codegen/__main__.py b/generator/src/telethon_generator/codegen/__main__.py index 571694a7..1972087b 100644 --- a/generator/src/telethon_generator/codegen/__main__.py +++ b/generator/src/telethon_generator/codegen/__main__.py @@ -1,7 +1,8 @@ import sys from pathlib import Path -from .._impl.codegen import FakeFs, generate, load_tl_file +from .._impl.codegen import FakeFs, generate +from .._impl.tl_parser import load_tl_file HELP = f""" USAGE: diff --git a/generator/src/telethon_generator/tl_parser/__init__.py b/generator/src/telethon_generator/tl_parser/__init__.py index 369d096c..3816164c 100644 --- a/generator/src/telethon_generator/tl_parser/__init__.py +++ b/generator/src/telethon_generator/tl_parser/__init__.py @@ -6,9 +6,11 @@ from .._impl.tl_parser import ( FunctionDef, NormalParameter, Parameter, + ParsedTl, Type, TypeDef, TypeDefNotImplemented, + load_tl_file, parse_tl_file, ) @@ -16,6 +18,7 @@ __all__ = [ "Definition", "Flag", "Parameter", + "ParsedTl", "TypeDefNotImplemented", "BaseParameter", "FlagsParameter", @@ -23,5 +26,6 @@ __all__ = [ "Type", "FunctionDef", "TypeDef", + "load_tl_file", "parse_tl_file", ] diff --git a/generator/tests/generator_test.py b/generator/tests/generator_test.py index 680244ac..1835cf18 100644 --- a/generator/tests/generator_test.py +++ b/generator/tests/generator_test.py @@ -1,7 +1,7 @@ from typing import List, Optional -from telethon_generator.codegen import FakeFs, ParsedTl, generate -from telethon_generator.tl_parser import Definition, parse_tl_file +from telethon_generator.codegen import FakeFs, generate +from telethon_generator.tl_parser import Definition, ParsedTl, parse_tl_file def get_definitions(contents: str) -> List[Definition]: