2023-01-30 21:22:59 +01:00
|
|
|
{ pkgs ? import <nixpkgs> { }, ... }:
|
|
|
|
|
|
|
|
let
|
2023-01-31 13:42:12 +01:00
|
|
|
nix-pre-commit-hooks = import (builtins.fetchTarball "https://github.com/cachix/pre-commit-hooks.nix/tarball/master");
|
|
|
|
pre-commit-check = nix-pre-commit-hooks.run {
|
|
|
|
src = ./.;
|
|
|
|
hooks = {
|
|
|
|
black.enable = true;
|
|
|
|
isort.enable = true;
|
|
|
|
flake8.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-01-30 21:22:59 +01:00
|
|
|
mkSetup = self: super: pkg: super.${pkg}.overridePythonAttrs (old: { buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools ]; });
|
|
|
|
|
|
|
|
poetryEnv = pkgs.poetry2nix.mkPoetryEnv {
|
|
|
|
projectDir = ./.;
|
|
|
|
python = pkgs.python39;
|
|
|
|
preferWheels = true;
|
|
|
|
|
|
|
|
overrides = pkgs.poetry2nix.overrides.withDefaults (self: super: {
|
|
|
|
python-ldap = mkSetup self super "python-ldap";
|
|
|
|
|
|
|
|
authens = mkSetup self super "authens";
|
|
|
|
});
|
|
|
|
};
|
|
|
|
in
|
|
|
|
|
|
|
|
pkgs.mkShell {
|
|
|
|
buildInputs = [
|
|
|
|
pkgs.poetry
|
|
|
|
poetryEnv
|
|
|
|
];
|
2023-01-31 13:42:12 +01:00
|
|
|
|
|
|
|
shellHook = ''
|
|
|
|
${pre-commit-check.shellHook}
|
|
|
|
'';
|
2023-01-30 21:22:59 +01:00
|
|
|
}
|