sphinx-codeautolink 0.17.2__tar.gz → 0.17.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. {sphinx_codeautolink-0.17.2/src/sphinx_codeautolink.egg-info → sphinx_codeautolink-0.17.3}/PKG-INFO +1 -1
  2. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/contributing.rst +10 -0
  3. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/about.rst +2 -2
  4. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/index.rst +1 -1
  5. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/release_notes.rst +5 -0
  6. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/pyproject.toml +3 -0
  7. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/__init__.py +1 -1
  8. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/__init__.py +16 -4
  9. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/backref.py +7 -1
  10. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/block.py +6 -1
  11. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3/src/sphinx_codeautolink.egg-info}/PKG-INFO +1 -1
  12. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/__init__.py +58 -1
  13. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/_check.py +12 -4
  14. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tox.ini +3 -3
  15. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/LICENSE +0 -0
  16. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/MANIFEST.in +0 -0
  17. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/requirements.txt +0 -0
  18. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/404.rst +0 -0
  19. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/conf.py +0 -0
  20. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/example_library.rst +0 -0
  21. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/examples.rst +0 -0
  22. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/lib.py +0 -0
  23. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/reference.rst +0 -0
  24. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/docs/src/static/custom.css +0 -0
  25. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/readme_pypi.rst +0 -0
  26. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/requirements/build +0 -0
  27. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/requirements/dev +0 -0
  28. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/requirements/docs +0 -0
  29. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/requirements/extras +0 -0
  30. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/requirements/tests +0 -0
  31. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/setup.cfg +0 -0
  32. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/cache.py +0 -0
  33. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/directive.py +0 -0
  34. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/resolve.py +0 -0
  35. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/extension/translation.py +0 -0
  36. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  37. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  38. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  39. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  40. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  41. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  42. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  43. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  44. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  45. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  46. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  47. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  48. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/ru/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  49. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/sphinx-codeautolink.pot +0 -0
  50. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/locale/uk/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  51. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/parse.py +0 -0
  52. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/static/sphinx-codeautolink.css +0 -0
  53. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink/warn.py +0 -0
  54. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink.egg-info/SOURCES.txt +0 -0
  55. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink.egg-info/dependency_links.txt +0 -0
  56. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink.egg-info/requires.txt +0 -0
  57. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/src/sphinx_codeautolink.egg-info/top_level.txt +0 -0
  58. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/__init__.py +0 -0
  59. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/concat_invalid.txt +0 -0
  60. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/custom_block_import_invalid.txt +0 -0
  61. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/custom_block_syntax_error.txt +0 -0
  62. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/failed_resolve_invalid_location.txt +0 -0
  63. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/failed_resolve_no_module.txt +0 -0
  64. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/failed_resolve_return_type.txt +0 -0
  65. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/match_block_warning.txt +0 -0
  66. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/missing_inventory.txt +0 -0
  67. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/no_backreference.txt +0 -0
  68. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/no_module_docs.txt +0 -0
  69. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/preface_invalid_arg.txt +0 -0
  70. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/ref_import_star_invalid.txt +0 -0
  71. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/ref_invalid_block_type.txt +0 -0
  72. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/ref_invalid_syntax.txt +0 -0
  73. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/ref_invalid_syntax_complex.txt +0 -0
  74. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/ref_ipython_non-python.txt +0 -0
  75. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/fail/skip_invalid.txt +0 -0
  76. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/class_mro_fix.txt +0 -0
  77. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_default.txt +0 -0
  78. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_off.txt +0 -0
  79. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_on_across_sections.txt +0 -0
  80. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_on_breaks.txt +0 -0
  81. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_section_breaks.txt +0 -0
  82. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/concat_section_returns_to_global.txt +0 -0
  83. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/custom_block.txt +0 -0
  84. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/custom_block_imported.txt +0 -0
  85. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/empty_project.txt +0 -0
  86. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/inventory_map_is_needed.txt +0 -0
  87. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/inventory_map_not_needed.txt +0 -0
  88. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_bazel.txt +0 -0
  89. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_default.txt +0 -0
  90. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_default_fail.txt +0 -0
  91. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_doctest.txt +0 -0
  92. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_doctest_empty_input.txt +0 -0
  93. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_extdoctest_doctest.txt +0 -0
  94. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_extdoctest_setup.txt +0 -0
  95. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_extdoctest_setup_wrong.txt +0 -0
  96. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_extdoctest_testcode.txt +0 -0
  97. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_highlight_language.txt +0 -0
  98. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_highlight_none.txt +0 -0
  99. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_ipython.txt +0 -0
  100. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_ipython3.txt +0 -0
  101. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_ipython_directive.txt +0 -0
  102. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_ipython_directive_comment.txt +0 -0
  103. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_ipython_syntax.txt +0 -0
  104. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_literal.txt +0 -0
  105. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_non_python_block.txt +0 -0
  106. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_py.txt +0 -0
  107. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_py3.txt +0 -0
  108. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_pycon.txt +0 -0
  109. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_pycon_implicit.txt +0 -0
  110. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_pyi.txt +0 -0
  111. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_python3.txt +0 -0
  112. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_sage.txt +0 -0
  113. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/lexer_starlark.txt +0 -0
  114. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/line_numbers.txt +0 -0
  115. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_concatenated.txt +0 -0
  116. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_consumed_non_python.txt +0 -0
  117. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_document.txt +0 -0
  118. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_global.txt +0 -0
  119. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_global_multiline.txt +0 -0
  120. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_global_overwritten.txt +0 -0
  121. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_multiline.txt +0 -0
  122. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_multiline_and_arg.txt +0 -0
  123. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_multiple.txt +0 -0
  124. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/preface_single.txt +0 -0
  125. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_assign_targets.txt +0 -0
  126. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_builtins.txt +0 -0
  127. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_chain.txt +0 -0
  128. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_chain_call.txt +0 -0
  129. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_class_attr.txt +0 -0
  130. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_class_meth_returns_self.txt +0 -0
  131. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_class_type_attr.txt +0 -0
  132. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_decorator.txt +0 -0
  133. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_fluent_attrs.txt +0 -0
  134. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_fluent_call.txt +0 -0
  135. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_func_args.txt +0 -0
  136. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_func_no_module.txt +0 -0
  137. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_as.txt +0 -0
  138. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_from.txt +0 -0
  139. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_from_complex.txt +0 -0
  140. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_multiple.txt +0 -0
  141. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_multiple_libs.txt +0 -0
  142. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_star.txt +0 -0
  143. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_import_submodule.txt +0 -0
  144. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_imported_func.txt +0 -0
  145. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_imported_func_relocated.txt +0 -0
  146. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_inherited.txt +0 -0
  147. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_intersphinx_only.txt +0 -0
  148. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_invalid_func.txt +0 -0
  149. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_invalid_typehint.txt +0 -0
  150. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_optional.txt +0 -0
  151. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_optional_future.txt +0 -0
  152. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_shadow_builtin.txt +0 -0
  153. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/ref_simple.txt +0 -0
  154. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/search_css_duplicates_removed.txt +0 -0
  155. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/skip_file.txt +0 -0
  156. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/skip_next.txt +0 -0
  157. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/skip_next_consumed_non_python.txt +0 -0
  158. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/skip_off.txt +0 -0
  159. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/ref/skip_section.txt +0 -0
  160. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/src/class_mro_fix.py +0 -0
  161. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/src/future_project.py +0 -0
  162. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/src/parser_func.py +0 -0
  163. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/src/test_project/__init__.py +0 -0
  164. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/src/test_project/sub.py +0 -0
  165. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_autodoc_empty.txt +0 -0
  166. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_autodoc_links.txt +0 -0
  167. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_manual_collapse.txt +0 -0
  168. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_manual_empty.txt +0 -0
  169. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_manual_links.txt +0 -0
  170. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_manual_links_subsection.txt +0 -0
  171. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/extension/table/tab_no_table.txt +0 -0
  172. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/__init__.py +0 -0
  173. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/_util.py +0 -0
  174. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/assign.py +0 -0
  175. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/chain.py +0 -0
  176. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/match.py +0 -0
  177. {sphinx_codeautolink-0.17.2 → sphinx_codeautolink-0.17.3}/tests/parse/scope.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.2
