Skip to content

Commit 39ef060

Browse files
committed
Fix type hints issues from review
1. Include py.typed in published package: add package_data in setup.py and include in MANIFEST.in (without this, PEP 561 support was not actually working) 2. Widen date callback type from Callable[[], str] to Callable[..., str | datetime | float] to match existing behavior (callbacks can return datetime/float, not just str) 3. Fix SMTPResponse annotations: esmtp_opts and rcpt_options are lists (not str), and rename refused_recipient to refused_recipients to match actual usage in client.py
1 parent 0628c3c commit 39ef060

4 files changed

Lines changed: 7 additions & 5 deletions

File tree

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
include README.rst LICENSE requirements.txt
2+
include emails/py.typed

emails/backend/response.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ def __init__(self, exception: Exception | None = None, backend: Any = None) -> N
3737

3838
self.responses: list[list] = []
3939

40-
self.esmtp_opts: str | None = None
41-
self.rcpt_options: str | None = None
40+
self.esmtp_opts: list[str] | None = None
41+
self.rcpt_options: list[str] | None = None
4242

4343
self.status_code: int | None = None
4444
self.status_text: str | None = None
4545
self.last_command: str | None = None
46-
self.refused_recipient: dict[str, tuple[int, str]] = {}
46+
self.refused_recipients: dict[str, tuple[int, bytes]] = {}
4747

4848
def set_status(self, command: str, code: int, text: str, **kwargs: Any) -> None:
4949
self.responses.append([command, code, text, kwargs])

emails/message.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class BaseMessage:
3939
def __init__(self,
4040
charset: str | None = None,
4141
message_id: str | MessageID | bool | None = None,
42-
date: str | datetime | float | bool | Callable[[], str] | None = None,
42+
date: str | datetime | float | bool | Callable[..., str | datetime | float] | None = None,
4343
subject: str | None = None,
4444
mail_from: _Address = None,
4545
mail_to: _AddressList = None,
@@ -158,7 +158,7 @@ def get_subject(self) -> str | None:
158158
def render(self, **kwargs: Any) -> None:
159159
self.render_data = kwargs
160160

161-
def set_date(self, value: str | datetime | float | bool | Callable[[], str] | None) -> None:
161+
def set_date(self, value: str | datetime | float | bool | Callable[..., str | datetime | float] | None) -> None:
162162
self._date = value
163163

164164
def get_date(self) -> str | None:

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def find_version(*file_paths):
126126
'emails.packages',
127127
'emails.packages.dkim'
128128
],
129+
package_data={'emails': ['py.typed']},
129130
scripts=['scripts/make_rfc822.py'],
130131
python_requires='>=3.10',
131132
install_requires=['python-dateutil'],

0 commit comments

Comments
 (0)