sphinx-codeautolink 0.17.3__tar.gz → 0.17.5__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 (178) hide show
  1. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/PKG-INFO +3 -24
  2. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/release_notes.rst +8 -0
  3. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/pyproject.toml +2 -2
  4. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/__init__.py +1 -1
  5. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/__init__.py +3 -2
  6. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/backref.py +5 -6
  7. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/block.py +2 -1
  8. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink.egg-info/PKG-INFO +3 -24
  9. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink.egg-info/SOURCES.txt +1 -0
  10. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/__init__.py +53 -1
  11. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/_check.py +19 -0
  12. sphinx_codeautolink-0.17.5/tests/extension/ref/lexer_Python.txt +13 -0
  13. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/src/future_project.py +1 -1
  14. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/LICENSE +0 -0
  15. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/MANIFEST.in +0 -0
  16. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/contributing.rst +0 -0
  17. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/requirements.txt +0 -0
  18. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/404.rst +0 -0
  19. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/about.rst +0 -0
  20. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/conf.py +0 -0
  21. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/example_library.rst +0 -0
  22. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/examples.rst +0 -0
  23. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/index.rst +0 -0
  24. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/lib.py +0 -0
  25. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/reference.rst +0 -0
  26. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/docs/src/static/custom.css +0 -0
  27. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/readme_pypi.rst +0 -0
  28. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/requirements/build +0 -0
  29. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/requirements/dev +0 -0
  30. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/requirements/docs +0 -0
  31. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/requirements/extras +0 -0
  32. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/requirements/tests +0 -0
  33. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/setup.cfg +0 -0
  34. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/cache.py +0 -0
  35. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/directive.py +0 -0
  36. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/resolve.py +0 -0
  37. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/extension/translation.py +0 -0
  38. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  39. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/de/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  40. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  41. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/es/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  42. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  43. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/fi/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  44. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  45. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/fr/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  46. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  47. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/it/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  48. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.mo +0 -0
  49. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/nl/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  50. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/ru/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  51. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/sphinx-codeautolink.pot +0 -0
  52. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/locale/uk/LC_MESSAGES/sphinx-codeautolink.po +0 -0
  53. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/parse.py +0 -0
  54. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/static/sphinx-codeautolink.css +0 -0
  55. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink/warn.py +0 -0
  56. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink.egg-info/dependency_links.txt +0 -0
  57. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink.egg-info/requires.txt +0 -0
  58. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/src/sphinx_codeautolink.egg-info/top_level.txt +0 -0
  59. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/__init__.py +0 -0
  60. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/concat_invalid.txt +0 -0
  61. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/custom_block_import_invalid.txt +0 -0
  62. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/custom_block_syntax_error.txt +0 -0
  63. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/failed_resolve_invalid_location.txt +0 -0
  64. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/failed_resolve_no_module.txt +0 -0
  65. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/failed_resolve_return_type.txt +0 -0
  66. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/match_block_warning.txt +0 -0
  67. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/missing_inventory.txt +0 -0
  68. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/no_backreference.txt +0 -0
  69. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/no_module_docs.txt +0 -0
  70. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/preface_invalid_arg.txt +0 -0
  71. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/ref_import_star_invalid.txt +0 -0
  72. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/ref_invalid_block_type.txt +0 -0
  73. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/ref_invalid_syntax.txt +0 -0
  74. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/ref_invalid_syntax_complex.txt +0 -0
  75. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/ref_ipython_non-python.txt +0 -0
  76. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/fail/skip_invalid.txt +0 -0
  77. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/class_mro_fix.txt +0 -0
  78. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_default.txt +0 -0
  79. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_off.txt +0 -0
  80. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_on_across_sections.txt +0 -0
  81. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_on_breaks.txt +0 -0
  82. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_section_breaks.txt +0 -0
  83. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/concat_section_returns_to_global.txt +0 -0
  84. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/custom_block.txt +0 -0
  85. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/custom_block_imported.txt +0 -0
  86. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/empty_project.txt +0 -0
  87. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/inventory_map_is_needed.txt +0 -0
  88. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/inventory_map_not_needed.txt +0 -0
  89. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_bazel.txt +0 -0
  90. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_default.txt +0 -0
  91. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_default_fail.txt +0 -0
  92. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_doctest.txt +0 -0
  93. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_doctest_empty_input.txt +0 -0
  94. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_extdoctest_doctest.txt +0 -0
  95. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_extdoctest_setup.txt +0 -0
  96. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_extdoctest_setup_wrong.txt +0 -0
  97. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_extdoctest_testcode.txt +0 -0
  98. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_highlight_language.txt +0 -0
  99. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_highlight_none.txt +0 -0
  100. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_ipython.txt +0 -0
  101. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_ipython3.txt +0 -0
  102. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_ipython_directive.txt +0 -0
  103. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_ipython_directive_comment.txt +0 -0
  104. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_ipython_syntax.txt +0 -0
  105. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_literal.txt +0 -0
  106. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_non_python_block.txt +0 -0
  107. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_py.txt +0 -0
  108. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_py3.txt +0 -0
  109. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_pycon.txt +0 -0
  110. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_pycon_implicit.txt +0 -0
  111. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_pyi.txt +0 -0
  112. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_python3.txt +0 -0
  113. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_sage.txt +0 -0
  114. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/lexer_starlark.txt +0 -0
  115. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/line_numbers.txt +0 -0
  116. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_concatenated.txt +0 -0
  117. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_consumed_non_python.txt +0 -0
  118. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_document.txt +0 -0
  119. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_global.txt +0 -0
  120. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_global_multiline.txt +0 -0
  121. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_global_overwritten.txt +0 -0
  122. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_multiline.txt +0 -0
  123. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_multiline_and_arg.txt +0 -0
  124. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_multiple.txt +0 -0
  125. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/preface_single.txt +0 -0
  126. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_assign_targets.txt +0 -0
  127. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_builtins.txt +0 -0
  128. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_chain.txt +0 -0
  129. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_chain_call.txt +0 -0
  130. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_class_attr.txt +0 -0
  131. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_class_meth_returns_self.txt +0 -0
  132. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_class_type_attr.txt +0 -0
  133. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_decorator.txt +0 -0
  134. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_fluent_attrs.txt +0 -0
  135. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_fluent_call.txt +0 -0
  136. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_func_args.txt +0 -0
  137. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_func_no_module.txt +0 -0
  138. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_as.txt +0 -0
  139. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_from.txt +0 -0
  140. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_from_complex.txt +0 -0
  141. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_multiple.txt +0 -0
  142. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_multiple_libs.txt +0 -0
  143. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_star.txt +0 -0
  144. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_import_submodule.txt +0 -0
  145. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_imported_func.txt +0 -0
  146. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_imported_func_relocated.txt +0 -0
  147. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_inherited.txt +0 -0
  148. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_intersphinx_only.txt +0 -0
  149. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_invalid_func.txt +0 -0
  150. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_invalid_typehint.txt +0 -0
  151. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_optional.txt +0 -0
  152. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_optional_future.txt +0 -0
  153. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_shadow_builtin.txt +0 -0
  154. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/ref_simple.txt +0 -0
  155. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/search_css_duplicates_removed.txt +0 -0
  156. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/skip_file.txt +0 -0
  157. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/skip_next.txt +0 -0
  158. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/skip_next_consumed_non_python.txt +0 -0
  159. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/skip_off.txt +0 -0
  160. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/ref/skip_section.txt +0 -0
  161. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/src/class_mro_fix.py +0 -0
  162. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/src/parser_func.py +0 -0
  163. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/src/test_project/__init__.py +0 -0
  164. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/src/test_project/sub.py +0 -0
  165. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_autodoc_empty.txt +0 -0
  166. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_autodoc_links.txt +0 -0
  167. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_manual_collapse.txt +0 -0
  168. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_manual_empty.txt +0 -0
  169. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_manual_links.txt +0 -0
  170. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_manual_links_subsection.txt +0 -0
  171. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/extension/table/tab_no_table.txt +0 -0
  172. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/__init__.py +0 -0
  173. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/_util.py +0 -0
  174. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/assign.py +0 -0
  175. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/chain.py +0 -0
  176. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/match.py +0 -0
  177. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tests/parse/scope.py +0 -0
  178. {sphinx_codeautolink-0.17.3 → sphinx_codeautolink-0.17.5}/tox.ini +0 -0
