From 5769c14e71e6683c48c43b8cebdc57f9a791562e Mon Sep 17 00:00:00 2001 From: William Di Luigi Date: Sat, 21 Dec 2024 22:51:04 +0100 Subject: [PATCH] Add --version CLI flag, and update version to 0.1 --- mailipy/gen.py | 13 ++++++++++--- mailipy/send.py | 8 ++++++++ setup.py | 10 +++++----- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/mailipy/gen.py b/mailipy/gen.py index 3b1a7d1..ab9f168 100644 --- a/mailipy/gen.py +++ b/mailipy/gen.py @@ -7,11 +7,14 @@ import email.message import email.utils import json +import jinja2 +import markdown import mimetypes import pathlib import random import re import sys +import yaml from email.generator import Generator from email.mime.application import MIMEApplication from email.mime.audio import MIMEAudio @@ -19,9 +22,7 @@ from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText -import jinja2 -import markdown -import yaml +from importlib.metadata import version YAML_FRONT_MATTER = r"\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)(.*)" @@ -207,6 +208,12 @@ def main(): parser.add_argument("template", help="a Markdown formatted document with a YAML front-matter", type=pathlib.Path) parser.add_argument("contacts", help="a CSV file with the contacts whom to send emails to", type=pathlib.Path) parser.add_argument("outbox", nargs="?", default=pathlib.Path("./outbox"), help="a folder where to save the emails (default: outbox)", type=pathlib.Path) + parser.add_argument( + "-v", + "--version", + action="version", + version="mailipy {v}".format(v=version("mailipy")), + ) args = parser.parse_args() if not args.template.is_file() or args.template.suffix.lower() != ".md": diff --git a/mailipy/send.py b/mailipy/send.py index 4c673df..3660331 100644 --- a/mailipy/send.py +++ b/mailipy/send.py @@ -10,6 +10,8 @@ import sys import time +from importlib.metadata import version + def read_password_from_file(file_path): with open(file_path) as f: @@ -55,6 +57,12 @@ def main(): parser.add_argument("--password-file", help="path to a file containing the password to login to the mail server") parser.add_argument("--ssl", help="SSL mode to use", choices=["auto", "none", "starttls", "ssl"], default="auto") parser.add_argument("--sleep", help="seconds to wait after each sent email", type=int, default=0) + parser.add_argument( + "-v", + "--version", + action="version", + version="mailipy {v}".format(v=version("mailipy")), + ) args = parser.parse_args() if not args.outbox.is_dir() or len(list(args.outbox.iterdir())) == 0: diff --git a/setup.py b/setup.py index 0a5e3cd..63e9f73 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setuptools.setup( name="mailipy", - version="0.0.8", + version="0.1", author="William Di Luigi", author_email="williamdiluigi@gmail.com", description="Bulk send emails easily", @@ -19,9 +19,9 @@ "Operating System :: OS Independent", ], install_requires=[ - 'jinja2', - 'markdown', - 'pyyaml', + "jinja2", + "markdown", + "pyyaml", ], - python_requires='>=3.6', + python_requires=">=3.8", )