sphinx-codeautolink 0.17.3__tar.gz → 0.17.4__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.3/src/sphinx_codeautolink.egg-info → sphinx_codeautolink-0.17.4}/PKG-INFO +1 -1
  2. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/release_notes.rst +4 -0
  3. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/__init__.py +1 -1
  4. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/__init__.py +2 -1
  5. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/backref.py +5 -6
  6. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4/src/sphinx_codeautolink.egg-info}/PKG-INFO +1 -1
  7. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/__init__.py +53 -1
  8. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/_check.py +19 -0
  9. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/LICENSE +0 -0
  10. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/MANIFEST.in +0 -0
  11. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/contributing.rst +0 -0
  12. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/requirements.txt +0 -0
  13. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/404.rst +0 -0
  14. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/about.rst +0 -0
  15. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/conf.py +0 -0
  16. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/example_library.rst +0 -0
  17. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/examples.rst +0 -0
  18. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/index.rst +0 -0
  19. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/lib.py +0 -0
  20. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/reference.rst +0 -0
  21. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/docs/src/static/custom.css +0 -0
  22. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/pyproject.toml +0 -0
  23. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/readme_pypi.rst +0 -0
  24. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/requirements/build +0 -0
  25. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/requirements/dev +0 -0
  26. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/requirements/docs +0 -0
  27. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/requirements/extras +0 -0
  28. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/requirements/tests +0 -0
  29. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/setup.cfg +0 -0
  30. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/block.py +0 -0
  31. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/cache.py +0 -0
  32. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/directive.py +0 -0
  33. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/resolve.py +0 -0
  34. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/extension/translation.py +0 -0
  35. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  36. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  37. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  38. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  39. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  40. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  41. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  42. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  43. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  44. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  45. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  46. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  47. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/ru/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  48. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/sphinx-codeautolink.pot +0 -0
  49. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/locale/uk/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  50. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/parse.py +0 -0
  51. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/static/sphinx-codeautolink.css +0 -0
  52. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink/warn.py +0 -0
  53. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink.egg-info/SOURCES.txt +0 -0
  54. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink.egg-info/dependency_links.txt +0 -0
  55. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink.egg-info/requires.txt +0 -0
  56. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/src/sphinx_codeautolink.egg-info/top_level.txt +0 -0
  57. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/__init__.py +0 -0
  58. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/concat_invalid.txt +0 -0
  59. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/custom_block_import_invalid.txt +0 -0
  60. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/custom_block_syntax_error.txt +0 -0
  61. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/failed_resolve_invalid_location.txt +0 -0
  62. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/failed_resolve_no_module.txt +0 -0
  63. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/failed_resolve_return_type.txt +0 -0
  64. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/match_block_warning.txt +0 -0
  65. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/missing_inventory.txt +0 -0
  66. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/no_backreference.txt +0 -0
  67. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/no_module_docs.txt +0 -0
  68. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/preface_invalid_arg.txt +0 -0
  69. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/ref_import_star_invalid.txt +0 -0
  70. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/ref_invalid_block_type.txt +0 -0
  71. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/ref_invalid_syntax.txt +0 -0
  72. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/ref_invalid_syntax_complex.txt +0 -0
  73. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/ref_ipython_non-python.txt +0 -0
  74. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/fail/skip_invalid.txt +0 -0
  75. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/class_mro_fix.txt +0 -0
  76. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_default.txt +0 -0
  77. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_off.txt +0 -0
  78. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_on_across_sections.txt +0 -0
  79. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_on_breaks.txt +0 -0
  80. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_section_breaks.txt +0 -0
  81. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/concat_section_returns_to_global.txt +0 -0
  82. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/custom_block.txt +0 -0
  83. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/custom_block_imported.txt +0 -0
  84. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/empty_project.txt +0 -0
  85. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/inventory_map_is_needed.txt +0 -0
  86. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/inventory_map_not_needed.txt +0 -0
  87. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_bazel.txt +0 -0
  88. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_default.txt +0 -0
  89. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_default_fail.txt +0 -0
  90. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_doctest.txt +0 -0
  91. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_doctest_empty_input.txt +0 -0
  92. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_extdoctest_doctest.txt +0 -0
  93. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_extdoctest_setup.txt +0 -0
  94. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_extdoctest_setup_wrong.txt +0 -0
  95. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_extdoctest_testcode.txt +0 -0
  96. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_highlight_language.txt +0 -0
  97. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_highlight_none.txt +0 -0
  98. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_ipython.txt +0 -0
  99. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_ipython3.txt +0 -0
  100. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_ipython_directive.txt +0 -0
  101. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_ipython_directive_comment.txt +0 -0
  102. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_ipython_syntax.txt +0 -0
  103. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_literal.txt +0 -0
  104. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_non_python_block.txt +0 -0
  105. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_py.txt +0 -0
  106. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_py3.txt +0 -0
  107. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_pycon.txt +0 -0
  108. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_pycon_implicit.txt +0 -0
  109. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_pyi.txt +0 -0
  110. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_python3.txt +0 -0
  111. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_sage.txt +0 -0
  112. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/lexer_starlark.txt +0 -0
  113. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/line_numbers.txt +0 -0
  114. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_concatenated.txt +0 -0
  115. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_consumed_non_python.txt +0 -0
  116. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_document.txt +0 -0
  117. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_global.txt +0 -0
  118. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_global_multiline.txt +0 -0
  119. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_global_overwritten.txt +0 -0
  120. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_multiline.txt +0 -0
  121. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_multiline_and_arg.txt +0 -0
  122. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_multiple.txt +0 -0
  123. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/preface_single.txt +0 -0
  124. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_assign_targets.txt +0 -0
  125. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_builtins.txt +0 -0
  126. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_chain.txt +0 -0
  127. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_chain_call.txt +0 -0
  128. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_class_attr.txt +0 -0
  129. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_class_meth_returns_self.txt +0 -0
  130. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_class_type_attr.txt +0 -0
  131. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_decorator.txt +0 -0
  132. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_fluent_attrs.txt +0 -0
  133. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_fluent_call.txt +0 -0
  134. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_func_args.txt +0 -0
  135. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_func_no_module.txt +0 -0
  136. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_as.txt +0 -0
  137. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_from.txt +0 -0
  138. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_from_complex.txt +0 -0
  139. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_multiple.txt +0 -0
  140. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_multiple_libs.txt +0 -0
  141. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_star.txt +0 -0
  142. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_import_submodule.txt +0 -0
  143. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_imported_func.txt +0 -0
  144. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_imported_func_relocated.txt +0 -0
  145. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_inherited.txt +0 -0
  146. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_intersphinx_only.txt +0 -0
  147. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_invalid_func.txt +0 -0
  148. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_invalid_typehint.txt +0 -0
  149. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_optional.txt +0 -0
  150. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_optional_future.txt +0 -0
  151. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_shadow_builtin.txt +0 -0
  152. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/ref_simple.txt +0 -0
  153. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/search_css_duplicates_removed.txt +0 -0
  154. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/skip_file.txt +0 -0
  155. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/skip_next.txt +0 -0
  156. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/skip_next_consumed_non_python.txt +0 -0
  157. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/skip_off.txt +0 -0
  158. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/ref/skip_section.txt +0 -0
  159. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/src/class_mro_fix.py +0 -0
  160. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/src/future_project.py +0 -0
  161. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/src/parser_func.py +0 -0
  162. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/src/test_project/__init__.py +0 -0
  163. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/src/test_project/sub.py +0 -0
  164. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_autodoc_empty.txt +0 -0
  165. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_autodoc_links.txt +0 -0
  166. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_manual_collapse.txt +0 -0
  167. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_manual_empty.txt +0 -0
  168. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_manual_links.txt +0 -0
  169. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_manual_links_subsection.txt +0 -0
  170. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/extension/table/tab_no_table.txt +0 -0
  171. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/__init__.py +0 -0
  172. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/_util.py +0 -0
  173. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/assign.py +0 -0
  174. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/chain.py +0 -0
  175. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/match.py +0 -0
  176. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tests/parse/scope.py +0 -0
  177. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.4}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.3
