mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Merge branch 'dev-2.x'
# Conflicts: # aiogram/__init__.py
This commit is contained in:
commit
6831962e3c
6 changed files with 29 additions and 15 deletions
|
|
@ -38,5 +38,5 @@ __all__ = [
|
|||
'utils'
|
||||
]
|
||||
|
||||
__version__ = '2.6'
|
||||
__version__ = '2.6.1'
|
||||
__api_version__ = '4.6'
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ from .passport_element_error import PassportElementError, PassportElementErrorDa
|
|||
PassportElementErrorSelfie
|
||||
from .passport_file import PassportFile
|
||||
from .photo_size import PhotoSize
|
||||
from .poll import PollOption, Poll, PollAnswer
|
||||
from .poll import PollOption, Poll, PollAnswer, PollType
|
||||
from .pre_checkout_query import PreCheckoutQuery
|
||||
from .reply_keyboard import KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove, KeyboardButtonPollType
|
||||
from .response_parameters import ResponseParameters
|
||||
|
|
@ -150,6 +150,7 @@ __all__ = (
|
|||
'Poll',
|
||||
'PollAnswer',
|
||||
'PollOption',
|
||||
'PollType',
|
||||
'PreCheckoutQuery',
|
||||
'ReplyKeyboardMarkup',
|
||||
'ReplyKeyboardRemove',
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
|
|||
return getattr(self, ALIASES_ATTR_NAME, {})
|
||||
|
||||
@property
|
||||
def values(self) -> typing.Tuple[str]:
|
||||
def values(self) -> typing.Dict[str, typing.Any]:
|
||||
"""
|
||||
Get values
|
||||
|
||||
|
|
@ -161,9 +161,10 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
|
|||
|
||||
:return:
|
||||
"""
|
||||
self.clean()
|
||||
result = {}
|
||||
for name, value in self.values.items():
|
||||
if value is None:
|
||||
continue
|
||||
if name in self.props:
|
||||
value = self.props[name].export(self)
|
||||
if isinstance(value, TelegramObject):
|
||||
|
|
@ -191,7 +192,7 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
|
|||
return json.dumps(self.to_python())
|
||||
|
||||
@classmethod
|
||||
def create(cls: Type[T], *args: typing.Any, **kwargs: typing.Any) -> T:
|
||||
def create(cls: typing.Type[T], *args: typing.Any, **kwargs: typing.Any) -> T:
|
||||
raise NotImplemented
|
||||
|
||||
def __str__(self) -> str:
|
||||
|
|
@ -225,15 +226,15 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
|
|||
return self.props[key].set_value(self, value, self.conf.get('parent', None))
|
||||
raise KeyError(key)
|
||||
|
||||
def __contains__(self, item: typing.Dict[str, typing.Any]) -> bool:
|
||||
def __contains__(self, item: str) -> bool:
|
||||
"""
|
||||
Check key contains in that object
|
||||
|
||||
:param item:
|
||||
:return:
|
||||
"""
|
||||
self.clean()
|
||||
return item in self.values
|
||||
# self.clean()
|
||||
return bool(self.values.get(item, None))
|
||||
|
||||
def __iter__(self) -> typing.Iterator[str]:
|
||||
"""
|
||||
|
|
@ -263,7 +264,7 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
|
|||
yield value
|
||||
|
||||
def __hash__(self) -> int:
|
||||
def _hash(obj)-> int:
|
||||
def _hash(obj) -> int:
|
||||
buf: int = 0
|
||||
if isinstance(obj, list):
|
||||
for item in obj:
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ class MediaGroup(base.TelegramObject):
|
|||
|
||||
:return:
|
||||
"""
|
||||
self.clean()
|
||||
# self.clean()
|
||||
result = []
|
||||
for obj in self.media:
|
||||
if isinstance(obj, base.TelegramObject):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import typing
|
||||
|
||||
from . import base
|
||||
from . import fields
|
||||
from ..utils import helper
|
||||
from . import base, fields
|
||||
from .user import User
|
||||
|
||||
|
||||
|
|
@ -11,6 +11,7 @@ class PollOption(base.TelegramObject):
|
|||
|
||||
https://core.telegram.org/bots/api#polloption
|
||||
"""
|
||||
|
||||
text: base.String = fields.Field()
|
||||
voter_count: base.Integer = fields.Field()
|
||||
|
||||
|
|
@ -21,6 +22,7 @@ class PollAnswer(base.TelegramObject):
|
|||
|
||||
https://core.telegram.org/bots/api#pollanswer
|
||||
"""
|
||||
|
||||
poll_id: base.String = fields.Field()
|
||||
user: User = fields.Field(base=User)
|
||||
option_ids: typing.List[base.Integer] = fields.ListField()
|
||||
|
|
@ -32,6 +34,7 @@ class Poll(base.TelegramObject):
|
|||
|
||||
https://core.telegram.org/bots/api#poll
|
||||
"""
|
||||
|
||||
id: base.String = fields.Field()
|
||||
question: base.String = fields.Field()
|
||||
options: typing.List[PollOption] = fields.ListField(base=PollOption)
|
||||
|
|
@ -41,3 +44,10 @@ class Poll(base.TelegramObject):
|
|||
type: base.String = fields.Field()
|
||||
allows_multiple_answers: base.Boolean = fields.Field()
|
||||
correct_option_id: base.Integer = fields.Field()
|
||||
|
||||
|
||||
class PollType(helper.Helper):
|
||||
mode = helper.HelperMode.snake_case
|
||||
|
||||
REGULAR = helper.Item()
|
||||
QUIZ = helper.Item()
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class KeyboardButtonPollType(base.TelegramObject):
|
|||
"""
|
||||
type: base.String = fields.Field()
|
||||
|
||||
def __init__(self, type: base.String):
|
||||
def __init__(self, type: typing.Optional[base.String] = None):
|
||||
super(KeyboardButtonPollType, self).__init__(type=type)
|
||||
|
||||
|
||||
|
|
@ -110,10 +110,12 @@ class KeyboardButton(base.TelegramObject):
|
|||
|
||||
def __init__(self, text: base.String,
|
||||
request_contact: base.Boolean = None,
|
||||
request_location: base.Boolean = None):
|
||||
request_location: base.Boolean = None,
|
||||
request_poll: KeyboardButtonPollType = None):
|
||||
super(KeyboardButton, self).__init__(text=text,
|
||||
request_contact=request_contact,
|
||||
request_location=request_location)
|
||||
request_location=request_location,
|
||||
request_poll=request_poll)
|
||||
|
||||
|
||||
class ReplyKeyboardRemove(base.TelegramObject):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue