markdown-merge 0.1.5__py3-none-any.whl → 0.1.6__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.
Potentially problematic release.
This version of markdown-merge might be problematic. Click here for more details.
- markdown_merge/__init__.py +1 -1
- markdown_merge/core.py +7 -6
- {markdown_merge-0.1.5.dist-info → markdown_merge-0.1.6.dist-info}/METADATA +1 -1
- markdown_merge-0.1.6.dist-info/RECORD +9 -0
- markdown_merge-0.1.5.dist-info/RECORD +0 -9
- {markdown_merge-0.1.5.dist-info → markdown_merge-0.1.6.dist-info}/WHEEL +0 -0
- {markdown_merge-0.1.5.dist-info → markdown_merge-0.1.6.dist-info}/entry_points.txt +0 -0
- {markdown_merge-0.1.5.dist-info → markdown_merge-0.1.6.dist-info}/licenses/LICENSE +0 -0
- {markdown_merge-0.1.5.dist-info → markdown_merge-0.1.6.dist-info}/top_level.txt +0 -0
markdown_merge/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.6"
|
|
2
2
|
from .core import *
|
markdown_merge/core.py
CHANGED
|
@@ -38,10 +38,11 @@ def attach_file(msg, f):
|
|
|
38
38
|
msg.attach(part)
|
|
39
39
|
|
|
40
40
|
# %% ../nbs/00_core.ipynb
|
|
41
|
-
def create_multipart_msg(subj, from_addr, to_addrs, md=None, html=None, attach=None):
|
|
41
|
+
def create_multipart_msg(subj, from_addr, to_addrs, md=None, html=None, attach=None, hdrs=None):
|
|
42
42
|
"Create a multipart email with markdown text and HTML"
|
|
43
43
|
msg = MIMEMultipart('alternative', policy=EmailPolicy())
|
|
44
44
|
msg['Subject'],msg['From'] = subj,str(from_addr)
|
|
45
|
+
for k,v in (hdrs or {}).items(): msg[k]=v
|
|
45
46
|
msg['To'] = ', '.join([str(a) for a in listify(to_addrs)])
|
|
46
47
|
if md: msg.attach(MIMEText(md, 'plain'))
|
|
47
48
|
if html: msg.attach(MIMEText(html, 'html'))
|
|
@@ -49,10 +50,10 @@ def create_multipart_msg(subj, from_addr, to_addrs, md=None, html=None, attach=N
|
|
|
49
50
|
return msg
|
|
50
51
|
|
|
51
52
|
# %% ../nbs/00_core.ipynb
|
|
52
|
-
def md2email(subj, from_addr, to_addrs, md, attach=None):
|
|
53
|
+
def md2email(subj, from_addr, to_addrs, md, attach=None, hdrs=None):
|
|
53
54
|
"Create a multipart email from markdown"
|
|
54
55
|
html = markdown(md)
|
|
55
|
-
return create_multipart_msg(subj, from_addr, to_addrs, md=md, html=html, attach=attach)
|
|
56
|
+
return create_multipart_msg(subj, from_addr, to_addrs, md=md, html=html, attach=attach, hdrs=hdrs)
|
|
56
57
|
|
|
57
58
|
# %% ../nbs/00_core.ipynb
|
|
58
59
|
def smtp_connection(host, port, user=None, password=None, use_ssl=True, use_tls=False):
|
|
@@ -65,10 +66,10 @@ def smtp_connection(host, port, user=None, password=None, use_ssl=True, use_tls=
|
|
|
65
66
|
# %% ../nbs/00_core.ipynb
|
|
66
67
|
class MarkdownMerge:
|
|
67
68
|
"Send templated email merge messages formatted with Markdown"
|
|
68
|
-
def __init__(self, addrs, from_addr, subj, msg, smtp_cfg=None, inserts=None, test=False):
|
|
69
|
+
def __init__(self, addrs, from_addr, subj, msg, smtp_cfg=None, inserts=None, test=False, hdrs=None):
|
|
69
70
|
self.addrs,self.from_addr,self.subj,self.msg,self.i = addrs,from_addr,subj,msg,0
|
|
70
71
|
self.inserts = [{}]*len(addrs) if inserts is None else inserts
|
|
71
|
-
self.smtp_cfg,self.test = smtp_cfg,test
|
|
72
|
+
self.smtp_cfg,self.test,self.hdrs = smtp_cfg,test,hdrs
|
|
72
73
|
|
|
73
74
|
def send_msgs(self, pause=0.2):
|
|
74
75
|
"Send all unsent messages to `addrs` with `pause` secs between each send"
|
|
@@ -76,7 +77,7 @@ class MarkdownMerge:
|
|
|
76
77
|
while self.i < len(self.addrs):
|
|
77
78
|
addr,insert = self.addrs[self.i],self.inserts[self.i]
|
|
78
79
|
msg = self.msg.format(**insert)
|
|
79
|
-
eml = md2email(self.subj, self.from_addr, addr, md=msg)
|
|
80
|
+
eml = md2email(self.subj, self.from_addr, addr, md=msg, hdrs=self.hdrs)
|
|
80
81
|
if self.test: print(f"To: {addr}\n{'-'*40}\n{msg}\n{'='*40}\n")
|
|
81
82
|
else:
|
|
82
83
|
conn.send_message(eml)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
markdown_merge/__init__.py,sha256=nugdIM7Lq9CCL0yID0e06gwlvYvIcYlywSE7YrdEjlA,42
|
|
2
|
+
markdown_merge/_modidx.py,sha256=bTtmxhhVACnK8Nd0w4hRAiZpu2BfygE6XNW2Qvsij14,1764
|
|
3
|
+
markdown_merge/core.py,sha256=zdSQT6k5Zdl0Hpg-Jaf12e24YB-TlGyoqd5f-hHuO90,3668
|
|
4
|
+
markdown_merge-0.1.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
5
|
+
markdown_merge-0.1.6.dist-info/METADATA,sha256=Jr64u5VRKFGCDBbjJW8c9zU5FH_m0cURMVHR1dhmono,2774
|
|
6
|
+
markdown_merge-0.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
7
|
+
markdown_merge-0.1.6.dist-info/entry_points.txt,sha256=jTaJtzTxHp7dbtuWOitXxilSKAgFXX-m6e_paLdbr70,50
|
|
8
|
+
markdown_merge-0.1.6.dist-info/top_level.txt,sha256=036ta8zjflvmW-hSc9kB-VSyF5UylMCOGjTC_EN3frU,15
|
|
9
|
+
markdown_merge-0.1.6.dist-info/RECORD,,
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
markdown_merge/__init__.py,sha256=mX3-HuIsfiC-seJ66DH5JWJYszbsvzyowlUb1waO6-I,42
|
|
2
|
-
markdown_merge/_modidx.py,sha256=bTtmxhhVACnK8Nd0w4hRAiZpu2BfygE6XNW2Qvsij14,1764
|
|
3
|
-
markdown_merge/core.py,sha256=0wYW6unMBVXd_miBF6-uI4BNsjw1hAlrsw6O7n_6KTo,3547
|
|
4
|
-
markdown_merge-0.1.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
5
|
-
markdown_merge-0.1.5.dist-info/METADATA,sha256=32UQY57uVf2QS6xaiV1FTus1E1FTB04wkx-yF95eZKY,2774
|
|
6
|
-
markdown_merge-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
7
|
-
markdown_merge-0.1.5.dist-info/entry_points.txt,sha256=jTaJtzTxHp7dbtuWOitXxilSKAgFXX-m6e_paLdbr70,50
|
|
8
|
-
markdown_merge-0.1.5.dist-info/top_level.txt,sha256=036ta8zjflvmW-hSc9kB-VSyF5UylMCOGjTC_EN3frU,15
|
|
9
|
-
markdown_merge-0.1.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|