3
+ Version: 0.17.4
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>
@@ -8,6 +8,10 @@ These release notes are based on
8
8
  sphinx-codeautolink adheres to
9
9
  `Semantic Versioning <https://semver.org>`_.
10
10
 
11
+ 0.17.4 (2025-03-07)
12
+ -------------------
13
+ - Fix backreference links using relative URIs (:issue:`190`)
14
+
11
15
  0.17.3 (2025-03-06)
12
16
  -------------------
13
17
  - Fix Sphinx InventoryItem deprecation warning (:issue:`173`)
@@ -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.3"
11
+ __version__ = "0.17.4"
12
12
 
13
13
 
14
14
  def setup(app: Sphinx):
@@ -271,7 +271,8 @@ class SphinxCodeAutoLink:
271
271
  visitor = CodeRefsVisitor(
272
272
  doctree,
273
273
  code_refs=self.code_refs,
274
- builder=app.builder.name,
274
+ docname=docname,
275
+ builder=app.builder,
275
276
  warn_no_backreference=self.warn_no_backreference,
276
277
  )
277
278
  doctree.walk(visitor)
@@ -1,9 +1,9 @@
1
1
  """Backreference tables implementation."""
2
2
 
3
3
  from dataclasses import dataclass
4
- from pathlib import Path
5
4
 
6
5
  from docutils import nodes
6
+ from sphinx.builders import Builder
7
7
 
