Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / textx / default.nix
blob46847572714c70b89c9d3aea2d9fb79c52e09fbe
1 { lib
2 , buildPythonPackage
3 , python
4 , fetchFromGitHub
5 , mkdocs
6 , twine
7 , arpeggio
8 , click
9 , future
10 , setuptools
11 , callPackage
12 , gprof2dot
13 , html5lib
14 , jinja2
15 , psutil
16 , pytestCheckHook
19 let
20   textx = buildPythonPackage rec {
21     pname = "textx";
22     version = "3.0.0";
23     format = "setuptools";
25     src = fetchFromGitHub {
26       owner = pname;
27       repo = pname;
28       rev = version;
29       hash = "sha256-uZlO82dKtWQQR5+Q7dWk3+ZoUzAjDJ8qzC4UMLCtnBk=";
30     };
32     postPatch = ''
33       substituteInPlace setup.cfg --replace "click >=7.0, <8.0" "click >=7.0"
34     '';
36     outputs = [
37       "out"
38       "testout"
39     ];
41     nativeBuildInputs = [
42       mkdocs
43       twine
44     ];
46     propagatedBuildInputs = [
47       arpeggio
48       click
49       future
50       setuptools
51     ];
53     postInstall = ''
54       # FileNotFoundError: [Errno 2] No such file or directory: '$out/lib/python3.10/site-packages/textx/textx.tx
55       cp "$src/textx/textx.tx" "$out/${python.sitePackages}/${pname}/"
57       # Install tests as the tests output.
58       mkdir $testout
59       cp -r tests $testout/tests
60     '';
62     pythonImportsCheck = [
63       "textx"
64     ];
66     # Circular dependencies, do tests in passthru.tests instead.
67     doCheck = false;
69     passthru.tests = {
70       textxTests = callPackage ./tests.nix {
71         inherit
72           textx-data-dsl
73           textx-example-project
74           textx-flow-codegen
75           textx-flow-dsl
76           textx-types-dsl;
77        };
78     };
80     meta = with lib; {
81       description = "Domain-specific languages and parsers in Python";
82       mainProgram = "textx";
83       homepage = "https://github.com/textx/textx/";
84       license = licenses.mit;
85       maintainers = with maintainers; [ yuu ];
86     };
87   };
89   textx-data-dsl = buildPythonPackage rec {
90     pname = "textx-data-dsl";
91     version = "1.0.0";
92     inherit (textx) src;
93     # `format` isn't included in the output of `mk-python-derivation`.
94     # So can't inherit format: `error: attribute 'format' missing`.
95     format = "setuptools";
96     pathToSourceRoot = "tests/functional/registration/projects/data_dsl";
97     sourceRoot = "${src.name}/" + pathToSourceRoot;
98     propagatedBuildInputs = [
99       textx
100       textx-types-dsl
101     ];
102     meta = with lib; {
103       inherit (textx.meta) license maintainers;
104       description = "Sample textX language for testing";
105       homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
106     };
107   };
109   textx-flow-codegen = buildPythonPackage rec {
110     pname = "textx-flow-codegen";
111     version = "1.0.0";
112     inherit (textx) src;
113     format = "setuptools";
114     pathToSourceRoot = "tests/functional/registration/projects/flow_codegen";
115     sourceRoot = "${src.name}/" + pathToSourceRoot;
116     propagatedBuildInputs = [
117       click
118       textx
119     ];
120     meta = with lib; {
121       inherit (textx.meta) license maintainers;
122       description = "Sample textX language for testing";
123       homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
124     };
125   };
127   textx-flow-dsl = buildPythonPackage rec {
128     pname = "textx-flow-dsl";
129     version = "1.0.0";
130     inherit (textx) src;
131     format = "setuptools";
132     pathToSourceRoot = "tests/functional/registration/projects/flow_dsl";
133     sourceRoot = "${src.name}/" + pathToSourceRoot;
134     propagatedBuildInputs = [
135       textx
136     ];
137     meta = with lib; {
138       inherit (textx.meta) license maintainers;
139       description = "Sample textX language for testing";
140       homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
141     };
142   };
144   textx-types-dsl = buildPythonPackage rec {
145     pname = "textx-types-dsl";
146     version = "1.0.0";
147     inherit (textx) src;
148     format = "setuptools";
149     pathToSourceRoot = "tests/functional/registration/projects/types_dsl";
150     sourceRoot = "${src.name}/" + pathToSourceRoot;
151     propagatedBuildInputs = [
152       textx
153     ];
154     meta = with lib; {
155       inherit (textx.meta) license maintainers;
156       description = "Sample textX language for testing";
157       homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
158     };
159   };
161   textx-example-project = buildPythonPackage rec {
162     pname = "textx-example-project";
163     version = "1.0.0";
164     inherit (textx) src;
165     format = "setuptools";
166     pathToSourceRoot = "tests/functional/subcommands/example_project";
167     sourceRoot = "${src.name}/" + pathToSourceRoot;
168     propagatedBuildInputs = [
169       textx
170     ];
171     meta = with lib; {
172       inherit (textx.meta) license maintainers;
173       description = "Sample textX sub-command for testing";
174       homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
175     };
176   };
178   textx