3
+ Version: 0.17.3
4
4
  Summary: Automatic links from code examples to reference documentation.
5
5
  Author-email: Felix Hildén <felix.hilden@gmail.com>
6
6
  Maintainer-email: Felix Hildén <felix.hilden@gmail.com>
@@ -37,6 +37,16 @@ For tips and tricks on contributing, see `how to submit a contribution
37
37
  specifically `opening a pull request
38
38
  <https://opensource.guide/how-to-contribute/#opening-a-pull-request>`_.
39
39
 
40
+ If you want to contribute to someone else's fork and find yourself forgetting
41
+ how to do it every time, here's the runbook:
42
+
43
+ .. code:: sh
44
+
45
+ git remote add [name] git@github.com:[name]/sphinx-codeautolink.git
46
+ git fetch [name]
47
+ git switch -c branch [name]/branch
48
+ git remote rm [name]
49
+
40
50
  Testing
41
51
  -------
42
52
  The installation can be verified, and any changes tested by running tox.
@@ -16,8 +16,8 @@ is injected after the ordinary Sphinx build is finished.
16
16
 
17
17
  Caveats
18
18
  -------
19
- - **Only works with HTML documentation**, disabled otherwise. If the extension
20
- is off, it silently removes directives that would produce output.
19
+ - **Only works with HTML or DIRHTML documentation**, disabled otherwise. If the
20
+ extension is off, it silently removes directives that would produce output.
21
21
  - **Only processes blocks, not inline code**. Sphinx has great tools
