1
+ from __future__ import annotations
2
+
1
3
from pathlib import Path
2
4
import re
3
5
@@ -68,11 +70,11 @@ def apply(self) -> None:
68
70
raise PEPParsingError (msg )
69
71
70
72
para = body [0 ]
71
- if name in {"author" , "bdfl-delegate" , "pep-delegate" , "sponsor" }:
73
+ if name in {"author" , "bdfl-delegate" , "pep-delegate" , "discussions-to" , " sponsor" }:
72
74
# mask emails
73
75
for node in para :
74
76
if isinstance (node , nodes .reference ):
75
- pep_num = pep if name == "discussions-to" else - 1
77
+ pep_num = pep if name == "discussions-to" else None
76
78
node .replace_self (_mask_email (node , pep_num ))
77
79
elif name in {"replaces" , "superseded-by" , "requires" }:
78
80
# replace PEP numbers with normalised list of links to PEPs
@@ -93,7 +95,7 @@ def apply(self) -> None:
93
95
field .parent .remove (field )
94
96
95
97
96
- def _mask_email (ref : nodes .reference , pep_num : int = - 1 ) -> nodes .reference :
98
+ def _mask_email (ref : nodes .reference , pep_num : int | None = None ) -> nodes .reference :
97
99
"""Mask the email address in `ref` and return a replacement node.
98
100
99
101
`ref` is returned unchanged if it contains no email address.
@@ -104,15 +106,12 @@ def _mask_email(ref: nodes.reference, pep_num: int = -1) -> nodes.reference:
104
106
If given a PEP number `pep_num`, add a default email subject.
105
107
106
108
"""
107
- if "refuri" in ref and ref ["refuri" ].startswith ("mailto:" ):
108
-
109
- if ref ["refuri" ].removeprefix ("mailto:" ).strip () in non_masked_addresses :
110
- replacement = ref [0 ]
111
- else :
112
- replacement_text = ref .astext ().replace ("@" , " at " )
113
- replacement = nodes .raw ("" , replacement_text , format = "html" )
114
-
115
- if pep_num != - 1 :
116
- replacement ["refuri" ] += f"?subject=PEP%20{ pep_num } "
117
- return replacement
109
+ if "refuri" not in ref or not ref ["refuri" ].startswith ("mailto:" ):
110
+ return ref
111
+
112
+ if ref ["refuri" ].removeprefix ("mailto:" ).strip () not in non_masked_addresses :
113
+ ref [0 ] = nodes .raw ("" , ref [0 ].replace ("@" , " at " ), format = "html" )
114
+ if pep_num is None :
115
+ return ref [0 ] # return email text without mailto link
116
+ ref ["refuri" ] += f"?subject=PEP%20{ pep_num } "
118
117
return ref
0 commit comments