diff --git a/pkgs/development/python-modules/checkdmarc/default.nix b/pkgs/development/python-modules/checkdmarc/default.nix new file mode 100644 index 000000000000..e7cedec9791b --- /dev/null +++ b/pkgs/development/python-modules/checkdmarc/default.nix @@ -0,0 +1,76 @@ +{ lib +, buildPythonPackage +, cryptography +, dnspython +, expiringdict +, fetchFromGitHub +, hatchling +, publicsuffixlist +, pyleri +, iana-etc +, pytestCheckHook +, pythonOlder +, requests +, timeout-decorator +}: + +buildPythonPackage rec { + pname = "checkdmarc"; + version = "4.8.0"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "domainaware"; + repo = "checkdmarc"; + # https://github.com/domainaware/checkdmarc/issues/102 + rev = "d0364ceef3cfd41052273913369e3831cb6fe4fd"; + hash = "sha256-OSljewDeyJtoxkCQjPU9wIsNhhxumHmeu9GHvRD4DRY="; + }; + + nativeBuildInputs = [ + hatchling + ]; + + propagatedBuildInputs = [ + cryptography + dnspython + expiringdict + publicsuffixlist + pyleri + requests + timeout-decorator + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "checkdmarc" + ]; + + pytestFlagsArray = [ + "tests.py" + ]; + + disabledTests = [ + # Tests require network access + "testDMARCPctLessThan100Warning" + "testSPFMissingARecord" + "testSPFMissingMXRecord" + "testSplitSPFRecord" + "testTooManySPFDNSLookups" + "testTooManySPFVoidDNSLookups" + ]; + + meta = with lib; { + description = "A parser for SPF and DMARC DNS records"; + homepage = "https://github.com/domainaware/checkdmarc"; + changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} + diff --git a/pkgs/development/python-modules/pyleri/default.nix b/pkgs/development/python-modules/pyleri/default.nix new file mode 100644 index 000000000000..98c71d06f55a --- /dev/null +++ b/pkgs/development/python-modules/pyleri/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, unittestCheckHook +}: + +buildPythonPackage rec { + pname = "pyleri"; + version = "1.4.2"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "cesbit"; + repo = "pyleri"; + rev = "refs/tags/${version}"; + hash = "sha256-52Q2iTrXFNbDzXL0FM+Gypipvo5ciNqAtZa5sKOwQRc="; + }; + + nativeCheckInputs = [ + unittestCheckHook + ]; + + pythonImportsCheck = [ + "pyleri" + ]; + + meta = with lib; { + description = "Module to parse SiriDB"; + homepage = "https://github.com/cesbit/pyleri"; + changelog = "https://github.com/cesbit/pyleri/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c15d6ccf5304..fd4ad180b11b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1901,6 +1901,8 @@ self: super: with self; { check-manifest = callPackage ../development/python-modules/check-manifest { }; + checkdmarc = callPackage ../development/python-modules/checkdmarc { }; + cheetah3 = callPackage ../development/python-modules/cheetah3 { }; cheroot = callPackage ../development/python-modules/cheroot { }; @@ -9358,6 +9360,8 @@ self: super: with self; { pyld = callPackage ../development/python-modules/pyld { }; + pyleri = callPackage ../development/python-modules/pyleri { }; + pylev = callPackage ../development/python-modules/pylev { }; pylgnetcast = callPackage ../development/python-modules/pylgnetcast { };