mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-05 09:11:39 -05:00
Merge pull request #137 from nix-community/overridescope
Wrap poetry2nix in a scope to make internals overridable
This commit is contained in:
commit
eee5d0e8c3
8 changed files with 354 additions and 28 deletions
52
README.md
52
README.md
|
@ -154,6 +154,58 @@ poetry2nix.cleanPythonSources {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Creating a custom Poetry2nix instance
|
||||||
|
Sometimes when it can be convenient to create a custom instance of `poetry2nix` with a different set of default overrides.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
```nix
|
||||||
|
let
|
||||||
|
# self & super refers to poetry2nix
|
||||||
|
p2nix = poetry2nix.overrideScope' (self: super: {
|
||||||
|
|
||||||
|
# pyself & pysuper refers to python packages
|
||||||
|
defaultPoetryOverrides = super.defaultPoetryOverrides.extend (pyself: pysuper: {
|
||||||
|
|
||||||
|
my-custom-pkg = super.my-custom-pkg.overridePythonAttrs (oldAttrs: { });
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
in
|
||||||
|
p2nix.mkPoetryApplication {
|
||||||
|
projectDir = ./.;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
or as a [nixpkgs overlay](https://nixos.org/nixpkgs/manual/#chap-overlays):
|
||||||
|
```nix
|
||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> {
|
||||||
|
overlays = [
|
||||||
|
# self & super refers to nixpkgs
|
||||||
|
(self: super: {
|
||||||
|
|
||||||
|
# p2self & p2super refers to poetry2nix
|
||||||
|
poetry2nix = super.poetry2nix.overrideScope' (p2nixself: p2nixsuper: {
|
||||||
|
|
||||||
|
# pyself & pysuper refers to python packages
|
||||||
|
defaultPoetryOverrides = p2nixsuper.defaultPoetryOverrides.extend (pyself: pysuper: {
|
||||||
|
|
||||||
|
my-custom-pkg = super.my-custom-pkg.overridePythonAttrs (oldAttrs: { });
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
in pkgs.poetry2nix.mkPoetryApplication {
|
||||||
|
projectDir = ./.;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
72
default.nix
72
default.nix
|
@ -6,11 +6,7 @@
|
||||||
let
|
let
|
||||||
inherit (poetryLib) isCompatible readTOML moduleName;
|
inherit (poetryLib) isCompatible readTOML moduleName;
|
||||||
|
|
||||||
# Poetry2nix version
|
|
||||||
version = "1.10.0";
|
|
||||||
|
|
||||||
/* The default list of poetry2nix override overlays */
|
/* The default list of poetry2nix override overlays */
|
||||||
defaultPoetryOverrides = (import ./overrides.nix { inherit pkgs lib; });
|
|
||||||
mkEvalPep508 = import ./pep508.nix {
|
mkEvalPep508 = import ./pep508.nix {
|
||||||
inherit lib poetryLib;
|
inherit lib poetryLib;
|
||||||
stdenv = pkgs.stdenv;
|
stdenv = pkgs.stdenv;
|
||||||
|
@ -24,6 +20,11 @@ let
|
||||||
|
|
||||||
# Experimental withPlugins functionality
|
# Experimental withPlugins functionality
|
||||||
toPluginAble = (import ./plugins.nix { inherit pkgs lib; }).toPluginAble;
|
toPluginAble = (import ./plugins.nix { inherit pkgs lib; }).toPluginAble;
|
||||||
|
in
|
||||||
|
lib.makeScope pkgs.newScope (self: {
|
||||||
|
|
||||||
|
# Poetry2nix version
|
||||||
|
version = "1.10.0";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
|
Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
|
||||||
|
@ -32,7 +33,7 @@ let
|
||||||
{ projectDir ? null
|
{ projectDir ? null
|
||||||
, pyproject ? projectDir + "/pyproject.toml"
|
, pyproject ? projectDir + "/pyproject.toml"
|
||||||
, poetrylock ? projectDir + "/poetry.lock"
|
, poetrylock ? projectDir + "/poetry.lock"
|
||||||
, overrides ? [ defaultPoetryOverrides ]
|
, overrides ? self.defaultPoetryOverrides
|
||||||
, python ? pkgs.python3
|
, python ? pkgs.python3
|
||||||
, pwd ? projectDir
|
, pwd ? projectDir
|
||||||
, preferWheels ? false
|
, preferWheels ? false
|
||||||
|
@ -121,7 +122,7 @@ let
|
||||||
# Create poetry2nix layer
|
# Create poetry2nix layer
|
||||||
baseOverlay
|
baseOverlay
|
||||||
] ++ # User provided overrides
|
] ++ # User provided overrides
|
||||||
overrides
|
(if builtins.typeOf overrides == "list" then overrides else [ overrides ])
|
||||||
);
|
);
|
||||||
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) overlays;
|
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) overlays;
|
||||||
py = python.override { inherit packageOverrides; self = py; };
|
py = python.override { inherit packageOverrides; self = py; };
|
||||||
|
@ -144,7 +145,7 @@ let
|
||||||
{ projectDir ? null
|
{ projectDir ? null
|
||||||
, pyproject ? projectDir + "/pyproject.toml"
|
, pyproject ? projectDir + "/pyproject.toml"
|
||||||
, poetrylock ? projectDir + "/poetry.lock"
|
, poetrylock ? projectDir + "/poetry.lock"
|
||||||
, overrides ? [ defaultPoetryOverrides ]
|
, overrides ? self.defaultPoetryOverrides
|
||||||
, pwd ? projectDir
|
, pwd ? projectDir
|
||||||
, python ? pkgs.python3
|
, python ? pkgs.python3
|
||||||
, preferWheels ? false
|
, preferWheels ? false
|
||||||
|
@ -152,7 +153,7 @@ let
|
||||||
, editablePackageSources ? { }
|
, editablePackageSources ? { }
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
py = mkPoetryPackages (
|
py = self.mkPoetryPackages (
|
||||||
{
|
{
|
||||||
inherit pyproject poetrylock overrides python pwd preferWheels;
|
inherit pyproject poetrylock overrides python pwd preferWheels;
|
||||||
}
|
}
|
||||||
|
@ -175,10 +176,10 @@ let
|
||||||
*/
|
*/
|
||||||
mkPoetryApplication =
|
mkPoetryApplication =
|
||||||
{ projectDir ? null
|
{ projectDir ? null
|
||||||
, src ? poetryLib.cleanPythonSources { src = projectDir; }
|
, src ? self.cleanPythonSources { src = projectDir; }
|
||||||
, pyproject ? projectDir + "/pyproject.toml"
|
, pyproject ? projectDir + "/pyproject.toml"
|
||||||
, poetrylock ? projectDir + "/poetry.lock"
|
, poetrylock ? projectDir + "/poetry.lock"
|
||||||
, overrides ? [ defaultPoetryOverrides ]
|
, overrides ? self.defaultPoetryOverrides
|
||||||
, meta ? { }
|
, meta ? { }
|
||||||
, python ? pkgs.python3
|
, python ? pkgs.python3
|
||||||
, pwd ? projectDir
|
, pwd ? projectDir
|
||||||
|
@ -187,7 +188,7 @@ let
|
||||||
, ...
|
, ...
|
||||||
}@attrs:
|
}@attrs:
|
||||||
let
|
let
|
||||||
poetryPython = mkPoetryPackages {
|
poetryPython = self.mkPoetryPackages {
|
||||||
inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap;
|
inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap;
|
||||||
};
|
};
|
||||||
py = poetryPython.python;
|
py = poetryPython.python;
|
||||||
|
@ -273,27 +274,46 @@ let
|
||||||
app;
|
app;
|
||||||
|
|
||||||
/* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies */
|
/* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies */
|
||||||
cli = import ./cli.nix { inherit pkgs lib version; };
|
cli = import ./cli.nix {
|
||||||
in
|
inherit pkgs lib;
|
||||||
{
|
inherit (self) version;
|
||||||
inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages cli version;
|
};
|
||||||
|
|
||||||
|
# inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages;
|
||||||
|
|
||||||
inherit (poetryLib) cleanPythonSources;
|
inherit (poetryLib) cleanPythonSources;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Create a new default set of overrides with the same structure as the built-in ones
|
||||||
|
*/
|
||||||
|
mkDefaultPoetryOverrides = defaults: {
|
||||||
|
__functor = defaults;
|
||||||
|
|
||||||
|
extend = overlay:
|
||||||
|
let
|
||||||
|
composed = lib.foldr lib.composeExtensions overlay [ defaults ];
|
||||||
|
in
|
||||||
|
self.mkDefaultPoetryOverrides composed;
|
||||||
|
|
||||||
|
overrideOverlay = fn:
|
||||||
|
let
|
||||||
|
overlay = self: super:
|
||||||
|
let
|
||||||
|
defaultSet = defaults self super;
|
||||||
|
customSet = fn self super;
|
||||||
|
in
|
||||||
|
defaultSet // customSet;
|
||||||
|
in
|
||||||
|
self.mkDefaultPoetryOverrides overlay;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The default list of poetry2nix override overlays
|
The default list of poetry2nix override overlays
|
||||||
|
|
||||||
Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
|
Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
|
||||||
*/
|
*/
|
||||||
defaultPoetryOverrides = {
|
defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; });
|
||||||
__functor = defaultPoetryOverrides;
|
|
||||||
overrideOverlay = fn: self: super:
|
|
||||||
let
|
|
||||||
defaultSet = defaultPoetryOverrides self super;
|
|
||||||
customSet = fn self super;
|
|
||||||
in
|
|
||||||
defaultSet // customSet;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Convenience functions for specifying overlays with or without the poerty2nix default overrides
|
Convenience functions for specifying overlays with or without the poerty2nix default overrides
|
||||||
|
@ -311,8 +331,8 @@ in
|
||||||
combining it with poetry2nix default overrides
|
combining it with poetry2nix default overrides
|
||||||
*/
|
*/
|
||||||
withDefaults = overlay: [
|
withDefaults = overlay: [
|
||||||
defaultPoetryOverrides
|
self.defaultPoetryOverrides
|
||||||
overlay
|
overlay
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|
18
tests/composable-defaults/default.nix
Normal file
18
tests/composable-defaults/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ lib, poetry2nix, python3 }:
|
||||||
|
let
|
||||||
|
p2nix = poetry2nix.overrideScope' (self: super: {
|
||||||
|
|
||||||
|
defaultPoetryOverrides = (super.defaultPoetryOverrides.extend (pyself: pysuper: {
|
||||||
|
my-custom-pkg = super.my-custom-pkg.overridePythonAttrs (oldAttrs: { });
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
in
|
||||||
|
p2nix.mkPoetryApplication {
|
||||||
|
python = python3;
|
||||||
|
projectDir = ./.;
|
||||||
|
overrides = p2nix.overrides.withDefaults (self: super: {
|
||||||
|
customjox = super.customjox;
|
||||||
|
});
|
||||||
|
}
|
221
tests/composable-defaults/poetry.lock
generated
Normal file
221
tests/composable-defaults/poetry.lock
generated
Normal file
|
@ -0,0 +1,221 @@
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "A database migration tool for SQLAlchemy."
|
||||||
|
name = "alembic"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.0.10"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
Mako = "*"
|
||||||
|
SQLAlchemy = ">=0.9.0"
|
||||||
|
python-dateutil = "*"
|
||||||
|
python-editor = ">=0.3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Composable command line interface toolkit"
|
||||||
|
name = "click"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "7.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "A simple framework for building complex web applications."
|
||||||
|
name = "flask"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
version = "1.1.1"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
Jinja2 = ">=2.10.1"
|
||||||
|
Werkzeug = ">=0.15"
|
||||||
|
click = ">=5.1"
|
||||||
|
itsdangerous = ">=0.24"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
|
||||||
|
docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"]
|
||||||
|
dotenv = ["python-dotenv"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Various helpers to pass data to untrusted environments and back."
|
||||||
|
name = "itsdangerous"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.1.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "A very fast and expressive template engine."
|
||||||
|
name = "jinja2"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
version = "2.10.3"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
MarkupSafe = ">=0.23"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
i18n = ["Babel (>=0.8)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "A super-fast templating language that borrows the best ideas from the existing templating languages."
|
||||||
|
name = "mako"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.1.0"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
MarkupSafe = ">=0.9.2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Safely add untrusted strings to HTML/XML markup."
|
||||||
|
name = "markupsafe"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
|
||||||
|
version = "1.1.1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Extensions to the standard Python datetime module"
|
||||||
|
name = "python-dateutil"
|
||||||
|
optional = false
|
||||||
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
||||||
|
version = "2.8.1"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
six = ">=1.5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Programmatically open an editor, capture the result."
|
||||||
|
name = "python-editor"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
version = "1.0.4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Python 2 and 3 compatibility utilities"
|
||||||
|
name = "six"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*"
|
||||||
|
version = "1.13.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "Database Abstraction Library"
|
||||||
|
name = "sqlalchemy"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "1.3.11"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
mssql = ["pyodbc"]
|
||||||
|
mssql_pymssql = ["pymssql"]
|
||||||
|
mssql_pyodbc = ["pyodbc"]
|
||||||
|
mysql = ["mysqlclient"]
|
||||||
|
oracle = ["cx-oracle"]
|
||||||
|
postgresql = ["psycopg2"]
|
||||||
|
postgresql_pg8000 = ["pg8000"]
|
||||||
|
postgresql_psycopg2binary = ["psycopg2-binary"]
|
||||||
|
postgresql_psycopg2cffi = ["psycopg2cffi"]
|
||||||
|
pymysql = ["pymysql"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
category = "main"
|
||||||
|
description = "The comprehensive WSGI web application library."
|
||||||
|
name = "werkzeug"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||||
|
version = "0.16.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"]
|
||||||
|
termcolor = ["termcolor"]
|
||||||
|
watchdog = ["watchdog"]
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
content-hash = "ae696aa80655f7bf9b8b9fd7185e7c4da38cf26ebc601d02d8c7d529e58399de"
|
||||||
|
python-versions = "^3.6"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
alembic = [
|
||||||
|
{file = "alembic-1.0.10.tar.gz", hash = "sha256:828dcaa922155a2b7166c4f36ec45268944e4055c86499bd14319b4c8c0094b7"},
|
||||||
|
]
|
||||||
|
click = [
|
||||||
|
{file = "Click-7.0-py2.py3-none-any.whl", hash = "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13"},
|
||||||
|
{file = "Click-7.0.tar.gz", hash = "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"},
|
||||||
|
]
|
||||||
|
flask = [
|
||||||
|
{file = "Flask-1.1.1-py2.py3-none-any.whl", hash = "sha256:45eb5a6fd193d6cf7e0cf5d8a5b31f83d5faae0293695626f539a823e93b13f6"},
|
||||||
|
{file = "Flask-1.1.1.tar.gz", hash = "sha256:13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52"},
|
||||||
|
]
|
||||||
|
itsdangerous = [
|
||||||
|
{file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"},
|
||||||
|
{file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"},
|
||||||
|
]
|
||||||
|
jinja2 = [
|
||||||
|
{file = "Jinja2-2.10.3-py2.py3-none-any.whl", hash = "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f"},
|
||||||
|
{file = "Jinja2-2.10.3.tar.gz", hash = "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de"},
|
||||||
|
]
|
||||||
|
mako = [
|
||||||
|
{file = "Mako-1.1.0.tar.gz", hash = "sha256:a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b"},
|
||||||
|
]
|
||||||
|
markupsafe = [
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
|
||||||
|
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
|
||||||
|
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
|
||||||
|
]
|
||||||
|
python-dateutil = [
|
||||||
|
{file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"},
|
||||||
|
{file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"},
|
||||||
|
]
|
||||||
|
python-editor = [
|
||||||
|
{file = "python-editor-1.0.4.tar.gz", hash = "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b"},
|
||||||
|
{file = "python_editor-1.0.4-py2-none-any.whl", hash = "sha256:5f98b069316ea1c2ed3f67e7f5df6c0d8f10b689964a4a811ff64f0106819ec8"},
|
||||||
|
{file = "python_editor-1.0.4-py2.7.egg", hash = "sha256:ea87e17f6ec459e780e4221f295411462e0d0810858e055fc514684350a2f522"},
|
||||||
|
{file = "python_editor-1.0.4-py3-none-any.whl", hash = "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d"},
|
||||||
|
{file = "python_editor-1.0.4-py3.5.egg", hash = "sha256:c3da2053dbab6b29c94e43c486ff67206eafbe7eb52dbec7390b5e2fb05aac77"},
|
||||||
|
]
|
||||||
|
six = [
|
||||||
|
{file = "six-1.13.0-py2.py3-none-any.whl", hash = "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd"},
|
||||||
|
{file = "six-1.13.0.tar.gz", hash = "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"},
|
||||||
|
]
|
||||||
|
sqlalchemy = [
|
||||||
|
{file = "SQLAlchemy-1.3.11.tar.gz", hash = "sha256:afa5541e9dea8ad0014251bc9d56171ca3d8b130c9627c6cb3681cff30be3f8a"},
|
||||||
|
]
|
||||||
|
werkzeug = [
|
||||||
|
{file = "Werkzeug-0.16.0-py2.py3-none-any.whl", hash = "sha256:e5f4a1f98b52b18a93da705a7458e55afb26f32bff83ff5d19189f92462d65c4"},
|
||||||
|
{file = "Werkzeug-0.16.0.tar.gz", hash = "sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7"},
|
||||||
|
]
|
14
tests/composable-defaults/pyproject.toml
Normal file
14
tests/composable-defaults/pyproject.toml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "composable_defaults"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "poetry2nix test"
|
||||||
|
authors = ["Your Name <you@example.com>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.6"
|
||||||
|
alembic = "1.0.10"
|
||||||
|
Flask = "^1.1.1"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry>=0.12"]
|
||||||
|
build-backend = "poetry.masonry.api"
|
|
@ -11,6 +11,7 @@ in
|
||||||
builtins.removeAttrs
|
builtins.removeAttrs
|
||||||
{
|
{
|
||||||
trivial = callTest ./trivial { };
|
trivial = callTest ./trivial { };
|
||||||
|
composable-defaults = callTest ./composable-defaults { };
|
||||||
override = callTest ./override-support { };
|
override = callTest ./override-support { };
|
||||||
override-default = callTest ./override-default-support { };
|
override-default = callTest ./override-default-support { };
|
||||||
top-packages-1 = callTest ./common-pkgs-1 { };
|
top-packages-1 = callTest ./common-pkgs-1 { };
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
poetrylock = ./poetry.lock;
|
poetrylock = ./poetry.lock;
|
||||||
pyproject = ./pyproject.toml;
|
pyproject = ./pyproject.toml;
|
||||||
overrides = [
|
overrides = [
|
||||||
(
|
((
|
||||||
poetry2nix.defaultPoetryOverrides.overrideOverlay (
|
poetry2nix.defaultPoetryOverrides.overrideOverlay (
|
||||||
self: super: {
|
self: super: {
|
||||||
alembic = super.alembic.overrideAttrs (
|
alembic = super.alembic.overrideAttrs (
|
||||||
|
@ -16,7 +16,7 @@ let
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
).extend (pyself: pysuper: { })) # Test .extend for good measure
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|
Loading…
Add table
Reference in a new issue