mkdocstrings-python 2.0.9__tar.gz → 2.0.11__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 (297) hide show
  1. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/CHANGELOG.md +21 -0
  2. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/PKG-INFO +6 -11
  3. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/README.md +1 -5
  4. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/configuration/general.md +2 -0
  5. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/pyproject.toml +4 -6
  6. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/gen_credits.py +1 -7
  7. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/make.py +1 -1
  8. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/_internal/config.py +1 -9
  9. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/_internal/handler.py +1 -15
  10. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja +2 -2
  11. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja +1 -1
  12. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja +28 -21
  13. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja +1 -1
  14. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html.jinja +2 -2
  15. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_handler.py +199 -0
  16. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/CODE_OF_CONDUCT.md +0 -0
  17. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/CONTRIBUTING.md +0 -0
  18. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/LICENSE +0 -0
  19. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/black.toml +0 -0
  20. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/coverage.ini +0 -0
  21. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/git-changelog.toml +0 -0
  22. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/mypy.ini +0 -0
  23. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/pytest.ini +0 -0
  24. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/ruff.toml +0 -0
  25. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/vscode/launch.json +0 -0
  26. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/vscode/settings.json +0 -0
  27. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/config/vscode/tasks.json +0 -0
  28. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/.glossary.md +0 -0
  29. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/.overrides/partials/comments.html +0 -0
  30. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/.overrides/partials/path-item.html +0 -0
  31. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/changelog.md +0 -0
  32. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/code_of_conduct.md +0 -0
  33. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/contributing.md +0 -0
  34. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/credits.md +0 -0
  35. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/css/material.css +0 -0
  36. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/css/mkdocstrings.css +0 -0
  37. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/index.md +0 -0
  38. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/js/feedback.js +0 -0
  39. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/license.md +0 -0
  40. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/logo.png +0 -0
  41. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/reference/api.md +0 -0
  42. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/snippets/package/__init__.py +0 -0
  43. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/snippets/package/generics.py +0 -0
  44. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/snippets/package/modern.py +0 -0
  45. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/configuration/docstrings.md +0 -0
  46. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/configuration/headings.md +0 -0
  47. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/configuration/members.md +0 -0
  48. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/configuration/signatures.md +0 -0
  49. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/customization.md +0 -0
  50. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/docstrings/google.md +0 -0
  51. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/docstrings/numpy.md +0 -0
  52. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/docstrings/sphinx.md +0 -0
  53. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/extensions.md +0 -0
  54. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/docs/usage/index.md +0 -0
  55. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/duties.py +0 -0
  56. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/mkdocs.yml +0 -0
  57. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/get_version.py +0 -0
  58. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/griffe_extensions.py +0 -0
  59. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/make +0 -0
  60. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/scripts/mkdocs_hooks.py +0 -0
  61. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/__init__.py +0 -0
  62. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/_internal/__init__.py +0 -0
  63. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/_internal/debug.py +0 -0
  64. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/_internal/rendering.py +0 -0
  65. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/py.typed +0 -0
  66. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja +0 -0
  67. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/backlinks.html.jinja +0 -0
  68. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja +0 -0
  69. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/admonition.html.jinja +0 -0
  70. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/attributes.html.jinja +0 -0
  71. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/classes.html.jinja +0 -0
  72. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.jinja +0 -0
  73. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja +0 -0
  74. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html.jinja +0 -0
  75. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html.jinja +0 -0
  76. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja +0 -0
  77. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html.jinja +0 -0
  78. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/receives.html.jinja +0 -0
  79. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/returns.html.jinja +0 -0
  80. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja +0 -0
  81. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/warns.html.jinja +0 -0
  82. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html.jinja +0 -0
  83. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja +0 -0
  84. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/labels.html.jinja +0 -0
  85. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja +0 -0
  86. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja +0 -0
  87. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja +0 -0
  88. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja +0 -0
  89. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja +0 -0
  90. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja +0 -0
  91. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja +0 -0
  92. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja +0 -0
  93. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja +0 -0
  94. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja +0 -0
  95. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja +0 -0
  96. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja +0 -0
  97. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja +0 -0
  98. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja +0 -0
  99. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/attribute.html.jinja +0 -0
  100. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/backlinks.html.jinja +0 -0
  101. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/children.html.jinja +0 -0
  102. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/class.html.jinja +0 -0
  103. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/admonition.html.jinja +0 -0
  104. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/attributes.html.jinja +0 -0
  105. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/classes.html.jinja +0 -0
  106. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/examples.html.jinja +0 -0
  107. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/functions.html.jinja +0 -0
  108. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/modules.html.jinja +0 -0
  109. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/other_parameters.html.jinja +0 -0
  110. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/parameters.html.jinja +0 -0
  111. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/raises.html.jinja +0 -0
  112. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/receives.html.jinja +0 -0
  113. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/returns.html.jinja +0 -0
  114. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html +0 -0
  115. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja +0 -0
  116. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html +0 -0
  117. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja +0 -0
  118. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/warns.html.jinja +0 -0
  119. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring/yields.html.jinja +0 -0
  120. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/docstring.html.jinja +0 -0
  121. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/expression.html.jinja +0 -0
  122. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/function.html.jinja +0 -0
  123. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/labels.html.jinja +0 -0
  124. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/language.html.jinja +0 -0
  125. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/languages/en.html.jinja +0 -0
  126. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/languages/ja.html.jinja +0 -0
  127. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/languages/zh.html.jinja +0 -0
  128. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/module.html.jinja +0 -0
  129. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/signature.html.jinja +0 -0
  130. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/style.css +0 -0
  131. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/attributes.html.jinja +0 -0
  132. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/classes.html.jinja +0 -0
  133. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/functions.html.jinja +0 -0
  134. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/modules.html.jinja +0 -0
  135. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html +0 -0
  136. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja +0 -0
  137. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/summary.html.jinja +0 -0
  138. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/type_alias.html +0 -0
  139. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja +0 -0
  140. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html +0 -0
  141. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja +0 -0
  142. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html +0 -0
  143. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/attributes.html.jinja +0 -0
  144. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/other_parameters.html.jinja +0 -0
  145. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/parameters.html.jinja +0 -0
  146. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/raises.html.jinja +0 -0
  147. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/receives.html.jinja +0 -0
  148. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/returns.html.jinja +0 -0
  149. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/warns.html.jinja +0 -0
  150. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/yields.html.jinja +0 -0
  151. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja +0 -0
  152. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/en.html.jinja +0 -0
  153. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/ja.html.jinja +0 -0
  154. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/zh.html.jinja +0 -0
  155. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html +0 -0
  156. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html.jinja +0 -0
  157. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/attributes.html.jinja +0 -0
  158. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/other_parameters.html.jinja +0 -0
  159. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/parameters.html.jinja +0 -0
  160. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/raises.html.jinja +0 -0
  161. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/receives.html.jinja +0 -0
  162. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/returns.html.jinja +0 -0
  163. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/warns.html.jinja +0 -0
  164. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/yields.html.jinja +0 -0
  165. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/language.html.jinja +0 -0
  166. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/en.html.jinja +0 -0
  167. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/ja.html.jinja +0 -0
  168. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html.jinja +0 -0
  169. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/src/mkdocstrings_handlers/python/templates/readthedocs/style.css +0 -0
  170. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/__init__.py +0 -0
  171. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/conftest.py +0 -0
  172. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/helpers.py +0 -0
  173. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/headings/heading=,separate_signature=False.html +0 -0
  174. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/headings/heading=,separate_signature=True.html +0 -0
  175. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/headings/heading=Some heading,separate_signature=False.html +0 -0
  176. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/headings/heading=Some heading,separate_signature=True.html +0 -0
  177. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  178. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=().html +0 -0
  179. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  180. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  181. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  182. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  183. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=().html +0 -0
  184. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=False.html +0 -0
  185. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=None.html +0 -0
  186. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=True.html +0 -0
  187. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  188. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=().html +0 -0
  189. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=False.html +0 -0
  190. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=None.html +0 -0
  191. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=True.html +0 -0
  192. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  193. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=().html +0 -0
  194. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=False.html +0 -0
  195. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=None.html +0 -0
  196. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=True.html +0 -0
  197. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  198. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=().html +0 -0
  199. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  200. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  201. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  202. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  203. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=().html +0 -0
  204. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=False.html +0 -0
  205. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=None.html +0 -0
  206. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=True.html +0 -0
  207. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  208. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=().html +0 -0
  209. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=False.html +0 -0
  210. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=None.html +0 -0
  211. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=True.html +0 -0
  212. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  213. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=().html +0 -0
  214. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=False.html +0 -0
  215. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=None.html +0 -0
  216. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=True.html +0 -0
  217. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  218. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=().html +0 -0
  219. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=False.html +0 -0
  220. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=None.html +0 -0
  221. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=True.html +0 -0
  222. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=(),members=('module_attribute',).html +0 -0
  223. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=(),members=().html +0 -0
  224. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=(),members=False.html +0 -0
  225. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=(),members=None.html +0 -0
  226. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=(),members=True.html +0 -0
  227. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=False,members=('module_attribute',).html +0 -0
  228. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=False,members=().html +0 -0
  229. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=False,members=False.html +0 -0
  230. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=False,members=None.html +0 -0
  231. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=False,members=True.html +0 -0
  232. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=True,members=('module_attribute',).html +0 -0
  233. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=True,members=().html +0 -0
  234. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=True,members=False.html +0 -0
  235. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=True,members=None.html +0 -0
  236. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=(),inherited_members=True,members=True.html +0 -0
  237. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  238. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=().html +0 -0
  239. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=False.html +0 -0
  240. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=None.html +0 -0
  241. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=True.html +0 -0
  242. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=(),members=('module_attribute',).html +0 -0
  243. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=(),members=().html +0 -0
  244. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=(),members=False.html +0 -0
  245. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=(),members=None.html +0 -0
  246. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=(),members=True.html +0 -0
  247. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=False,members=('module_attribute',).html +0 -0
  248. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=False,members=().html +0 -0
  249. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=False,members=False.html +0 -0
  250. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=False,members=None.html +0 -0
  251. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=False,members=True.html +0 -0
  252. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=True,members=('module_attribute',).html +0 -0
  253. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=True,members=().html +0 -0
  254. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=True,members=False.html +0 -0
  255. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=True,members=None.html +0 -0
  256. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=None,inherited_members=True,members=True.html +0 -0
  257. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  258. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=().html +0 -0
  259. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=False.html +0 -0
  260. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=None.html +0 -0
  261. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=True.html +0 -0
  262. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=(),members=('module_attribute',).html +0 -0
  263. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=(),members=().html +0 -0
  264. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=(),members=False.html +0 -0
  265. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=(),members=None.html +0 -0
  266. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=(),members=True.html +0 -0
  267. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=False,members=('module_attribute',).html +0 -0
  268. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=False,members=().html +0 -0
  269. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=False,members=False.html +0 -0
  270. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=False,members=None.html +0 -0
  271. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=False,members=True.html +0 -0
  272. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=True,members=('module_attribute',).html +0 -0
  273. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=True,members=().html +0 -0
  274. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=True,members=False.html +0 -0
  275. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=True,members=None.html +0 -0
  276. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/members/filters=public,inherited_members=True,members=True.html +0 -0
  277. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html +0 -0
  278. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html +0 -0
  279. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html +0 -0
  280. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html +0 -0
  281. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html +0 -0
  282. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html +0 -0
  283. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html +0 -0
  284. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html +0 -0
  285. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  286. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  287. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  288. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  289. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  290. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  291. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  292. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  293. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_api.py +0 -0
  294. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_config.py +0 -0
  295. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_end_to_end.py +0 -0
  296. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_rendering.py +0 -0
  297. {mkdocstrings_python-2.0.9 → mkdocstrings_python-2.0.11}/tests/test_themes.py +0 -0
