{ pkgs, lib, config, inputs, ... }: let req = pkgs.concatText "req" [ ./requirements.txt ./requirements-dev.txt ]; in { # https://devenv.sh/packages/ packages = [ pkgs.file pkgs.swig4 pkgs.openssl ]; env = { LDFLAGS = "-L${pkgs.openssl.dev}/lib"; CFLAGS = "-I${pkgs.openssl.dev}/include"; SWIG_FEATURES = "-I${pkgs.openssl.dev}/include"; }; # https://devenv.sh/languages/ languages.nix.enable = true; languages.python = { enable = true; libraries = [ pkgs.openssl.dev ]; venv = { enable = true; requirements = builtins.readFile req; }; }; # https://devenv.sh/pre-commit-hooks/ git-hooks.hooks = { nixfmt.enable = true; # nixfmt.package = pkgs.nixfmt-rfc-style; # remove unused imports autoflake.enable = true; # formatter black.enable = true; # sort imports isort.enable = true; # same profile for black and isort isort.settings.flags = "--profile black"; # look for code smell pylint.enable = true; detect-private-keys.enable = true; detect-private-keys.excludes = [ "tests/" ]; }; }