mkdocstrings-python 2.0.8__tar.gz → 2.0.10__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.8 → mkdocstrings_python-2.0.10}/CHANGELOG.md +25 -0
  2. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/PKG-INFO +4 -5
  3. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/pyproject.toml +3 -5
  4. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/gen_credits.py +1 -7
  5. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/make.py +1 -1
  6. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/_internal/config.py +1 -9
  7. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/_internal/handler.py +10 -21
  8. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/_internal/rendering.py +21 -13
  9. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja +5 -2
  10. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja +3 -3
  11. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja +3 -3
  12. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja +3 -3
  13. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja +5 -3
  14. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja +2 -2
  15. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html.jinja +2 -2
  16. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_handler.py +153 -0
  17. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_rendering.py +51 -0
  18. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/CODE_OF_CONDUCT.md +0 -0
  19. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/CONTRIBUTING.md +0 -0
  20. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/LICENSE +0 -0
  21. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/README.md +0 -0
  22. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/black.toml +0 -0
  23. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/coverage.ini +0 -0
  24. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/git-changelog.toml +0 -0
  25. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/mypy.ini +0 -0
  26. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/pytest.ini +0 -0
  27. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/ruff.toml +0 -0
  28. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/vscode/launch.json +0 -0
  29. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/vscode/settings.json +0 -0
  30. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/config/vscode/tasks.json +0 -0
  31. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/.glossary.md +0 -0
  32. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/.overrides/partials/comments.html +0 -0
  33. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/.overrides/partials/path-item.html +0 -0
  34. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/changelog.md +0 -0
  35. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/code_of_conduct.md +0 -0
  36. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/contributing.md +0 -0
  37. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/credits.md +0 -0
  38. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/css/material.css +0 -0
  39. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/css/mkdocstrings.css +0 -0
  40. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/index.md +0 -0
  41. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/js/feedback.js +0 -0
  42. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/license.md +0 -0
  43. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/logo.png +0 -0
  44. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/reference/api.md +0 -0
  45. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/snippets/package/__init__.py +0 -0
  46. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/snippets/package/generics.py +0 -0
  47. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/snippets/package/modern.py +0 -0
  48. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/configuration/docstrings.md +0 -0
  49. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/configuration/general.md +0 -0
  50. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/configuration/headings.md +0 -0
  51. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/configuration/members.md +0 -0
  52. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/configuration/signatures.md +0 -0
  53. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/customization.md +0 -0
  54. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/docstrings/google.md +0 -0
  55. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/docstrings/numpy.md +0 -0
  56. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/docstrings/sphinx.md +0 -0
  57. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/extensions.md +0 -0
  58. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/docs/usage/index.md +0 -0
  59. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/duties.py +0 -0
  60. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/mkdocs.yml +0 -0
  61. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/get_version.py +0 -0
  62. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/griffe_extensions.py +0 -0
  63. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/make +0 -0
  64. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/scripts/mkdocs_hooks.py +0 -0
  65. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/__init__.py +0 -0
  66. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/_internal/__init__.py +0 -0
  67. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/_internal/debug.py +0 -0
  68. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/py.typed +0 -0
  69. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/backlinks.html.jinja +0 -0
  70. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja +0 -0
  71. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/admonition.html.jinja +0 -0
  72. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/attributes.html.jinja +0 -0
  73. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/classes.html.jinja +0 -0
  74. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.jinja +0 -0
  75. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja +0 -0
  76. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html.jinja +0 -0
  77. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html.jinja +0 -0
  78. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html.jinja +0 -0
  79. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/receives.html.jinja +0 -0
  80. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/returns.html.jinja +0 -0
  81. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja +0 -0
  82. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/warns.html.jinja +0 -0
  83. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html.jinja +0 -0
  84. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja +0 -0
  85. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja +0 -0
  86. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/labels.html.jinja +0 -0
  87. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja +0 -0
  88. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja +0 -0
  89. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja +0 -0
  90. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja +0 -0
  91. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja +0 -0
  92. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja +0 -0
  93. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja +0 -0
  94. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja +0 -0
  95. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja +0 -0
  96. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja +0 -0
  97. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja +0 -0
  98. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja +0 -0
  99. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja +0 -0
  100. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/attribute.html.jinja +0 -0
  101. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/backlinks.html.jinja +0 -0
  102. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/children.html.jinja +0 -0
  103. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/class.html.jinja +0 -0
  104. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/admonition.html.jinja +0 -0
  105. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/attributes.html.jinja +0 -0
  106. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/classes.html.jinja +0 -0
  107. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/examples.html.jinja +0 -0
  108. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/functions.html.jinja +0 -0
  109. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/modules.html.jinja +0 -0
  110. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/other_parameters.html.jinja +0 -0
  111. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/parameters.html.jinja +0 -0
  112. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/raises.html.jinja +0 -0
  113. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/receives.html.jinja +0 -0
  114. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/returns.html.jinja +0 -0
  115. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html +0 -0
  116. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja +0 -0
  117. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html +0 -0
  118. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja +0 -0
  119. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/warns.html.jinja +0 -0
  120. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring/yields.html.jinja +0 -0
  121. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/docstring.html.jinja +0 -0
  122. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/expression.html.jinja +0 -0
  123. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/function.html.jinja +0 -0
  124. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/labels.html.jinja +0 -0
  125. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/language.html.jinja +0 -0
  126. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/languages/en.html.jinja +0 -0
  127. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/languages/ja.html.jinja +0 -0
  128. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/languages/zh.html.jinja +0 -0
  129. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/module.html.jinja +0 -0
  130. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/signature.html.jinja +0 -0
  131. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/style.css +0 -0
  132. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/attributes.html.jinja +0 -0
  133. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/classes.html.jinja +0 -0
  134. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/functions.html.jinja +0 -0
  135. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/modules.html.jinja +0 -0
  136. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html +0 -0
  137. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja +0 -0
  138. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/summary.html.jinja +0 -0
  139. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/type_alias.html +0 -0
  140. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja +0 -0
  141. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html +0 -0
  142. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja +0 -0
  143. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html +0 -0
  144. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/attributes.html.jinja +0 -0
  145. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/other_parameters.html.jinja +0 -0
  146. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/parameters.html.jinja +0 -0
  147. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/raises.html.jinja +0 -0
  148. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/receives.html.jinja +0 -0
  149. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/returns.html.jinja +0 -0
  150. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/warns.html.jinja +0 -0
  151. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/yields.html.jinja +0 -0
  152. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja +0 -0
  153. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/en.html.jinja +0 -0
  154. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/ja.html.jinja +0 -0
  155. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/zh.html.jinja +0 -0
  156. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html +0 -0
  157. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html.jinja +0 -0
  158. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/attributes.html.jinja +0 -0
  159. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/other_parameters.html.jinja +0 -0
  160. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/parameters.html.jinja +0 -0
  161. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/raises.html.jinja +0 -0
  162. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/receives.html.jinja +0 -0
  163. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/returns.html.jinja +0 -0
  164. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/warns.html.jinja +0 -0
  165. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/yields.html.jinja +0 -0
  166. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/language.html.jinja +0 -0
  167. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/en.html.jinja +0 -0
  168. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/ja.html.jinja +0 -0
  169. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html.jinja +0 -0
  170. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/src/mkdocstrings_handlers/python/templates/readthedocs/style.css +0 -0
  171. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/__init__.py +0 -0
  172. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/conftest.py +0 -0
  173. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/helpers.py +0 -0
  174. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/headings/heading=,separate_signature=False.html +0 -0
  175. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/headings/heading=,separate_signature=True.html +0 -0
  176. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/headings/heading=Some heading,separate_signature=False.html +0 -0
  177. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/headings/heading=Some heading,separate_signature=True.html +0 -0
  178. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  179. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=().html +0 -0
  180. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  181. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  182. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  183. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  184. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=().html +0 -0
  185. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=False.html +0 -0
  186. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=None.html +0 -0
  187. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=True.html +0 -0
  188. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  189. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=().html +0 -0
  190. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=False.html +0 -0
  191. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=None.html +0 -0
  192. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=True.html +0 -0
  193. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  194. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=().html +0 -0
  195. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=False.html +0 -0
  196. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=None.html +0 -0
  197. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=True.html +0 -0
  198. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  199. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=().html +0 -0
  200. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  201. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  202. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  203. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  204. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=().html +0 -0
  205. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=False.html +0 -0
  206. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=None.html +0 -0
  207. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=True.html +0 -0
  208. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  209. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=().html +0 -0
  210. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=False.html +0 -0
  211. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=None.html +0 -0
  212. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=True.html +0 -0
  213. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  214. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=().html +0 -0
  215. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=False.html +0 -0
  216. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=None.html +0 -0
  217. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=True.html +0 -0
  218. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  219. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=().html +0 -0
  220. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=False.html +0 -0
  221. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=None.html +0 -0
  222. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=True.html +0 -0
  223. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=(),members=('module_attribute',).html +0 -0
  224. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=(),members=().html +0 -0
  225. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=(),members=False.html +0 -0
  226. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=(),members=None.html +0 -0
  227. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=(),members=True.html +0 -0
  228. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=False,members=('module_attribute',).html +0 -0
  229. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=False,members=().html +0 -0
  230. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=False,members=False.html +0 -0
  231. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=False,members=None.html +0 -0
  232. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=False,members=True.html +0 -0
  233. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=True,members=('module_attribute',).html +0 -0
  234. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=True,members=().html +0 -0
  235. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=True,members=False.html +0 -0
  236. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=True,members=None.html +0 -0
  237. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=(),inherited_members=True,members=True.html +0 -0
  238. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  239. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=().html +0 -0
  240. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=False.html +0 -0
  241. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=None.html +0 -0
  242. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=True.html +0 -0
  243. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=(),members=('module_attribute',).html +0 -0
  244. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=(),members=().html +0 -0
  245. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=(),members=False.html +0 -0
  246. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=(),members=None.html +0 -0
  247. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=(),members=True.html +0 -0
  248. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=False,members=('module_attribute',).html +0 -0
  249. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=False,members=().html +0 -0
  250. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=False,members=False.html +0 -0
  251. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=False,members=None.html +0 -0
  252. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=False,members=True.html +0 -0
  253. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=True,members=('module_attribute',).html +0 -0
  254. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=True,members=().html +0 -0
  255. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=True,members=False.html +0 -0
  256. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=True,members=None.html +0 -0
  257. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=None,inherited_members=True,members=True.html +0 -0
  258. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  259. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=().html +0 -0
  260. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=False.html +0 -0
  261. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=None.html +0 -0
  262. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=True.html +0 -0
  263. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=(),members=('module_attribute',).html +0 -0
  264. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=(),members=().html +0 -0
  265. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=(),members=False.html +0 -0
  266. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=(),members=None.html +0 -0
  267. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=(),members=True.html +0 -0
  268. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=False,members=('module_attribute',).html +0 -0
  269. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=False,members=().html +0 -0
  270. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=False,members=False.html +0 -0
  271. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=False,members=None.html +0 -0
  272. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=False,members=True.html +0 -0
  273. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=True,members=('module_attribute',).html +0 -0
  274. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=True,members=().html +0 -0
  275. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=True,members=False.html +0 -0
  276. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=True,members=None.html +0 -0
  277. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/members/filters=public,inherited_members=True,members=True.html +0 -0
  278. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html +0 -0
  279. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html +0 -0
  280. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html +0 -0
  281. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html +0 -0
  282. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html +0 -0
  283. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html +0 -0
  284. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html +0 -0
  285. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html +0 -0
  286. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  287. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  288. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  289. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  290. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  291. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  292. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  293. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  294. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_api.py +0 -0
  295. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_config.py +0 -0
  296. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_end_to_end.py +0 -0
  297. {mkdocstrings_python-2.0.8 → mkdocstrings_python-2.0.10}/tests/test_themes.py +0 -0
