plain.email 0.15.1__py3-none-any.whl → 0.15.2__py3-none-any.whl

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/CHANGELOG.md CHANGED
@@ -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
@@ -10,6 +10,8 @@ if TYPE_CHECKING:
10
10
 
11
11
  from ..message import EmailMessage
12
12
 
13
+ __all__ = ["BaseEmailBackend"]
14
+
13
15
 
14
16
  class BaseEmailBackend(ABC):
15
17
  """
plain/email/message.py 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,
plain/email/utils.py CHANGED
@@ -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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.email
3
- Version: 0.15.1
3
+ Version: 0.15.2
4
4
  Summary: Everything you need to send email in Plain.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-Expression: BSD-3-Clause
@@ -1,15 +1,15 @@
1
- plain/email/CHANGELOG.md,sha256=TUdoEzK7duzVWckpr_VkdjqmOAS5kaqaP3Q72JaMQiM,3552
1
+ plain/email/CHANGELOG.md,sha256=t6coeR6OH5AfGbKvG3w4P3y5VqPEwFeNHAF7-IOkHEo,3977
2
2
  plain/email/README.md,sha256=XCaT4KAzcw8t_14vtSdZyDUK6-OjSlf5UdEk2bZJrCU,7243
3
3
  plain/email/__init__.py,sha256=_wQC03wth7dgSqKaFG3IGkdJN5yhXfDH7M7pLNYm7IQ,3391
4
4
  plain/email/default_settings.py,sha256=dZlKwsLBAJSZ8cRt117Db3qPf97xbPUaGEHbUmlv2CU,881
5
- plain/email/message.py,sha256=Wlb0qyxmIow3dWIvFEfDuj-G041x-L-aa7GU0YiSr64,23144
6
- plain/email/utils.py,sha256=b9DzVVvI6BRwIVWSud_sRRchanBztH1p6qCy5-g9-ns,610
5
+ plain/email/message.py,sha256=3DfPi4yYF2iXRqpqM33J3zSb1D31TVf2ZgR23Y425ic,23048
6
+ plain/email/utils.py,sha256=Rfjfubu16DDeBqopbqCokkeHZUxvFFXXY3bh3wUPcXU,556
7
7
  plain/email/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- plain/email/backends/base.py,sha256=7XDlJv07IMSES10pduu_ayCaznD2kwIyo3iAHWg9uQs,2009
8
+ plain/email/backends/base.py,sha256=hsjbBYtC-1gRTzh9y3qrU8NTGKkLOQ6vRmuCDUvLQFw,2041
9
9
  plain/email/backends/console.py,sha256=M7xW13XMjrozwnkkfTv2RxkV0vKp20EvTpIQpIfCGek,1745
10
10
  plain/email/backends/filebased.py,sha256=mEqxazVXHihkndshgkD56qMoXww5CQpZOpsoPh0tQEw,2733
11
11
  plain/email/backends/smtp.py,sha256=IqpYXXsf1LTh1uqHR9_gGyYTHwuRdtdX2kUtaRQY01Q,6258
12
- plain_email-0.15.1.dist-info/METADATA,sha256=ik0NwUnOgUXWHMC2nH_1URa_zpIhZhMnH7lyCzsMa60,7556
13
- plain_email-0.15.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
14
- plain_email-0.15.1.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
15
- plain_email-0.15.1.dist-info/RECORD,,
12
+ plain_email-0.15.2.dist-info/METADATA,sha256=xwG874wG7SuCcQPNWmv4hBRGQYcKJNzOH--guVsAEGw,7556
13
+ plain_email-0.15.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
14
+ plain_email-0.15.2.dist-info/licenses/LICENSE,sha256=m0D5O7QoH9l5Vz_rrX_9r-C8d9UNr_ciK6Qwac7o6yo,3175
15
+ plain_email-0.15.2.dist-info/RECORD,,