1{
2 lib,
3 beautifulsoup4,
4 buildPythonPackage,
5 defusedxml,
6 docutils,
7 fetchFromGitHub,
8 flit-core,
9 jinja2,
10 markdown-it-py,
11 mdit-py-plugins,
12 pytest-param-files,
13 pytest-regressions,
14 pytestCheckHook,
15 pythonOlder,
16 pyyaml,
17 sphinx-pytest,
18 sphinx,
19 typing-extensions,
20}:
21
22buildPythonPackage rec {
23 pname = "myst-docutils";
24 version = "4.0.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.10";
28
29 src = fetchFromGitHub {
30 owner = "executablebooks";
31 repo = "MyST-Parser";
32 tag = "v${version}";
33 hash = "sha256-/Prauz4zuJY39EK2BmgBbH1uwjF4K38e5X5hPYwRBl0=";
34 };
35
36 build-system = [ flit-core ];
37
38 dependencies = [
39 docutils
40 jinja2
41 markdown-it-py
42 mdit-py-plugins
43 pyyaml
44 sphinx
45 typing-extensions
46 ];
47
48 nativeCheckInputs = [
49 beautifulsoup4
50 defusedxml
51 pytest-param-files
52 pytest-regressions
53 pytestCheckHook
54 sphinx-pytest
55 ];
56
57 pythonImportsCheck = [ "myst_parser" ];
58
59 disabledTests = [
60 # Tests require linkify
61 "test_cmdline"
62 "test_extended_syntaxes"
63 # sphinx compat
64 "test_sphinx_directives"
65 ];
66
67 disabledTestPaths = [
68 # Assertion errors
69 "tests/test_sphinx/"
70 ];
71
72 meta = with lib; {
73 description = "Extended commonmark compliant parser, with bridges to docutils/sphinx";
74 homepage = "https://github.com/executablebooks/MyST-Parser";
75 changelog = "https://github.com/executablebooks/MyST-Parser/blob/v${version}/CHANGELOG.md";
76 license = licenses.mit;
77 maintainers = with maintainers; [ dpausp ];
78 };
79}