@@ -5,6 +5,31 @@ 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.10](https://github.com/mkdocstrings/python/releases/tag/2.0.10) - 2026-10-19
9
+
10
+ <small>[Compare with 2.0.9](https://github.com/mkdocstrings/python/compare/2.0.9...2.0.10)</small>
11
+
12
+ ### Build
13
+
14
+ - Drop support for Python 3.10 ([aad7fc6](https://github.com/mkdocstrings/python/commit/aad7fc6efd12f096807b466e5e3175e27fa7852d) by Timothée Mazzucotelli).
15
+
16
+ ### Bug Fixes
17
+
18
+ - 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)
19
+
20
+ ## [2.0.9](https://github.com/mkdocstrings/python/releases/tag/2.0.9) - 2026-09-22
21
+
22
+ <small>[Compare with 2.0.8](https://github.com/mkdocstrings/python/compare/2.0.8...2.0.9)</small>
23
+
24
+ ### Bug Fixes
25
+
26
+ - Improve inventory object types (incorrectly called roles in mkdocstrings) ([d754326](https://github.com/mkdocstrings/python/commit/d754326b534a7771a5d815935976bdb869913a5f) by Timothée Mazzucotelli). [Issue-339](https://github.com/mkdocstrings/python/issues/339), [PR-340](https://github.com/mkdocstrings/python/pull/340)
27
+ - Expand relative cross-references against the object the docstring was written on ([a9a4ca3](https://github.com/mkdocstrings/python/commit/a9a4ca3bfd8ee361cd8f7aa63a5079b232adc837) by Dev M). [Issue-341](https://github.com/mkdocstrings/python/issues/341), [PR-342](https://github.com/mkdocstrings/python/pull/342)
28
+
29
+ ### Performance Improvements
30
+
31
+ - Small performance improvement when getting aliases and formatting/highlighting signatures ([2263163](https://github.com/mkdocstrings/python/commit/2263163f0263cb86ae9696f955213ab8fa8f5518) by Timothée Mazzucotelli).
32
+
8
33
  ## [2.0.8](https://github.com/mkdocstrings/python/releases/tag/2.0.8) - 2026-08-31
9
34
 
10
35
  <small>[Compare with 2.0.7](https://github.com/mkdocstrings/python/compare/2.0.7...2.0.8)</small>
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocstrings-python
3
- Version: 2.0.8
3
+ Version: 2.0.10
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,8 +27,8 @@ 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
33
  Requires-Dist: griffelib>=2.0
35
34
  Requires-Dist: typing-extensions>=4.0; python_version < "3.11"
@@ -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
40
  "griffelib>=2.0",
42
41
  "typing-extensions>=4.0; python_version < '3.11'",
43
42
  ]
44
- version = "2.0.8"
43
+ version = "2.0.10"
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
 
@@ -365,7 +351,7 @@ class PythonHandler(BaseHandler):
365
351
  The aliases.
366
352
  """
367
353
  if "(" in identifier:
368
- identifier, parameter = identifier.split("(", 1)
354
+ identifier, _, parameter = identifier.partition("(")
369
355
  parameter = parameter.removesuffix(")")
370
356
  else:
371
357
  parameter = ""
@@ -373,15 +359,18 @@ class PythonHandler(BaseHandler):
373
359
  data = self._modules_collection[identifier]
374
360
  except (KeyError, AliasResolutionError):
375
361
  return ()
376
- aliases = [data.path]
362
+ aliases: dict[str, object] = {data.path: None}
377
363
  try:
378
- for alias in [data.canonical_path, *data.aliases]:
379
- if alias not in aliases:
380
- aliases.append(alias)
364
+ canonical_path = data.canonical_path
365
+ data_aliases = data.aliases
381
366
  except AliasResolutionError:
382
367
  pass
368
+ else:
369
+ aliases[canonical_path] = None
370
+ aliases.update(data_aliases)
383
371
  if parameter:
384
- return tuple(f"{alias}({parameter})" for alias in aliases)
372
+ suffix = f"({parameter})"
373
+ return tuple(alias + suffix for alias in aliases)
385
374
  return tuple(aliases)
386
375
 
387
376
  def normalize_extension_paths(self, extensions: Sequence) -> list[str | dict[str, Any]]:
@@ -125,6 +125,15 @@ class _StashCrossRefFilter:
125
125
  do_stash_crossref = _StashCrossRefFilter()
126
126
  """Filter to stash cross-references (and restore them after formatting and highlighting)."""
127
127
 
128
+ _highlighting_span_re = re.compile(r'<span class="[a-z]{1,2}">')
129
+ _crossref_key_re = re.compile(r"\b_[A-Za-z0-9]{2,}\b")
130
+
131
+
132
+ def _restore_crossrefs(text: str, stash: dict[str, str]) -> str:
133
+ text = _crossref_key_re.sub(lambda match: stash.get(match[0], match[0]), text)
134
+ stash.clear()
135
+ return text
136
+
128
137
 
129
138
  def _format_signature(name: Markup, signature: str, line_length: int) -> str:
130
139
  name = str(name).strip() # type: ignore[assignment]
@@ -199,13 +208,11 @@ def do_format_signature(
199
208
  # Pygments will set an `fm` (function -> magic) CSS class.
200
209
  # To fix this, we replace the CSS class in the first span with `nf`,
201
210
  # unless we already found an `nf` span.
202
- if not re.search(r'<span class="nf">', signature):
203
- signature = re.sub(r'<span class="[a-z]{1,2}">', '<span class="nf">', signature, count=1)
211
+ if '<span class="nf">' not in signature:
212
+ signature = _highlighting_span_re.sub('<span class="nf">', signature, count=1)
204
213
 
205
214
  if stash := env.filters["stash_crossref"].stash:
206
- for key, value in stash.items():
207
- signature = re.sub(rf"\b{key}\b", value, signature)
208
- stash.clear()
215
+ signature = _restore_crossrefs(signature, stash)
209
216
 
210
217
  return signature
211
218
 
@@ -267,9 +274,7 @@ def do_format_attribute(
267
274
  )
268
275
 
269
276
  if stash := env.filters["stash_crossref"].stash:
270
- for key, value in stash.items():
271
- signature = re.sub(rf"\b{key}\b", value, signature)
272
- stash.clear()
277
+ signature = _restore_crossrefs(signature, stash)
273
278
 
274
279
  return signature
275
280
 
@@ -322,13 +327,11 @@ def do_format_type_alias(
322
327
  # but instead as a regular name: `n` CSS class instead of `nc`.
323
328
  # To fix it, we replace the first occurrence of an `n` CSS class
324
329
  # with an `nc` one, unless we found `nc` already.
325
- if not re.search(r'<span class="nc">', signature):
326
- signature = re.sub(r'<span class="[a-z]{1,2}">', '<span class="nc">', signature, count=1)
330
+ if '<span class="nc">' not in signature:
331
+ signature = _highlighting_span_re.sub('<span class="nc">', signature, count=1)
327
332
 
328
333
  if stash := env.filters["stash_crossref"].stash:
329
- for key, value in stash.items():
330
- signature = re.sub(rf"\b{key}\b", value, signature)
331
- stash.clear()
334
+ signature = _restore_crossrefs(signature, stash)
332
335
 
333
336
  return signature
334
337
 
@@ -805,6 +808,11 @@ class AutorefsHook(AutorefsHookInterface):
805
808
  if self.config.relative_crossrefs and identifier.startswith("."): # type: ignore[attr-defined]
806
809
  identifier = identifier[1:]
807
810
  obj = self.current_object
811
+ # Anchor on the docstring's parent: for inherited members the current
812
+ # object is an alias living under the inheriting class, while the
813
+ # docstring was written on the defining object in another tree.
814
+ if self.current_object.docstring is not None and self.current_object.docstring.parent is not None:
815
+ obj = self.current_object.docstring.parent
808
816
  while identifier and identifier[0] == ".":
809
817
  identifier = identifier[1:]
810
818
  if obj.parent is None:
@@ -33,10 +33,13 @@ Context:
33
33
 
34
34
  {% set attribute_name = attribute.path if show_full_path else attribute.name %}
35
35
 
36
+ {% set object_type = "data" if attribute.parent.is_module else "property" if "property" in attribute.labels else "attribute" %}
37
+ {#- Object type in objects inventory. -#}
38
+
36
39
  {% if not root or config.show_root_heading %}
37
40
  {% filter heading(
38
41
  heading_level,
39
- role=("data" if attribute.parent.kind.value == "module" else "attr"),
42
+ role=object_type,
40
43
  id=html_id,
41
44
  class="doc doc-heading",
42
45
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute.name),
@@ -89,7 +92,7 @@ Context:
89
92
 
90
93
  {% if config.show_root_toc_entry %}
91
94
  {% filter heading(heading_level,
92
- role=("data" if attribute.parent.kind.value == "module" else "attr"),
95
+ role=object_type,
93
96
  id=html_id,
94
97
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute_name),
95
98
  hidden=True,
@@ -158,7 +158,7 @@ Context:
158
158
 
159
159
  {% block inheritance_diagram scoped %}
160
160
  {#- Inheritance diagram block.
161
-
161
+
162
162
  This block renders the inheritance diagram for the class,
163
163
  using Mermaid syntax and a bit of JavaScript to make the nodes clickable,
164
164
  linking to the corresponding class documentation.
@@ -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 %}
@@ -38,7 +38,7 @@ Context:
38
38
  {% if config.parameter_headings %}
39
39
  {% filter heading(
40
40
  heading_level + 1,
41
- role="param",
41
+ role="parameter",
42
42
  id=html_id ~ "(" ~ parameter.name ~ ")",
43
43
  class="doc doc-heading doc-heading-parameter",
44
44
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -86,7 +86,7 @@ Context:
86
86
  {% if config.parameter_headings %}
87
87
  {% filter heading(
88
88
  heading_level + 1,
89
- role="param",
89
+ role="parameter",
90
90
  id=html_id ~ "(" ~ parameter.name ~ ")",
91
91
  class="doc doc-heading doc-heading-parameter",
92
92
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -132,7 +132,7 @@ Context:
132
132
  {% if config.parameter_headings %}
133
133
  {% filter heading(
134
134
  heading_level + 1,
135
- role="param",
135
+ role="parameter",
136
136
  id=html_id ~ "(" ~ parameter.name ~ ")",
137
137
  class="doc doc-heading doc-heading-parameter",
138
138
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -42,7 +42,7 @@ Context:
42
42
  {% if config.type_parameter_headings %}
43
43
  {% filter heading(
44
44
  heading_level + 1,
45
- role="typeparam",
45
+ role="typeparameter",
46
46
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
47
47
  class="doc doc-heading doc-heading-type_parameter",
48
48
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -93,7 +93,7 @@ Context:
93
93
  {% if config.type_parameter_headings %}
94
94
  {% filter heading(
95
95
  heading_level + 1,
96
- role="typeparam",
96
+ role="typeparameter",
97
97
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
98
98
  class="doc doc-heading doc-heading-type_parameter",
99
99
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -156,7 +156,7 @@ Context:
156
156
  {% if config.type_parameter_headings %}
157
157
  {% filter heading(
158
158
  heading_level + 1,
159
- role="typeparam",
159
+ role="typeparameter",
160
160
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
161
161
  class="doc doc-heading doc-heading-type_parameter",
162
162
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -37,11 +37,13 @@ Context:
37
37
  {#- Brief or full function name depending on configuration. -#}
38
38
  {% set symbol_type = "method" if function.parent.is_class else "function" %}
39
39
  {#- Symbol type: method when parent is a class, function otherwise. -#}
40
+ {% set object_type = symbol_type %}
41
+ {#- Object type in objects inventory. -#}
40
42
 
41
43
  {% if not root or config.show_root_heading %}
42
44
  {% filter heading(
43
45
  heading_level,
44
- role="function",
46
+ role=object_type,
45
47
  id=html_id,
46
48
  class="doc doc-heading",
47
49
  toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
@@ -106,7 +108,7 @@ Context:
106
108
  {% if config.show_root_toc_entry %}
107
109
  {% filter heading(
108
110
  heading_level,
109
- role="function",
111
+ role=object_type,
110
112
  id=html_id,
111
113
  toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
112
114
  hidden=True,
@@ -147,7 +149,7 @@ Context:
147
149
  {% if config.show_source and function.source %}
148
150
  <details class="mkdocstrings-source">
149
151
  <summary>{{ lang.t("Source code in") }} <code>{{ function|source_location }}</code></summary>
150
- {{ 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--") }}
151
153
  </details>
152
154
  {% endif %}
153
155
  {% endblock source %}
@@ -35,7 +35,7 @@ Context:
35
35
  {% if not root or config.show_root_heading %}
36
36
  {% filter heading(
37
37
  heading_level,
38
- role="typealias",
38
+ role="type",
39
39
  id=html_id,
40
40
  class="doc doc-heading",
41
41
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_alias"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_alias.name,
@@ -83,7 +83,7 @@ Context:
83
83
  {% else %}
84
84
  {% if config.show_root_toc_entry %}
85
85
  {% filter heading(heading_level,
86
- role="typealias",
86
+ role="type",
87
87
  id=html_id,
88
88
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_alias"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_alias.name,
89
89
  hidden=True,
@@ -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 %}
@@ -15,11 +15,13 @@ import bs4
15
15
  import mkdocstrings
16
16
  import pytest
17
17
  from griffe import (
18
+ Alias,
18
19
  Docstring,
19
20
  DocstringSectionExamples,
20
21
  DocstringSectionKind,
21
22
  Module,
22
23
  temporary_inspected_module,
24
+ temporary_pypackage,
23
25
  temporary_visited_module,
24
26
  )
25
27
  from mkdocstrings import CollectionError
@@ -27,6 +29,7 @@ from mkdocstrings import CollectionError
27
29
  from mkdocstrings_handlers.python import Inventory, PythonConfig, PythonHandler, PythonOptions
28
30
 
29
31
  if TYPE_CHECKING:
32
+ from markdown import Markdown
30
33
  from mkdocstrings import MkdocstringsPlugin
31
34
 
32
35
 
@@ -52,6 +55,32 @@ def test_collect_with_null_parser(handler: PythonHandler) -> None:
52
55
  assert handler.collect("mkdocstrings", PythonOptions(docstring_style=None))
53
56
 
54
57
 
58
+ def test_get_aliases(handler: PythonHandler) -> None:
59
+ """Assert aliases are unique, ordered, and extended with parameter identifiers."""
60
+ with temporary_visited_module(
61
+ "def target(parameter): ...",
62
+ module_name="package",
63
+ modules_collection=handler._modules_collection,
64
+ ) as module:
65
+ target = module["target"]
66
+ module["alias"] = Alias("alias", target=target)
67
+ module["other_alias"] = Alias("other_alias", target=target)
68
+ module["unresolved"] = Alias("unresolved", target="missing.target")
69
+
70
+ assert handler.get_aliases("package.target") == (
71
+ "package.target",
72
+ "package.alias",
73
+ "package.other_alias",
74
+ )
75
+ assert handler.get_aliases("package.alias(parameter)") == (
76
+ "package.alias(parameter)",
77
+ "package.target(parameter)",
78
+ "package.other_alias(parameter)",
79
+ )
80
+ assert handler.get_aliases("package.unresolved") == ("package.unresolved",)
81
+ assert handler.get_aliases("package.missing") == ()
82
+
83
+
55
84
  @pytest.mark.parametrize(
56
85
  "handler",
57
86
  [
@@ -177,6 +206,130 @@ def test_rendering_object_source_without_lineno(handler: PythonHandler) -> None:
177
206
  assert handler.render(module, PythonOptions(show_source=True))
178
207
 
179
208
 
209
+ @pytest.mark.parametrize(
210
+ ("handler", "merge_init_into_class"),
211
+ [
212
+ (
213
+ {
214
+ "theme": theme,
215
+ "markdown_extensions": [
216
+ {
217
+ "pymdownx.highlight": {
218
+ "anchor_linenums": True,
219
+ "line_spans": "custom-span",
220
+ "line_anchors": "custom-line",
221
+ "linenums_style": linenums_style,
222
+ },
223
+ },
224
+ {"pymdownx.superfences": {}},
225
+ ],
226
+ },
227
+ merge_init_into_class,
228
+ )
229
+ for theme in ("material", "readthedocs", "mkdocs")
230
+ for linenums_style in ("table", "inline")
231
+ for merge_init_into_class in (True, False)
232
+ ],
233
+ indirect=["handler"],
234
+ )
235
+ def test_source_code_ids_are_unique(
236
+ handler: PythonHandler,
237
+ ext_markdown: Markdown,
238
+ merge_init_into_class: bool,
239
+ ) -> None:
240
+ """Keep source line IDs unique across modules, overlapping sources, and inherited methods."""
241
+ # Both modules put their source at the same line numbers. Class source also overlaps method source.
242
+ code = '''
243
+ class Base:
244
+ """Base class."""
245
+
246
+ def __init__(self):
247
+ """Initialize the base class."""
248
+ self.value = 1
249
+
250
+ def method(self):
251
+ """Return a value."""
252
+ return self.value
253
+
254
+ class Derived(Base):
255
+ """Derived class."""
256
+ '''
257
+ markdown = f"""
258
+ ::: source_ids.first
259
+ options:
260
+ show_source: true
261
+ inherited_members: true
262
+ merge_init_into_class: {str(merge_init_into_class).lower()}
263
+
264
+ ::: source_ids.second
265
+ options:
266
+ show_source: true
267
+ inherited_members: true
268
+ merge_init_into_class: {str(merge_init_into_class).lower()}
269
+ """
270
+ with temporary_pypackage("source_ids", {"first.py": code, "second.py": code}) as package:
271
+ handler._paths = [str(package.tmpdir)]
272
+
273
+ html = ext_markdown.convert(markdown)
274
+
275
+ soup = bs4.BeautifulSoup(html, "html.parser")
276
+ source_blocks = soup.select("details.mkdocstrings-source, details.quote")
277
+ assert len(source_blocks) == (8 if merge_init_into_class else 12)
278
+
279
+ # Every source ID is unique, including methods repeated under Derived.
280
+ ids = [element["id"] for block in source_blocks for element in block.select("[id]")]
281
+ assert ids
282
+ assert len(ids) == len(set(ids))
283
+ assert all(
284
+ str(identifier).startswith("source_ids.") and "--source--custom-" in str(identifier) for identifier in ids
285
+ )
286
+
287
+ # Line-number links and legacy anchor names still point to IDs in their own source block.
288
+ for block in source_blocks:
289
+ block_ids = {element["id"] for element in block.select("[id]")}
290
+ links = block.select('a[href^="#"]')
291
+ assert links
292
+ assert all(str(link["href"])[1:] in block_ids for link in links)
293
+ assert all(anchor["name"] == anchor["id"] for anchor in block.select("a[name]"))
294
+
295
+
296
+ @pytest.mark.parametrize(
297
+ "handler",
298
+ [
299
+ {
300
+ "markdown_extensions": [
301
+ {"pymdownx.highlight": {"anchor_linenums": True, "line_spans": "__span"}},
302
+ {"pymdownx.superfences": {}},
303
+ ],
304
+ },
305
+ ],
306
+ indirect=True,
307
+ )
308
+ def test_source_and_docstring_code_ids_do_not_collide(handler: PythonHandler) -> None:
309
+ """Keep source and docstring code IDs distinct."""
310
+ # Both the function's source and the fenced example start at line 1.
311
+ code = '''def function():
312
+ """An example.
313
+
314
+ ```python linenums="1"
315
+ print("example")
316
+ ```
317
+ """
318
+ return 1
319
+ '''
320
+ with temporary_visited_module(code, module_name="code_ids") as module:
321
+ html = handler.render(module["function"], handler.get_options({"show_source": True}))
322
+
323
+ soup = bs4.BeautifulSoup(html, "html.parser")
324
+ ids = [element["id"] for element in soup.select("[id]")]
325
+
326
+ assert len(ids) == len(set(ids))
327
+ assert "code_ids.function--__span-0-1" in ids
328
+ assert "code_ids.function--source--__span-0-1" in ids
329
+ assert "code_ids.function--__codelineno-0-1" in ids
330
+ assert "code_ids.function--source--__codelineno-0-1" in ids
331
+
332
+
180
333
  def test_give_precedence_to_user_paths() -> None:
181
334
  """Assert user paths take precedence over default paths."""
182
335
  last_sys_path = sys.path[-1]