From da5c171346a84e509031333da5b8d7cc533c7dbb Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sat, 15 Dec 2018 12:38:56 +0100 Subject: [PATCH] Skip core types when parsing .tl files This avoids the need to comment then every time the file changes. --- telethon_generator/parsers/tlobject/__init__.py | 8 -------- telethon_generator/parsers/tlobject/parser.py | 14 +++++++++++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/telethon_generator/parsers/tlobject/__init__.py b/telethon_generator/parsers/tlobject/__init__.py index 39f79f02..e1f432b7 100644 --- a/telethon_generator/parsers/tlobject/__init__.py +++ b/telethon_generator/parsers/tlobject/__init__.py @@ -1,11 +1,3 @@ from .tlarg import TLArg from .tlobject import TLObject from .parser import parse_tl, find_layer - - -CORE_TYPES = ( - 0xbc799737, # boolFalse#bc799737 = Bool; - 0x997275b5, # boolTrue#997275b5 = Bool; - 0x3fedd339, # true#3fedd339 = True; - 0x1cb5c415, # vector#1cb5c415 {t:Type} # [ t ] = Vector t; -) diff --git a/telethon_generator/parsers/tlobject/parser.py b/telethon_generator/parsers/tlobject/parser.py index 366c105f..db33c058 100644 --- a/telethon_generator/parsers/tlobject/parser.py +++ b/telethon_generator/parsers/tlobject/parser.py @@ -6,6 +6,15 @@ from .tlobject import TLObject from ..methods import Usability +CORE_TYPES = { + 0xbc799737, # boolFalse#bc799737 = Bool; + 0x997275b5, # boolTrue#997275b5 = Bool; + 0x3fedd339, # true#3fedd339 = True; + 0xc4b9f9bb, # error#c4b9f9bb code:int text:string = Error; + 0x56730bcc # null#56730bcc = Null; +} + + def _from_line(line, is_function, method_info, layer): match = re.match( r'^([\w.]+)' # 'name' @@ -46,7 +55,7 @@ def _from_line(line, is_function, method_info, layer): ) -def parse_tl(file_path, layer, methods=None): +def parse_tl(file_path, layer, methods=None, ignored_ids=CORE_TYPES): """ This method yields TLObjects from a given .tl file. @@ -78,6 +87,9 @@ def parse_tl(file_path, layer, methods=None): result = _from_line( line, is_function, method_info, layer=layer) + if result.id in ignored_ids: + continue + obj_all.append(result) if not result.is_function: obj_by_name[result.fullname] = result