From 0ade2c3962fcb82920e2b1098c831eb29f47c56c Mon Sep 17 00:00:00 2001 From: TheK0tYaRa Date: Wed, 11 Mar 2026 02:29:01 +0200 Subject: [PATCH] fixed python packages AGAIN --- flake.lock | 27 +++++++++++++++++++++++++++ flake.nix | 23 ++++++++++++++++++++++- pkgs/default.nix | 37 ++++++++++++++++++++++++++++++++++++- 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 flake.lock diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..3e38940 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1772963539, + "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 59261f5..5afec2b 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,21 @@ forFlakeOutputs = true; }; - mkDefault = p: if p ? raganything then p.raganything else p.${builtins.head (lib.attrNames p)}; + flakePythonPackages = + system: + import ./pkgs { + pkgs = pkgsFinal system; + prev = pkgsPrev system; + lib = (pkgsPrev system).lib; + forPythonScope = true; + }; + + mkDefault = + p: + let + directNames = lib.filter (name: lib.isDerivation p.${name}) (lib.attrNames p); + in + if p ? raganything then p.raganything else p.${builtins.head directNames}; in { overlays.default = overlay; @@ -42,5 +56,12 @@ in p // { default = mkDefault p; } ); + + legacyPackages = forAllSystems ( + system: + { + python3Packages = flakePythonPackages system; + } + ); }; } diff --git a/pkgs/default.nix b/pkgs/default.nix index f874bea..94243aa 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,10 +3,12 @@ prev, lib, forFlakeOutputs ? false, + forPythonScope ? false, ... }: let dirs = path: lib.attrNames (lib.filterAttrs (_: t: t == "directory") (builtins.readDir path)); + pythonPackagesDir = ./by-category/pythonPackages; packagesFromTree = base: callPackage: @@ -48,5 +50,38 @@ let }; overlayAttrs = byNamePkgs // byCategoryPkgs; + directFlakePackages = lib.filterAttrs (_: lib.isDerivation) overlayAttrs; + + flakePythonPackages = + let + pyPkgs = if pkgs ? python313Packages then pkgs.python313Packages else pkgs.python3Packages; + treePkgs = + if builtins.pathExists pythonPackagesDir then + removeAttrs (packagesFromTree pythonPackagesDir pyPkgs.callPackage) [ + "python-packages" + ] + else + { }; + prefabPkgs = + if builtins.pathExists (pythonPackagesDir + "/prefab-builder.nix") then + prev.lib.customisation.callPackagesWith ( + pyPkgs + // { + lib = prev.lib; + pkgs = prev; + pyPkgs = pyPkgs; + fetchFromGitHub = prev.fetchFromGitHub; + fetchPypi = prev.fetchPypi; + } + ) (pythonPackagesDir + "/prefab-builder.nix") { } + else + { }; + in + treePkgs // prefabPkgs; in -if forFlakeOutputs then lib.filterAttrs (_: lib.isDerivation) overlayAttrs else overlayAttrs +if forPythonScope then + flakePythonPackages +else if forFlakeOutputs then + directFlakePackages +else + overlayAttrs