Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changes/unreleased/5186.VngJMeztfXKDXAhcqTxJjK.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
other = "PoC: Start centralizing `de_json`"
[[pull_requests]]
uid = "5186"
author_uids = ["harshil21"]
closes_threads = []
52 changes: 0 additions & 52 deletions src/telegram/_business.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,20 +266,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "BusinessConnection":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

# Get the local timezone from the bot if it has defaults
loc_tzinfo = extract_tzinfo_from_defaults(bot)

data["date"] = from_timestamp(data.get("date"), tzinfo=loc_tzinfo)
data["user"] = de_json_optional(data.get("user"), User, bot)
data["rights"] = de_json_optional(data.get("rights"), BusinessBotRights, bot)

return super().de_json(data=data, bot=bot)


class BusinessMessagesDeleted(TelegramObject):
"""
Expand Down Expand Up @@ -333,15 +319,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "BusinessMessagesDeleted":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["chat"] = de_json_optional(data.get("chat"), Chat, bot)

return super().de_json(data=data, bot=bot)


class BusinessIntro(TelegramObject):
"""
Expand Down Expand Up @@ -387,15 +364,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "BusinessIntro":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["sticker"] = de_json_optional(data.get("sticker"), Sticker, bot)

return super().de_json(data=data, bot=bot)


class BusinessLocation(TelegramObject):
"""
Expand Down Expand Up @@ -436,15 +404,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "BusinessLocation":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["location"] = de_json_optional(data.get("location"), Location, bot)

return super().de_json(data=data, bot=bot)


class BusinessOpeningHoursInterval(TelegramObject):
"""
Expand Down Expand Up @@ -678,14 +637,3 @@ def is_open(self, datetime: dtm.datetime) -> bool:
return True

return False

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "BusinessOpeningHours":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["opening_hours"] = de_list_optional(
data.get("opening_hours"), BusinessOpeningHoursInterval, bot
)

return super().de_json(data=data, bot=bot)
10 changes: 0 additions & 10 deletions src/telegram/_callbackquery.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,16 +153,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "CallbackQuery":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["from_user"] = de_json_optional(data.pop("from", None), User, bot)
data["message"] = de_json_optional(data.get("message"), Message, bot)

return super().de_json(data=data, bot=bot)

async def answer(
self,
text: str | None = None,
Expand Down
43 changes: 0 additions & 43 deletions src/telegram/_chatboost.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,18 +285,6 @@ def __init__(
self._id_attrs = (self.boost_id, self.add_date, self.expiration_date, self.source)
self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "ChatBoost":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["source"] = de_json_optional(data.get("source"), ChatBoostSource, bot)
loc_tzinfo = extract_tzinfo_from_defaults(bot)
data["add_date"] = from_timestamp(data.get("add_date"), tzinfo=loc_tzinfo)
data["expiration_date"] = from_timestamp(data.get("expiration_date"), tzinfo=loc_tzinfo)

return super().de_json(data=data, bot=bot)


class ChatBoostUpdated(TelegramObject):
"""This object represents a boost added to a chat or changed.
Expand Down Expand Up @@ -332,16 +320,6 @@ def __init__(
self._id_attrs = (self.chat.id, self.boost)
self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "ChatBoostUpdated":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["chat"] = de_json_optional(data.get("chat"), Chat, bot)
data["boost"] = de_json_optional(data.get("boost"), ChatBoost, bot)

return super().de_json(data=data, bot=bot)


class ChatBoostRemoved(TelegramObject):
"""
Expand Down Expand Up @@ -386,18 +364,6 @@ def __init__(
self._id_attrs = (self.chat, self.boost_id, self.remove_date, self.source)
self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "ChatBoostRemoved":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["chat"] = de_json_optional(data.get("chat"), Chat, bot)
data["source"] = de_json_optional(data.get("source"), ChatBoostSource, bot)
loc_tzinfo = extract_tzinfo_from_defaults(bot)
data["remove_date"] = from_timestamp(data.get("remove_date"), tzinfo=loc_tzinfo)

return super().de_json(data=data, bot=bot)


class UserChatBoosts(TelegramObject):
"""This object represents a list of boosts added to a chat by a user.
Expand Down Expand Up @@ -429,12 +395,3 @@ def __init__(

self._id_attrs = (self.boosts,)
self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "UserChatBoosts":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

data["boosts"] = de_list_optional(data.get("boosts"), ChatBoost, bot)

return super().de_json(data=data, bot=bot)
15 changes: 0 additions & 15 deletions src/telegram/_chatjoinrequest.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,21 +130,6 @@ def __init__(

self._freeze()

@classmethod
def de_json(cls, data: JSONDict, bot: "Bot | None" = None) -> "ChatJoinRequest":
"""See :meth:`telegram.TelegramObject.de_json`."""
data = cls._parse_data(data)

# Get the local timezone from the bot if it has defaults
loc_tzinfo = extract_tzinfo_from_defaults(bot)

data["chat"] = de_json_optional(data.get("chat"), Chat, bot)
data["from_user"] = de_json_optional(data.pop("from", None), User, bot)
data["date"] = from_timestamp(data.get("date", None), tzinfo=loc_tzinfo)
data["invite_link"] = de_json_optional(data.get("invite_link"), ChatInviteLink, bot)

return super().de_json(data=data, bot=bot)

async def approve(
self,
*,
Expand Down
Loading
Loading