Python
Contribution guidelines
Libraries
According to the official guidelines for python new package expressions for libraries should be placed in pkgs/development/python-modules/<name>/default.nix. Those expressions are then referenced from pkgs/top-level/python-packages.nix like in this example:
{
aenum = callPackage ../development/python-modules/aenum { };
}
The reasoning behind this is the large size of pkgs/top-level/python-packages.nix. Unfortunately most libraries are still defined in-place in pkgs/top-level/python-packages.nix. If a change to library is necessary or an update is made, it is recommend to move the modified package out of pkgs/top-level/python-packages.nix.
Applications
Python applications instead should be referenced directly from pkgs/top-level/all-packages.nix.
The expression should take pythonPackages as one of the arguments, which guarantees that packages belong to the same set. For example:
{ lib
, pythonPackages
}:
with pythonPackages;
buildPythonApplication rec {
# ...