@@ -5,6 +5,27 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  <!-- insertion marker -->
8
+ ## [2.0.11](https://github.com/mkdocstrings/python/releases/tag/2.0.11) - 2026-11-12
9
+
10
+ <small>[Compare with 2.0.10](https://github.com/mkdocstrings/python/compare/2.0.10...2.0.11)</small>
11
+
12
+ ### Bug Fixes
13
+
14
+ - Add missing closing parenthesis around type parameter type ([ecfd54d](https://github.com/mkdocstrings/python/commit/ecfd54d4a7530fbed1f53ac023c37ae7d247b9db) by Timothée Mazzucotelli). [Issue-349](https://github.com/mkdocstrings/python/issues/349)
15
+ - Use Griffe's `reference_path` to avoid cross-referencing irrelevant headings ([1f0fa78](https://github.com/mkdocstrings/python/commit/1f0fa78282c03cbbf10d170cc6bd96979bc29c9e) by Timothée Mazzucotelli). [Issue-347](https://github.com/mkdocstrings/python/issues/347)
16
+
17
+ ## [2.0.10](https://github.com/mkdocstrings/python/releases/tag/2.0.10) - 2026-10-19
18
+
19
+ <small>[Compare with 2.0.9](https://github.com/mkdocstrings/python/compare/2.0.9...2.0.10)</small>
20
+
21
+ ### Build
22
+
23
+ - Drop support for Python 3.10 ([aad7fc6](https://github.com/mkdocstrings/python/commit/aad7fc6efd12f096807b466e5e3175e27fa7852d) by Timothée Mazzucotelli).
24
+
25
+ ### Bug Fixes
26
+
27
+ - Prefix code anchor/span IDs in signatures to avoid collisions ([35cde4c](https://github.com/mkdocstrings/python/commit/35cde4c1163d2d8a8fd79b34ab574888bfd30ddf) by Timothée Mazzucotelli). [Issue-200](https://github.com/mkdocstrings/python/issues/200)
28
+
8
29
  ## [2.0.9](https://github.com/mkdocstrings/python/releases/tag/2.0.9) - 2026-09-22
9
30
 
10
31
  <small>[Compare with 2.0.8](https://github.com/mkdocstrings/python/compare/2.0.8...2.0.9)</small>
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocstrings-python
3
- Version: 2.0.9
3
+ Version: 2.0.11
4
4
  Summary: A Python handler for mkdocstrings.
5
- Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
5
+ Author-Email: Timothée Mazzucotelli <dev@pawamoy.fr>
6
6
  License-Expression: ISC
7
7
  License-File: LICENSE
8
8
  Classifier: Development Status :: 4 - Beta
@@ -10,7 +10,6 @@ Classifier: Intended Audience :: Developers
10
10
  Classifier: Programming Language :: Python
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3 :: Only
13
- Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Programming Language :: Python :: 3.11
15
14
  Classifier: Programming Language :: Python :: 3.12
16
15
  Classifier: Programming Language :: Python :: 3.13
@@ -28,10 +27,10 @@ Project-URL: Issues, https://github.com/mkdocstrings/python/issues
28
27
  Project-URL: Discussions, https://github.com/mkdocstrings/python/discussions
29
28
  Project-URL: Gitter, https://gitter.im/mkdocstrings/python
30
29
  Project-URL: Funding, https://github.com/sponsors/pawamoy
31
- Requires-Python: >=3.10
32
- Requires-Dist: mkdocstrings>=0.30
30
+ Requires-Python: >=3.11
31
+ Requires-Dist: mkdocstrings>=1.0.8
33
32
  Requires-Dist: mkdocs-autorefs>=1.4
34
- Requires-Dist: griffelib>=2.0
33
+ Requires-Dist: griffelib>=2.4
35
34
  Requires-Dist: typing-extensions>=4.0; python_version < "3.11"
36
35
  Description-Content-Type: text/markdown
37
36
 
@@ -121,10 +120,6 @@ dependencies = [
121
120
 
122
121
  <div id="premium-sponsors" style="text-align: center;">
123
122
 
124
- <div id="silver-sponsors"><b>Silver sponsors</b><p>
125
- <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
126
- </p></div>
127
-
128
123
  <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
129
124
  <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
130
125
  </p></div>
@@ -138,6 +133,7 @@ dependencies = [
138
133
  <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
139
134
  <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
140
135
  <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
136
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a>
141
137
  <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
142
138
  <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
143
139
  <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -156,7 +152,6 @@ dependencies = [
156
152
  <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
157
153
  <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
158
154
  <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
159
- <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
160
155
  <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
161
156
  <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
162
157
  <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -84,10 +84,6 @@ dependencies = [
84
84
 
85
85
  <div id="premium-sponsors" style="text-align: center;">
86
86
 
87
- <div id="silver-sponsors"><b>Silver sponsors</b><p>
88
- <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
89
- </p></div>
90
-
91
87
  <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
92
88
  <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
93
89
  </p></div>
@@ -101,6 +97,7 @@ dependencies = [
101
97
  <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
102
98
  <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
103
99
  <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
100
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a>
104
101
  <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
105
102
  <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
106
103
  <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -119,7 +116,6 @@ dependencies = [
119
116
  <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
120
117
  <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
121
118
  <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
122
- <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
123
119
  <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
124
120
  <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
125
121
  <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -247,6 +247,8 @@ Whether to force inspecting modules (importing them) even if their source code i
247
247
 
248
248
  This option is useful when you know that dynamic analysis (inspection) yields better results than static analysis. Do not use this blindly: the recommended approach is to write a Griffe extension that will improve extracted API data. See [How to selectively inspect objects](https://mkdocstrings.github.io/griffe/guide/users/how-to/selectively-inspect/).
249
249
 
250
+ To document lazy module members, set `force_inspection: true` and ensure the module exposes their names through `__dir__` and their values through `__getattr__`. See [Lazy module members](https://mkdocstrings.github.io/griffe/guide/users/loading/#lazy-module-members) for an example.
251
+
250
252
  See also [`allow_inspection`](#allow_inspection).
251
253
 
252
254
  ```yaml title="in mkdocs.yml (global configuration)"
@@ -15,7 +15,7 @@ license-files = [
15
15
  "LICENSE",
16
16
  ]
17
17
  readme = "README.md"
18
- requires-python = ">=3.10"
18
+ requires-python = ">=3.11"
19
19
  keywords = []
20
20
  dynamic = []
21
21
  classifiers = [
@@ -24,7 +24,6 @@ classifiers = [
24
24
  "Programming Language :: Python",
25
25
  "Programming Language :: Python :: 3",
26
26
  "Programming Language :: Python :: 3 :: Only",
27
- "Programming Language :: Python :: 3.10",
28
27
  "Programming Language :: Python :: 3.11",
29
28
  "Programming Language :: Python :: 3.12",
30
29
  "Programming Language :: Python :: 3.13",
@@ -36,12 +35,12 @@ classifiers = [
36
35
  "Typing :: Typed",
37
36
  ]
38
37
  dependencies = [
39
- "mkdocstrings>=0.30",
38
+ "mkdocstrings>=1.0.8",
40
39
  "mkdocs-autorefs>=1.4",
41
- "griffelib>=2.0",
40
+ "griffelib>=2.4",
42
41
  "typing-extensions>=4.0; python_version < '3.11'",
43
42
  ]
44
- version = "2.0.9"
43
+ version = "2.0.11"
45
44
 
46
45
  [project.urls]
47
46
  Homepage = "https://mkdocstrings.github.io/python"
@@ -130,5 +129,4 @@ docs = [
130
129
  "mkdocs-section-index>=0.3",
131
130
  "mkdocstrings>=0.29",
132
131
  "pydantic>=2.10",
133
- "tomli>=2.0; python_version < '3.11'",
134
132
  ]
@@ -3,7 +3,6 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import os
6
- import sys
7
6
  from collections import defaultdict
8
7
  from collections.abc import Iterable
9
8
  from importlib.metadata import distributions
@@ -12,16 +11,11 @@ from pathlib import Path
12
11
  from textwrap import dedent
13
12
  from typing import Union
14
13
 
14
+ import tomllib
15
15
  from jinja2 import StrictUndefined
16
16
  from jinja2.sandbox import SandboxedEnvironment
17
17
  from packaging.requirements import Requirement
18
18
 
19
- # YORE: EOL 3.10: Replace block with line 2.
20
- if sys.version_info >= (3, 11):
21
- import tomllib
22
- else:
23
- import tomli as tomllib
24
-
25
19
  project_dir = Path(os.getenv("MKDOCS_CONFIG_DIR", "."))
26
20
  with project_dir.joinpath("pyproject.toml").open("rb") as pyproject_file:
27
21
  pyproject = tomllib.load(pyproject_file)
@@ -14,7 +14,7 @@ if TYPE_CHECKING:
14
14
  from collections.abc import Iterator
15
15
 
16
16
 
17
- PYTHON_VERSIONS = os.getenv("PYTHON_VERSIONS", "3.10 3.11 3.12 3.13 3.14 3.15").split()
17
+ PYTHON_VERSIONS = os.getenv("PYTHON_VERSIONS", "3.11 3.12 3.13 3.14 3.15").split()
18
18
  PYTHON_DEV = "3.15"
19
19
 
20
20
 
@@ -3,21 +3,13 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import re
6
- import sys
7
6
  from dataclasses import field, fields
8
- from typing import TYPE_CHECKING, Annotated, Any, Literal
7
+ from typing import TYPE_CHECKING, Annotated, Any, Literal, Self
9
8
 
10
9
  from mkdocstrings import get_logger
11
10
 
12
11
  from mkdocstrings_handlers.python._internal.rendering import Order # noqa: TC001
13
12
 
14
- # YORE: EOL 3.10: Replace block with line 2.
15
- if sys.version_info >= (3, 11):
16
- from typing import Self
17
- else:
18
- from typing_extensions import Self
19
-
20
-
21
13
  _logger = get_logger(__name__)
22
14
 
23
15
  _DEFAULT_FILTERS = ["!^_[^_]"]
@@ -39,21 +39,7 @@ if TYPE_CHECKING:
39
39
  from mkdocs_autorefs import Backlink
40
40
 
41
41
 
42
- # YORE: EOL 3.10: Replace block with line 2.
43
- if sys.version_info >= (3, 11):
44
- from contextlib import chdir
45
- else:
46
- from contextlib import contextmanager
47
-
48
- @contextmanager
49
- def chdir(path: str) -> Iterator[None]:
50
- old_wd = os.getcwd()
51
- os.chdir(path)
52
- try:
53
- yield
54
- finally:
55
- os.chdir(old_wd)
56
-
42
+ from contextlib import chdir
57
43
 
58
44
  _logger = get_logger(__name__)
59
45
 
@@ -250,14 +250,14 @@ Context:
250
250
  {% with init = all_members["__init__"] %}
251
251
  <details class="mkdocstrings-source">
252
252
  <summary>{{ lang.t("Source code in") }} <code>{{ init|source_location }}</code></summary>
253
- {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True) }}
253
+ {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True, id_prefix=html_id ~ "--source--") }}
254
254
  </details>
255
255
  {% endwith %}
256
256
  {% endif %}
257
257
  {% elif class.source %}
258
258
  <details class="mkdocstrings-source">
259
259
  <summary>{{ lang.t("Source code in") }} <code>{{ class|source_location }}</code></summary>
260
- {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True) }}
260
+ {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True, id_prefix=html_id ~ "--source--") }}
261
261
  </details>
262
262
  {% endif %}
263
263
  {% endif %}
@@ -124,7 +124,7 @@ Context:
124
124
  <code>{% include "expression.html.jinja" with context %}</code>
125
125
  {%- endwith -%}
126
126
  {%- endif -%}
127
- {%- if type_parameter.constraints or type_parameter.default -%}
127
+ {%- if type_parameter.bound or type_parameter.constraints or type_parameter.default -%}
128
128
  )
129
129
  {% endif -%}
130
130
  –
@@ -54,22 +54,27 @@ Context:
54
54
  {%- elif annotation_path == "full" -%}
55
55
  {%- set annotation = full -%}
56
56
  {%- endif -%}
57
- {%- for prefix, title, path, suffix in annotation|split_path(full) -%}
58
- {{ prefix }}
59
- {%- if not signature -%}
60
- {#- Always render cross-references outside of signatures. We don't need to stash them. -#}
61
- <autoref identifier="{{ path }}"{% if backlink_type %} backlink-type="{{ backlink_type }}" backlink-anchor="{{ html_id }}"{% endif %} optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
62
- {%- elif config.signature_crossrefs -%}
63
- {#- We're in a signature and cross-references are enabled, we must render one and stash it. -#}
64
- {%- filter stash_crossref(length=title|length) -%}
57
+ {%- if name.reference_path is none -%}
58
+ {#- Unresolved names can match unrelated headings, so render them as plain text. -#}
59
+ {{ annotation }}
60
+ {%- else -%}
61
+ {%- for prefix, title, path, suffix in annotation|split_path(name.reference_path) -%}
62
+ {{ prefix }}
63
+ {%- if not signature -%}
64
+ {#- Always render cross-references outside of signatures. We don't need to stash them. -#}
65
65
  <autoref identifier="{{ path }}"{% if backlink_type %} backlink-type="{{ backlink_type }}" backlink-anchor="{{ html_id }}"{% endif %} optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
66
- {%- endfilter -%}
67
- {%- else -%}
68
- {#- We're in a signature but cross-references are disabled, we just render the title. -#}
69
- {{ title }}
70
- {%- endif -%}
71
- {{ suffix }}
72
- {%- endfor -%}
66
+ {%- elif config.signature_crossrefs -%}
67
+ {#- We're in a signature and cross-references are enabled, we must render one and stash it. -#}
68
+ {%- filter stash_crossref(length=title|length) -%}
69
+ <autoref identifier="{{ path }}"{% if backlink_type %} backlink-type="{{ backlink_type }}" backlink-anchor="{{ html_id }}"{% endif %} optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
70
+ {%- endfilter -%}
71
+ {%- else -%}
72
+ {#- We're in a signature but cross-references are disabled, we just render the title. -#}
73
+ {{ title }}
74
+ {%- endif -%}
75
+ {{ suffix }}
76
+ {%- endfor -%}
77
+ {%- endif -%}
73
78
  {%- endwith -%}
74
79
  {%- endmacro -%}
75
80
 
@@ -82,11 +87,13 @@ Context:
82
87
  Returns:
83
88
  The autorefs cross-reference, or the type parameter name.
84
89
  -#}
85
- {%- if not signature -%}
86
- <autoref identifier="{{ name.canonical_path }}" optional{% if name.name not in obj.type_parameters %} hover{% endif %}>{{ name.name }}</autoref>
90
+ {%- if name.reference_path is none -%}
91
+ {{ name.name }}
92
+ {%- elif not signature -%}
93
+ <autoref identifier="{{ name.reference_path }}" optional{% if name.name not in obj.type_parameters %} hover{% endif %}>{{ name.name }}</autoref>
87
94
  {%- elif config.signature_crossrefs -%}
88
95
  {%- filter stash_crossref(length=name.name|length) -%}
89
- <autoref identifier="{{ name.canonical_path }}" optional{% if name.name not in obj.type_parameters %} hover{% endif %}>{{ name.name }}</autoref>
96
+ <autoref identifier="{{ name.reference_path }}" optional{% if name.name not in obj.type_parameters %} hover{% endif %}>{{ name.name }}</autoref>
90
97
  {%- endfilter -%}
91
98
  {%- else -%}
92
99
  {{ name.name }}
@@ -102,13 +109,13 @@ Context:
102
109
  Returns:
103
110
  The autorefs cross-reference, or the parameter name.
104
111
  -#}
105
- {%- if config.signature_crossrefs -%}
112
+ {%- if config.signature_crossrefs and expression.reference_path is not none -%}
106
113
  {%- if signature -%}
107
114
  {%- filter stash_crossref(length=expression.name|length) -%}
108
- <autoref identifier="{{ expression.canonical_path }}" optional hover>{{ expression.name }}</autoref>
115
+ <autoref identifier="{{ expression.reference_path }}" optional hover>{{ expression.name }}</autoref>
109
116
  {%- endfilter -%}
110
117
  {%- else -%}
111
- <autoref identifier="{{ expression.canonical_path }}" optional hover>{{ expression.name }}</autoref>
118
+ <autoref identifier="{{ expression.reference_path }}" optional hover>{{ expression.name }}</autoref>
112
119
  {%- endif -%}
113
120
  {%- else -%}
114
121
  {{ expression.name }}
@@ -149,7 +149,7 @@ Context:
149
149
  {% if config.show_source and function.source %}
150
150
  <details class="mkdocstrings-source">
151
151
  <summary>{{ lang.t("Source code in") }} <code>{{ function|source_location }}</code></summary>
152
- {{ function.source|highlight(language="python", linestart=function.lineno or 0, linenums=True) }}
152
+ {{ function.source|highlight(language="python", linestart=function.lineno or 0, linenums=True, id_prefix=html_id ~ "--source--") }}
153
153
  </details>
154
154
  {% endif %}
155
155
  {% endblock source %}
@@ -209,14 +209,14 @@ Context:
209
209
  {% with init = class.all_members["__init__"] %}
210
210
  <details class="quote">
211
211
  <summary>Source code in <code>{{ init|source_location }}</code></summary>
212
- {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True) }}
212
+ {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True, id_prefix=html_id ~ "--source--") }}
213
213
  </details>
214
214
  {% endwith %}
215
215
  {% endif %}
216
216
  {% elif class.source %}
217
217
  <details class="quote">
218
218
  <summary>Source code in <code>{{ class|source_location }}</code></summary>
219
- {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True) }}
219
+ {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True, id_prefix=html_id ~ "--source--") }}
220
220
  </details>
221
221
  {% endif %}
222
222
  {% endif %}
@@ -21,6 +21,7 @@ from griffe import (
21
21
  DocstringSectionKind,
22
22
  Module,
23
23
  temporary_inspected_module,
24
+ temporary_pypackage,
24
25
  temporary_visited_module,
25
26
  )
26
27
  from mkdocstrings import CollectionError
@@ -28,6 +29,7 @@ from mkdocstrings import CollectionError
28
29
  from mkdocstrings_handlers.python import Inventory, PythonConfig, PythonHandler, PythonOptions
29
30
 
30
31
  if TYPE_CHECKING:
32
+ from markdown import Markdown
31
33
  from mkdocstrings import MkdocstringsPlugin
32
34
 
33
35
 
@@ -204,6 +206,203 @@ def test_rendering_object_source_without_lineno(handler: PythonHandler) -> None:
204
206
  assert handler.render(module, PythonOptions(show_source=True))
205
207
 
206
208
 
209
+ @pytest.mark.parametrize("annotations_path", ["brief", "source", "full"])
210
+ @pytest.mark.parametrize(
211
+ ("code", "expected_text", "expected_targets"),
212
+ [
213
+ ("value = intro", "intro", []),
214
+ ("value = intro.attr", "intro.attr", []),
215
+ ("value = intro(keyword=1)", "intro(keyword=1)", []),
216
+ ("value = int", "int", ["int"]),
217
+ ("from pathlib import Path\nvalue = Path", None, ["pathlib.Path"]),
218
+ ("def factory(keyword): ...\nvalue = factory(keyword=1)", None, ["module.factory", "module.factory(keyword)"]),
219
+ ],
220
+ )
221
+ def test_expression_crossrefs(
222
+ handler: PythonHandler,
223
+ annotations_path: str,
224
+ code: str,
225
+ expected_text: str | None,
226
+ expected_targets: list[str],
227
+ ) -> None:
228
+ """Cross-reference resolved names and builtins while leaving unknown names as text."""
229
+ with temporary_visited_module(code) as module:
230
+ template = handler.env.get_template("expression.html.jinja")
231
+
232
+ html = template.render(
233
+ expression=module["value"].value,
234
+ config=handler.get_options({"annotations_path": annotations_path, "signature_crossrefs": True}),
235
+ )
236
+
237
+ soup = bs4.BeautifulSoup(html, "html.parser")
238
+ targets = [ref["identifier"] for ref in soup.find_all("autoref")]
239
+
240
+ # Full paths can also link their prefixes, but unknown names must have no targets.
241
+ assert all(target in targets for target in expected_targets)
242
+ if not expected_targets:
243
+ assert not targets
244
+ if expected_text is not None:
245
+ if annotations_path == "brief":
246
+ expected_text = expected_text.rsplit(".", 1)[-1]
247
+ assert soup.get_text() == expected_text
248
+
249
+
250
+ @pytest.mark.parametrize("signature_crossrefs", [True, False])
251
+ def test_instance_attribute_local_value_crossref(handler: PythonHandler, signature_crossrefs: bool) -> None:
252
+ """Keep a local variable's name visible without linking it to an unrelated heading."""
253
+ code = """
254
+ class Class:
255
+ def __init__(self):
256
+ intro = "Some text"
257
+ self.attr: str = intro
258
+ """
259
+ with temporary_visited_module(code) as module:
260
+ options = handler.get_options(
261
+ {
262
+ "separate_signature": True,
263
+ "signature_crossrefs": signature_crossrefs,
264
+ "show_signature_annotations": True,
265
+ "show_root_heading": True,
266
+ "show_source": False,
267
+ },
268
+ )
269
+
270
+ html = handler.render(module["Class.attr"], options)
271
+
272
+ soup = bs4.BeautifulSoup(html, "html.parser")
273
+ signature = soup.select_one(".doc-signature")
274
+ assert signature is not None
275
+ assert signature.get_text(strip=True) == "attr:str=intro"
276
+
277
+ # The builtin annotation can link; the unresolved local value cannot.
278
+ targets = [ref["identifier"] for ref in signature.find_all("autoref")]
279
+ assert targets == (["str"] if signature_crossrefs else [])
280
+
281
+
282
+ @pytest.mark.parametrize(
283
+ ("handler", "merge_init_into_class"),
284
+ [
285
+ (
286
+ {
287
+ "theme": theme,
288
+ "markdown_extensions": [
289
+ {
290
+ "pymdownx.highlight": {
291
+ "anchor_linenums": True,
292
+ "line_spans": "custom-span",
293
+ "line_anchors": "custom-line",
294
+ "linenums_style": linenums_style,
295
+ },
296
+ },
297
+ {"pymdownx.superfences": {}},
298
+ ],
299
+ },
300
+ merge_init_into_class,
301
+ )
302
+ for theme in ("material", "readthedocs", "mkdocs")
303
+ for linenums_style in ("table", "inline")
304
+ for merge_init_into_class in (True, False)
305
+ ],
306
+ indirect=["handler"],
307
+ )
308
+ def test_source_code_ids_are_unique(
309
+ handler: PythonHandler,
310
+ ext_markdown: Markdown,
311
+ merge_init_into_class: bool,
312
+ ) -> None:
313
+ """Keep source line IDs unique across modules, overlapping sources, and inherited methods."""
314
+ # Both modules put their source at the same line numbers. Class source also overlaps method source.
315
+ code = '''
316
+ class Base:
317
+ """Base class."""
318
+
319
+ def __init__(self):
320
+ """Initialize the base class."""
321
+ self.value = 1
322
+
323
+ def method(self):
324
+ """Return a value."""
325
+ return self.value
326
+
327
+ class Derived(Base):
328
+ """Derived class."""
329
+ '''
330
+ markdown = f"""
331
+ ::: source_ids.first
332
+ options:
333
+ show_source: true
334
+ inherited_members: true
335
+ merge_init_into_class: {str(merge_init_into_class).lower()}
336
+
337
+ ::: source_ids.second
338
+ options:
339
+ show_source: true
340
+ inherited_members: true
341
+ merge_init_into_class: {str(merge_init_into_class).lower()}
342
+ """
343
+ with temporary_pypackage("source_ids", {"first.py": code, "second.py": code}) as package:
344
+ handler._paths = [str(package.tmpdir)]
345
+
346
+ html = ext_markdown.convert(markdown)
347
+
348
+ soup = bs4.BeautifulSoup(html, "html.parser")
349
+ source_blocks = soup.select("details.mkdocstrings-source, details.quote")
350
+ assert len(source_blocks) == (8 if merge_init_into_class else 12)
351
+
352
+ # Every source ID is unique, including methods repeated under Derived.
353
+ ids = [element["id"] for block in source_blocks for element in block.select("[id]")]
354
+ assert ids
355
+ assert len(ids) == len(set(ids))
356
+ assert all(
357
+ str(identifier).startswith("source_ids.") and "--source--custom-" in str(identifier) for identifier in ids
358
+ )
359
+
360
+ # Line-number links and legacy anchor names still point to IDs in their own source block.
361
+ for block in source_blocks:
362
+ block_ids = {element["id"] for element in block.select("[id]")}
363
+ links = block.select('a[href^="#"]')
364
+ assert links
365
+ assert all(str(link["href"])[1:] in block_ids for link in links)
366
+ assert all(anchor["name"] == anchor["id"] for anchor in block.select("a[name]"))
367
+
368
+
369
+ @pytest.mark.parametrize(
370
+ "handler",
371
+ [
372
+ {
373
+ "markdown_extensions": [
374
+ {"pymdownx.highlight": {"anchor_linenums": True, "line_spans": "__span"}},
375
+ {"pymdownx.superfences": {}},
376
+ ],
377
+ },
378
+ ],
379
+ indirect=True,
380
+ )
381
+ def test_source_and_docstring_code_ids_do_not_collide(handler: PythonHandler) -> None:
382
+ """Keep source and docstring code IDs distinct."""
383
+ # Both the function's source and the fenced example start at line 1.
384
+ code = '''def function():
385
+ """An example.
386
+
387
+ ```python linenums="1"
388
+ print("example")
389
+ ```
390
+ """
391
+ return 1
392
+ '''
393
+ with temporary_visited_module(code, module_name="code_ids") as module:
394
+ html = handler.render(module["function"], handler.get_options({"show_source": True}))
395
+
396
+ soup = bs4.BeautifulSoup(html, "html.parser")
397
+ ids = [element["id"] for element in soup.select("[id]")]
398
+
399
+ assert len(ids) == len(set(ids))
400
+ assert "code_ids.function--__span-0-1" in ids
401
+ assert "code_ids.function--source--__span-0-1" in ids
402
+ assert "code_ids.function--__codelineno-0-1" in ids
403
+ assert "code_ids.function--source--__codelineno-0-1" in ids
404
+
405
+
207
406
  def test_give_precedence_to_user_paths() -> None:
208
407
  """Assert user paths take precedence over default paths."""
209
408
  last_sys_path = sys.path[-1]