1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, importlib-metadata
5, packageurl-python
6, poetry-core
7, pytestCheckHook
8, pythonOlder
9, requirements-parser
10, setuptools
11, toml
12, types-setuptools
13, types-toml
14, tox
15}:
16
17buildPythonPackage rec {
18 pname = "cyclonedx-python-lib";
19 version = "0.11.1";
20 format = "pyproject";
21
22 disabled = pythonOlder "3.6";
23
24 src = fetchFromGitHub {
25 owner = "CycloneDX";
26 repo = pname;
27 rev = "v${version}";
28 sha256 = "sha256-+Gu9WaGC2R5TC8XSqDNSJ3t7aMS69IeeKTzytYFcHvE=";
29 };
30
31 nativeBuildInputs = [
32 poetry-core
33 ];
34
35 propagatedBuildInputs = [
36 importlib-metadata
37 packageurl-python
38 requirements-parser
39 setuptools
40 toml
41 types-setuptools
42 types-toml
43 ];
44
45 checkInputs = [
46 pytestCheckHook
47 tox
48 ];
49
50 postPatch = ''
51 substituteInPlace pyproject.toml \
52 --replace 'setuptools = "^50.3.2"' 'setuptools = "*"' \
53 --replace 'importlib-metadata = "^4.8.1"' 'importlib-metadata = "*"'
54 '';
55
56 pythonImportsCheck = [
57 "cyclonedx"
58 ];
59
60 meta = with lib; {
61 description = "Python library for generating CycloneDX SBOMs";
62 homepage = "https://github.com/CycloneDX/cyclonedx-python-lib";
63 license = with licenses; [ asl20 ];
64 maintainers = with maintainers; [ fab ];
65 };
66}