{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; poetry2nix = { url = "github:nix-community/poetry2nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" ]; perSystem = { config, system, ... }: let inherit (inputs.poetry2nix.legacyPackages.${system}) mkPoetryApplication mkPoetryEnv mkPoetryEditablePackage defaultPoetryOverrides; pkgs = inputs.nixpkgs.legacyPackages.${system}; poetry-env = mkPoetryEnv { python = pkgs.python310Full; projectDir = ./.; groups = [ "dev" ]; overrides = defaultPoetryOverrides.extend (self: super: { djlint = super.djlint.overridePythonAttrs (old: { buildInputs = (old.buildInputs or [ ]) ++ [ super.poetry ]; }); html-void-elements = super.html-void-elements.overridePythonAttrs (old: { buildInputs = (old.buildInputs or [ ]) ++ [ super.poetry ]; }); html-tag-names = super.html-tag-names.overridePythonAttrs (old: { buildInputs = (old.buildInputs or [ ]) ++ [ super.poetry ]; }); cssbeautifier = super.cssbeautifier.overridePythonAttrs (old: { buildInputs = (old.buildInputs or [ ]) ++ [ super.setuptools ]; }); }); }; in { packages = rec { myapp = mkPoetryApplication { projectDir = ./.; }; default = myapp; }; devShells = { default = pkgs.mkShell { packages = [ inputs.poetry2nix.packages.${system}.poetry poetry-env pkgs.sqlite ]; }; poetry = pkgs.mkShell { packages = [ inputs.poetry2nix.packages.${system}.poetry ]; }; }; }; }; }