1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 astroid,
12 anyascii,
13 jinja2,
14 pyyaml,
15 sphinx,
16
17 # tests
18 beautifulsoup4,
19 mock,
20 pytestCheckHook,
21}:
22
23buildPythonPackage rec {
24 pname = "sphinx-autoapi";
25 version = "3.0.0";
26 format = "pyproject";
27
28 disabled = pythonOlder "3.7";
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-CevWdKMrREZyIrD7ipF7l8iVI/INvwW1LLij8OFXFN4=";
33 };
34
35 nativeBuildInputs = [ setuptools ];
36
37 propagatedBuildInputs = [
38 anyascii
39 astroid
40 jinja2
41 pyyaml
42 sphinx
43 ];
44
45 nativeCheckInputs = [
46 beautifulsoup4
47 mock
48 pytestCheckHook
49 ];
50
51 disabledTests = [
52 # failing typing assertions
53 "test_integration"
54 "test_annotations"
55 # sphinx.errors.SphinxWarning: cannot cache unpickable configuration value: 'autoapi_prepare_jinja_env' (because it contains a function, class, or module object)
56 "test_custom_jinja_filters"
57 ];
58
59 pythonImportsCheck = [ "autoapi" ];
60
61 meta = with lib; {
62 homepage = "https://github.com/readthedocs/sphinx-autoapi";
63 changelog = "https://github.com/readthedocs/sphinx-autoapi/blob/v${version}/CHANGELOG.rst";
64 description = "Provides 'autodoc' style documentation";
65 longDescription = ''
66 Sphinx AutoAPI provides 'autodoc' style documentation for
67 multiple programming languages without needing to load, run, or
68 import the project being documented.
69 '';
70 license = licenses.mit;
71 maintainers = with maintainers; [ karolchmist ];
72 };
73}