{ 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