22
22
  for linking definitions inline, and longer code should be in a block anyway.
23
23
  - **Doesn't run example code**. Therefore all possible resolvable types are not
@@ -68,7 +68,7 @@ Caveats
68
68
  -------
69
69
  For a more thorough explanation, see :ref:`about`.
70
70
 
71
- - Only works with HTML documentation
71
+ - Only works with HTML or DIRHTML documentation
72
72
  - Only processes blocks, not inline code
73
73
  - Doesn't run example code
74
74
  - Parsing and type hint resolving is incomplete
@@ -8,6 +8,11 @@ These release notes are based on
8
8
  sphinx-codeautolink adheres to
9
9
  `Semantic Versioning <https://semver.org>`_.
10
10
 
11
+ 0.17.3 (2025-03-06)
12
+ -------------------
13
+ - Fix Sphinx InventoryItem deprecation warning (:issue:`173`)
14
+ - Add support for the DIRHTML Sphinx builder (:issue:`188`)
15
+
11
16
  0.17.2 (2025-03-02)
12
17
  -------------------
13
18
  - Support :rst:dir:`testsetup` from ``sphinx.ext.doctest`` as another
@@ -48,6 +48,9 @@ version = {attr = "sphinx_codeautolink.__version__"}
48
48
  [tool.pytest.ini_options]
49
49
  python_files = "*.py"
50
50
  testpaths = ["tests"]
51
+ filterwarnings = [
52
+ "ignore:.*IPython:UserWarning",
53
+ ]
51
54
 
52
55
  [tool.coverage.run]
53
56
  source = ["src"]
@@ -8,7 +8,7 @@ from .extension import SphinxCodeAutoLink, backref, directive
8
8
  from .extension.block import clean_ipython, clean_pycon
9
9
  from .extension.translation import MESSAGE_CATALOG_NAME
10
10
 
11
- __version__ = "0.17.2"
11
+ __version__ = "0.17.3"
12
12
 
13
13
 
14
14
  def setup(app: Sphinx):
@@ -7,6 +7,7 @@ from functools import wraps
7
7
  from pathlib import Path
8
8
  from traceback import print_exc
9
9
 
10
+ from sphinx import version_info as sphinx_version
10
11
  from sphinx.ext.intersphinx import InventoryAdapter
11
12
  from sphinx.util import import_object
12
13
 
@@ -89,7 +90,7 @@ class SphinxCodeAutoLink:
89
90
  @print_exceptions()
90
91
  def build_inited(self, app) -> None:
91
92
  """Handle initial setup."""
92
- if app.builder.name != "html":
93
+ if app.builder.name not in ("html", "dirhtml"):
93
94
  self.do_nothing = True
94
95
  return
95
96
 
@@ -177,7 +178,9 @@ class SphinxCodeAutoLink:
177
178
  }
178
179
  inter_inv = InventoryAdapter(app.env).main_inventory
179
180
  transposed = transpose_inventory(inter_inv, relative_to=app.outdir)
180
- transposed.update(transpose_inventory(inventory, relative_to=app.outdir))
181
+ transposed.update(
182
+ transpose_inventory(inventory, relative_to=app.outdir, use_tuple=True)
183
+ )
181
184
  return transposed
182
185
 
183
186
  @print_exceptions()
@@ -268,6 +271,7 @@ class SphinxCodeAutoLink:
268
271
  visitor = CodeRefsVisitor(
269
272
  doctree,
270
273
  code_refs=self.code_refs,
274
+ builder=app.builder.name,
271
275
  warn_no_backreference=self.warn_no_backreference,
272
276
  )
273
277
  doctree.walk(visitor)
@@ -289,12 +293,15 @@ class SphinxCodeAutoLink:
289
293
  self.inventory,
290
294
  self.custom_blocks,
291
295
  self.search_css_classes,
296
+ builder_name=app.builder.name,
292
297
  )
