mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-05 09:11:39 -05:00
Allow taking functors as overlays
This allows for making the default overrides customisable by exposing them as a set with an override function.
This commit is contained in:
parent
03d439fed3
commit
e9e5ce266e
2 changed files with 34 additions and 16 deletions
49
default.nix
49
default.nix
|
@ -18,6 +18,8 @@ let
|
|||
stdenv = pkgs.stdenv;
|
||||
};
|
||||
|
||||
getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn;
|
||||
|
||||
getAttrDefault = attribute: set: default: (
|
||||
if builtins.hasAttr attribute set
|
||||
then builtins.getAttr attribute set
|
||||
|
@ -83,21 +85,23 @@ let
|
|||
in
|
||||
lockPkgs;
|
||||
|
||||
overlays = [
|
||||
(
|
||||
self: super: {
|
||||
mkPoetryDep = self.callPackage ./mk-poetry-dep.nix {
|
||||
inherit pkgs lib python poetryLib;
|
||||
};
|
||||
poetry = poetryPkg;
|
||||
}
|
||||
)
|
||||
# Null out any filtered packages, we don't want python.pkgs from nixpkgs
|
||||
(self: super: builtins.listToAttrs (builtins.map (x: { name = x.name; value = null; }) incompatible))
|
||||
# Create poetry2nix layer
|
||||
baseOverlay
|
||||
] ++ # User provided overrides
|
||||
overrides;
|
||||
overlays = builtins.map getFunctorFn (
|
||||
[
|
||||
(
|
||||
self: super: {
|
||||
mkPoetryDep = self.callPackage ./mk-poetry-dep.nix {
|
||||
inherit pkgs lib python poetryLib;
|
||||
};
|
||||
poetry = poetryPkg;
|
||||
}
|
||||
)
|
||||
# Null out any filtered packages, we don't want python.pkgs from nixpkgs
|
||||
(self: super: builtins.listToAttrs (builtins.map (x: { name = x.name; value = null; }) incompatible))
|
||||
# Create poetry2nix layer
|
||||
baseOverlay
|
||||
] ++ # User provided overrides
|
||||
overrides
|
||||
);
|
||||
|
||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) overlays;
|
||||
|
||||
|
@ -231,5 +235,18 @@ let
|
|||
|
||||
in
|
||||
{
|
||||
inherit mkPoetryEnv mkPoetryApplication defaultPoetryOverrides cli doc;
|
||||
inherit mkPoetryEnv mkPoetryApplication cli doc;
|
||||
|
||||
/*
|
||||
The default list of poetry2nix override overlays
|
||||
|
||||
Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
|
||||
*/
|
||||
defaultPoetryOverrides = {
|
||||
__functor = defaultPoetryOverrides;
|
||||
overrideOverlay = fn: self: super: let
|
||||
defaultSet = defaultPoetryOverrides self super;
|
||||
customSet = fn self super;
|
||||
in defaultSet // customSet;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ in
|
|||
{
|
||||
trivial = pkgs.callPackage ./trivial { inherit poetry2nix; };
|
||||
override = pkgs.callPackage ./override-support { inherit poetry2nix; };
|
||||
override-default = pkgs.callPackage ./override-default-support { inherit poetry2nix; };
|
||||
top-packages-1 = pkgs.callPackage ./common-pkgs-1 { inherit poetry2nix; };
|
||||
top-packages-2 = pkgs.callPackage ./common-pkgs-2 { inherit poetry2nix; };
|
||||
pep425 = pkgs.callPackage ./pep425 { inherit pep425; inherit pep425OSX; inherit pep425Python37; };
|
||||
|
|
Loading…
Add table
Reference in a new issue