1{ buildPythonPackage
2, fetchFromGitHub
3, lib
4, flit-core
5, jinja2
6, pytestCheckHook
7, railroad-diagrams
8, pyparsing
9}:
10
11buildPythonPackage rec {
12 pname = "pyparsing";
13 version = "3.0.9";
14 format = "pyproject";
15
16 src = fetchFromGitHub {
17 owner = "pyparsing";
18 repo = pname;
19 rev = "pyparsing_${version}";
20 hash = "sha256-aCRyJQyLf8qQ6NO41q+HC856TjIHzIt0vyVBLV+3teE=";
21 };
22
23 nativeBuildInputs = [
24 flit-core
25 ];
26
27 # circular dependencies with pytest if enabled by default
28 doCheck = false;
29 nativeCheckInputs = [
30 jinja2
31 pytestCheckHook
32 railroad-diagrams
33 ];
34
35 pythonImportsCheck = [ "pyparsing" ];
36
37 passthru.tests = {
38 check = pyparsing.overridePythonAttrs (_: { doCheck = true; });
39 };
40
41 meta = with lib; {
42 homepage = "https://github.com/pyparsing/pyparsing";
43 description = "Python library for creating PEG parsers";
44 longDescription = ''
45 The pyparsing module is an alternative approach to creating and executing
46 simple grammars, vs. the traditional lex/yacc approach, or the use of
47 regular expressions. The pyparsing module provides a library of classes
48 that client code uses to construct the grammar directly in Python code.
49 '';
50 license = licenses.mit;
51 maintainers = with maintainers; [ kamadorueda ];
52 };
53}