293
298
 
294
299
  self.cache.write()
295
300
 
296
301
 
297
- def transpose_inventory(inv: dict, relative_to: str) -> dict[str, str]:
302
+ def transpose_inventory(
303
+ inv: dict, relative_to: str, *, use_tuple: bool = False
304
+ ) -> dict[str, str]:
298
305
  """
299
306
  Transpose Sphinx inventory from {type: {name: (..., location)}} to {name: location}.
300
307
 
@@ -306,13 +313,18 @@ def transpose_inventory(inv: dict, relative_to: str) -> dict[str, str]:
306
313
  Sphinx inventory
307
314
  relative_to
308
315
  if a local file is found, transform it to be relative to this dir
316
+ use_tuple
317
+ force using Sphinx inventory tuple interface,
318
+ TODO: move to class interface if it becomes public (#173)
309
319
  """
310
320
  transposed = {}
311
321
  for type_, items in inv.items():
312
322
  if not type_.startswith("py:"):
313
323
  continue
314
324
  for item, info in items.items():
315
- location = info[2]
325
+ location = (
326
+ info.uri if not use_tuple and sphinx_version >= (8, 2) else info[2]
327
+ )
316
328
  if not location.startswith("http"):
317
329
  location = str(Path(location).relative_to(relative_to))
318
330
  transposed[item] = location
@@ -1,6 +1,7 @@
1
1
  """Backreference tables implementation."""
2
2
 
3
3
  from dataclasses import dataclass
4
+ from pathlib import Path
4
5
 
5
6
  from docutils import nodes
6
7
 
@@ -62,11 +63,13 @@ class CodeRefsVisitor(nodes.SparseNodeVisitor):
62
63
  self,
63
64
  *args,
64
65
  code_refs: dict[str, list[CodeExample]],
66
+ builder: str,
65
67
  warn_no_backreference: bool = False,
66
68
  **kwargs,
67
69
  ) -> None:
68
70
  super().__init__(*args, **kwargs)
69
71
  self.code_refs = code_refs
72
+ self.builder = builder
70
73
  self.warn_no_backreference = warn_no_backreference
71
74
 
72
75
  def unknown_departure(self, node) -> None:
@@ -79,7 +82,10 @@ class CodeRefsVisitor(nodes.SparseNodeVisitor):
79
82
 
80
83
  items = []
81
84
  for ref in self.code_refs.get(node.ref, []):
82
- link = ref.document + ".html"
85
+ if self.builder == "dirhtml" and Path(ref.document).name != "index":
86
+ link = ref.document + "/index.html"
87
+ else:
88
+ link = ref.document + ".html"
83
89
  if ref.ref_id is not None:
84
90
  link += f"#{ref.ref_id}"
85
91
  items.append((link, " / ".join(ref.headings)))
@@ -375,9 +375,14 @@ def link_html(
375
375
  inventory: dict,
376
376
  custom_blocks: dict,
377
377
  search_css_classes: list,
378
+ builder_name: str = "html",
378
379
  ) -> None:
379
380
  """Inject links to code blocks on disk."""
380
- html_file = Path(out_dir) / (document + ".html")
381
+ if builder_name == "dirhtml" and Path(document).name != "index":
382
+ html_file = Path(out_dir) / document / "index.html"
383
+ else:
384
+ html_file = Path(out_dir) / (document + ".html")
385
+
381
386
  text = html_file.read_text("utf-8")
382
387
  soup = BeautifulSoup(text, "html.parser")
383
388
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.2
3
+ Version: 0.17.3
4
4
  Summary: Automatic links from code examples to reference documentation.
5
5
  Author-email: Felix Hildén <felix.hilden@gmail.com>
6
6
  Maintainer-email: Felix Hildén <felix.hilden@gmail.com>
@@ -278,6 +278,7 @@ Test project
278
278
 
279
279
  for file in subfiles:
280
280
  assert_links(result_dir / (file + ".html"), links)
281
+
281
282
  assert check_link_targets(result_dir) == n_subfiles * len(links)
282
283
 
283
284
 
@@ -312,6 +313,60 @@ Test project
312
313
  assert "sphinx-codeautolink-a" in str(blocks[1])
313
314
 
314
315
 
