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}