@@ -1,31 +1,9 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.3
3
+ Version: 0.17.5
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>
7
- License: MIT License
8
-
9
- Copyright (c) 2021-2025 Felix Hildén
10
-
11
- Permission is hereby granted, free of charge, to any person obtaining a copy
12
- of this software and associated documentation files (the "Software"), to deal
13
- in the Software without restriction, including without limitation the rights
14
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- copies of the Software, and to permit persons to whom the Software is
16
- furnished to do so, subject to the following conditions:
17
-
18
- The above copyright notice and this permission notice shall be included in all
19
- copies or substantial portions of the Software.
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
- SOFTWARE.
28
-
29
7
  Project-URL: homepage, https://pypi.org/project/sphinx-codeautolink
30
8
  Project-URL: download, https://pypi.org/project/sphinx-codeautolink
31
9
  Project-URL: source, https://github.com/felix-hilden/sphinx-codeautolink
@@ -51,6 +29,7 @@ Requires-Dist: sphinx>=3.2.0
51
29
  Requires-Dist: beautifulsoup4>=4.8.1
52
30
  Provides-Extra: ipython
53
31
  Requires-Dist: ipython!=8.7.0; extra == "ipython"
32
+ Dynamic: license-file
54
33
 
55
34
  sphinx-codeautolink
56
35
  ===================
@@ -8,6 +8,14 @@ These release notes are based on
8
8
  sphinx-codeautolink adheres to
9
9
  `Semantic Versioning <https://semver.org>`_.
10
10
 
