1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6
7 # build-system
8 flit-core,
9
10 # dependencies
11 astroid,
12 jinja2,
13 pyyaml,
14 sphinx,
15 stdlib-list,
16
17 # tests
18 beautifulsoup4,
19 pytestCheckHook,
20}:
21
22buildPythonPackage rec {
23 pname = "sphinx-autoapi";
24 version = "3.6.0";
25 pyproject = true;
26
27 disabled = pythonOlder "3.9";
28
29 src = fetchFromGitHub {
30 owner = "readthedocs";
31 repo = "sphinx-autoapi";
32 tag = "v${version}";
33 hash = "sha256-pDfGNpDyrU4q48ZHKqfN8OrxKICfIhac2qMJDB1iE0I=";
34 };
35
36 build-system = [ flit-core ];
37
38 dependencies = [
39 astroid
40 jinja2
41 pyyaml
42 sphinx
43 ]
44 ++ lib.optionals (pythonOlder "3.10") [
45 stdlib-list
46 ];
47
48 nativeCheckInputs = [
49 beautifulsoup4
50 pytestCheckHook
51 ];
52
53 disabledTests = [
54 # require network access
55 "test_integration"
56 ];
57
58 pythonImportsCheck = [ "autoapi" ];
59
60 meta = with lib; {
61 homepage = "https://github.com/readthedocs/sphinx-autoapi";
62 changelog = "https://github.com/readthedocs/sphinx-autoapi/blob/${src.tag}/CHANGELOG.rst";
63 description = "Provides 'autodoc' style documentation";
64 longDescription = ''
65 Sphinx AutoAPI provides 'autodoc' style documentation for
66 multiple programming languages without needing to load, run, or
67 import the project being documented.
68 '';
69 license = licenses.mit;
70 maintainers = with maintainers; [ ];
71 };
72}