Merge pull request #163964 from yuuyins/strictdoc
strictdoc: init at 0.0.26
This commit is contained in:
commit
e59f65caf8
@ -0,0 +1,15 @@
|
||||
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
|
||||
index 932747c..9b3d6ac 100644
|
||||
--- a/tests/unit/conftest.py
|
||||
+++ b/tests/unit/conftest.py
|
||||
@@ -1,9 +1,7 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
-STRICTDOC_ROOT_PATH = os.path.abspath(
|
||||
- os.path.join(__file__, "../../../../strictdoc")
|
||||
-)
|
||||
+STRICTDOC_ROOT_PATH = "@strictdoc_root_path@"
|
||||
assert os.path.exists(STRICTDOC_ROOT_PATH), "does not exist: {}".format(
|
||||
STRICTDOC_ROOT_PATH
|
||||
)
|
100
pkgs/applications/science/engineering/strictdoc/default.nix
Normal file
100
pkgs/applications/science/engineering/strictdoc/default.nix
Normal file
@ -0,0 +1,100 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, pythonOlder
|
||||
, html5lib
|
||||
, invoke
|
||||
, openpyxl
|
||||
, poetry-core
|
||||
, tidylib
|
||||
, beautifulsoup4
|
||||
, dataclasses
|
||||
, datauri
|
||||
, docutils
|
||||
, jinja2
|
||||
, lxml
|
||||
, markupsafe
|
||||
, pygments
|
||||
, reqif
|
||||
, setuptools
|
||||
, textx
|
||||
, xlrd
|
||||
, XlsxWriter
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "strictdoc";
|
||||
version = "0.0.26";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "strictdoc-project";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-SMAwji75AjW8CzXRKBDF+fR/a5++GhgIvkcuD+a/vp4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./conftest.py.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./tests/unit/conftest.py \
|
||||
--replace @strictdoc_root_path@ "${placeholder "out"}/${python3.sitePackages}/strictdoc"
|
||||
|
||||
substituteInPlace requirements.txt \
|
||||
--replace "jinja2 >= 2.11.2, <3.0" "jinja2 >= 2.11.2" \
|
||||
--replace "reqif >= 0.0.18, == 0.*" "reqif>=0.0.8" \
|
||||
--replace "==" ">=" \
|
||||
--replace "~=" ">="
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
html5lib
|
||||
invoke
|
||||
openpyxl
|
||||
poetry-core
|
||||
tidylib
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
beautifulsoup4
|
||||
datauri
|
||||
docutils
|
||||
jinja2
|
||||
lxml
|
||||
markupsafe
|
||||
pygments
|
||||
reqif
|
||||
setuptools
|
||||
textx
|
||||
xlrd
|
||||
XlsxWriter
|
||||
] ++ lib.optionals (pythonOlder "3.7") [
|
||||
dataclasses
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"strictdoc"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# fixture 'fs' not found
|
||||
"test_001_load_from_files"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software requirements specification tool";
|
||||
homepage = "https://github.com/strictdoc-project/strictdoc";
|
||||
changelog = "https://github.com/strictdoc-project/strictdoc/releases";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ yuu ];
|
||||
};
|
||||
}
|
37
pkgs/development/python-modules/datauri/default.nix
Normal file
37
pkgs/development/python-modules/datauri/default.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "datauri";
|
||||
version = "1.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fcurella";
|
||||
repo = "python-datauri";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Eevd/xxKgxvvsAfI/L/KShH+PfxffBGyVwKewLgyEu0=";
|
||||
};
|
||||
|
||||
pythonImportsCheck = [
|
||||
"datauri"
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# UnicodeDecodeError: 'utf-8' codec can't decode
|
||||
"tests/test_file_ebcdic.txt"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Data URI manipulation made easy.";
|
||||
homepage = "https://github.com/fcurella/python-datauri";
|
||||
license = licenses.unlicense;
|
||||
maintainers = with maintainers; [ yuu ];
|
||||
};
|
||||
}
|
60
pkgs/development/python-modules/reqif/default.nix
Normal file
60
pkgs/development/python-modules/reqif/default.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, python3
|
||||
, pythonOlder
|
||||
, fetchFromGitHub
|
||||
, poetry-core
|
||||
, beautifulsoup4
|
||||
, lxml
|
||||
, jinja2
|
||||
, dataclasses
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "reqif";
|
||||
version = "0.0.8";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "strictdoc-project";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-PtzRJUvv+Oee08+sdakFviKIhwfLngyal1WSWDtMELg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./tests/unit/conftest.py --replace \
|
||||
"os.path.abspath(os.path.join(__file__, \"../../../../reqif\"))" \
|
||||
"\"${placeholder "out"}/${python3.sitePackages}/reqif\""
|
||||
substituteInPlace pyproject.toml --replace "^" ">="
|
||||
substituteInPlace requirements.txt --replace "==" ">="
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
beautifulsoup4
|
||||
lxml
|
||||
jinja2
|
||||
] ++ lib.optionals (pythonOlder "3.7") [
|
||||
dataclasses
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"reqif"
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library for ReqIF format";
|
||||
homepage = "https://github.com/strictdoc-project/reqif";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ yuu ];
|
||||
};
|
||||
}
|
178
pkgs/development/python-modules/textx/default.nix
Normal file
178
pkgs/development/python-modules/textx/default.nix
Normal file
@ -0,0 +1,178 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, mkdocs
|
||||
, twine
|
||||
, arpeggio
|
||||
, click
|
||||
, future
|
||||
, setuptools
|
||||
, callPackage
|
||||
, gprof2dot
|
||||
, html5lib
|
||||
, jinja2
|
||||
, memory_profiler
|
||||
, psutil
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
let
|
||||
textx = buildPythonPackage rec {
|
||||
pname = "textx";
|
||||
version = "3.0.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-uZlO82dKtWQQR5+Q7dWk3+ZoUzAjDJ8qzC4UMLCtnBk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg --replace "click >=7.0, <8.0" "click >=7.0"
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"testout"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
mkdocs
|
||||
twine
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
arpeggio
|
||||
click
|
||||
future
|
||||
setuptools
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# FileNotFoundError: [Errno 2] No such file or directory: '$out/lib/python3.10/site-packages/textx/textx.tx
|
||||
cp "$src/textx/textx.tx" "$out/${python3.sitePackages}/${pname}/"
|
||||
|
||||
# Install tests as the tests output.
|
||||
mkdir $testout
|
||||
cp -r tests $testout/tests
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
"textx"
|
||||
];
|
||||
|
||||
# Circular dependencies, do tests in passthru.tests instead.
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
textxTests = callPackage ./tests.nix {
|
||||
inherit
|
||||
textx-data-dsl
|
||||
textx-example-project
|
||||
textx-flow-codegen
|
||||
textx-flow-dsl
|
||||
textx-types-dsl;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Domain-specific languages and parsers in Python";
|
||||
homepage = "https://github.com/textx/textx/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ yuu ];
|
||||
};
|
||||
};
|
||||
|
||||
textx-data-dsl = buildPythonPackage rec {
|
||||
pname = "textx-data-dsl";
|
||||
version = "1.0.0";
|
||||
inherit (textx) src;
|
||||
# `format` isn't included in the output of `mk-python-derivation`.
|
||||
# So can't inherit format: `error: attribute 'format' missing`.
|
||||
format = "setuptools";
|
||||
pathToSourceRoot = "tests/functional/registration/projects/data_dsl";
|
||||
sourceRoot = "${src.name}/" + pathToSourceRoot;
|
||||
propagatedBuildInputs = [
|
||||
textx
|
||||
textx-types-dsl
|
||||
];
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "Sample textX language for testing";
|
||||
homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
|
||||
};
|
||||
};
|
||||
|
||||
textx-flow-codegen = buildPythonPackage rec {
|
||||
pname = "textx-flow-codegen";
|
||||
version = "1.0.0";
|
||||
inherit (textx) src;
|
||||
format = "setuptools";
|
||||
pathToSourceRoot = "tests/functional/registration/projects/flow_codegen";
|
||||
sourceRoot = "${src.name}/" + pathToSourceRoot;
|
||||
propagatedBuildInputs = [
|
||||
click
|
||||
textx
|
||||
];
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "Sample textX language for testing";
|
||||
homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
|
||||
};
|
||||
};
|
||||
|
||||
textx-flow-dsl = buildPythonPackage rec {
|
||||
pname = "textx-flow-dsl";
|
||||
version = "1.0.0";
|
||||
inherit (textx) src;
|
||||
format = "setuptools";
|
||||
pathToSourceRoot = "tests/functional/registration/projects/flow_dsl";
|
||||
sourceRoot = "${src.name}/" + pathToSourceRoot;
|
||||
propagatedBuildInputs = [
|
||||
textx
|
||||
];
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "Sample textX language for testing";
|
||||
homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
|
||||
};
|
||||
};
|
||||
|
||||
textx-types-dsl = buildPythonPackage rec {
|
||||
pname = "textx-types-dsl";
|
||||
version = "1.0.0";
|
||||
inherit (textx) src;
|
||||
format = "setuptools";
|
||||
pathToSourceRoot = "tests/functional/registration/projects/types_dsl";
|
||||
sourceRoot = "${src.name}/" + pathToSourceRoot;
|
||||
propagatedBuildInputs = [
|
||||
textx
|
||||
];
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "Sample textX language for testing";
|
||||
homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
|
||||
};
|
||||
};
|
||||
|
||||
textx-example-project = buildPythonPackage rec {
|
||||
pname = "textx-example-project";
|
||||
version = "1.0.0";
|
||||
inherit (textx) src;
|
||||
format = "setuptools";
|
||||
pathToSourceRoot = "tests/functional/subcommands/example_project";
|
||||
sourceRoot = "${src.name}/" + pathToSourceRoot;
|
||||
propagatedBuildInputs = [
|
||||
textx
|
||||
];
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "Sample textX sub-command for testing";
|
||||
homepage = textx.homepage + "tree/${version}/" + pathToSourceRoot;
|
||||
};
|
||||
};
|
||||
in
|
||||
textx
|
53
pkgs/development/python-modules/textx/tests.nix
Normal file
53
pkgs/development/python-modules/textx/tests.nix
Normal file
@ -0,0 +1,53 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, click
|
||||
, gprof2dot
|
||||
, html5lib
|
||||
, jinja2
|
||||
, memory_profiler
|
||||
, psutil
|
||||
, pytestCheckHook
|
||||
, setuptools
|
||||
, textx
|
||||
, textx-data-dsl
|
||||
, textx-example-project
|
||||
, textx-flow-codegen
|
||||
, textx-flow-dsl
|
||||
, textx-types-dsl
|
||||
}:
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "textx-tests";
|
||||
inherit (textx) version;
|
||||
|
||||
srcs = textx.testout;
|
||||
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
|
||||
checkInputs = [
|
||||
click
|
||||
gprof2dot
|
||||
html5lib
|
||||
jinja2
|
||||
memory_profiler
|
||||
psutil
|
||||
pytestCheckHook
|
||||
setuptools
|
||||
textx-data-dsl
|
||||
textx-example-project
|
||||
textx-flow-codegen
|
||||
textx-flow-dsl
|
||||
textx-types-dsl
|
||||
];
|
||||
|
||||
pytestFlagsArray = [
|
||||
"tests/functional"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
inherit (textx.meta) license maintainers;
|
||||
description = "passthru.tests for textx";
|
||||
homepage = textx.homepage + "tree/${version}/" + "tests/";
|
||||
};
|
||||
}
|
@ -34073,6 +34073,8 @@ with pkgs;
|
||||
|
||||
jflap = callPackage ../applications/science/engineering/jflap { };
|
||||
|
||||
strictdoc = python3.pkgs.callPackage ../applications/science/engineering/strictdoc { };
|
||||
|
||||
### SCIENCE / ELECTRONICS
|
||||
|
||||
adms = callPackage ../applications/science/electronics/adms { };
|
||||
|
@ -2156,6 +2156,8 @@ in {
|
||||
|
||||
datatable = callPackage ../development/python-modules/datatable { };
|
||||
|
||||
datauri = callPackage ../development/python-modules/datauri { };
|
||||
|
||||
dateparser = callPackage ../development/python-modules/dateparser { };
|
||||
|
||||
dateutils = callPackage ../development/python-modules/dateutils { };
|
||||
@ -9239,6 +9241,8 @@ in {
|
||||
|
||||
reproject = callPackage ../development/python-modules/reproject { };
|
||||
|
||||
reqif = callPackage ../development/python-modules/reqif { };
|
||||
|
||||
requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
|
||||
|
||||
requests-cache = callPackage ../development/python-modules/requests-cache { };
|
||||
@ -10538,6 +10542,8 @@ in {
|
||||
|
||||
textwrap3 = callPackage ../development/python-modules/textwrap3 { };
|
||||
|
||||
textx = callPackage ../development/python-modules/textx { };
|
||||
|
||||
tflearn = callPackage ../development/python-modules/tflearn { };
|
||||
|
||||
tgcrypto = callPackage ../development/python-modules/tgcrypto { };
|
||||
|
Loading…
Reference in New Issue
Block a user