8
8
  from sphinx_codeautolink.warn import logger, warn_type
9
9
 
@@ -63,12 +63,14 @@ class CodeRefsVisitor(nodes.SparseNodeVisitor):
63
63
  self,
64
64
  *args,
65
65
  code_refs: dict[str, list[CodeExample]],
66
- builder: str,
66
+ docname: str,
67
+ builder: Builder,
67
68
  warn_no_backreference: bool = False,
68
69
  **kwargs,
69
70
  ) -> None:
70
71
  super().__init__(*args, **kwargs)
71
72
  self.code_refs = code_refs
73
+ self.docname = docname
72
74
  self.builder = builder
73
75
  self.warn_no_backreference = warn_no_backreference
74
76
 
@@ -82,10 +84,7 @@ class CodeRefsVisitor(nodes.SparseNodeVisitor):
82
84
 
83
85
  items = []
84
86
  for ref in self.code_refs.get(node.ref, []):
85
- if self.builder == "dirhtml" and Path(ref.document).name != "index":
86
- link = ref.document + "/index.html"
87
- else:
88
- link = ref.document + ".html"
87
+ link = self.builder.get_relative_uri(self.docname, ref.document)
89
88
  if ref.ref_id is not None:
90
89
  link += f"#{ref.ref_id}"
91
90
  items.append((link, " / ".join(ref.headings)))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.3
3
+ Version: 0.17.4
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>
@@ -9,7 +9,7 @@ import pytest
9
9
  from bs4 import BeautifulSoup
10
10
  from sphinx.cmd.build import main as sphinx_main
11
11
 
12
- from ._check import check_link_targets
12
+ from ._check import check_link_targets, check_reference_targets_exist
13
13
 
14
14
  # Insert test package root to path for all tests
15
15
  sys.path.insert(0, str(Path(__file__).parent / "src"))
@@ -365,6 +365,58 @@ Page {idx}
365
365
  assert_links(result_dir / "subdir/page3/index.html", links)
366
366
 
367
367
  assert check_link_targets(result_dir) == len(links) * 4
368
+ check_reference_targets_exist(result_dir)
369
+
370
+
371
+ def test_html_subdir_reference(tmp_path: Path):
372
+ index = """
373
+ Test project
374
+ ============
375
+
376
+ .. toctree::
377
+
378
+ subdir/page1
379
+ subdir/subdir2/page2
380
+
381
+ Index Page
382
+ ----------
383
+
384
+ .. code:: python
385
+
386
+ import test_project
387
+ test_project.bar()
388
+
389
+ .. automodule:: test_project
390
+ """
391
+
392
+ page = """
393
+ Page {idx}
394
+ ===========
395
+
396
+ .. code:: python
397
+
398
+ import test_project
399
+ test_project.bar()
400
+
401
+ .. autolink-examples:: test_project.bar
402
+ """
403
+
404
+ files = {
405
+ "conf.py": default_conf,
406
+ "index.rst": index,
407
+ "subdir/page1.rst": page.format(idx=1),
408
+ "subdir/subdir2/page2.rst": page.format(idx=2),
409
+ }
410
+ links = ["test_project", "test_project.bar"]
411
+
412
+ result_dir = _sphinx_build(tmp_path, "html", files)
413
+
414
+ assert_links(result_dir / "index.html", links)
415
+ assert_links(result_dir / "subdir/page1.html", links)
416
+ assert_links(result_dir / "subdir/subdir2/page2.html", links)
417
+
418
+ assert check_link_targets(result_dir) == len(links) * 3
419
+ check_reference_targets_exist(result_dir)
368
420
 
369
421
 
370
422
  def _sphinx_build(
@@ -44,6 +44,25 @@ def check_link_targets(root: Path) -> int:
44
44
  return total
45
45
 
46
46
 
47
+ def check_reference_targets_exist(root: Path):
48
+ site_docs = {
49
+ p: BeautifulSoup(p.read_text("utf-8"), "html.parser")
50
+ for p in root.glob("**/*.html")
51
+ }
52
+ for doc, soup in site_docs.items():
53
+ for link in soup.find_all("a", attrs={"class": "reference internal"}):
54
+ base = link["href"].split("#")[0]
55
+ if any(base.startswith(s) for s in ("http://", "https://")):
56
+ continue
57
+ target_path = doc if base == "" else (doc.parent / base).resolve()
58
+ if target_path.is_dir():
59
+ target_path /= "index.html"
60
+ assert target_path.exists(), (
61
+ f"Target path {target_path!s} not found while validating"
62
+ f" link for `{link.string}` in {doc.relative_to(root)!s}!"
63
+ )
64
+
65
+
47
66
  def gather_ids(soup: BeautifulSoup) -> set:
48
67
  """Gather all HTML IDs from a given page."""
49
68
  return {tag["id"] for tag in soup.find_all(id=True)}