nix-community / nix-direnv

A fast, persistent use_nix/use_flake implementation for direnv [maintainer=@Mic92 / @bbenne10]
MIT License
1.78k stars 101 forks source link

Beginner help needed. Environment not reloading when adding poetry dependencies #470

Closed push-and-pray closed 7 months ago

push-and-pray commented 7 months ago

Im using poetry2nix to handle my python project and nix-direnv to enter the development env. However, when adding new dependencies i have to run direnv reload for the new decencies to catch on. I would like this to automatically happen. Steps to reproduce:

nix flake init --template templates#python
echo "use flake" > .envrc && direnv allow

poetry add requests
python -c "import requests" # ModuleNotFoundError: No module named 'requests'
direnv reload
python -c "import requests" # No error

Any help, or push in the right direction would be greatly appreciated

bbenne10 commented 7 months ago

Add watch_file pyproject.toml to your .envrc before the use flake line.

This causes direnv to watch pyproject.toml for changes and reload the environment if it updates.

push-and-pray commented 7 months ago

Add watch_file pyproject.toml to your .envrc before the use flake line.

This causes direnv to watch pyproject.toml for changes and reload the environment if it updates.

Thank you for the comment. Unfortunately, this didn't fix the issue. Here are the steps i took this time:

nix flake init --template templates#python
echo "watch_file pyproject.toml\nuse flake" > .envrc && direnv allow # Added wach_file to .envrc as instructed above

poetry add requests
python -c "import requests" # ModuleNotFoundError: No module named 'requests'
direnv reload
python -c "import requests" # No error
push-and-pray commented 7 months ago

@bbenne10 please reopen, thank you :)

bbenne10 commented 7 months ago

This is not - strictly speaking - a nix-direnv problem, so I won't be re-opening this. I am happy to give best-effort support for the general toolchain, however.

The exact steps in your opening post work fine for me. What versions of direnv and nix-direnv do you have? What is the output of direnv show_dump $DIRENV_WATCHES?

Attempt at reproduction:

➜ mkdir nix_direnv_poetry_test
➜ cd nix_direnv_poetry_test
➜ nix flake init --template templates#python
wrote: ~/nix_direnv_poetry_test/pyproject.toml
wrote: ~/nix_direnv_poetry_test/README.md
wrote: ~/nix_direnv_poetry_test/flake.nix
wrote: ~/nix_direnv_poetry_test/sample_package/__init__.py
wrote: ~/nix_direnv_poetry_test/sample_package/__main__.py
wrote: ~/nix_direnv_poetry_test/sample_package
wrote: ~/nix_direnv_poetry_test/poetry.lock

Getting started

      · Run nix develop 
      · Run poetry run python -m sample_package 

➜ echo "use flake" > .envrc && direnv allow
direnv: loading ~/nix_direnv_poetry_test/.envrc                                                                                                                                                                                                                                                                                                                           
direnv: using flake
warning: creating lock file '~/nix_direnv_poetry_test/flake.lock'
direnv: export +CONFIG_SHELL +HOST_PATH +IN_NIX_SHELL +MACOSX_DEPLOYMENT_TARGET +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CFLAGS_COMPILE +NIX_DONT_SET_RPATH +NIX_DONT_SET_RPATH_FOR_BUILD +NIX_ENFORCE_NO_NATIVE +NIX_IGNORE_LD_THROUGH_GCC +NIX_NO_SELF_RPATH +NIX_STORE +PATH_LOCALE +SOURCE_DATE_EPOCH +TEMP +TEMPDIR +TMP +__darwinAllowLocalNetworking +__impureHostDeps +__propagatedImpureHostDeps +__propagatedSandboxProfile +__sandboxProfile +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +dontAddDisableDepTrack +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~TMPDIR ~XDG_DATA_DIRS
➜ poetry add requests
Using version ^2.31.0 for requests

Updating dependencies
Resolving dependencies... (0.3s)

No dependencies to install or update

Writing lock file
direnv: loading ~/nix_direnv_poetry_test/.envrc                                                                                                                                                                                                                                                                                                                           
direnv: using flake
evaluating derivation 'path:~/nix_direnv_poetry_test#devShells.x86_64-darwin.default'
direnv: ([/nix/store/4a7mxd6mg2a6z88mrv2q3sj9pvxjm2sl-direnv-2.32.3/bin/direnv export zsh]) is taking a while to execute. Use CTRL-C to give up.
direnv: export +CONFIG_SHELL +HOST_PATH +IN_NIX_SHELL +MACOSX_DEPLOYMENT_TARGET +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CFLAGS_COMPILE +NIX_DONT_SET_RPATH +NIX_DONT_SET_RPATH_FOR_BUILD +NIX_ENFORCE_NO_NATIVE +NIX_IGNORE_LD_THROUGH_GCC +NIX_NO_SELF_RPATH +NIX_STORE +PATH_LOCALE +SOURCE_DATE_EPOCH +TEMP +TEMPDIR +TMP +__darwinAllowLocalNetworking +__impureHostDeps +__propagatedImpureHostDeps +__propagatedSandboxProfile +__sandboxProfile +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +dontAddDisableDepTrack +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~TMPDIR ~XDG_DATA_DIRS
➜ python -c "import requests"
# Exits 0; no output indicating successful import
push-and-pray commented 7 months ago

Understood. Thank you for taking the time to help out

Full output of commands in original post

➜  python mkdir 08as7d89as7d89as7d
➜  python cd 08as7d89as7d89as7d
➜  08as7d89as7d89as7d ls
➜  08as7d89as7d89as7d nix flake init --template templates#python
wrote: /home/user/Dev/python/08as7d89as7d89as7d/README.md
wrote: /home/user/Dev/python/08as7d89as7d89as7d/poetry.lock
wrote: /home/user/Dev/python/08as7d89as7d89as7d/sample_package/__init__.py
wrote: /home/user/Dev/python/08as7d89as7d89as7d/sample_package/__main__.py
wrote: /home/user/Dev/python/08as7d89as7d89as7d/sample_package
wrote: /home/user/Dev/python/08as7d89as7d89as7d/pyproject.toml
wrote: /home/user/Dev/python/08as7d89as7d89as7d/flake.nix

Getting started

      · Run nix develop
      · Run poetry run python -m sample_package

➜  08as7d89as7d89as7d echo "use flake" > .envrc && direnv allow
warning: creating lock file '/home/user/Dev/python/08as7d89as7d89as7d/flake.lock'
➜  08as7d89as7d89as7d poetry add requests
Creating virtualenv sample-project-o5OYk8fH-py3.11 in /home/user/.cache/pypoetry/virtualenvs
Using version ^2.31.0 for requests

Updating dependencies
Resolving dependencies... (0.1s)

Package operations: 5 installs, 0 updates, 0 removals

  - Installing certifi (2024.2.2)
  - Installing charset-normalizer (3.3.2)
  - Installing idna (3.6)
  - Installing urllib3 (2.2.1)
  - Installing requests (2.31.0)

