| 19 Jul 2024 |
oven_spinout988 | In reply to @truh:matrix.org
what's that for
] ++ pkgs.lib.mapAttrsToList
(name: value:
pkgs.writers.writePython3Bin "${name}" { flakeIgnore = [ "E401" "E501" ]; } ''
import sys, importlib
mod, attr = "${value}".split(":", 1)
sys.exit(getattr(importlib.import_module(mod), attr)())
''
)
(builtins.fromTOML (builtins.readFile ./pyproject.toml)).tool.poetry.scripts;
mkPoetryApplication should create bins for the scripts Found it in a Github issue. And it was efficient at the time I tested it to remove the bin error. For what I can remember.
Without this part, I get the following error :
Traceback (most recent call last):
File "/nix/store/mpn2dgz63imrk5j91ifk3y2nsq5mk9a2-python3.12-test-0.0.0/bin/.start-wrapped", line 6, in <module>
from bin.start import main
ModuleNotFoundError: No module named 'bin'
| 13:56:20 |
oven_spinout988 | In reply to @truh:matrix.org
what's that for
] ++ pkgs.lib.mapAttrsToList
(name: value:
pkgs.writers.writePython3Bin "${name}" { flakeIgnore = [ "E401" "E501" ]; } ''
import sys, importlib
mod, attr = "${value}".split(":", 1)
sys.exit(getattr(importlib.import_module(mod), attr)())
''
)
(builtins.fromTOML (builtins.readFile ./pyproject.toml)).tool.poetry.scripts;
mkPoetryApplication should create bins for the scripts * Found it in a Github issue. And it was efficient at the time I tested it to remove the bin error. For what I can remember. | 13:58:40 |
oven_spinout988 | * Found it in a Github issue. And it was efficient at the time I tested it to remove the bin error. For what I can remember.
I removed it and sill get the error about test.default missing.
| 13:59:39 |
oven_spinout988 | * Found it in a Github issue. And it was efficient at the time I tested it to remove the bin error. For what I can remember.
EDIT truh : I removed it and sill get the error about test.default missing.
| 13:59:55 |
truh | I think you can remove the other buildinputs in mkPoetryApplication too | 14:01:32 |
truh | maybe pkgs.python3 screws the pythonpath or something | 14:01:48 |
oven_spinout988 | I just set it at the minimum level :
testApp = mkPoetryApplication {
projectDir = ./.;
overrides = p2n-overrides;
dependencies = [
pkgs.redis
pkgs.ffmpeg
];
};
With the package inside the pyproject.toml, I have this error :
Traceback (most recent call last):
File "/nix/store/lbidxwnsm93j6v79hyrl0yvjylbdjd2w-python3.12-test-0.0.0/bin/.start-wrapped", line 6, in <module>
from bin.start import main
File "/nix/store/lbidxwnsm93j6v79hyrl0yvjylbdjd2w-python3.12-test-0.0.0/lib/python3.12/site-packages/bin/start.py", line 5, in <module>
from test.default import get_homedir
ModuleNotFoundError: No module named 'test.default'
And without :
Traceback (most recent call last):
File "/nix/store/ghhaa833nn30ck2y7w8nlq3nx5izvypj-python3.12-test-0.0.0/bin/.start-wrapped", line 6, in <module>
from bin.start import main
ModuleNotFoundError: No module named 'bin'
| 14:08:57 |
oven_spinout988 | In reply to @oven_spinout988:matrix.org
I just set it at the minimum level :
testApp = mkPoetryApplication {
projectDir = ./.;
overrides = p2n-overrides;
dependencies = [
pkgs.redis
pkgs.ffmpeg
];
};
With the package inside the pyproject.toml, I have this error :
Traceback (most recent call last):
File "/nix/store/lbidxwnsm93j6v79hyrl0yvjylbdjd2w-python3.12-test-0.0.0/bin/.start-wrapped", line 6, in <module>
from bin.start import main
File "/nix/store/lbidxwnsm93j6v79hyrl0yvjylbdjd2w-python3.12-test-0.0.0/lib/python3.12/site-packages/bin/start.py", line 5, in <module>
from test.default import get_homedir
ModuleNotFoundError: No module named 'test.default'
And without :
Traceback (most recent call last):
File "/nix/store/ghhaa833nn30ck2y7w8nlq3nx5izvypj-python3.12-test-0.0.0/bin/.start-wrapped", line 6, in <module>
from bin.start import main
ModuleNotFoundError: No module named 'bin'
Not sure why it is not working in my test package. But in the original package specifying the packages inside the pyproject.tom worked well.
I have now errors complaining about Flask not present. Do you know why the packages/libraries from the pyproject.toml are not present during run time ?
Anyway thank you for your attention and idea to fix my issue.
| 14:41:45 |
notwren | In reply to @picog:matrix.org
I have some thing like
devShells.a = pkgs.mkShell {
packages = with pkgs; [
(mkPoetryEnv {
projectDir = a/.;
python=pkgs.python39;
})
];
};
devShells.b = pkgs.mkShell {
packages = with pkgs; [
(mkPoetryEnv {
projectDir = b/.;
python=pkgs.python39;
})
];
};
I'm not seeing any reference to b in the a devShell here or vice versa? | 15:12:00 |
oven_spinout988 | Is normal the normal to use the mkPoetryApplication and use is in a flake output for packages.default ? | 16:44:48 |
oven_spinout988 | * Is the normal usage of the mkPoetryApplication to use is in a flake output for packages.default ? | 16:45:10 |
| 22 Jul 2024 |
| @brokenpip3:matrix.org left the room. | 07:46:10 |
notwren | is there a reason that bumping poetry2nix would have made it now use python3.12 instead of 3.11? the pyproject is set to "^3.11" | 19:27:35 |
notwren | for anyone else that has the same problem, you can fix with:
| 19:30:47 |
notwren | * for anyone else that has the same problem, you can fix with:
devShells.default = let
envShell = mkPoetryEnv {
projectDir = ./.;
python = pkgs.python311;
overrides = p2n-overrides;
preferWheels = true;
editablePackageSources = {
xoulschemas = xoulschemas/.;
};
};
| 19:31:34 |
notwren | * for anyone else that has the same problem, you can fix with:
devShells.default = let
envShell = mkPoetryEnv {
projectDir = ./.;
python = pkgs.python311;
overrides = p2n-overrides;
preferWheels = true;
editablePackageSources = {
x = x/.;
};
};
| 19:31:46 |
| 24 Jul 2024 |
truh | Newer nixpkgs probably. 3.12 is the default on unstable | 08:47:07 |
lambadada | I'm trying to set up a python enviroment with poetry2nix. I need to override a package rpds-py to make it function correctly. It already has a override at line 3082 to 3147 in overrides/default.nix But that doesn't have the hash to the latest version. How do I force it to use the correct hash for the latest release? I know it's a simple override, but everything I try fails to set the hash to what it should be.
I'm trying the following:
{rpds-py = prev.rpds-py.overridePythonAttrs (old: {
cargoDeps = nixpkgs.rustPlatform.fetchCargoTarball {
inherit (old) src;
name = "${old.pname}-${old.version}";
hash = "sha256-qIXdoCEVGCGUnTicZp4bUTJyGpFy9dwWY03lXUbxiHg=";
};
buildInputs = old.buildInputs or [ ] ;
nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [
nixpkgs.rustPlatform.cargoSetupHook
nixpkgs.rustPlatform.maturinBuildHook
];
});
}
| 23:07:02 |
lambadada | * I need to override a package rpds-py for my latest project. It already has a override at line 3082 to 3147 in overrides/default.nix But that doesn't have the hash to the latest version. How do I force it to use the correct hash for the latest release? I know it's a simple override, but everything I try fails to set the hash to what it should be.
I'm trying the following:
{rpds-py = prev.rpds-py.overridePythonAttrs (old: {
cargoDeps = nixpkgs.rustPlatform.fetchCargoTarball {
inherit (old) src;
name = "${old.pname}-${old.version}";
hash = "sha256-qIXdoCEVGCGUnTicZp4bUTJyGpFy9dwWY03lXUbxiHg=";
};
buildInputs = old.buildInputs or [ ] ;
nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [
nixpkgs.rustPlatform.cargoSetupHook
nixpkgs.rustPlatform.maturinBuildHook
];
});
}
| 23:07:48 |
| 25 Jul 2024 |
| Ezzobir Bezziou joined the room. | 08:52:30 |
| Tom Savage joined the room. | 14:30:23 |
| virtu joined the room. | 17:58:25 |
virtu | Hey! I'm wondering how to correctly set up a devShell using poetry2nix. Previously, I was using:
devShells.default = pkgs.mkShell {
packages = with pkgs; [ poetry ];
LD_LIBRARY_PATH = "${pkgs.stdenv.cc.cc.lib}/lib/";
};
together with
PYTHON_VERSION=$(python --version | awk '{print $2}' | cut -d. -f1-2 | tr -d '\n')
export PYTHONPATH=$PYTHONPATH:$(poetry env info --path)/lib/python${PYTHON_VERSION}/site-packages
in my .envrc, but I was hoping to get the same effect more gracefully using mkPoetryEnv, so I tried:
devShells.default = mkPoetryEnv {
projectDir = ./.;
};
but for some reason the dependencies aren't available:
» grep pandas pyproject.toml
pandas = "2.1.3"
» python -c "import pandas"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'
Any idea what I'm doing wrong?
| 18:02:10 |
| 26 Jul 2024 |
| Tom Savage changed their display name from tcsavage to Tom Savage. | 08:22:07 |
| Tom Savage set a profile picture. | 08:23:32 |
| 27 Jul 2024 |
| Aleksandr Lebedev joined the room. | 05:53:35 |
Aleksandr Lebedev | Hey! Whats going on with ipympl? I've encountered a problem with the ipympl library.
First I added ipympl as a dependency:
poetry add ipympl
Using version ^0.9.4 for ipympl
Then, when I tried to enter the development environment with the command nix develop I received the following message:
nix develop
warning: Git tree '/home/user/test-jupyter' is dirty
error: builder for '/nix/store/yn9990741wv439qncd2wpl2pdbwkjzyz-python3.12-ipympl-0.9.4.drv' failed with exit code 2;
last 10 log lines:
> File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
> File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
> File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
> File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
> File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
> File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
> File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
> ModuleNotFoundError: No module named 'hatchling'
I tried to override ipympl:
myapp = mkPoetryApplication {
projectDir = self;
overrides = withDefaults (final: prev: {
ipympl = prev.ipympl.overridePythonAttrs (old: {
nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ final.hatchling ];
});
});
};
But it was unsuccessful:
nix develop
warning: Git tree '/home/user/test-jupyter' is dirty
error: builder for '/nix/store/3siq2h2ggxhs4cs2bqr4caczq4vcl15r-python3.12-ipympl-0.9.4.drv' failed with exit code 1;
last 10 log lines:
> full command: /nix/store/z7xxy35k7620hs6fn6la5fg2lgklv72l-python3-3.12.4/bin/python3.12 /nix/store/9gd8kj409msfv599456ywbyi97izlbr4-python3.12-pip-24.0/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py prepare_metadata_for_build_wheel /build/tmpwmmwvne3
> cwd: /build/ipympl-0.9.4
> Preparing metadata (pyproject.toml) ... error
> error: metadata-generation-failed
>
> × Encountered error while generating package metadata.
> ╰─> See above for output.
>
> note: This is an issue with the package mentioned above, not pip.
> hint: See above for details.
For full logs, run 'nix log /nix/store/3siq2h2ggxhs4cs2bqr4caczq4vcl15r-python3.12-ipympl-0.9.4.drv'.
error: 1 dependencies of derivation '/nix/store/26zp4sb66agpjwhw7y4pdr5rl9cwwgh1-nix-shell-env.drv' failed to build
| 06:10:32 |
K900 | There should be logs above that | 06:12:00 |
K900 | Run the nix log command | 06:12:06 |
K900 | That it tells you to run | 06:12:12 |