316
+ def test_dirhtml_builder(tmp_path: Path):
317
+ index = """
318
+ Test project
319
+ ============
320
+
321
+ .. toctree::
322
+ :maxdepth: 2
323
+
324
+ page1/index
325
+ page2
326
+ subdir/page3
327
+
328
+ Index Page Code
329
+ ---------------
330
+
331
+ .. code:: python
332
+
333
+ import test_project
334
+ test_project.bar()
335
+
336
+ .. automodule:: test_project
337
+ """
338
+
339
+ page = """
340
+ Page {idx}
341
+ ===========
342
+
343
+ .. code:: python
344
+
345
+ import test_project
346
+ test_project.bar()
347
+
348
+ .. autolink-examples:: test_project.bar
349
+ """
350
+
351
+ files = {
352
+ "conf.py": default_conf,
353
+ "index.rst": index,
354
+ "page1/index.rst": page.format(idx=1),
355
+ "page2.rst": page.format(idx=2),
356
+ "subdir/page3.rst": page.format(idx=3),
357
+ }
358
+ links = ["test_project", "test_project.bar"]
359
+
360
+ result_dir = _sphinx_build(tmp_path, "dirhtml", files)
361
+
362
+ assert_links(result_dir / "index.html", links)
363
+ assert_links(result_dir / "page1/index.html", links)
364
+ assert_links(result_dir / "page2/index.html", links)
365
+ assert_links(result_dir / "subdir/page3/index.html", links)
366
+
367
+ assert check_link_targets(result_dir) == len(links) * 4
368
+
369
+
315
370
  def _sphinx_build(
316
371
  folder: Path, builder: str, files: dict[str, str], n_processes: int | None = None
317
372
  ) -> Path:
@@ -319,7 +374,9 @@ def _sphinx_build(
319
374
  src_dir = folder / "src"
320
375
  src_dir.mkdir(exist_ok=True)
321
376
  for name, content in files.items():
322
- (src_dir / name).write_text(content, "utf-8")
377
+ path = src_dir / name
378
+ path.parent.mkdir(exist_ok=True, parents=True)
379
+ path.write_text(content, "utf-8")
323
380
 
324
381
  build_dir = folder / "build"
325
382
  args = ["-M", builder, str(src_dir), str(build_dir), "-W"]
@@ -12,7 +12,7 @@ external_site_ids = {}
12
12
  def check_link_targets(root: Path) -> int:
13
13
  """Validate links in HTML site at root, return number of links found."""
14
14
  site_docs = {
15
- p.relative_to(root): BeautifulSoup(p.read_text("utf-8"), "html.parser")
15
+ p: BeautifulSoup(p.read_text("utf-8"), "html.parser")
16
16
  for p in root.glob("**/*.html")
17
17
  }
18
18
  site_ids = {k: gather_ids(v) for k, v in site_docs.items()}
@@ -27,10 +27,18 @@ def check_link_targets(root: Path) -> int:
27
27
  external_site_ids[base] = gather_ids(sub_soup)
28
28
  ids = external_site_ids[base]
29
29
  else:
30
- ids = site_ids[Path(base)]
30
+ target_path = (doc.parent / base).resolve()
31
+ if target_path.is_dir():
32
+ target_path /= "index.html"
33
+ assert target_path.exists(), (
34
+ f"Target path {target_path!s} not found while validating"
35
+ f" link for `{link.string}` in {doc.relative_to(root)!s}!"
36
+ )
37
+ ids = site_ids[target_path]
38
+
31
39
  assert id_ in ids, (
32
- f"ID {id_} not found in {base}"
33
- f" while validating link for `{link.string}` in {doc!s}!"
40
+ f"ID {id_} not found in {base} while validating link"
41
+ f" for `{link.string}` in {doc.relative_to(root)!s}!"
34
42
  )
35
43
  total += 1
36
44
  return total
@@ -35,7 +35,7 @@ commands = coverage run
35
35
  [testenv:doc8]
36
36
  description = Check documentation .rst files
37
37
  allowlist_externals = doc8
38
- commands = doc8 docs/src
38
+ commands = doc8 docs/src --quiet
39
39
 
40
40
  [testenv:docs]
41
41
  description = Build Sphinx documentation
@@ -62,7 +62,7 @@ description = Build and check package
62
62
  deps = -r requirements/build
63
63
  allowlist_externals = rm, cmd
64
64
  commands =
65
- python -m build
65
+ python -m build -C--quiet
66
66
  twine check --strict dist/*
67
67
  commands_post =
68
68
  lin,mac: rm -r dist
@@ -76,7 +76,7 @@ commands_pre =
76
76
  lin,mac: rm -rf dist
77
77
  win: cmd /c if exist dist rmdir /s /q dist
78
78
  commands =
79
- python -m build
79
+ python -m build -C--quiet
80
80
  twine check --strict dist/*
81
81
  twine upload dist/* --config-file .pypirc
82
82
  commands_post =