{
  pkgs ? import <nixpkgs> {},
  python3Packages ? pkgs.python3Packages,
}: let
  mailman3 = {
    core = python3Packages.callPackage ./core.nix (with deps; {
      inherit aiosmtpd atpublic flufl_bounce flufl_i18n flufl_lock lazr_config;
    });
  };
  deps = rec {
    aiosmtpd = python3Packages.callPackage ./extraPackages/aiosmtpd.nix {
      inherit atpublic;
    };
    atpublic = python3Packages.callPackage ./extraPackages/atpublic.nix {};
    flufl_bounce = python3Packages.callPackage ./extraPackages/flufl_bounce.nix {
      inherit atpublic;
    };
    flufl_i18n = python3Packages.callPackage ./extraPackages/flufl_i18n.nix {
      inherit atpublic;
    };
    flufl_lock = python3Packages.callPackage ./extraPackages/flufl_lock.nix {
      inherit atpublic;
    };
    lazr_config = python3Packages.callPackage ./extraPackages/lazr_config.nix {
      inherit lazr_delegates;
    };
    lazr_delegates = python3Packages.callPackage ./extraPackages/lazr_delegates.nix {};
  };
in
  mailman3