1{ lib
2, stdenv
3, buildPythonPackage
4, fetchFromGitHub
5, filelock
6, flit-core
7, importlib-metadata
8, isPy3k
9, packaging
10, pep517
11, pytest-mock
12, pytest-rerunfailures
13, pytest-xdist
14, pytestCheckHook
15, pythonOlder
16, toml
17, typing ? null
18}:
19
20buildPythonPackage rec {
21 pname = "build";
22 version = "0.5.1";
23 format = "pyproject";
24
25 src = fetchFromGitHub {
26 owner = "pypa";
27 repo = pname;
28 rev = version;
29 sha256 = "15hc9mbxsngfc9n805x8rk7yqbxnw12mpk6hfwcsldnfii1vg2ph";
30 };
31
32 nativeBuildInputs = [
33 flit-core
34 ];
35
36 propagatedBuildInputs = [
37 toml
38 pep517
39 packaging
40 ] ++ lib.optionals (!isPy3k) [
41 typing
42 ] ++ lib.optionals (pythonOlder "3.8") [
43 importlib-metadata
44 ];
45
46 checkInputs = [
47 filelock
48 pytest-mock
49 pytest-rerunfailures
50 pytest-xdist
51 pytestCheckHook
52 ];
53
54 disabledTests = [
55 "test_isolation"
56 "test_isolated_environment_install"
57 "test_default_pip_is_never_too_old"
58 "test_build"
59 "test_init"
60 ] ++ lib.optionals stdenv.isDarwin [
61 # expects Apple's python and its quirks
62 "test_can_get_venv_paths_with_conflicting_default_scheme"
63 ];
64
65 pythonImportsCheck = [ "build" ];
66
67 meta = with lib; {
68 description = "Simple, correct PEP517 package builder";
69 longDescription = ''
70 build will invoke the PEP 517 hooks to build a distribution package. It
71 is a simple build tool and does not perform any dependency management.
72 '';
73 homepage = "https://github.com/pypa/build";
74 maintainers = with maintainers; [ fab ];
75 license = licenses.mit;
76 };
77}