Merge pull request #163964 from yuuyins/strictdoc

strictdoc: init at 0.0.26
This commit is contained in:
Sandro 2022-07-17 16:45:12 +02:00 committed by GitHub
commit e59f65caf8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 451 additions and 0 deletions

View File

@ -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
)

View 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 ];
};
}

View 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 ];
};
}

View 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 ];
};
}

View 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

View 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/";
};
}

View File

@ -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 { };

View File

@ -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 { };