From 05b90f1edae487c55ea8f9270b0925b630c627d8 Mon Sep 17 00:00:00 2001 From: David Baer Date: Tue, 18 Aug 2026 14:14:40 -0400 Subject: [PATCH] Convert to pyproject.toml --- dmarcreceiver/commands.py | 15 +++++++++++++++ pyproject.toml | 21 +++++++++++++++++++++ scripts/dmarc-receive | 15 --------------- setup.py | 31 ------------------------------- 4 files changed, 36 insertions(+), 46 deletions(-) create mode 100644 pyproject.toml delete mode 100755 scripts/dmarc-receive delete mode 100644 setup.py diff --git a/dmarcreceiver/commands.py b/dmarcreceiver/commands.py index 48668df..6c4eede 100644 --- a/dmarcreceiver/commands.py +++ b/dmarcreceiver/commands.py @@ -1,6 +1,7 @@ import sys, os import zipfile +import argparse from datetime import datetime from email import message_from_file from tempfile import TemporaryDirectory @@ -152,3 +153,17 @@ def init(args): read_config_if_present(args) init_model() metadata.create_all() + +def main_cli(): + parser = argparse.ArgumentParser() + parser.add_argument('-b', dest='bounce_address', help='Forwarding address for messages that are not DMARC reports.') + parser.add_argument('-f', dest='config_file', default='/etc/dmarc-receive.conf', help='Configuration file') + parser.add_argument('-i', action='store_true', dest='init', default=False, help='Initialize database') + args = parser.parse_args() + if args.init: + init(args) + else: + receive_report(args) + return 0 + + diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..8e91052 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,21 @@ +[build-system] +requires = ["setuptools>=61.0.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "DMARCReceiver" +version = "1.5" +description = "Receive DMARC reports" +authors = [ + { name = "David Baer", email = "david@amyanddavid.net" } +] +dependencies = [ + "lxml", + "sqlalchemy", + "transaction", + "zope.interface", + "zope.sqlalchemy", +] + +[project.scripts] +dmarc-receive = "dmarcreceiver.commands:main_cli" diff --git a/scripts/dmarc-receive b/scripts/dmarc-receive deleted file mode 100755 index 69d5fcb..0000000 --- a/scripts/dmarc-receive +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python3 -import argparse -from dmarcreceiver.commands import receive_report, init - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('-b', dest='bounce_address', help='Forwarding address for messages that are not DMARC reports.') - parser.add_argument('-f', dest='config_file', default='/etc/dmarc-receive.conf', help='Configuration file') - parser.add_argument('-i', action='store_true', dest='init', default=False, help='Initialize database') - args = parser.parse_args() - if args.init: - init(args) - else: - receive_report(args) - diff --git a/setup.py b/setup.py deleted file mode 100644 index 16b3f3f..0000000 --- a/setup.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -import sys - -try: - from setuptools import setup, find_packages -except ImportError: - from ez_setup import use_setuptools - use_setuptools() - from setuptools import setup, find_packages - -install_requires=[ - 'lxml', - 'sqlalchemy', - 'transaction', - 'zope.interface', - 'zope.sqlalchemy', -] - -setup( - name='DMARCReceiver', - version='1.4', - description='Receive DMARC reports', - author='David Baer', - author_email='david@amyanddavid.net', - packages=find_packages(), - scripts=['scripts/dmarc-receive'], - install_requires=install_requires, - include_package_data=True, - zip_safe=True -)