aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStocker <[email protected]>2021-08-18 01:17:20 -0400
committerGitHub <[email protected]>2021-08-18 01:17:20 -0400
commite79a6489873be33e2e4e5a4899ede42f4f130fe3 (patch)
treebdedffbdf7d169ecbd7a7e580a6b34a8154581a7
parentflag_value should not be a generic class (diff)
downloaddiscord.py-e79a6489873be33e2e4e5a4899ede42f4f130fe3.tar.xz
discord.py-e79a6489873be33e2e4e5a4899ede42f4f130fe3.zip
Add missing typehints to template.py
-rw-r--r--discord/template.py33
1 files changed, 18 insertions, 15 deletions
diff --git a/discord/template.py b/discord/template.py
index 12429c71..c699e5d5 100644
--- a/discord/template.py
+++ b/discord/template.py
@@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE.
from __future__ import annotations
-from typing import Any, Optional, TYPE_CHECKING, overload
+from typing import Any, Optional, TYPE_CHECKING
from .utils import parse_time, _get_as_snowflake, _bytes_to_base64_data, MISSING
from .enums import VoiceRegion
from .guild import Guild
@@ -34,7 +34,10 @@ __all__ = (
)
if TYPE_CHECKING:
+ import datetime
from .types.template import Template as TemplatePayload
+ from .state import ConnectionState
+ from .user import User
class _FriendlyHttpAttributeErrorHelper:
@@ -77,7 +80,7 @@ class _PartialTemplateState:
def _get_guild(self, id):
return self.__state._get_guild(id)
- async def query_members(self, **kwargs):
+ async def query_members(self, **kwargs: Any):
return []
def __getattr__(self, attr):
@@ -127,20 +130,20 @@ class Template:
'_state',
)
- def __init__(self, *, state, data: TemplatePayload):
+ def __init__(self, *, state: ConnectionState, data: TemplatePayload) -> None:
self._state = state
self._store(data)
- def _store(self, data: TemplatePayload):
- self.code = data['code']
- self.uses = data['usage_count']
- self.name = data['name']
- self.description = data['description']
+ def _store(self, data: TemplatePayload) -> None:
+ self.code: str = data['code']
+ self.uses: int = data['usage_count']
+ self.name: str = data['name']
+ self.description: Optional[str] = data['description']
creator_data = data.get('creator')
- self.creator = None if creator_data is None else self._state.create_user(creator_data)
+ self.creator: Optional[User] = None if creator_data is None else self._state.create_user(creator_data)
- self.created_at = parse_time(data.get('created_at'))
- self.updated_at = parse_time(data.get('updated_at'))
+ self.created_at: Optional[datetime.datetime] = parse_time(data.get('created_at'))
+ self.updated_at: Optional[datetime.datetime] = parse_time(data.get('updated_at'))
id = _get_as_snowflake(data, 'source_guild_id')
@@ -150,10 +153,10 @@ class Template:
source_serialised = data['serialized_source_guild']
source_serialised['id'] = id
state = _PartialTemplateState(state=self._state)
- guild = Guild(data=source_serialised, state=state) # type: ignore
+ guild = Guild(data=source_serialised, state=state) # type: ignore - Guild expects a ConnectionState, we're passing a _PartialTemplateState
- self.source_guild = guild
- self.is_dirty = data.get('is_dirty', None)
+ self.source_guild: Guild = guild # type: ignore - source_guild_id is a required field on the discord API docs
+ self.is_dirty: Optional[bool] = data.get('is_dirty', None)
def __repr__(self) -> str:
return (
@@ -161,7 +164,7 @@ class Template:
f' creator={self.creator!r} source_guild={self.source_guild!r} is_dirty={self.is_dirty}>'
)
- async def create_guild(self, name: str, region: Optional[VoiceRegion] = None, icon: Any = None):
+ async def create_guild(self, name: str, region: Optional[VoiceRegion] = None, icon: Any = None) -> Guild:
"""|coro|
Creates a :class:`.Guild` using the template.