Skip to content

Commit 5a6fda8

Browse files
authored
(fix): mistake in is_iterable condition
Follow-Up ddad27a
1 parent bdda1f2 commit 5a6fda8

File tree

6 files changed

+24
-23
lines changed

6 files changed

+24
-23
lines changed

pyrogram/methods/chat_topics/get_forum_topic.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import logging
20-
from collections.abc import Iterable
21-
from typing import Union
20+
from typing import Union, Iterable
2221

2322
import pyrogram
24-
from pyrogram import raw
25-
from pyrogram import types
23+
from pyrogram import raw, types, utils
2624

2725
log = logging.getLogger(__name__)
2826

@@ -61,7 +59,7 @@ async def get_forum_topic(
6159
ValueError: In case of invalid arguments.
6260
"""
6361

64-
is_iterable = isinstance(message_thread_ids, Iterable)
62+
is_iterable = utils.is_list_like(message_thread_ids)
6563
ids = list(message_thread_ids) if is_iterable else [message_thread_ids]
6664

6765
r = await self.invoke(

pyrogram/methods/messages/forward_messages.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,11 @@
1616
# You should have received a copy of the GNU Lesser General Public License
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

19-
from collections.abc import Iterable
2019
from datetime import datetime
21-
from typing import Union
20+
from typing import Union, Iterable
2221

2322
import pyrogram
24-
from pyrogram import raw, utils
25-
from pyrogram import types
23+
from pyrogram import raw, types, utils
2624

2725

2826
class ForwardMessages:
@@ -105,7 +103,7 @@ async def forward_messages(
105103
await app.forward_messages(to_chat, from_chat, [1, 2, 3])
106104
"""
107105

108-
is_iterable = isinstance(message_ids, Iterable)
106+
is_iterable = utils.is_list_like(message_ids)
109107
message_ids = list(message_ids) if is_iterable else [message_ids]
110108

111109
r = await self.invoke(

pyrogram/methods/messages/get_messages.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import logging
20-
from collections.abc import Iterable
21-
from typing import Optional, Union
20+
from typing import Iterable, Optional, Union
2221

2322
import pyrogram
2423
from pyrogram import raw, types, utils
@@ -93,7 +92,7 @@ async def get_messages(
9392
"""
9493

9594
if message_ids:
96-
is_iterable = isinstance(message_ids, Iterable)
95+
is_iterable = utils.is_list_like(message_ids)
9796
ids = list(message_ids) if is_iterable else [message_ids]
9897

9998
if replies < 0:
@@ -331,7 +330,7 @@ async def get_replied_message(
331330
"""
332331

333332
peer = await self.resolve_peer(chat_id)
334-
is_iterable = isinstance(message_ids, Iterable)
333+
is_iterable = utils.is_list_like(message_ids)
335334
ids = list(message_ids) if is_iterable else [message_ids]
336335
ids = [raw.types.InputMessageReplyTo(id=i) for i in ids]
337336
if isinstance(peer, raw.types.InputPeerChannel):

pyrogram/methods/stories/get_stories.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@
1616
# You should have received a copy of the GNU Lesser General Public License
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

19-
from collections.abc import Iterable
20-
from typing import Union
19+
from typing import Union, Iterable
2120

2221
import pyrogram
23-
from pyrogram import raw, types
22+
from pyrogram import raw, types, utils
2423

2524

2625
class GetStories:
@@ -58,7 +57,7 @@ async def get_stories(
5857
print(story)
5958
"""
6059

61-
is_iterable = isinstance(story_ids, Iterable)
60+
is_iterable = utils.is_list_like(story_ids)
6261
ids = list(story_ids) if is_iterable else [story_ids]
6362

6463
peer = await self.resolve_peer(story_sender_chat_id)

pyrogram/methods/users/get_users.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import asyncio
20-
from collections.abc import Iterable
21-
from typing import Union
20+
from typing import Union, Iterable
2221

2322
import pyrogram
24-
from pyrogram import raw
25-
from pyrogram import types
23+
from pyrogram import raw, types, utils
2624

2725

2826
class GetUsers:
@@ -54,7 +52,7 @@ async def get_users(
5452
await app.get_users([user_id1, user_id2, user_id3])
5553
"""
5654

57-
is_iterable = isinstance(user_ids, Iterable)
55+
is_iterable = utils.is_list_like(user_ids)
5856
user_ids = list(user_ids) if is_iterable else [user_ids]
5957
user_ids = await asyncio.gather(*[self.resolve_peer(i) for i in user_ids])
6058

pyrogram/utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,3 +648,12 @@ def from_inline_bytes(data: bytes, file_name: str = None) -> BytesIO:
648648
b.write(data)
649649
b.name = file_name if file_name else f"photo_{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.jpg"
650650
return b
651+
652+
653+
def is_list_like(obj):
654+
"""
655+
Returns `True` if the given object looks like a list.
656+
657+
Ported from https://github.com/LonamiWebs/Telethon/blob/1cb5ff1dd54ecfad41711fc5a4ecf36d2ad8eaf6/telethon/utils.py#L902
658+
"""
659+
return isinstance(obj, (list, tuple, set, dict, range))

0 commit comments

Comments
 (0)