mirror of
https://github.com/nix-community/dream2nix.git
synced 2024-08-16 18:00:30 +03:00
Merge branch 'main' into docs
This commit is contained in:
commit
a7ebf95ad4
@ -145,11 +145,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1717893485,
|
||||
"narHash": "sha256-WMU6ZRZrBgEUDIF0siu2aIyVAXcxfElSwzZtS/mSpN4=",
|
||||
"lastModified": 1719285171,
|
||||
"narHash": "sha256-kOUKtKfYEh8h8goL/P6lKF4Jb0sXnEkFyEganzdTGvo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3bcedce9f4de37570242faf16e1e143583407eab",
|
||||
"rev": "cfb89a95f19bea461fc37228dc4d07b22fe617c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -0,0 +1,36 @@
|
||||
# An example package with dependencies defined via pyproject.toml
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
dream2nix,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
dream2nix.modules.dream2nix.WIP-python-pdm
|
||||
];
|
||||
|
||||
deps = {nixpkgs, ...}: {
|
||||
python = nixpkgs.python3;
|
||||
};
|
||||
|
||||
mkDerivation = {
|
||||
src = lib.cleanSourceWith {
|
||||
src = lib.cleanSource ./.;
|
||||
filter = name: type:
|
||||
!(builtins.any (x: x) [
|
||||
(lib.hasSuffix ".nix" name)
|
||||
(lib.hasPrefix "." (builtins.baseNameOf name))
|
||||
(lib.hasSuffix "flake.lock" name)
|
||||
]);
|
||||
};
|
||||
};
|
||||
pdm.lockfile = ./pdm.lock;
|
||||
pdm.pyproject = ./pyproject.toml;
|
||||
|
||||
buildPythonPackage = {
|
||||
format = lib.mkForce "pyproject";
|
||||
pythonImportsCheck = [
|
||||
"mytool"
|
||||
];
|
||||
};
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
{
|
||||
"nodes": {
|
||||
"dream2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"purescript-overlay": "purescript-overlay",
|
||||
"pyproject-nix": "pyproject-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1718044496,
|
||||
"narHash": "sha256-IBfzTEq2twaEDdBenwl2k60QASIpU18yUAMyifoYkaM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"rev": "2ab68c8d27a3cd6083e7a2f27d6363577d8532e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1717893485,
|
||||
"narHash": "sha256-WMU6ZRZrBgEUDIF0siu2aIyVAXcxfElSwzZtS/mSpN4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3bcedce9f4de37570242faf16e1e143583407eab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"purescript-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"slimlock": "slimlock"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696022621,
|
||||
"narHash": "sha256-eMjFmsj2G1E0Q5XiibUNgFjTiSz0GxIeSSzzVdoN730=",
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "purescript-overlay",
|
||||
"rev": "047c7933abd6da8aa239904422e22d190ce55ead",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "purescript-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pyproject-nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1702448246,
|
||||
"narHash": "sha256-hFg5s/hoJFv7tDpiGvEvXP0UfFvFEDgTdyHIjDVHu1I=",
|
||||
"owner": "davhau",
|
||||
"repo": "pyproject.nix",
|
||||
"rev": "5a06a2697b228c04dd2f35659b4b659ca74f7aeb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "davhau",
|
||||
"ref": "dream2nix",
|
||||
"repo": "pyproject.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"dream2nix": "dream2nix",
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
}
|
||||
},
|
||||
"slimlock": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"purescript-overlay",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688610262,
|
||||
"narHash": "sha256-Wg0ViDotFWGWqKIQzyYCgayeH8s4U1OZcTiWTQYdAp4=",
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "slimlock",
|
||||
"rev": "b5c6cdcaf636ebbebd0a1f32520929394493f1a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "slimlock",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
{
|
||||
description = "My flake with dream2nix packages";
|
||||
|
||||
inputs = {
|
||||
dream2nix.url = "github:nix-community/dream2nix";
|
||||
nixpkgs.follows = "dream2nix/nixpkgs";
|
||||
};
|
||||
|
||||
outputs = inputs @ {
|
||||
self,
|
||||
dream2nix,
|
||||
nixpkgs,
|
||||
...
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
packages.${system}.default = dream2nix.lib.evalModules {
|
||||
packageSets.nixpkgs = pkgs;
|
||||
modules = [
|
||||
./default.nix
|
||||
{
|
||||
paths.projectRoot = ./.;
|
||||
# can be changed to ".git" or "flake.nix" to get rid of .project-root
|
||||
paths.projectRootFile = "flake.nix";
|
||||
paths.package = ./.;
|
||||
}
|
||||
];
|
||||
};
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
# inherit from the dream2nix generated dev shell
|
||||
inputsFrom = [self.packages.${system}.default.devShell];
|
||||
# add extra packages
|
||||
packages = [
|
||||
pkgs.hello
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -0,0 +1,144 @@
|
||||
# This file is @generated by PDM.
|
||||
# It is not intended for manual editing.
|
||||
|
||||
[metadata]
|
||||
groups = ["default"]
|
||||
strategy = ["cross_platform", "inherit_metadata"]
|
||||
lock_version = "4.4.1"
|
||||
content_hash = "sha256:e68e986bb1a258de4595bc66c55e67dc06f2b3f5a3a3f55da5a4702714797b6b"
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2024.6.2"
|
||||
requires_python = ">=3.6"
|
||||
summary = "Python package for providing Mozilla's CA Bundle."
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"},
|
||||
{file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "charset-normalizer"
|
||||
version = "3.3.2"
|
||||
requires_python = ">=3.7.0"
|
||||
summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
|
||||
{file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
|
||||
{file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
|
||||
{file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
|
||||
{file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
|
||||
{file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
|
||||
{file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "3.7"
|
||||
requires_python = ">=3.5"
|
||||
summary = "Internationalized Domain Names in Applications (IDNA)"
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
|
||||
{file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
version = "2.32.3"
|
||||
requires_python = ">=3.8"
|
||||
summary = "Python HTTP for Humans."
|
||||
groups = ["default"]
|
||||
dependencies = [
|
||||
"certifi>=2017.4.17",
|
||||
"charset-normalizer<4,>=2",
|
||||
"idna<4,>=2.5",
|
||||
"urllib3<3,>=1.21.1",
|
||||
]
|
||||
files = [
|
||||
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
|
||||
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "urllib3"
|
||||
version = "2.2.1"
|
||||
requires_python = ">=3.8"
|
||||
summary = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||
groups = ["default"]
|
||||
files = [
|
||||
{file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"},
|
||||
{file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"},
|
||||
]
|
@ -0,0 +1,24 @@
|
||||
[build-system]
|
||||
requires = [ "setuptools" ]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "mytool"
|
||||
description = "my tool"
|
||||
version = "1.0.0"
|
||||
dependencies = [
|
||||
"requests",
|
||||
]
|
||||
requires-python = ">=3.8"
|
||||
|
||||
[project.scripts]
|
||||
my-tool = "my_tool:main"
|
||||
|
||||
[project.optional-dependencies]
|
||||
extra = [
|
||||
"simplejson>=3.19.2",
|
||||
]
|
||||
[tool.pdm.dev-dependencies]
|
||||
test = [
|
||||
"pytest>=8.2.1",
|
||||
]
|
@ -32,7 +32,7 @@ in {
|
||||
buildPythonPackage = {
|
||||
format = lib.mkForce "pyproject";
|
||||
pythonImportsCheck = [
|
||||
"my_tool"
|
||||
"mytool"
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
"sources": {
|
||||
"certifi": {
|
||||
"is_direct": false,
|
||||
"sha256": "dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1",
|
||||
"sha256": "ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl",
|
||||
"version": "2024.2.2"
|
||||
"url": "https://files.pythonhosted.org/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl",
|
||||
"version": "2024.6.2"
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"is_direct": false,
|
||||
@ -17,8 +17,8 @@
|
||||
},
|
||||
"click": {
|
||||
"is_direct": true,
|
||||
"rev": "f8857cb03268b5b952b88b2acb3e11d9f0f7b6e4",
|
||||
"sha256": "0pcapxavyn8fqxjkwdidl7cdy24cvysyqi9rbhfsfxivp9715bvf",
|
||||
"rev": "923d197b56caa9ffea21edeef5baf1816585b099",
|
||||
"sha256": "0952vl5cfbb7inc5v5cl232fw776xfc0ygmyj4hzh70l9v0gpk2n",
|
||||
"type": "git",
|
||||
"url": "https://github.com/pallets/click.git",
|
||||
"version": "8.2.0.dev0"
|
||||
@ -32,17 +32,17 @@
|
||||
},
|
||||
"requests": {
|
||||
"is_direct": false,
|
||||
"sha256": "58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f",
|
||||
"sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl",
|
||||
"version": "2.31.0"
|
||||
"url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl",
|
||||
"version": "2.32.3"
|
||||
},
|
||||
"setuptools": {
|
||||
"is_direct": false,
|
||||
"sha256": "c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32",
|
||||
"sha256": "54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/f7/29/13965af254e3373bceae8fb9a0e6ea0d0e571171b80d6646932131d6439b/setuptools-69.5.1-py3-none-any.whl",
|
||||
"version": "69.5.1"
|
||||
"url": "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl",
|
||||
"version": "70.0.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"is_direct": false,
|
||||
|
@ -3,7 +3,7 @@ requires = [ "setuptools" ]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "my-tool"
|
||||
name = "mytool"
|
||||
description = "my tool"
|
||||
version = "1.0.0"
|
||||
dependencies = [
|
||||
|
@ -0,0 +1,5 @@
|
||||
import requests
|
||||
|
||||
|
||||
def main():
|
||||
print("Hello World!")
|
@ -2,11 +2,11 @@
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1717893485,
|
||||
"narHash": "sha256-WMU6ZRZrBgEUDIF0siu2aIyVAXcxfElSwzZtS/mSpN4=",
|
||||
"lastModified": 1719285171,
|
||||
"narHash": "sha256-kOUKtKfYEh8h8goL/P6lKF4Jb0sXnEkFyEganzdTGvo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3bcedce9f4de37570242faf16e1e143583407eab",
|
||||
"rev": "cfb89a95f19bea461fc37228dc4d07b22fe617c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -81,6 +81,8 @@ in {
|
||||
runCommand
|
||||
stdenvNoCC
|
||||
stdenv
|
||||
writeText
|
||||
unzip
|
||||
;
|
||||
python = lib.mkDefault config.deps.python3;
|
||||
};
|
||||
@ -92,7 +94,16 @@ in {
|
||||
python = lib.mkDefault config.deps.python;
|
||||
};
|
||||
};
|
||||
pdm.sourceSelector = lib.mkDefault libpdm.preferWheelSelector;
|
||||
pdm = {
|
||||
sourceSelector = lib.mkDefault libpdm.preferWheelSelector;
|
||||
inherit (config) overrides overrideAll;
|
||||
inherit (config) name paths;
|
||||
inherit (config.public) pyEnv;
|
||||
# make root package always editable
|
||||
editables = {
|
||||
${config.name} = config.paths.package;
|
||||
};
|
||||
};
|
||||
buildPythonPackage = {
|
||||
format = lib.mkDefault "pyproject";
|
||||
};
|
||||
@ -106,19 +117,41 @@ in {
|
||||
};
|
||||
|
||||
public.pyEnv = let
|
||||
pyEnv' = config.deps.python.withPackages (ps: config.mkDerivation.propagatedBuildInputs);
|
||||
pyEnv' = config.deps.python.withPackages (
|
||||
ps:
|
||||
config.mkDerivation.propagatedBuildInputs
|
||||
# the editableShellHook requires wheel and other build system deps.
|
||||
++ config.mkDerivation.buildInputs
|
||||
++ [config.deps.python.pkgs.wheel]
|
||||
);
|
||||
in
|
||||
pyEnv'.override (old: {
|
||||
# namespaced packages are triggering a collision error, but this can be
|
||||
# safely ignored. They are still set up correctly and can be imported.
|
||||
ignoreCollisions = true;
|
||||
});
|
||||
public.shellHook = config.pdm.editablesShellHook;
|
||||
|
||||
public.devShell = config.deps.mkShell {
|
||||
shellHook = config.public.shellHook;
|
||||
packages = [
|
||||
config.public.pyEnv
|
||||
config.deps.pdm
|
||||
];
|
||||
buildInputs =
|
||||
[
|
||||
config.groups.default.packages.tomli.public or config.deps.python.pkgs.tomli
|
||||
]
|
||||
++ lib.flatten (
|
||||
lib.mapAttrsToList
|
||||
(name: _path: config.groups.default.packages.${name}.evaluated.mkDerivation.buildInputs or [])
|
||||
config.pdm.editables
|
||||
);
|
||||
nativeBuildInputs = lib.flatten (
|
||||
lib.mapAttrsToList
|
||||
(name: _path: config.groups.default.packages.${name}.evaluated.mkDerivation.nativeBuildInputs or [])
|
||||
config.pdm.editables
|
||||
);
|
||||
};
|
||||
|
||||
groups = let
|
||||
|
@ -6,8 +6,14 @@
|
||||
}: let
|
||||
l = lib // builtins;
|
||||
t = l.types;
|
||||
mkSubmodule = import ../../../lib/internal/mkSubmodule.nix {inherit lib specialArgs;};
|
||||
in {
|
||||
options.pdm = {
|
||||
options.pdm = mkSubmodule {
|
||||
imports = [
|
||||
../overrides
|
||||
../python-editables
|
||||
];
|
||||
options = {
|
||||
lockfile = l.mkOption {
|
||||
type = t.path;
|
||||
};
|
||||
@ -17,6 +23,7 @@ in {
|
||||
|
||||
sourceSelector = import ./sourceSelectorOption.nix {inherit lib;};
|
||||
};
|
||||
};
|
||||
options.groups =
|
||||
(import ../WIP-groups/groups-option.nix {inherit config lib specialArgs;})
|
||||
// {
|
||||
|
@ -14,9 +14,6 @@
|
||||
isRootDrv = drv: cfg.rootDependencies.${drv.name} or false;
|
||||
isBuildInput = drv: cfg.buildDependencies.${drv.name} or false;
|
||||
|
||||
# actually wanted editables (minus the ones set to false)
|
||||
editables = lib.filterAttrs (_name: path: path != false) config.pip.editables;
|
||||
|
||||
writers = import ../../../pkgs/writers {
|
||||
inherit lib;
|
||||
inherit
|
||||
@ -177,19 +174,14 @@ in {
|
||||
|
||||
pip = {
|
||||
drvs = drvs;
|
||||
inherit (config) name paths;
|
||||
inherit (config.public) pyEnv;
|
||||
# make root package always editable
|
||||
editables = {
|
||||
${config.name} = config.paths.package;
|
||||
};
|
||||
rootDependencies =
|
||||
l.genAttrs (targets.default.${config.name} or []) (_: true);
|
||||
editables =
|
||||
# make root package always editable
|
||||
{${config.name} = config.paths.package;};
|
||||
editablesShellHook = import ./editable.nix {
|
||||
inherit lib;
|
||||
inherit (config.deps) unzip writeText;
|
||||
inherit (config.paths) findRoot;
|
||||
inherit (config.public) pyEnv;
|
||||
inherit (cfg) editables;
|
||||
rootName = config.name;
|
||||
};
|
||||
};
|
||||
|
||||
mkDerivation = {
|
||||
@ -239,18 +231,18 @@ in {
|
||||
# a dev shell for development
|
||||
public.devShell = config.deps.mkShell {
|
||||
packages = [config.public.pyEnv];
|
||||
shellHook = config.public.shellHook;
|
||||
shellHook = config.pip.editablesShellHook;
|
||||
buildInputs =
|
||||
[(config.pip.drvs.tomli.public or config.deps.python.pkgs.tomli)]
|
||||
[(config.drvs.tomli.public or config.deps.python.pkgs.tomli)]
|
||||
++ lib.flatten (
|
||||
lib.mapAttrsToList
|
||||
(name: _path: config.pip.drvs.${name}.mkDerivation.buildInputs or [])
|
||||
editables
|
||||
(name: _path: config.drvs.${name}.mkDerivation.buildInputs or [])
|
||||
config.pip.editables
|
||||
);
|
||||
nativeBuildInputs = lib.flatten (
|
||||
lib.mapAttrsToList
|
||||
(name: _path: config.pip.drvs.${name}.mkDerivation.nativeBuildInputs or [])
|
||||
editables
|
||||
(name: _path: config.drvs.${name}.mkDerivation.nativeBuildInputs or [])
|
||||
config.pip.editables
|
||||
);
|
||||
};
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ in {
|
||||
options.pip = mkSubmodule {
|
||||
imports = [
|
||||
../overrides
|
||||
../python-editables
|
||||
];
|
||||
|
||||
config.overrideType = {
|
||||
@ -32,15 +33,6 @@ in {
|
||||
description = "the names of the selected top-level dependencies";
|
||||
};
|
||||
|
||||
editables = l.mkOption {
|
||||
type = t.attrsOf t.str;
|
||||
};
|
||||
|
||||
editablesShellHook = l.mkOption {
|
||||
type = t.str;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
# user interface
|
||||
env = l.mkOption {
|
||||
type = t.attrsOf t.str;
|
||||
|
24
modules/dream2nix/python-editables/default.nix
Normal file
24
modules/dream2nix/python-editables/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
dream2nix,
|
||||
...
|
||||
}: let
|
||||
editables = lib.filterAttrs (_name: path: path != false) config.editables;
|
||||
in {
|
||||
imports = [
|
||||
./interface.nix
|
||||
dream2nix.modules.dream2nix.deps
|
||||
];
|
||||
deps = {nixpkgs, ...}: {
|
||||
inherit (nixpkgs) unzip writeText mkShell;
|
||||
python = nixpkgs.python3;
|
||||
};
|
||||
editablesShellHook = import ./editable.nix {
|
||||
inherit lib;
|
||||
inherit (config.deps) unzip writeText;
|
||||
inherit (config.paths) findRoot;
|
||||
inherit (config) editables pyEnv;
|
||||
rootName = config.name;
|
||||
};
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import shutil
|
||||
import subprocess
|
||||
import configparser
|
||||
import importlib
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from contextlib import redirect_stdout
|
||||
from textwrap import dedent
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
from textwrap import dedent
|
||||
|
||||
import tomli
|
||||
|
||||
@ -173,6 +173,15 @@ def needs_update(args, dream2nix_python_dir):
|
||||
return old_args != args
|
||||
|
||||
|
||||
def export_environment_vars(python_environment, bin_dir, site_dir, site_packages):
|
||||
print(
|
||||
f"""
|
||||
export PYTHONPATH="{site_dir}:{python_environment / site_packages}:$PYTHONPATH"
|
||||
export PATH="{bin_dir}:${python_environment}/bin:$PATH"
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
def pretty_print_editables(editables, root_dir, root_name):
|
||||
if os.environ.get("D2N_QUIET"):
|
||||
return
|
||||
@ -218,6 +227,7 @@ if __name__ == "__main__":
|
||||
if dream2nix_python_dir.exists():
|
||||
shutil.rmtree(dream2nix_python_dir)
|
||||
else:
|
||||
export_environment_vars(python_environment, bin_dir, site_dir, site_packages)
|
||||
pretty_print_editables(editables, root_dir, root_name)
|
||||
exit(0)
|
||||
|
||||
@ -259,14 +269,8 @@ for index, path in enumerate(sys.path):
|
||||
"""
|
||||
)
|
||||
|
||||
print(
|
||||
f"""
|
||||
export PYTHONPATH="{site_dir}:{python_environment / site_packages}:$PYTHONPATH"
|
||||
export PATH="{bin_dir}:${python_environment}/bin:$PATH"
|
||||
"""
|
||||
)
|
||||
|
||||
with open(dream2nix_python_dir / "editable-args.json", "w") as f:
|
||||
json.dump(args, f, indent=2)
|
||||
|
||||
export_environment_vars(python_environment, bin_dir, site_dir, site_packages)
|
||||
pretty_print_editables(editables, root_dir, root_name)
|
39
modules/dream2nix/python-editables/interface.nix
Normal file
39
modules/dream2nix/python-editables/interface.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
t = lib.types;
|
||||
in {
|
||||
options = {
|
||||
editables = lib.mkOption {
|
||||
type = t.attrsOf t.str;
|
||||
};
|
||||
|
||||
editablesShellHook = lib.mkOption {
|
||||
type = t.str;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
editablesDevShell = lib.mkOption {
|
||||
type = t.package;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
name = lib.mkOption {
|
||||
type = t.str;
|
||||
internal = true;
|
||||
};
|
||||
|
||||
paths = lib.mkOption {
|
||||
type = t.attrsOf t.str;
|
||||
default = {};
|
||||
internal = true;
|
||||
};
|
||||
|
||||
pyEnv = lib.mkOption {
|
||||
type = t.package;
|
||||
internal = true;
|
||||
};
|
||||
};
|
||||
}
|
@ -85,6 +85,11 @@ Response format:
|
||||
"""
|
||||
|
||||
|
||||
def responseheaders(flow: http.HTTPFlow) -> None:
|
||||
if "/simple/" not in flow.request.url:
|
||||
flow.response.stream = True
|
||||
|
||||
|
||||
def response(flow: http.HTTPFlow) -> None:
|
||||
if not "/simple/" in flow.request.url:
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user