plain.email 0.15.1__tar.gz → 0.15.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plain_email-0.15.1 → plain_email-0.15.2}/.gitignore +1 -1
- {plain_email-0.15.1 → plain_email-0.15.2}/PKG-INFO +1 -1
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/CHANGELOG.md +11 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/backends/base.py +2 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/message.py +0 -5
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/utils.py +0 -2
- {plain_email-0.15.1 → plain_email-0.15.2}/pyproject.toml +1 -1
- {plain_email-0.15.1 → plain_email-0.15.2}/LICENSE +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/README.md +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/README.md +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/__init__.py +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/backends/__init__.py +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/backends/console.py +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/backends/filebased.py +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/backends/smtp.py +0 -0
- {plain_email-0.15.1 → plain_email-0.15.2}/plain/email/default_settings.py +0 -0
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# plain-email changelog
|
|
2
2
|
|
|
3
|
+
## [0.15.2](https://github.com/dropseed/plain/releases/plain-email@0.15.2) (2026-02-04)
|
|
4
|
+
|
|
5
|
+
### What's changed
|
|
6
|
+
|
|
7
|
+
- Added `__all__` export to `backends/base` module ([e7164d3891b2](https://github.com/dropseed/plain/commit/e7164d3891b2))
|
|
8
|
+
- Removed `@internalcode` decorator from internal MIME helper classes ([e7164d3891b2](https://github.com/dropseed/plain/commit/e7164d3891b2))
|
|
9
|
+
|
|
10
|
+
### Upgrade instructions
|
|
11
|
+
|
|
12
|
+
- No changes required.
|
|
13
|
+
|
|
3
14
|
## [0.15.1](https://github.com/dropseed/plain/releases/plain-email@0.15.1) (2026-01-28)
|
|
4
15
|
|
|
5
16
|
### What's changed
|
|
@@ -20,7 +20,6 @@ from io import BytesIO, StringIO
|
|
|
20
20
|
from pathlib import Path
|
|
21
21
|
from typing import TYPE_CHECKING, Any
|
|
22
22
|
|
|
23
|
-
from plain.internal import internalcode
|
|
24
23
|
from plain.runtime import settings
|
|
25
24
|
from plain.templates import Template, TemplateFileMissing
|
|
26
25
|
from plain.utils.encoding import force_str, punycode
|
|
@@ -136,7 +135,6 @@ def _sanitize_address(addr: str | tuple[str, str], encoding: str) -> str:
|
|
|
136
135
|
return formataddr((nm, parsed_address.addr_spec))
|
|
137
136
|
|
|
138
137
|
|
|
139
|
-
@internalcode
|
|
140
138
|
class MIMEMixin:
|
|
141
139
|
def as_string(self, unixfrom: bool = False, linesep: str = "\n") -> str:
|
|
142
140
|
"""Return the entire formatted message as a string.
|
|
@@ -165,7 +163,6 @@ class MIMEMixin:
|
|
|
165
163
|
return fp.getvalue()
|
|
166
164
|
|
|
167
165
|
|
|
168
|
-
@internalcode
|
|
169
166
|
class SafeMIMEMessage(MIMEMixin, MIMEMessage):
|
|
170
167
|
def __setitem__(self, name: str, val: str) -> None:
|
|
171
168
|
# message/rfc822 attachments must be ASCII
|
|
@@ -173,7 +170,6 @@ class SafeMIMEMessage(MIMEMixin, MIMEMessage):
|
|
|
173
170
|
MIMEMessage.__setitem__(self, name, val)
|
|
174
171
|
|
|
175
172
|
|
|
176
|
-
@internalcode
|
|
177
173
|
class SafeMIMEText(MIMEMixin, MIMEText):
|
|
178
174
|
def __init__(
|
|
179
175
|
self, _text: str, _subtype: str = "plain", _charset: str | None = None
|
|
@@ -199,7 +195,6 @@ class SafeMIMEText(MIMEMixin, MIMEText):
|
|
|
199
195
|
MIMEText.set_payload(self, payload, charset=charset)
|
|
200
196
|
|
|
201
197
|
|
|
202
|
-
@internalcode
|
|
203
198
|
class SafeMIMEMultipart(MIMEMixin, MIMEMultipart):
|
|
204
199
|
def __init__(
|
|
205
200
|
self,
|
|
@@ -6,13 +6,11 @@ from __future__ import annotations
|
|
|
6
6
|
|
|
7
7
|
import socket
|
|
8
8
|
|
|
9
|
-
from plain.internal import internalcode
|
|
10
9
|
from plain.utils.encoding import punycode
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
# Cache the hostname, but do it lazily: socket.getfqdn() can take a couple of
|
|
14
13
|
# seconds, which slows down the restart of the server.
|
|
15
|
-
@internalcode
|
|
16
14
|
class CachedDnsName:
|
|
17
15
|
def __str__(self) -> str:
|
|
18
16
|
return self.get_fqdn()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|