# An "impure" template thx to `pyproject.nix`, # https://pyproject-nix.github.io/pyproject.nix/templates.html#impure # https://github.com/pyproject-nix/pyproject.nix/blob/master/templates/impure/flake.nix { description = "An impure `piker` overlay using `uv` with Nix(OS)"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { nixpkgs, ... }: let inherit (nixpkgs) lib; forAllSystems = lib.genAttrs lib.systems.flakeExposed; in { devShells = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = pkgs.mkShell { packages = [ pkgs.python313 pkgs.uv ]; shellHook = '' unset PYTHONPATH # expose C++ stdlib to overlay export LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH" # always use the ./py313/ venv-subdir export UV_PROJECT_ENVIRONMENT="py313" # sync project-env with all extras uv sync --dev --all-extras # NOTE, to launch the py-venv installed `xonsh` (like @goodboy) # run the `nix develop` cmd with, # >> nix develop -c uv run xonsh ''; }; } ); }; }