If a Python package does not come with either `format` or `pyproject` we consider it a setuptools build, that calls `setup.py` directly, which is deprecated. This change, as a first step, migrates a large chunk of these packages to set setuptools as their explicit format This is so we can unify the problem space for the next step of the migration.
50 lines
1.1 KiB
Nix
50 lines
1.1 KiB
Nix
{
|
|
buildPythonPackage,
|
|
fetchFromGitHub,
|
|
lib,
|
|
|
|
# since this is a dependency of pytest, we need to avoid
|
|
# circular dependencies
|
|
jinja2,
|
|
railroad-diagrams,
|
|
}:
|
|
|
|
let
|
|
pyparsing = buildPythonPackage rec {
|
|
pname = "pyparsing";
|
|
version = "2.4.7";
|
|
format = "setuptools";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pyparsing";
|
|
repo = pname;
|
|
rev = "pyparsing_${version}";
|
|
sha256 = "14pfy80q2flgzjcx8jkracvnxxnr59kjzp3kdm5nh232gk1v6g6h";
|
|
};
|
|
|
|
# circular dependencies if enabled by default
|
|
doCheck = false;
|
|
nativeCheckInputs = [
|
|
jinja2
|
|
railroad-diagrams
|
|
];
|
|
|
|
checkPhase = ''
|
|
python -m unittest
|
|
'';
|
|
|
|
passthru.tests = {
|
|
check = pyparsing.overridePythonAttrs (_: {
|
|
doCheck = true;
|
|
});
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/pyparsing/pyparsing";
|
|
description = "Alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
|
|
license = licenses.mit;
|
|
};
|
|
};
|
|
in
|
|
pyparsing
|