1{ lib
2, buildPythonPackage
3, fetchPypi
4, distlib
5, pythonOlder
6, exceptiongroup
7, hatch-vcs
8, hatchling
9, cattrs
10, cmake
11, packaging
12, pathspec
13, pyproject-metadata
14, pytest-subprocess
15, pytestCheckHook
16, tomli
17}:
18
19buildPythonPackage rec {
20 pname = "scikit-build-core";
21 version = "0.2.0";
22 format = "pyproject";
23
24 src = fetchPypi {
25 pname = "scikit_build_core";
26 inherit version;
27 hash = "sha256-0qdtlEekEgONxeJd0lmwPCUnhmGgx8Padmu5ccGprNI=";
28 };
29
30 postPatch = ''
31 substituteInPlace pyproject.toml \
32 --replace 'minversion = "7.2"' "" \
33 --replace '"error",' '"error", "ignore::DeprecationWarning", "ignore::UserWarning",'
34 '';
35
36 nativeBuildInputs = [
37 hatch-vcs
38 hatchling
39 ];
40
41 propagatedBuildInputs = [
42 packaging
43 ] ++ lib.optionals (pythonOlder "3.11") [
44 exceptiongroup
45 tomli
46 ];
47
48 passthru.optional-dependencies = {
49 pyproject = [
50 distlib
51 pathspec
52 pyproject-metadata
53 ];
54 };
55
56 dontUseCmakeConfigure = true;
57
58 nativeCheckInputs = [
59 cattrs
60 cmake
61 pytest-subprocess
62 pytestCheckHook
63 ] ++ passthru.optional-dependencies.pyproject;
64
65 disabledTestPaths = [
66 # runs pip, requires network access
67 "tests/test_pyproject_pep517.py"
68 "tests/test_pyproject_pep518.py"
69 "tests/test_setuptools_pep517.py"
70 "tests/test_setuptools_pep518.py"
71 ];
72
73 pythonImportsCheck = [
74 "scikit_build_core"
75 ];
76
77 meta = with lib; {
78 description = "A next generation Python CMake adaptor and Python API for plugins";
79 homepage = "https://github.com/scikit-build/scikit-build-core";
80 license = with licenses; [ asl20 ];
81 maintainers = with maintainers; [ veprbl ];
82 };
83}