nixpkgs/pkgs/development/python-modules/scancode-toolkit/default.nix
2023-03-22 07:21:49 -07:00

164 lines
2.9 KiB
Nix

{ lib
, attrs
, beautifulsoup4
, bitarray
, boolean-py
, buildPythonPackage
, chardet
, click
, colorama
, commoncode
, container-inspector
, debian-inspector
, dparse2
, extractcode
, extractcode-7z
, extractcode-libarchive
, fasteners
, fetchPypi
, fingerprints
, ftfy
, gemfileparser
, html5lib
, importlib-metadata
, intbitset
, jaraco_functools
, javaproperties
, jinja2
, jsonstreams
, license-expression
, lxml
, markupsafe
, packageurl-python
, packaging
, parameter-expansion-patched
, pefile
, pip-requirements-parser
, pkginfo2
, pluggy
, plugincode
, publicsuffix2
, pyahocorasick
, pycryptodome
, pygmars
, pygments
, pymaven-patch
, pytestCheckHook
, pythonOlder
, requests
, saneyaml
, spdx-tools
, text-unidecode
, toml
, typecode
, typecode-libmagic
, typing
, urlpy
, xmltodict
, zipp
}:
buildPythonPackage rec {
pname = "scancode-toolkit";
version = "31.2.4";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-08C3T4CoQm/6s8ERbq/m1t513zYuzVJoexlRkCvv3UY=";
};
dontConfigure = true;
propagatedBuildInputs = [
attrs
beautifulsoup4
bitarray
boolean-py
chardet
click
colorama
commoncode
container-inspector
debian-inspector
dparse2
extractcode
extractcode-7z
extractcode-libarchive
fasteners
fingerprints
ftfy
gemfileparser
html5lib
importlib-metadata
intbitset
jaraco_functools
javaproperties
jinja2
jsonstreams
license-expression
lxml
markupsafe
packageurl-python
packaging
parameter-expansion-patched
pefile
pip-requirements-parser
pkginfo2
pluggy
plugincode
publicsuffix2
pyahocorasick
pycryptodome
pygmars
pygments
pymaven-patch
requests
saneyaml
spdx-tools
text-unidecode
toml
typecode
typecode-libmagic
urlpy
xmltodict
] ++ lib.optionals (pythonOlder "3.9") [
zipp
] ++ lib.optionals (pythonOlder "3.7") [
typing
];
nativeCheckInputs = [
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.cfg \
--replace "pdfminer.six >= 20200101" "pdfminer.six" \
--replace "pluggy >= 0.12.0, < 1.0" "pluggy" \
--replace "pygmars >= 0.7.0" "pygmars" \
--replace "license_expression >= 21.6.14" "license_expression" \
--replace "intbitset >= 2.3.0, < 3.0" "intbitset"
'';
# Importing scancode needs a writeable home, and preCheck happens in between
# pythonImportsCheckPhase and pytestCheckPhase.
postInstall = ''
export HOME=$(mktemp -d)
'';
pythonImportsCheck = [
"scancode"
];
# takes a long time and doesn't appear to do anything
dontStrip = true;
meta = with lib; {
description = "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts";
homepage = "https://github.com/nexB/scancode-toolkit";
license = with licenses; [ asl20 cc-by-40 ];
maintainers = [ ];
};
}