| 4 Jan 2022 |
| Mic92 joined the room. | 18:05:47 |
Artturin | just had to add pytest in to the checkPhase and now it works | 19:19:29 |
adisbladis | In reply to @artturin:matrix.org
if i add python.pkgs.pytestCheckHook to checkInputs i get many of these
python3.10-nixos-gen-config> Found duplicated packages in closure for dependency 'pytest':
python3.10-nixos-gen-config> pytest 6.2.5 (/nix/store/km2dg715wf31dq8vafdaplwlnh8jnqzy-python3.10-pytest-6.2.5/lib/python3.10/site-packages)
python3.10-nixos-gen-config> pytest 6.2.5 (/nix/store/yc3jnjq6wx4zz14anjj9mj8xxv1zc57v-python3.10-pytest-6.2.5/lib/python3.10/site-packages)
You absolutely should not add dependencies from the nixpkgs python package sets like that | 19:47:08 |
Artturin | i realised that | 19:47:34 |
| * adisbladis is slowly gathering an "anti-patterns" section for the readme | 19:48:05 |
Artturin | 👍️ | 19:48:19 |
Artturin | 😆 | 19:48:25 |
| 5 Jan 2022 |
| austinp17 joined the room. | 13:20:00 |
| @grahamc:nixos.org invited NixOS Moderation Bot. | 15:08:59 |
| NixOS Moderation Bot joined the room. | 15:09:01 |
| @grahamc:nixos.orgchanged room power levels. | 15:09:02 |
| Room Avatar Renderer. | 15:09:04 |
@grahamc:nixos.org | 👍️should be all set adisbladis ! | 15:09:21 |
| Mic92 left the room. | 16:46:19 |
| averagechris joined the room. | 22:08:31 |
| 7 Jan 2022 |
| elgert joined the room. | 04:04:09 |
| 10 Jan 2022 |
| manveru joined the room. | 13:50:03 |
| 11 Jan 2022 |
| zrsk joined the room. | 19:15:53 |
zrsk | Hi, I'm trying to understand how to use poetry2nix but I've this poroblem, this is my current flake.nix:
{
description = "My Python application";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
flake-utils-plus.url = github:gytis-ivaskevicius/flake-utils-plus/v1.3.1;
};
outputs = { self, nixpkgs, flake-utils-plus }:
flake-utils-plus.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
caseGeneratorApp = pkgs.poetry2nix.mkPoetryEnv {
projectDir = ./case;
editablePackageSources = {
src = ./case/src;
};
};
packageName = "case_generator";
in
{
defaultPackage = caseGeneratorApp;
devShell = pkgs.mkShell {
name = "development";
buildInputs = [
caseGeneratorApp
];
};
});
}
When I enter in the development shell withnix develop I get the scripts exposed by poetry and configured in the pyproject.toml in my PATH, and I can correctly execute them. But if I edit these sources (in ./case/src/) it makes no difference. I've to exit and re-enter in the shell to make the changes work.
Am I doing things correctly? If someone know a simple and working flake using poetry2nix I would be happy to take a look.
Thank you
| 23:48:04 |
adisbladis | In reply to @aciceri:nixos.dev
Hi, I'm trying to understand how to use poetry2nix but I've this poroblem, this is my current flake.nix:
{
description = "My Python application";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
flake-utils-plus.url = github:gytis-ivaskevicius/flake-utils-plus/v1.3.1;
};
outputs = { self, nixpkgs, flake-utils-plus }:
flake-utils-plus.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
caseGeneratorApp = pkgs.poetry2nix.mkPoetryEnv {
projectDir = ./case;
editablePackageSources = {
src = ./case/src;
};
};
packageName = "case_generator";
in
{
defaultPackage = caseGeneratorApp;
devShell = pkgs.mkShell {
name = "development";
buildInputs = [
caseGeneratorApp
];
};
});
}
When I enter in the development shell withnix develop I get the scripts exposed by poetry and configured in the pyproject.toml in my PATH, and I can correctly execute them. But if I edit these sources (in ./case/src/) it makes no difference. I've to exit and re-enter in the shell to make the changes work.
Am I doing things correctly? If someone know a simple and working flake using poetry2nix I would be happy to take a look.
Thank you
That's because of how flakes work re purity. In a flake evaluation ./foo doesn't refer to the local path, but the path copied to the store. | 23:52:29 |
adisbladis | It's not a poetry2nix thing, it's a flakes thing. | 23:52:40 |
| 12 Jan 2022 |
zrsk | Ahh, I understand. What do you suggest me then? What would be the correct way to use a flake to manage a development flow like this? | 00:02:20 |
adisbladis | In reply to @aciceri:nixos.dev Ahh, I understand. What do you suggest me then? What would be the correct way to use a flake to manage a development flow like this? I've seen people using --impure combined with environment variables to reference paths outside of the store. That could work.
I'm not a flakes user so I might not be of too much help.
| 00:03:47 |
zrsk | Thank you for the hint, I'll try. Do you know any project using flake and poetry2nix as reference? | 00:31:16 |
averagechris | zrsk: I have been packaging a few python apps as nix flakes. I'm no expert, but what's worked for me with editable installs is mkPoetryEnv as devShell instead of mkShell with the env as an input | 00:33:43 |
averagechris | here is a copy paste of an example from one of the apps I packaged last week
devShell = (pkgs.poetry2nix.mkPoetryEnv {
projectDir = ./.;
editablePackageSources.YOUR_APP = ./YOUR_SRC_DIR;
}).env.overrideAttrs (old: {
propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ]) ++ nativeDependencies;
shellHook = (old.shellHook or "") + ''
export GDAL_LIBRARY_PATH="${pkgs.gdal}/lib/libgdal.so"
export GEOS_LIBRARY_PATH="${pkgs.geos}/lib/libgeos_c.so"
'';
buildInputs = extraDevDependencies;
});
| 00:36:11 |
zrsk | averagechris: thank you! I'll definitely try this approach, I don't like the idea to use --impure | 00:39:17 |
averagechris | Good luck and let us know if you learn anything interesting :) | 00:39:47 |
adisbladis | In reply to @averagechris:matrix.org zrsk: I have been packaging a few python apps as nix flakes. I'm no expert, but what's worked for me with editable installs is mkPoetryEnv as devShell instead of mkShell with the env as an input I don't understand how that would work, but if it does I'm very interested in knowing more... | 00:42:56 |
averagechris | I'm using lorri that might be it? | 00:44:26 |