Writing lock file
➜  08as7d89as7d89as7d python -c "import requests"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'requests'
➜  08as7d89as7d89as7d direnv reload
➜  08as7d89as7d89as7d python -c "import requests"

Output of direnv show_dump $DIRENV_WATCHES

➜  08as7d89as7d89as7d direnv show_dump $DIRENV_WATCHES
[
  {
    "exists": true,
    "modtime": 1709235902,
    "path": "/home/user/Dev/python/08as7d89as7d89as7d/.envrc"
  },
  {
    "exists": true,
    "modtime": 1709235865,
    "path": "/home/user/.local/share/direnv/allow/e7cb81a2f03cb5a127f7eccd79b56d1c2c33eeb5a3315535d625fcf4abc31087"
  },
  {
    "exists": false,
    "modtime": 0,
    "path": "/home/user/.direnvrc"
  },
  {
    "exists": true,
    "modtime": 1709235529,
    "path": "/home/user/.config/direnv/direnvrc"
  },
  {
    "exists": true,
    "modtime": 1709235855,
    "path": "/home/user/Dev/python/08as7d89as7d89as7d/flake.nix"
  },
  {
    "exists": true,
    "modtime": 1709235866,
    "path": "/home/user/Dev/python/08as7d89as7d89as7d/flake.lock"
  },
  {
    "exists": false,
    "modtime": 0,
    "path": "/home/user/Dev/python/08as7d89as7d89as7d/devshell.toml"
  }

Direnv version

➜  08as7d89as7d89as7d direnv --version
2.32.3

If needed, my nixos config is on my git. direnv config can be found here

bbenne10 commented 7 months ago

I don't see that direnv is running after this line:

➜  08as7d89as7d89as7d echo "use flake" > .envrc && direnv allow

I would expect output like this:

➜ echo "use flake" > .envrc && direnv allow
direnv: loading ~/nix_direnv_poetry_test/.envrc                                                                                                                                                                                                                                                                                                                           
direnv: using flake
warning: creating lock file '~/nix_direnv_poetry_test/flake.lock'
direnv: export +CONFIG_SHELL +HOST_PATH +IN_NIX_SHELL +MACOSX_DEPLOYMENT_TARGET +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CFLAGS_COMPILE +NIX_DONT_SET_RPATH +NIX_DONT_SET_RPATH_FOR_BUILD +NIX_ENFORCE_NO_NATIVE +NIX_IGNORE_LD_THROUGH_GCC +NIX_NO_SELF_RPATH +NIX_STORE +PATH_LOCALE +SOURCE_DATE_EPOCH +TEMP +TEMPDIR +TMP +__darwinAllowLocalNetworking +__impureHostDeps +__propagatedImpureHostDeps +__propagatedSandboxProfile +__sandboxProfile +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +dontAddDisableDepTrack +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~TMPDIR ~XDG_DATA_DIRS

Is direnv running properly for you? You can add either a set -x to trace the output or a echo "in direnv" just to make sure it's running inside your .envrc.

push-and-pray commented 7 months ago

It seems to running fine, but im definetly not getting the same output as you

➜  8fd73hnd83 nix flake init --template templates#python
wrote: /home/julius/Dev/python/8fd73hnd83/README.md
wrote: /home/julius/Dev/python/8fd73hnd83/poetry.lock
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package/__init__.py
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package/__main__.py
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package
wrote: /home/julius/Dev/python/8fd73hnd83/pyproject.toml
wrote: /home/julius/Dev/python/8fd73hnd83/flake.nix

Getting started

      · Run nix develop
      · Run poetry run python -m sample_package

➜  8fd73hnd83 echo "use flake" > .envrc
direnv: error /home/julius/Dev/python/8fd73hnd83/.envrc is blocked. Run `direnv allow` to approve its content
➜  8fd73hnd83 echo "echo IN DIRENV" >> .envrc
direnv: error /home/julius/Dev/python/8fd73hnd83/.envrc is blocked. Run `direnv allow` to approve its content
➜  8fd73hnd83 direnv allow
IN DIRENV
bbenne10 commented 7 months ago

Do you have nix_direnv_watch_file as a callable inside .envrc? It should raise a deprecation notice to your terminal, but prove that you're actually using nix-direnv.

push-and-pray commented 7 months ago

Some additional output. cd'ing into folder again outputs IN DIRENV. poetry add requests doesnt

➜  python cd 8fd73hnd83
IN DIRENV
➜  8fd73hnd83 poetry add requests
Creating virtualenv sample-project-yjQAUcG6-py3.11 in /home/julius/.cache/pypoetry/virtualenvs
Using version ^2.31.0 for requests

Updating dependencies
Resolving dependencies... (0.2s)

Package operations: 5 installs, 0 updates, 0 removals

  - Installing certifi (2024.2.2)
  - Installing charset-normalizer (3.3.2)
  - Installing idna (3.6)
  - Installing urllib3 (2.2.1)
  - Installing requests (2.31.0)

Writing lock file
➜  8fd73hnd83 direnv reload
IN DIRENV

It seems to running fine, but im definetly not getting the same output as you

➜  8fd73hnd83 nix flake init --template templates#python
wrote: /home/julius/Dev/python/8fd73hnd83/README.md
wrote: /home/julius/Dev/python/8fd73hnd83/poetry.lock
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package/__init__.py
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package/__main__.py
wrote: /home/julius/Dev/python/8fd73hnd83/sample_package
wrote: /home/julius/Dev/python/8fd73hnd83/pyproject.toml
wrote: /home/julius/Dev/python/8fd73hnd83/flake.nix

Getting started

      · Run nix develop
      · Run poetry run python -m sample_package

➜  8fd73hnd83 echo "use flake" > .envrc
direnv: error /home/julius/Dev/python/8fd73hnd83/.envrc is blocked. Run `direnv allow` to approve its content
➜  8fd73hnd83 echo "echo IN DIRENV" >> .envrc
direnv: error /home/julius/Dev/python/8fd73hnd83/.envrc is blocked. Run `direnv allow` to approve its content
➜  8fd73hnd83 direnv allow
IN DIRENV
push-and-pray commented 7 months ago

changed .envrc to:

use flake
nix_direnv_watch_file pyproject.toml
echo IN DIRENV
➜  python cd 8fd73hnd83
IN DIRENV

No change

bbenne10 commented 7 months ago

Okay - what is in your direnvrc? It should be at ~/.config/direnv/direnvrc or ~/.direnvrc

push-and-pray commented 7 months ago
➜  8fd73hnd83 cat ~/.config/direnv/direnvrc
source /nix/store/fp7nfaqpb8axfj5l54ih2dvshb05dyng-nix-direnv-2.4.0/share/nix-direnv/direnvrc
bbenne10 commented 7 months ago

My first thought there was "that's ancient"...but that's what is in 23.11.

I'd suggest trying again with 3.0.4:

Add this to .envrc:

if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
  source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
fi

I don't expect this to magically work, but at least it's more modern. After this, I think we need to add set -x at the top and see the entire output of what is being run.

push-and-pray commented 7 months ago

Yeah its old, thats what we have unstable for d:

➜  a89s6d direnv allow
nix-direnv: error current version v2.3.0 is older than the desired version v3.0.4

That unfortunately didnt work.

I changed both direnv and nix-direnv to be pulled from unstable instead

Now:

➜  a89s6d cat ~/.config/direnv/direnvrc
source /nix/store/ynw1m5arn67im9pzjc73s8y927z13pq2-nix-direnv-3.0.4/share/nix-direnv/direnvrc

That unfortunately didnt change anything

➜  python mkdir 9a8s67d98
➜  python cd 9a8s67d98
➜  9a8s67d98 nix flake init --template templates#python
wrote: /home/julius/Dev/python/9a8s67d98/README.md
wrote: /home/julius/Dev/python/9a8s67d98/poetry.lock
wrote: /home/julius/Dev/python/9a8s67d98/sample_package/__init__.py
wrote: /home/julius/Dev/python/9a8s67d98/sample_package/__main__.py
wrote: /home/julius/Dev/python/9a8s67d98/sample_package
wrote: /home/julius/Dev/python/9a8s67d98/pyproject.toml
wrote: /home/julius/Dev/python/9a8s67d98/flake.nix

Getting started

      · Run nix develop
      · Run poetry run python -m sample_package

➜  9a8s67d98 echo "use flake" > .envrc
direnv: error /home/julius/Dev/python/9a8s67d98/.envrc is blocked. Run `direnv allow` to approve its content
➜  9a8s67d98 direnv allow
warning: creating lock file '/home/julius/Dev/python/9a8s67d98/flake.lock'
➜  9a8s67d98 poetry add requests
Creating virtualenv sample-project-WvJaU7S6-py3.11 in /home/julius/.cache/pypoetry/virtualenvs
Using version ^2.31.0 for requests

Updating dependencies
Resolving dependencies... (0.1s)

Package operations: 5 installs, 0 updates, 0 removals

  - Installing certifi (2024.2.2)
  - Installing charset-normalizer (3.3.2)
  - Installing idna (3.6)
  - Installing urllib3 (2.2.1)
  - Installing requests (2.31.0)

Writing lock file
➜  9a8s67d98 python -c "import requests"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'requests'
➜  9a8s67d98 direnv reload
➜  9a8s67d98 python -c "import requests" # NO ERROR
push-and-pray commented 7 months ago

Which commands are you interested in seeing in set -x? Output is quite long

push-and-pray commented 7 months ago

First, set -x output for cd <directory>

➜  python cd 9a8s67d98
+omz_termsupport_preexec:1> [[ '' != true ]]
+omz_termsupport_preexec:3> emulate -L zsh
+omz_termsupport_preexec:4> setopt extended_glob
+omz_termsupport_preexec:7> local -a cmdargs
+omz_termsupport_preexec:8> cmdargs=( cd 9a8s67d98 )
+omz_termsupport_preexec:10> [[ cd = fg ]]
+omz_termsupport_preexec:44> local CMD=cd
+omz_termsupport_preexec:45> local LINE='cd 9a8s67d98'
+omz_termsupport_preexec:47> title cd '%100>...>cd 9a8s67d98%<<'
+title:1> setopt localoptions nopromptsubst
+title:4> [[ -n '' ]]
+title:8> : '%100>...>cd 9a8s67d98%<<'
+title:10> case alacritty (cygwin | xterm* | putty* | rxvt* | konsole* | ansi | mlterm* | alacritty)
+title:12> print -Pn '\e]2;%100\>...\>cd\ 9a8s67d98%\<\<\a'
+title:13> print -Pn '\e]1;cd\a'
+/run/current-system/sw/bin/zsh:102> cd 9a8s67d98
+_direnv_hook:1> trap -- '' SIGINT
+_direnv_hook:2> /nix/store/0gk06qxgmar1g7zc973n9502b2haipkq-direnv-2.32.3/bin/direnv export zsh
+_direnv_hook:2> eval 'export $'\''depsTargetTargetPropagated'\''='\'\'';export NIX_STORE=$'\''/nix/store'\'';export $'\''depsTargetTarget'\''='\'\'';export $'\''dontAddDisableDepTrack'\''=1;export $'\''depsHostHostPropagated'\''='\'\'';export $'\''patches'\''='\'\'';export $'\''system'\''=$'\''x86_64-linux'\'';export SOURCE_DATE_EPOCH=315532800;export DIRENV_DIFF=$'\''eJzsWFtT47jW_Ssuf9_bQY7vF6bmIZAA6cMkEALN6aIqJduyJVuWbcnxbar_-ynnMoTAXLufTjVVJPHWXmtLW1tLkn-VC_n8V_luvLqRz-UR37BRw2FRIC5GPmHnI5xnaJRsKNmIkcJICwqeR4SiXSsj7eiN4Y07zQNIR6KCFXrviargYBCjAnGwEYgfoL-R15AfQ8UoRBHc0GrnMXQ32HCOWAVEJyqUjUQzNMln8vPkej0Zr8bryWz5MIxtoBFVztEoNIoG9l7omsImpt4Z1MQOw9iiVppZRQFEAzugKa6ijQSGHJ0fgU3hZHFdeBH1cNFmUeqHxOhEXdhu43e9B2KBqoqwWIAQibTKCyACjDIogGkp6o5w9Oq0bxz9Mey4B0Rw1RKeSyFueyF0M9Y1L8F10ZmRUfocxFX6LwMYim4qpvb7AY-9jvlpSZzQy-I2Y5j4hlF3vVnXXAjPzZKYlIcOikNyfrdGjpJ3YvpLdbL3_cNKOQrxu7Wy9_m4WraN8tczmQ0L4XIxv5pdrx9upre3b4tGdR3NdsKohVTzzCKzzCALfL8VUWcEScyADwUGlqIXuj2U4Gh4ls_kyWw5nT8NVSify-DNwCeoHhVdhXM28qArbCf03FfE1ex2OnThzxAjBbGaB6_Az-PV5c10qHn0qUvTqbaw-_Hjso5IsHxez324csP6amrOfWCV_zHE8smZ3ZN2bn4ZX3yaXdDncsztJHCcNQfNZfh5lpjaAqUrr6K3_uUa3CxuO0_rYhE1F09JAy5M7G4AYl_ioDG1PsDXMPgcV5P54uYCo0c7u0qen0N3Ydy3DD7eLcf11O5n91rR6qv03vqMNs_IS8bX6VV2tbhb4ZiuroF7Ob0uZ5_U7hGOV5-si3_j1hLaZIa85-umyxfLW_4g-K2xtMVd-sUrjTzGjxFeO_UvKxVcPa_umWHfzJ-aTF336ylu2sz6pGlfCg7M7HHts6uK5wtvfOH1M_z4FPWrGwDAeozG48l67Szvtev4Z_lMvlk8rNYHeXythlZrg6SxbN0NeJpqRcM1vXNY4_dpYHi2B4Kco01FqACeYr7q2X4F251mR3rSB7UWa6mml2FKBMVGV6Y6pw6ICAt3aFPxFPUU3wZZE5nUYoYVEEGLHvu49FloaE0jfEpBSKJohzcU7R280zqDZ9R0SobVmJShoWeJ6pRtW3aaUcYgZhuBwiH2KVTTfCPAoodBxD1KOlf32jJlfWGUrksSMkBjjoohrnYKdtzSYoVJKSuxwK2jp23mNE5paEWi1o4PYtikwxJS9FNo2Pp9IczG4iRNnCQMuiRoPJemlubEkYqHuBXkQFMM6xTbd53v1sROYk003IoMk7cx8UgfpDp3XQzinhRAUzTjFOmrcdjquNdZF3mw0JnakzboAyfV0zL1EuD3pNCBpqiKC7Zr_i2-UUs1MBMMMxOrgV8To4u7kNqYB1nP7HbodQZTBEzFVN6l6-8qzjHWxaK3gwDHVtdoTe96GfStyPVSI3GoamSggFWAga44yjtsS53WsJhe65nhuTglbmkSXzesnhm41lXQ9sBSTMX-aMhuAm1GfENPawN7vZ00FHuWb8Eug04TtWCQ5gFu7ffp2Xw9nz3_prgkKzYcyWfyYLx4nN1O1peL5VbNNH1vvry6HV8_rC8Xv9ztNFICEYcszDMgEAp_1lqaRqoJebQHTOdXi-XldD1frOfj1expwGj7ttvJlm0QZ17ACkt_Lrj5pio2lRi-R5T40p7pYbVYTt_IhHwmv5cOGnhZHBhu2qfQ56UeGNQsXSsObc0NkiwCu3jGdgkpLkCsfj9DRoSdvie2FzXQc2HNYkqyxk25bra6caBQNA0UOar44TRzytOI0goT2zANj2pFgbnv2H3CSUhCYtRsVyWIRkBVNOsDHfqhgj9U8IcKfqsKnv-FM15I-G9C8D90S3tYPA7CPBmvpuvp3eJy0EpDsyxDd1X1j29x_0RH393m_rGSvmf6u1r6juHHtfTHtfTkWnomr9ei4pug2nAUjquKC_lcls9kf0NoOGPDMeTIcIehQPK5_KuEApxLLzL4hr8X-acXJh2YpM_j5Xw2vz6XKowk1BJRIRYgKY-kChMhbY9OREgsr6R4AzlkFUKhckIyqwYfyCTCKsQZpBLJCooyxCpYkZxJIaogoVKUc6lIY6Fk6QNGlJ7wfKdhbX_8n7REQc5DCVIqbbMokW1eJSgkvmEVyZAUogKxELGAILFFt0XOq59e2FfpZaOqBtp9Si_y_-eb6kV-YYcpQfz7vEYIhh3yisJ4P99BziISb_ixLUSFuBiCbj8-st3xvIAxrNBp6wryGFUfGj_C3OSiGv7fWz7y3vGchji2vkPllxgF6eFhxkQFKX1jY9U4DCdEQJ-iCSpWHG7bhmN9hkTOjvLCYDasikECxFBNw1awNVekRhdvVtK37S_Sd9hZ5DM531R_6cXP0T1kh9oPYve822_2KSgGZRh-H-nEmVxwFCF-O-jcoWS0rfkwGxenMvPaNP8ge_KZvE3w9yn5LdVNnu-nXFThMG9vqN2-j3BZNDEu1d5NzKhpQmr1nQYhV2Fhgh0IUMI27ZaDk6CaoOLQ263eyudy69pr29z7ff363wAAAP__Xj7QKg=='\'';export $'\''strictDeps'\''='\'\'';export $'\''depsBuildTargetPropagated'\''='\'\'';export $'\''depsBuildTarget'\''='\'\'';export $'\''name'\''=$'\''nix-shell-env'\'';export DIRENV_FILE=$'\''/home/julius/Dev/python/9a8s67d98/.envrc'\'';export $'\''phases'\''=$'\''buildPhase'\'';export NIX_ENFORCE_NO_NATIVE=1;export $'\''depsBuildBuildPropagated'\''='\'\'';export $'\''propagatedNativeBuildInputs'\''='\'\'';export $'\''shell'\''=$'\''/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash'\'';export XDG_DATA_DIRS=$'\''/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env/share:/nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1/share:/nix/store/xwsq5dj63439l1pphrb76zjrididi3vn-patchelf-0.15.0/share:/nix/store/d3pwaz9d84s6i42y3l4h7nhh5l5km5pp-sway-1.8.1/share:/nix/store/4s7mgvp9fl9hpxmfkbdi3ysvp68wbyz9-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0:/nix/store/isr05s98lahxzss24g219jhvpy4f3qbr-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41:/nix/store/lqi7d9mgxmnhib33vyz4vvrss98mjgiq-desktops/share:/home/julius/.nix-profile/share:/nix/profile/share:/home/julius/.local/state/nix/profile/share:/etc/profiles/per-user/julius/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share'\'';export DIRENV_DIR=$'\''-/home/julius/Dev/python/9a8s67d98'\'';export $'\''outputs'\''=$'\''out'\'';export IN_NIX_SHELL=$'\''impure'\'';export $'\''builder'\''=$'\''/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash'\'';export $'\''nativeBuildInputs'\''=$'\''/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env /nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1'\'';export $'\''mesonFlags'\''='\'\'';export $'\''__structuredAttrs'\''='\'\'';export $'\''doCheck'\''='\'\'';export $'\''buildPhase'\''=$'\''{ echo "------------------------------------------------------------";\n  echo " WARNING: the existence of this path is not guaranteed.";\n  echo " It is an internal implementation detail for pkgs.mkShell.";\n  echo "------------------------------------------------------------";\n  echo;\n  # Record all build inputs as runtime dependencies\n  export;\n} >> "$out"\n'\'';export $'\''depsHostHost'\''='\'\'';export $'\''cmakeFlags'\''='\'\'';export $'\''configureFlags'\''='\'\'';export DIRENV_WATCHES=$'\''eJykkE1O6zAURvficRX_NbaT8dvFE4Nb-5qY3sRV7IQixN4ZABJIBlXqAr6jc77_r-wCdWIj41OekT9tlLbC_-HOLy91ygsfwBVjw-B4h8u-enZgcw41zchGacWgtDNOHBheU6mFjXXd8O3QxnaUPRAvE6zIQ1px2TkQ5WeuXe9jAGkFmFOPThglTG-8CEGqIJ0yUaATJ5BKhx5s1DIe9XGwyoORLrSsrL3R6sPkZ9q3oghUfh_7vMT0-FXTQn36HNVwm0_z_Ehwxm5J11Zpr-4mU_bnFtroO9AB9zIhUVfzTH---_AeAAD__7RQ1Gg='\'';export $'\''preferLocalBuild'\''=1;export $'\''depsBuildBuild'\''='\'\'';export HOST_PATH=$'\''/nix/store/x1xcjw5628crkk1pwr12y7nwbzkc3969-coreutils-9.4/bin:/nix/store/i6y16f2jzcv1g1k12qdkislh3yqk2rl7-findutils-4.9.0/bin:/nix/store/xcmwf4l5n35cislpzhbhqbnd31wwsbll-diffutils-3.10/bin:/nix/store/y1y3rml47qnh0giqd32mj07qxxqy13qg-gnused-4.9/bin:/nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin:/nix/store/78q5np4llnqhshx72kxm7w7q31pj0v7b-gawk-5.2.2/bin:/nix/store/dxbzps4w5rikj7jdcyjcw98lk517gf0h-gnutar-1.35/bin:/nix/store/zyyb8vi6jg1swr5f34rxgi9izck2r88h-gzip-1.13/bin:/nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/bin:/nix/store/w0q0c4jham4h0cbvi3ygydl6hrcmzn6x-gnumake-4.4.1/bin:/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin:/nix/store/8hsz6cchg5yw1wz89mab5f89k3j7l03m-patch-2.7.6/bin:/nix/store/xl7x35n2v2m398hki8q4ib235zn3hv20-xz-5.4.6-bin/bin:/nix/store/8ja6nib32kv3h9z6jwlh95b5ayma7wfx-file-5.45/bin'\'';export $'\''buildInputs'\''='\'\'';export $'\''shellHook'\''='\'\'';export $'\''propagatedBuildInputs'\''='\'\'';export $'\''stdenv'\''=$'\''/nix/store/8zzfhqpwghq0z8j4fwwdl5zy1aar0ap4-stdenv-linux'\'';export NIX_LDFLAGS=$'\''-rpath /home/julius/Dev/python/9a8s67d98/outputs/out/lib '\'';export PATH=$'\''/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env/bin:/nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1/bin:/nix/store/xwsq5dj63439l1pphrb76zjrididi3vn-patchelf-0.15.0/bin:/nix/store/x1xcjw5628crkk1pwr12y7nwbzkc3969-coreutils-9.4/bin:/nix/store/i6y16f2jzcv1g1k12qdkislh3yqk2rl7-findutils-4.9.0/bin:/nix/store/xcmwf4l5n35cislpzhbhqbnd31wwsbll-diffutils-3.10/bin:/nix/store/y1y3rml47qnh0giqd32mj07qxxqy13qg-gnused-4.9/bin:/nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin:/nix/store/78q5np4llnqhshx72kxm7w7q31pj0v7b-gawk-5.2.2/bin:/nix/store/dxbzps4w5rikj7jdcyjcw98lk517gf0h-gnutar-1.35/bin:/nix/store/zyyb8vi6jg1swr5f34rxgi9izck2r88h-gzip-1.13/bin:/nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/bin:/nix/store/w0q0c4jham4h0cbvi3ygydl6hrcmzn6x-gnumake-4.4.1/bin:/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin:/nix/store/8hsz6cchg5yw1wz89mab5f89k3j7l03m-patch-2.7.6/bin:/nix/store/xl7x35n2v2m398hki8q4ib235zn3hv20-xz-5.4.6-bin/bin:/nix/store/8ja6nib32kv3h9z6jwlh95b5ayma7wfx-file-5.45/bin:/home/julius/Dev/python/9a8s67d98/.direnv/bin:/run/wrappers/bin:/home/julius/.nix-profile/bin:/nix/profile/bin:/home/julius/.local/state/nix/profile/bin:/etc/profiles/per-user/julius/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin'\'';export NIX_BUILD_CORES=12;export $'\''doInstallCheck'\''='\'\'';export $'\''out'\''=$'\''/home/julius/Dev/python/9a8s67d98/outputs/out'\'';export NIX_CFLAGS_COMPILE=$'\'' -frandom-seed=1xlkf04arf'\'';export CONFIG_SHELL=$'\''/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash'\'';'
+(eval):1> export 'depsTargetTargetPropagated='
+(eval):1> export NIX_STORE=/nix/store
+(eval):1> export 'depsTargetTarget='
+(eval):1> export 'dontAddDisableDepTrack=1'
+(eval):1> export 'depsHostHostPropagated='
+(eval):1> export 'patches='
+(eval):1> export 'system=x86_64-linux'
+(eval):1> export SOURCE_DATE_EPOCH=315532800
+(eval):1> export DIRENV_DIFF='eJzsWFtT47jW_Ssuf9_bQY7vF6bmIZAA6cMkEALN6aIqJduyJVuWbcnxbar_-ynnMoTAXLufTjVVJPHWXmtLW1tLkn-VC_n8V_luvLqRz-UR37BRw2FRIC5GPmHnI5xnaJRsKNmIkcJICwqeR4SiXSsj7eiN4Y07zQNIR6KCFXrviargYBCjAnGwEYgfoL-R15AfQ8UoRBHc0GrnMXQ32HCOWAVEJyqUjUQzNMln8vPkej0Zr8bryWz5MIxtoBFVztEoNIoG9l7omsImpt4Z1MQOw9iiVppZRQFEAzugKa6ijQSGHJ0fgU3hZHFdeBH1cNFmUeqHxOhEXdhu43e9B2KBqoqwWIAQibTKCyACjDIogGkp6o5w9Oq0bxz9Mey4B0Rw1RKeSyFueyF0M9Y1L8F10ZmRUfocxFX6LwMYim4qpvb7AY-9jvlpSZzQy-I2Y5j4hlF3vVnXXAjPzZKYlIcOikNyfrdGjpJ3YvpLdbL3_cNKOQrxu7Wy9_m4WraN8tczmQ0L4XIxv5pdrx9upre3b4tGdR3NdsKohVTzzCKzzCALfL8VUWcEScyADwUGlqIXuj2U4Gh4ls_kyWw5nT8NVSify-DNwCeoHhVdhXM28qArbCf03FfE1ex2OnThzxAjBbGaB6_Az-PV5c10qHn0qUvTqbaw-_Hjso5IsHxez324csP6amrOfWCV_zHE8smZ3ZN2bn4ZX3yaXdDncsztJHCcNQfNZfh5lpjaAqUrr6K3_uUa3CxuO0_rYhE1F09JAy5M7G4AYl_ioDG1PsDXMPgcV5P54uYCo0c7u0qen0N3Ydy3DD7eLcf11O5n91rR6qv03vqMNs_IS8bX6VV2tbhb4ZiuroF7Ob0uZ5_U7hGOV5-si3_j1hLaZIa85-umyxfLW_4g-K2xtMVd-sUrjTzGjxFeO_UvKxVcPa_umWHfzJ-aTF336ylu2sz6pGlfCg7M7HHts6uK5wtvfOH1M_z4FPWrGwDAeozG48l67Szvtev4Z_lMvlk8rNYHeXythlZrg6SxbN0NeJpqRcM1vXNY4_dpYHi2B4Kco01FqACeYr7q2X4F251mR3rSB7UWa6mml2FKBMVGV6Y6pw6ICAt3aFPxFPUU3wZZE5nUYoYVEEGLHvu49FloaE0jfEpBSKJohzcU7R280zqDZ9R0SobVmJShoWeJ6pRtW3aaUcYgZhuBwiH2KVTTfCPAoodBxD1KOlf32jJlfWGUrksSMkBjjoohrnYKdtzSYoVJKSuxwK2jp23mNE5paEWi1o4PYtikwxJS9FNo2Pp9IczG4iRNnCQMuiRoPJemlubEkYqHuBXkQFMM6xTbd53v1sROYk003IoMk7cx8UgfpDp3XQzinhRAUzTjFOmrcdjquNdZF3mw0JnakzboAyfV0zL1EuD3pNCBpqiKC7Zr_i2-UUs1MBMMMxOrgV8To4u7kNqYB1nP7HbodQZTBEzFVN6l6-8qzjHWxaK3gwDHVtdoTe96GfStyPVSI3GoamSggFWAga44yjtsS53WsJhe65nhuTglbmkSXzesnhm41lXQ9sBSTMX-aMhuAm1GfENPawN7vZ00FHuWb8Eug04TtWCQ5gFu7ffp2Xw9nz3_prgkKzYcyWfyYLx4nN1O1peL5VbNNH1vvry6HV8_rC8Xv9ztNFICEYcszDMgEAp_1lqaRqoJebQHTOdXi-XldD1frOfj1expwGj7ttvJlm0QZ17ACkt_Lrj5pio2lRi-R5T40p7pYbVYTt_IhHwmv5cOGnhZHBhu2qfQ56UeGNQsXSsObc0NkiwCu3jGdgkpLkCsfj9DRoSdvie2FzXQc2HNYkqyxk25bra6caBQNA0UOar44TRzytOI0goT2zANj2pFgbnv2H3CSUhCYtRsVyWIRkBVNOsDHfqhgj9U8IcKfqsKnv-FM15I-G9C8D90S3tYPA7CPBmvpuvp3eJy0EpDsyxDd1X1j29x_0RH393m_rGSvmf6u1r6juHHtfTHtfTkWnomr9ei4pug2nAUjquKC_lcls9kf0NoOGPDMeTIcIehQPK5_KuEApxLLzL4hr8X-acXJh2YpM_j5Xw2vz6XKowk1BJRIRYgKY-kChMhbY9OREgsr6R4AzlkFUKhckIyqwYfyCTCKsQZpBLJCooyxCpYkZxJIaogoVKUc6lIY6Fk6QNGlJ7wfKdhbX_8n7REQc5DCVIqbbMokW1eJSgkvmEVyZAUogKxELGAILFFt0XOq59e2FfpZaOqBtp9Si_y_-eb6kV-YYcpQfz7vEYIhh3yisJ4P99BziISb_ixLUSFuBiCbj8-st3xvIAxrNBp6wryGFUfGj_C3OSiGv7fWz7y3vGchji2vkPllxgF6eFhxkQFKX1jY9U4DCdEQJ-iCSpWHG7bhmN9hkTOjvLCYDasikECxFBNw1awNVekRhdvVtK37S_Sd9hZ5DM531R_6cXP0T1kh9oPYve822_2KSgGZRh-H-nEmVxwFCF-O-jcoWS0rfkwGxenMvPaNP8ge_KZvE3w9yn5LdVNnu-nXFThMG9vqN2-j3BZNDEu1d5NzKhpQmr1nQYhV2Fhgh0IUMI27ZaDk6CaoOLQ263eyudy69pr29z7ff363wAAAP__Xj7QKg=='
+(eval):1> export 'strictDeps='
+(eval):1> export 'depsBuildTargetPropagated='
+(eval):1> export 'depsBuildTarget='
+(eval):1> export 'name=nix-shell-env'
+(eval):1> export DIRENV_FILE=/home/julius/Dev/python/9a8s67d98/.envrc
+(eval):1> export 'phases=buildPhase'
+(eval):1> export NIX_ENFORCE_NO_NATIVE=1
+(eval):1> export 'depsBuildBuildPropagated='
+(eval):1> export 'propagatedNativeBuildInputs='
+(eval):1> export 'shell=/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash'
+(eval):1> export XDG_DATA_DIRS=/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env/share:/nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1/share:/nix/store/xwsq5dj63439l1pphrb76zjrididi3vn-patchelf-0.15.0/share:/nix/store/d3pwaz9d84s6i42y3l4h7nhh5l5km5pp-sway-1.8.1/share:/nix/store/4s7mgvp9fl9hpxmfkbdi3ysvp68wbyz9-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0:/nix/store/isr05s98lahxzss24g219jhvpy4f3qbr-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41:/nix/store/lqi7d9mgxmnhib33vyz4vvrss98mjgiq-desktops/share:/home/julius/.nix-profile/share:/nix/profile/share:/home/julius/.local/state/nix/profile/share:/etc/profiles/per-user/julius/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share
+(eval):1> export DIRENV_DIR=-/home/julius/Dev/python/9a8s67d98
+(eval):1> export 'outputs=out'
+(eval):1> export IN_NIX_SHELL=impure
+(eval):1> export 'builder=/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash'
+(eval):1> export 'nativeBuildInputs=/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env /nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1'
+(eval):1> export 'mesonFlags='
+(eval):1> export '__structuredAttrs='
+(eval):1> export 'doCheck='
+(eval):1> export $'buildPhase={ echo "------------------------------------------------------------";\n  echo " WARNING: the existence of this path is not guaranteed.";\n  echo " It is an internal implementation detail for pkgs.mkShell.";\n  echo "------------------------------------------------------------";\n  echo;\n  # Record all build inputs as runtime dependencies\n  export;\n} >> "$out"\n'
+(eval):1> export 'depsHostHost='
+(eval):1> export 'cmakeFlags='
+(eval):1> export 'configureFlags='
+(eval):1> export DIRENV_WATCHES='eJykkE1O6zAURvficRX_NbaT8dvFE4Nb-5qY3sRV7IQixN4ZABJIBlXqAr6jc77_r-wCdWIj41OekT9tlLbC_-HOLy91ygsfwBVjw-B4h8u-enZgcw41zchGacWgtDNOHBheU6mFjXXd8O3QxnaUPRAvE6zIQ1px2TkQ5WeuXe9jAGkFmFOPThglTG-8CEGqIJ0yUaATJ5BKhx5s1DIe9XGwyoORLrSsrL3R6sPkZ9q3oghUfh_7vMT0-FXTQn36HNVwm0_z_Ehwxm5J11Zpr-4mU_bnFtroO9AB9zIhUVfzTH---_AeAAD__7RQ1Gg='
+(eval):1> export 'preferLocalBuild=1'
+(eval):1> export 'depsBuildBuild='
+(eval):1> export HOST_PATH=/nix/store/x1xcjw5628crkk1pwr12y7nwbzkc3969-coreutils-9.4/bin:/nix/store/i6y16f2jzcv1g1k12qdkislh3yqk2rl7-findutils-4.9.0/bin:/nix/store/xcmwf4l5n35cislpzhbhqbnd31wwsbll-diffutils-3.10/bin:/nix/store/y1y3rml47qnh0giqd32mj07qxxqy13qg-gnused-4.9/bin:/nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin:/nix/store/78q5np4llnqhshx72kxm7w7q31pj0v7b-gawk-5.2.2/bin:/nix/store/dxbzps4w5rikj7jdcyjcw98lk517gf0h-gnutar-1.35/bin:/nix/store/zyyb8vi6jg1swr5f34rxgi9izck2r88h-gzip-1.13/bin:/nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/bin:/nix/store/w0q0c4jham4h0cbvi3ygydl6hrcmzn6x-gnumake-4.4.1/bin:/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin:/nix/store/8hsz6cchg5yw1wz89mab5f89k3j7l03m-patch-2.7.6/bin:/nix/store/xl7x35n2v2m398hki8q4ib235zn3hv20-xz-5.4.6-bin/bin:/nix/store/8ja6nib32kv3h9z6jwlh95b5ayma7wfx-file-5.45/bin
+(eval):1> export 'buildInputs='
+(eval):1> export 'shellHook='
+(eval):1> export 'propagatedBuildInputs='
+(eval):1> export 'stdenv=/nix/store/8zzfhqpwghq0z8j4fwwdl5zy1aar0ap4-stdenv-linux'
+(eval):1> export NIX_LDFLAGS='-rpath /home/julius/Dev/python/9a8s67d98/outputs/out/lib '
+(eval):1> export PATH=/nix/store/lc9mgc38kzkabrq2c3l4q85gd618cjmf-python3-3.11.8-env/bin:/nix/store/xl3fh7zzi69fwa98avnglimw8kr24x23-python3.11-poetry-1.8.1/bin:/nix/store/xwsq5dj63439l1pphrb76zjrididi3vn-patchelf-0.15.0/bin:/nix/store/x1xcjw5628crkk1pwr12y7nwbzkc3969-coreutils-9.4/bin:/nix/store/i6y16f2jzcv1g1k12qdkislh3yqk2rl7-findutils-4.9.0/bin:/nix/store/xcmwf4l5n35cislpzhbhqbnd31wwsbll-diffutils-3.10/bin:/nix/store/y1y3rml47qnh0giqd32mj07qxxqy13qg-gnused-4.9/bin:/nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin:/nix/store/78q5np4llnqhshx72kxm7w7q31pj0v7b-gawk-5.2.2/bin:/nix/store/dxbzps4w5rikj7jdcyjcw98lk517gf0h-gnutar-1.35/bin:/nix/store/zyyb8vi6jg1swr5f34rxgi9izck2r88h-gzip-1.13/bin:/nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/bin:/nix/store/w0q0c4jham4h0cbvi3ygydl6hrcmzn6x-gnumake-4.4.1/bin:/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin:/nix/store/8hsz6cchg5yw1wz89mab5f89k3j7l03m-patch-2.7.6/bin:/nix/store/xl7x35n2v2m398hki8q4ib235zn3hv20-xz-5.4.6-bin/bin:/nix/store/8ja6nib32kv3h9z6jwlh95b5ayma7wfx-file-5.45/bin:/home/julius/Dev/python/9a8s67d98/.direnv/bin:/run/wrappers/bin:/home/julius/.nix-profile/bin:/nix/profile/bin:/home/julius/.local/state/nix/profile/bin:/etc/profiles/per-user/julius/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
+(eval):1> export NIX_BUILD_CORES=12
+(eval):1> export 'doInstallCheck='
+(eval):1> export 'out=/home/julius/Dev/python/9a8s67d98/outputs/out'
+(eval):1> export NIX_CFLAGS_COMPILE=' -frandom-seed=1xlkf04arf'
+(eval):1> export CONFIG_SHELL=/nix/store/087167dfxal194pm54cmcbbxsfy3cjgn-bash-5.2p26/bin/bash
+_direnv_hook:3> trap - SIGINT
+_direnv_hook:1> trap -- '' SIGINT
+_direnv_hook:2> /nix/store/0gk06qxgmar1g7zc973n9502b2haipkq-direnv-2.32.3/bin/direnv export zsh
+_direnv_hook:2> eval ''
+_direnv_hook:3> trap - SIGINT
+omz_termsupport_precmd:1> [[ '' != true ]]
+omz_termsupport_precmd:2> title '%15<..<%~%<<' '%n@%m:%~'
+title:1> setopt localoptions nopromptsubst
+title:4> [[ -n '' ]]
+title:8> : '%n@%m:%~'
+title:10> case alacritty (cygwin | xterm* | putty* | rxvt* | konsole* | ansi | mlterm* | alacritty)
+title:12> print -Pn '\e]2;%n@%m:%~\a'
+title:13> print -Pn '\e]1;%15\<..\<%~%\<\<\a'
+omz_termsupport_cwd:2> local URL_HOST URL_PATH
+omz_termsupport_cwd:3> URL_HOST=+omz_termsupport_cwd:3> omz_urlencode -P julius-nixos
+omz_urlencode:1> emulate -L zsh
+omz_urlencode:2> local -a opts
+omz_urlencode:3> zparseopts -D -E -a opts r m P
+omz_urlencode:5> local in_str=julius-nixos
+omz_urlencode:6> local url_str=''
+omz_urlencode:7> local spaces_as_plus
+omz_urlencode:8> [[ -z -P ]]
+omz_urlencode:9> local str=julius-nixos
+omz_urlencode:12> local encoding=UTF-8
+omz_urlencode:13> local safe_encodings
+omz_urlencode:14> safe_encodings=( UTF-8 utf8 US-ASCII )
+omz_urlencode:15> [[ -z UTF-8 ]]
+omz_urlencode:24> local i byte ord LC_ALL=C
+omz_urlencode:25> export LC_ALL
+omz_urlencode:26> local reserved=';/?:@&=+$,'
+omz_urlencode:27> local mark='_.!~*()-'
+omz_urlencode:28> local dont_escape='[A-Za-z0-9'
+omz_urlencode:29> [[ -z '' ]]
+omz_urlencode:30> dont_escape+=';/?:@&=+$,'
+omz_urlencode:33> [[ -z '' ]]
+omz_urlencode:34> dont_escape+='_.!~*()-'
+omz_urlencode:36> dont_escape+=']'
+omz_urlencode:40> local url_str=''
+omz_urlencode:41> i = 1
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=j
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=j
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=u
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=u
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=l
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=l
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=i
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=i
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=u
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=u
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=s
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=s
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=-
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=-
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=n
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=n
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=i
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=i
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=x
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=x
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=o
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=o
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:42> byte=s
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=s
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 12
+omz_urlencode:54> echo -E julius-nixos
+omz_termsupport_cwd:3> URL_HOST=julius-nixos
+omz_termsupport_cwd:4> URL_PATH=+omz_termsupport_cwd:4> omz_urlencode -P /home/julius/Dev/python/9a8s67d98
+omz_urlencode:1> emulate -L zsh
+omz_urlencode:2> local -a opts
+omz_urlencode:3> zparseopts -D -E -a opts r m P
+omz_urlencode:5> local in_str=/home/julius/Dev/python/9a8s67d98
+omz_urlencode:6> local url_str=''
+omz_urlencode:7> local spaces_as_plus
+omz_urlencode:8> [[ -z -P ]]
+omz_urlencode:9> local str=/home/julius/Dev/python/9a8s67d98
+omz_urlencode:12> local encoding=UTF-8
+omz_urlencode:13> local safe_encodings
+omz_urlencode:14> safe_encodings=( UTF-8 utf8 US-ASCII )
+omz_urlencode:15> [[ -z UTF-8 ]]
+omz_urlencode:24> local i byte ord LC_ALL=C
+omz_urlencode:25> export LC_ALL
+omz_urlencode:26> local reserved=';/?:@&=+$,'
+omz_urlencode:27> local mark='_.!~*()-'
+omz_urlencode:28> local dont_escape='[A-Za-z0-9'
+omz_urlencode:29> [[ -z '' ]]
+omz_urlencode:30> dont_escape+=';/?:@&=+$,'
+omz_urlencode:33> [[ -z '' ]]
+omz_urlencode:34> dont_escape+='_.!~*()-'
+omz_urlencode:36> dont_escape+=']'
+omz_urlencode:40> local url_str=''
+omz_urlencode:41> i = 1
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=/
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=/
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=h
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=h
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=o
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=o
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=m
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=m
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=e
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=e
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=/
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=/
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=j
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=j
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=u
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=u
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=l
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=l
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=i
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=i
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=u
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=u
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=s
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=s
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=/
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=/
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=D
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=D
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=e
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=e
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=v
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=v
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=/
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=/
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=p
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=p
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=y
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=y
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=t
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=t
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=h
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=h
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=o
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=o
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=n
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=n
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=/
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=/
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=9
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=9
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=a
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=a
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=8
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=8
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=s
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=s
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=6
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=6
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=7
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=7
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=d
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=d
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=9
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=9
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:42> byte=8
+omz_urlencode:43> [[ "$byte" -regex-match "$dont_escape" ]]
+omz_urlencode:44> url_str+=8
+omz_urlencode:41> ++i
+omz_urlencode:41> i <= 33
+omz_urlencode:54> echo -E /home/julius/Dev/python/9a8s67d98
+omz_termsupport_cwd:4> URL_PATH=/home/julius/Dev/python/9a8s67d98
+omz_termsupport_cwd:7> [[ -z '' ]]
+omz_termsupport_cwd:10> printf '\e]7;file://%s%s\e\' julius-nixos /home/julius/Dev/python/9a8s67d98
+/run/current-system/sw/bin/zsh:103> git_prompt_info
+git_prompt_info:3> __git_prompt_git rev-parse --git-dir
+git_prompt_info:5> return 0
bbenne10 commented 7 months ago

Probably better to set -x at the top of the .envrc and set +x at the bottom so we're not wading through oh-my-zsh or the like too :)

bbenne10 commented 7 months ago

Have you tried this with a simpler flake?

The python template you set up is far from the simplest possible flake we support and might be making it difficult to debug.

We should probably move forward with you using the flake from the tests/ subdirectory? It is extremely simple and only brings in hello and sets some env variables.

push-and-pray commented 7 months ago

Understood

➜  as89d7 ls
flake.nix  shell.nix
➜  as89d7 cat flake.nix
{
  description = "A very basic flake";
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
  inputs.flake-utils.url = "github:numtide/flake-utils";

  # deadnix: skip
  outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system: {
      devShell = import ./shell.nix {
        pkgs = nixpkgs.legacyPackages.${system};
      };
    });
}
➜  as89d7 cat shell.nix
{ pkgs ? import (builtins.getFlake (toString ./.)).inputs.nixpkgs { }
, someArg ? null
, shellHook ? ''
    echo "Executing shellHook."
  ''
}:
pkgs.mkShellNoCC {
  inherit shellHook;

  nativeBuildInputs = [ pkgs.hello ];
  SHOULD_BE_SET = someArg;

  passthru = { subshell = pkgs.mkShellNoCC { THIS_IS_A_SUBSHELL = "OK"; }; };
}
➜  as89d7 cat .envrc
set -x
use flake
set +x

output of direnv allow

bbenne10 commented 7 months ago

So...that seems to have worked fine?

Do you see updates to the environment if you add a new input in the flake's nativeBuildInputs?

push-and-pray commented 7 months ago

Quick update. Updating to newest version made "watch_file poetry.lock" approach work, as you first suggested.

I still have to add the line to .envrc though. Why your attempt at reproduction worked without it, still kinda bugs me out. If this is something which you would like to dig deeper into, i will gladly provide anything needed.

But thank you for your help! I consider my issue solved

push-and-pray commented 7 months ago

So...that seems to have worked fine?

Do you see updates to the environment if you add a new input in the flake's nativeBuildInputs?

➜  as78d68as7d6 nvim flake.nix # Opening flake.nix triggers shellHook
Executing shellHook.
➜  as78d68as7d6 nvim shell.nix # Adding cowsay to shell.nix
➜  as78d68as7d6 cowsay
cowsay: command not found
➜  as78d68as7d6 hello
Hello, world!
➜  as78d68as7d6 cd ..
➜  python cd as78d68as7d6 # Changing back into dir, thus executing shellHook, is not enough to bring cowsay into env
Executing shellHook.
➜  as78d68as7d6 cowsay
cowsay: command not found
➜  as78d68as7d6 direnv reload # direnv reload still required to bring cowsay into env
Executing shellHook.
➜  as78d68as7d6 cowsay a
 ___
< a >
 ---
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
bbenne10 commented 7 months ago

I think i should hae expexted the last bit. IIRC, we dont auomatically watch shell.nix if you use flake. On mobile now so Ill check in a bit.

Glad everything is working for you now though!