11
+ 0.17.5 (2025-07-09)
12
+ -------------------
13
+ - Add ``Python`` to default lexers (:issue:`194`)
14
+
15
+ 0.17.4 (2025-03-07)
16
+ -------------------
17
+ - Fix backreference links using relative URIs (:issue:`190`)
18
+
11
19
  0.17.3 (2025-03-06)
12
20
  -------------------
13
21
  - Fix Sphinx InventoryItem deprecation warning (:issue:`173`)
@@ -1,12 +1,12 @@
1
1
  [build-system]
2
- requires = ["setuptools>=61.0", "wheel"]
2
+ requires = ["setuptools>=77.0", "wheel"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sphinx-codeautolink"
7
7
  description = "Automatic links from code examples to reference documentation."
8
8
  readme = "readme_pypi.rst"
9
- license = {file = "LICENSE"}
9
+ license-files = ["LICENSE"]
10
10
  dynamic = ["version"]
11
11
 
12
12
  requires-python = ">=3.10"
@@ -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.5"
12
12
 
13
13
 
14
14
  def setup(app: Sphinx):
@@ -52,7 +52,7 @@ def print_exceptions(*, append_source: bool = False):
52
52
  source = doctree["source"]
53
53
  msg = f"in document `{source}`"
54
54
  if e.args:
55
- e.args = (e.args[0] + f" ({msg})",) + e.args[1:]
55
+ e.args = (e.args[0] + f" ({msg})", *e.args[1:])
56
56
  else:
57
57
  e.args = (f"Unexpected error {msg}",)
58
58
  raise
@@ -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)))
@@ -21,6 +21,7 @@ from .directive import ConcatMarker, PrefaceMarker, SkipMarker
21
21
  BUILTIN_BLOCKS = {
22
22
  "default": None,
23
23
  "python": None,
24
+ "Python": None,
24
25
  "python3": None,
25
26
  "py": None,
26
27
  "py3": None,
@@ -88,7 +89,7 @@ def _exclude_ipython_output(source: str) -> str:
88
89
 
89
90
  def clean_ipython(source: str) -> tuple[str, str]:
90
91
  """Clean up IPython magics and console syntax to pure Python."""
91
- from IPython.core.inputtransformer2 import TransformerManager
92
+ from IPython.core.inputtransformer2 import TransformerManager # noqa: PLC0415
92
93
 
93
94
  clean = _exclude_ipython_output(source)
94
95
  return source, TransformerManager().transform_cell(clean)
@@ -1,31 +1,9 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: sphinx-codeautolink
3
- Version: 0.17.3
3
+ Version: 0.17.5
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>
7
- License: MIT License
8
-
9
- Copyright (c) 2021-2025 Felix Hildén
10
-
11
- Permission is hereby granted, free of charge, to any person obtaining a copy
12
- of this software and associated documentation files (the "Software"), to deal
13
- in the Software without restriction, including without limitation the rights
14
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- copies of the Software, and to permit persons to whom the Software is
16
- furnished to do so, subject to the following conditions:
17
-
18
- The above copyright notice and this permission notice shall be included in all
19
- copies or substantial portions of the Software.
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
- SOFTWARE.
28
-
29
7
  Project-URL: homepage, https://pypi.org/project/sphinx-codeautolink
30
8
  Project-URL: download, https://pypi.org/project/sphinx-codeautolink
31
9
  Project-URL: source, https://github.com/felix-hilden/sphinx-codeautolink
@@ -51,6 +29,7 @@ Requires-Dist: sphinx>=3.2.0
51
29
  Requires-Dist: beautifulsoup4>=4.8.1
52
30
  Provides-Extra: ipython
53
31
  Requires-Dist: ipython!=8.7.0; extra == "ipython"
32
+ Dynamic: license-file
54
33
 
55
34
  sphinx-codeautolink
56
35
  ===================
@@ -83,6 +83,7 @@ tests/extension/ref/custom_block_imported.txt
83
83
  tests/extension/ref/empty_project.txt
84
84
  tests/extension/ref/inventory_map_is_needed.txt
85
85
  tests/extension/ref/inventory_map_not_needed.txt
86
+ tests/extension/ref/lexer_Python.txt
86
87
  tests/extension/ref/lexer_bazel.txt
87
88
  tests/extension/ref/lexer_default.txt
88
89
  tests/extension/ref/lexer_default_fail.txt
@@ -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)}
@@ -0,0 +1,13 @@
1
+ test_project
2
+ test_project.bar
3
+ # split
4
+ # split
5
+ Test project
6
+ ============
7
+
8
+ .. code-block:: Python
9
+
10
+ import test_project
11
+ test_project.bar()
12
+
13
+ .. automodule:: test_project
@@ -10,7 +10,7 @@ class Foo:
10
10
  attr: str = "test"
11
11
 
12
12
 
13
- def optional() -> Optional[Foo]: # noqa: UP007
13
+ def optional() -> Optional[Foo]: # noqa: UP045
14
14
  """Return optional type."""
15
15
 
16
16