Skip to content

pythonPackages.venvShellHook: init#77644

Merged
FRidh merged 1 commit intoNixOS:masterfrom
FRidh:venv
Jan 14, 2020
Merged

pythonPackages.venvShellHook: init#77644
FRidh merged 1 commit intoNixOS:masterfrom
FRidh:venv

Conversation

@FRidh
Copy link
Member

@FRidh FRidh commented Jan 13, 2020

This is a hook that loads a virtualenv from the specified venvDir
location. If the virtualenv does not exist, it is created.

This PR was prompted by #77569.

Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a way to get ensureNewerSourcesForZipFilesHook as a part of this? generally pip will prefer wheels if available.

@ofborg ofborg bot added 6.topic: python Python is a high-level, general-purpose programming language. 8.has: documentation This PR adds or changes documentation 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Jan 14, 2020
Copy link
Contributor

@d-goldin d-goldin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I think it's a good idea, see remarks for minor fixes/typos.

Tried the basic cases and worked fine. Do we think there is any need to provide a similar mechanism for python 2 w. virtualenv or should we just stick to python 3?

@FRidh
Copy link
Member Author

FRidh commented Jan 14, 2020

I don't think we should provide a Python 2 solution anymore. If someone needs it, implements it, and maintains it then I see no reason to stop them though.

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

other than @d-goldin suggestions, LGTM

was able to create a venv with just:

with import ./. {};

mkShell rec {
  name = "tmp";
  venvDir = "./venv";
  buildInputs = [
    python3Packages.venvShellHook
  ];
}

This is a hook that loads a virtualenv from the specified `venvDir`
location. If the virtualenv does not exist, it is created.
@FRidh FRidh force-pushed the venv branch 2 times, most recently from 85d046c to 60d8f54 Compare January 14, 2020 19:35
@FRidh
Copy link
Member Author

FRidh commented Jan 14, 2020

is there a way to get ensureNewerSourcesForZipFilesHook as a part of this? generally pip will prefer wheels if available.

Added it.

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I say let's merge as the doc PR was updated to reflect this

@FRidh FRidh merged commit eba1f79 into NixOS:master Jan 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: python Python is a high-level, general-purpose programming language. 8.has: documentation This PR adds or changes documentation 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants