From 921e2eae54df67308c18734d884784ef3fe4204c Mon Sep 17 00:00:00 2001 From: Goblenus Date: Sun, 11 Jun 2017 23:19:04 +0300 Subject: [PATCH] (Add) Add to_dict() method --- telethon_generator/tl_generator.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/telethon_generator/tl_generator.py b/telethon_generator/tl_generator.py index a9e457f2..5932e28d 100755 --- a/telethon_generator/tl_generator.py +++ b/telethon_generator/tl_generator.py @@ -212,6 +212,31 @@ class TLGenerator: for arg in args: builder.writeln('self.{0} = {0}'.format(arg.name)) builder.end_block() + + # Write the to_dict(self) method + builder.writeln('def to_dict(self):') + if args: + builder.writeln('return {') + + base_types = ["string", "bytes", "int", "long", "int128", "int256", "double", "Bool", "true", + "date"] + + for arg in args: + if arg.is_vector: + builder.writeln("\'{}\': [_{} for _ in self.{}] if self.{} is not None else []," + .format(arg.name, ".to_dict() if _ is not None else None" + if arg.type not in base_types else "", + arg.name, arg.name)) + else: + builder.writeln("\'{}\': self.{}{}, " + .format(arg.name, arg.name, + ".to_dict() if self.{} is not None else None".format(arg.name) + if arg.type not in base_types else "")) + builder.write("}") + else: + builder.writeln('return {}') + builder.writeln() + builder.end_block() # Write the on_send(self, writer) function builder.writeln('def on_send(self, writer):')