mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-31 22:35:36 +00:00
Deep rewrite: preparing for v1.0
- Pyrogram core is now fully asynchronous - Ditched Python 3.5, welcome 3.6 as minimum version. - Moved all types to pyrogram.types - Turned the Filters class into a module (filters) - Moved all filters to pyrogram.filters - Moved all handlers to pyrogram.handlers - Moved all emoji to pyrogram.emoji - Renamed pyrogram.api to pyrogram.raw - Clock is now synced with server's time - Telegram schema updated to Layer 117 - Greatly improved the TL compiler (proper type-constructor hierarchy) - Added "do not edit" warning in generated files - Crypto parts are executed in a thread pool to avoid blocking the event loop - idle() is now a separate function (it doesn't deal with Client instances) - Async storage, async filters and async progress callback (optional, can be sync too) - Added getpass back, for hidden password inputs
This commit is contained in:
35
compiler/api/template/combinator.txt
Normal file
35
compiler/api/template/combinator.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
{notice}
|
||||
|
||||
from io import BytesIO
|
||||
|
||||
from pyrogram.raw.core.primitives import Int, Long, Int128, Int256, Bool, Bytes, String, Double, Vector
|
||||
from pyrogram.raw.core import TLObject
|
||||
from pyrogram import raw
|
||||
from typing import List, Union, Any
|
||||
|
||||
{warning}
|
||||
|
||||
|
||||
class {name}(TLObject): # type: ignore
|
||||
"""{docstring}
|
||||
"""
|
||||
|
||||
__slots__: List[str] = [{slots}]
|
||||
|
||||
ID = {id}
|
||||
QUALNAME = "{qualname}"
|
||||
|
||||
def __init__(self{arguments}) -> None:
|
||||
{fields}
|
||||
|
||||
@staticmethod
|
||||
def read(data: BytesIO, *args: Any) -> "{name}":
|
||||
{read_types}
|
||||
return {name}({return_arguments})
|
||||
|
||||
def write(self) -> bytes:
|
||||
data = BytesIO()
|
||||
data.write(Int(self.ID, False))
|
||||
|
||||
{write_types}
|
||||
return data.getvalue()
|
@@ -1,30 +0,0 @@
|
||||
{notice}
|
||||
|
||||
from io import BytesIO
|
||||
|
||||
from pyrogram.api.core import *
|
||||
|
||||
|
||||
class {class_name}(TLObject):
|
||||
"""{docstring_args}
|
||||
"""
|
||||
|
||||
__slots__ = [{slots}]
|
||||
|
||||
ID = {object_id}
|
||||
QUALNAME = "{qualname}"
|
||||
|
||||
def __init__(self{arguments}):
|
||||
{fields}
|
||||
|
||||
@staticmethod
|
||||
def read(b: BytesIO, *args) -> "{class_name}":
|
||||
{read_types}
|
||||
return {class_name}({return_arguments})
|
||||
|
||||
def write(self) -> bytes:
|
||||
b = BytesIO()
|
||||
b.write(Int(self.ID, False))
|
||||
|
||||
{write_types}
|
||||
return b.getvalue()
|
@@ -1,12 +0,0 @@
|
||||
{notice}
|
||||
|
||||
from pyrogram.api.core import Object
|
||||
|
||||
|
||||
class {class_name}(Object):
|
||||
"""{docstring_args}
|
||||
"""
|
||||
ID = {object_id}
|
||||
|
||||
def __init__(self{arguments}):
|
||||
{fields}
|
17
compiler/api/template/type.txt
Normal file
17
compiler/api/template/type.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
{notice}
|
||||
|
||||
{warning}
|
||||
|
||||
from typing import Union
|
||||
from pyrogram import raw
|
||||
from pyrogram.raw.core import TLObject
|
||||
|
||||
{name} = Union[{types}]
|
||||
|
||||
|
||||
# noinspection PyRedeclaration
|
||||
class {name}(TLObject): # type: ignore
|
||||
"""{docstring}
|
||||
"""
|
||||
|
||||
QUALNAME = "pyrogram.raw.base.{qualname}"
|
Reference in New Issue
Block a user