mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-05 17:21: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;
|
stdenv = pkgs.stdenv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn;
|
||||||
|
|
||||||
getAttrDefault = attribute: set: default: (
|
getAttrDefault = attribute: set: default: (
|
||||||
if builtins.hasAttr attribute set
|
if builtins.hasAttr attribute set
|
||||||
then builtins.getAttr attribute set
|
then builtins.getAttr attribute set
|
||||||
|
@ -83,21 +85,23 @@ let
|
||||||
in
|
in
|
||||||
lockPkgs;
|
lockPkgs;
|
||||||
|
|
||||||
overlays = [
|
overlays = builtins.map getFunctorFn (
|
||||||
(
|
[
|
||||||
self: super: {
|
(
|
||||||
mkPoetryDep = self.callPackage ./mk-poetry-dep.nix {
|
self: super: {
|
||||||
inherit pkgs lib python poetryLib;
|
mkPoetryDep = self.callPackage ./mk-poetry-dep.nix {
|
||||||
};
|
inherit pkgs lib python poetryLib;
|
||||||
poetry = poetryPkg;
|
};
|
||||||
}
|
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))
|
# Null out any filtered packages, we don't want python.pkgs from nixpkgs
|
||||||
# Create poetry2nix layer
|
(self: super: builtins.listToAttrs (builtins.map (x: { name = x.name; value = null; }) incompatible))
|
||||||
baseOverlay
|
# Create poetry2nix layer
|
||||||
] ++ # User provided overrides
|
baseOverlay
|
||||||
overrides;
|
] ++ # User provided overrides
|
||||||
|
overrides
|
||||||
|
);
|
||||||
|
|
||||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) overlays;
|
packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) overlays;
|
||||||
|
|
||||||
|
@ -231,5 +235,18 @@ let
|
||||||
|
|
||||||
in
|
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; };
|
trivial = pkgs.callPackage ./trivial { inherit poetry2nix; };
|
||||||
override = pkgs.callPackage ./override-support { 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-1 = pkgs.callPackage ./common-pkgs-1 { inherit poetry2nix; };
|
||||||
top-packages-2 = pkgs.callPackage ./common-pkgs-2 { inherit poetry2nix; };
|
top-packages-2 = pkgs.callPackage ./common-pkgs-2 { inherit poetry2nix; };
|
||||||
pep425 = pkgs.callPackage ./pep425 { inherit pep425; inherit pep425OSX; inherit pep425Python37; };
|
pep425 = pkgs.callPackage ./pep425 { inherit pep425; inherit pep425OSX; inherit pep425Python37; };
|
||||||
|
|
Loading…
Add table
Reference in a new issue