mkdocstrings-python 2.0.5__tar.gz → 2.0.7__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.5 → mkdocstrings_python-2.0.7}/CHANGELOG.md +17 -0
  2. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/PKG-INFO +3 -5
  3. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/README.md +2 -4
  4. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/pyproject.toml +6 -5
  5. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/griffe_extensions.py +7 -2
  6. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/__init__.py +2 -0
  7. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/_internal/handler.py +39 -3
  8. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/_internal/rendering.py +39 -13
  9. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja +2 -14
  10. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja +1 -7
  11. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html.jinja +2 -14
  12. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/test_api.py +3 -1
  13. mkdocstrings_python-2.0.7/tests/test_config.py +61 -0
  14. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/test_handler.py +75 -0
  15. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/test_rendering.py +3 -3
  16. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/CODE_OF_CONDUCT.md +0 -0
  17. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/CONTRIBUTING.md +0 -0
  18. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/LICENSE +0 -0
  19. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/black.toml +0 -0
  20. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/coverage.ini +0 -0
  21. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/git-changelog.toml +0 -0
  22. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/mypy.ini +0 -0
  23. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/pytest.ini +0 -0
  24. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/ruff.toml +0 -0
  25. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/vscode/launch.json +0 -0
  26. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/vscode/settings.json +0 -0
  27. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/config/vscode/tasks.json +0 -0
  28. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/.glossary.md +0 -0
  29. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/.overrides/partials/comments.html +0 -0
  30. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/.overrides/partials/path-item.html +0 -0
  31. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/changelog.md +0 -0
  32. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/code_of_conduct.md +0 -0
  33. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/contributing.md +0 -0
  34. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/credits.md +0 -0
  35. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/css/material.css +0 -0
  36. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/css/mkdocstrings.css +0 -0
  37. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/index.md +0 -0
  38. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/js/feedback.js +0 -0
  39. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/license.md +0 -0
  40. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/logo.png +0 -0
  41. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/reference/api.md +0 -0
  42. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/snippets/package/__init__.py +0 -0
  43. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/snippets/package/generics.py +0 -0
  44. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/snippets/package/modern.py +0 -0
  45. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/configuration/docstrings.md +0 -0
  46. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/configuration/general.md +0 -0
  47. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/configuration/headings.md +0 -0
  48. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/configuration/members.md +0 -0
  49. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/configuration/signatures.md +0 -0
  50. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/customization.md +0 -0
  51. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/docstrings/google.md +0 -0
  52. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/docstrings/numpy.md +0 -0
  53. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/docstrings/sphinx.md +0 -0
  54. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/extensions.md +0 -0
  55. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/docs/usage/index.md +0 -0
  56. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/duties.py +0 -0
  57. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/mkdocs.yml +0 -0
  58. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/gen_credits.py +0 -0
  59. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/get_version.py +0 -0
  60. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/make +0 -0
  61. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/make.py +0 -0
  62. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/scripts/mkdocs_hooks.py +0 -0
  63. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/_internal/__init__.py +0 -0
  64. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/_internal/config.py +0 -0
  65. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/_internal/debug.py +0 -0
  66. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/py.typed +0 -0
  67. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja +0 -0
  68. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/backlinks.html.jinja +0 -0
  69. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja +0 -0
  70. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/admonition.html.jinja +0 -0
  71. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/attributes.html.jinja +0 -0
  72. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/classes.html.jinja +0 -0
  73. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.jinja +0 -0
  74. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja +0 -0
  75. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html.jinja +0 -0
  76. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html.jinja +0 -0
  77. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja +0 -0
  78. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html.jinja +0 -0
  79. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/receives.html.jinja +0 -0
  80. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/returns.html.jinja +0 -0
  81. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja +0 -0
  82. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja +0 -0
  83. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/warns.html.jinja +0 -0
  84. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html.jinja +0 -0
  85. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja +0 -0
  86. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja +0 -0
  87. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/labels.html.jinja +0 -0
  88. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja +0 -0
  89. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja +0 -0
  90. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja +0 -0
  91. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja +0 -0
  92. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja +0 -0
  93. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja +0 -0
  94. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja +0 -0
  95. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja +0 -0
  96. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja +0 -0
  97. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja +0 -0
  98. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja +0 -0
  99. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja +0 -0
  100. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja +0 -0
  101. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja +0 -0
  102. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/attribute.html.jinja +0 -0
  103. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/backlinks.html.jinja +0 -0
  104. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/children.html.jinja +0 -0
  105. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/class.html.jinja +0 -0
  106. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/admonition.html.jinja +0 -0
  107. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/attributes.html.jinja +0 -0
  108. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/classes.html.jinja +0 -0
  109. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/examples.html.jinja +0 -0
  110. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/functions.html.jinja +0 -0
  111. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/modules.html.jinja +0 -0
  112. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/other_parameters.html.jinja +0 -0
  113. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/parameters.html.jinja +0 -0
  114. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/raises.html.jinja +0 -0
  115. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/receives.html.jinja +0 -0
  116. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/returns.html.jinja +0 -0
  117. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html +0 -0
  118. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja +0 -0
  119. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html +0 -0
  120. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja +0 -0
  121. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/warns.html.jinja +0 -0
  122. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring/yields.html.jinja +0 -0
  123. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/docstring.html.jinja +0 -0
  124. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/expression.html.jinja +0 -0
  125. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/function.html.jinja +0 -0
  126. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/labels.html.jinja +0 -0
  127. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/language.html.jinja +0 -0
  128. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/languages/en.html.jinja +0 -0
  129. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/languages/ja.html.jinja +0 -0
  130. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/languages/zh.html.jinja +0 -0
  131. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/module.html.jinja +0 -0
  132. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/signature.html.jinja +0 -0
  133. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/style.css +0 -0
  134. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/attributes.html.jinja +0 -0
  135. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/classes.html.jinja +0 -0
  136. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/functions.html.jinja +0 -0
  137. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/modules.html.jinja +0 -0
  138. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html +0 -0
  139. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja +0 -0
  140. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/summary.html.jinja +0 -0
  141. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/type_alias.html +0 -0
  142. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja +0 -0
  143. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html +0 -0
  144. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja +0 -0
  145. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/class.html +0 -0
  146. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/attributes.html.jinja +0 -0
  147. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/other_parameters.html.jinja +0 -0
  148. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/parameters.html.jinja +0 -0
  149. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/raises.html.jinja +0 -0
  150. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/receives.html.jinja +0 -0
  151. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/returns.html.jinja +0 -0
  152. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/warns.html.jinja +0 -0
  153. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/yields.html.jinja +0 -0
  154. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja +0 -0
  155. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/en.html.jinja +0 -0
  156. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/ja.html.jinja +0 -0
  157. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/_base/languages/zh.html.jinja +0 -0
  158. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html +0 -0
  159. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/class.html.jinja +0 -0
  160. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/attributes.html.jinja +0 -0
  161. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/other_parameters.html.jinja +0 -0
  162. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/parameters.html.jinja +0 -0
  163. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/raises.html.jinja +0 -0
  164. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/receives.html.jinja +0 -0
  165. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/returns.html.jinja +0 -0
  166. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/warns.html.jinja +0 -0
  167. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/docstring/yields.html.jinja +0 -0
  168. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/language.html.jinja +0 -0
  169. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/en.html.jinja +0 -0
  170. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/ja.html.jinja +0 -0
  171. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html.jinja +0 -0
  172. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/src/mkdocstrings_handlers/python/templates/readthedocs/style.css +0 -0
  173. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/__init__.py +0 -0
  174. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/conftest.py +0 -0
  175. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/helpers.py +0 -0
  176. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/headings/heading=,separate_signature=False.html +0 -0
  177. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/headings/heading=,separate_signature=True.html +0 -0
  178. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/headings/heading=Some heading,separate_signature=False.html +0 -0
  179. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/headings/heading=Some heading,separate_signature=True.html +0 -0
  180. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  181. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=().html +0 -0
  182. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  183. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  184. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  185. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  186. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=().html +0 -0
  187. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=False.html +0 -0
  188. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=None.html +0 -0
  189. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=True.html +0 -0
  190. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  191. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=().html +0 -0
  192. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=False.html +0 -0
  193. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=None.html +0 -0
  194. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=True.html +0 -0
  195. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  196. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=().html +0 -0
  197. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=False.html +0 -0
  198. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=None.html +0 -0
  199. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=True.html +0 -0
  200. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  201. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=().html +0 -0
  202. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=False.html +0 -0
  203. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=None.html +0 -0
  204. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=True.html +0 -0
  205. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=('module_attribute',).html +0 -0
  206. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=().html +0 -0
  207. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=False.html +0 -0
  208. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=None.html +0 -0
  209. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=True.html +0 -0
  210. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=('module_attribute',).html +0 -0
  211. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=().html +0 -0
  212. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=False.html +0 -0
  213. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=None.html +0 -0
  214. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=True.html +0 -0
  215. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=('module_attribute',).html +0 -0
  216. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=().html +0 -0
  217. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=False.html +0 -0
  218. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=None.html +0 -0
  219. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=True.html +0 -0
  220. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=('module_attribute',).html +0 -0
  221. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=().html +0 -0
  222. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=False.html +0 -0
  223. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=None.html +0 -0
  224. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=('method1',),members=True.html +0 -0
  225. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=(),members=('module_attribute',).html +0 -0
  226. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=(),members=().html +0 -0
  227. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=(),members=False.html +0 -0
  228. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=(),members=None.html +0 -0
  229. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=(),members=True.html +0 -0
  230. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=False,members=('module_attribute',).html +0 -0
  231. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=False,members=().html +0 -0
  232. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=False,members=False.html +0 -0
  233. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=False,members=None.html +0 -0
  234. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=False,members=True.html +0 -0
  235. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=True,members=('module_attribute',).html +0 -0
  236. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=True,members=().html +0 -0
  237. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=True,members=False.html +0 -0
  238. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=True,members=None.html +0 -0
  239. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=(),inherited_members=True,members=True.html +0 -0
  240. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  241. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=().html +0 -0
  242. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=False.html +0 -0
  243. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=None.html +0 -0
  244. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=('method1',),members=True.html +0 -0
  245. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=(),members=('module_attribute',).html +0 -0
  246. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=(),members=().html +0 -0
  247. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=(),members=False.html +0 -0
  248. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=(),members=None.html +0 -0
  249. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=(),members=True.html +0 -0
  250. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=False,members=('module_attribute',).html +0 -0
  251. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=False,members=().html +0 -0
  252. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=False,members=False.html +0 -0
  253. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=False,members=None.html +0 -0
  254. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=False,members=True.html +0 -0
  255. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=True,members=('module_attribute',).html +0 -0
  256. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=True,members=().html +0 -0
  257. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=True,members=False.html +0 -0
  258. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=True,members=None.html +0 -0
  259. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=None,inherited_members=True,members=True.html +0 -0
  260. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=('module_attribute',).html +0 -0
  261. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=().html +0 -0
  262. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=False.html +0 -0
  263. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=None.html +0 -0
  264. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=('method1',),members=True.html +0 -0
  265. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=(),members=('module_attribute',).html +0 -0
  266. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=(),members=().html +0 -0
  267. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=(),members=False.html +0 -0
  268. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=(),members=None.html +0 -0
  269. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=(),members=True.html +0 -0
  270. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=False,members=('module_attribute',).html +0 -0
  271. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=False,members=().html +0 -0
  272. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=False,members=False.html +0 -0
  273. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=False,members=None.html +0 -0
  274. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=False,members=True.html +0 -0
  275. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=True,members=('module_attribute',).html +0 -0
  276. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=True,members=().html +0 -0
  277. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=True,members=False.html +0 -0
  278. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=True,members=None.html +0 -0
  279. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/members/filters=public,inherited_members=True,members=True.html +0 -0
  280. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html +0 -0
  281. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html +0 -0
  282. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html +0 -0
  283. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html +0 -0
  284. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html +0 -0
  285. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html +0 -0
  286. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html +0 -0
  287. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html +0 -0
  288. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  289. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  290. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  291. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  292. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=False.html +0 -0
  293. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=True.html +0 -0
  294. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=False.html +0 -0
  295. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=True.html +0 -0
  296. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/test_end_to_end.py +0 -0
  297. {mkdocstrings_python-2.0.5 → mkdocstrings_python-2.0.7}/tests/test_themes.py +0 -0
@@ -5,6 +5,23 @@ 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.7](https://github.com/mkdocstrings/python/releases/tag/2.0.7) - 2026-08-17
9
+
10
+ <small>[Compare with 2.0.6](https://github.com/mkdocstrings/python/compare/2.0.6...2.0.7)</small>
11
+
12
+ ### Bug Fixes
13
+
14
+ - Don't render environment paths in source block labels ([84ba73e](https://github.com/mkdocstrings/python/commit/84ba73e8ca4e54afd29a4fe67b8bfb022e76c794) by Chris Wilson). [Issue-333](https://github.com/mkdocstrings/python/issues/333), [PR-338](https://github.com/mkdocstrings/python/pull/338)
15
+
16
+ ## [2.0.6](https://github.com/mkdocstrings/python/releases/tag/2.0.6) - 2026-08-16
17
+
18
+ <small>[Compare with 2.0.5](https://github.com/mkdocstrings/python/compare/2.0.5...2.0.6)</small>
19
+
20
+ ### Bug Fixes
21
+
22
+ - Don't pass unsupported options to Griffe parsers ([4b38b6b](https://github.com/mkdocstrings/python/commit/4b38b6ba6c3d1e09339cd5eb2c43145be84bda66) by Timothée Mazzucotelli). [Issue-337](https://github.com/mkdocstrings/python/issues/337)
23
+ - Increase stash key length from 1 to 2 ([6ff2749](https://github.com/mkdocstrings/python/commit/6ff274911441ffaace47dd822fd92a3cdac84e65) by Jonas Haag). [PR-336](https://github.com/mkdocstrings/python/pull/336)
24
+
8
25
  ## [2.0.5](https://github.com/mkdocstrings/python/releases/tag/2.0.5) - 2026-06-19
9
26
 
10
27
  <small>[Compare with 2.0.4](https://github.com/mkdocstrings/python/compare/2.0.4...2.0.5)</small>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocstrings-python
3
- Version: 2.0.5
3
+ Version: 2.0.7
4
4
  Summary: A Python handler for mkdocstrings.
5
5
  Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
6
6
  License-Expression: ISC
@@ -145,7 +145,7 @@ dependencies = [
145
145
  <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
146
146
  <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
147
147
  <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
148
- <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4" style="height: 32px; border-radius: 100%;"></a>
148
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4" style="height: 32px; border-radius: 100%;"></a>
149
149
  <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
150
150
  <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
151
151
  <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -157,17 +157,15 @@ dependencies = [
157
157
  <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
158
  <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
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
- <a href="https://github.com/blaisep"><img alt="blaisep" src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4" style="height: 32px; border-radius: 100%;"></a>
161
160
  <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>
162
161
  <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>
163
162
  <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>
164
163
  <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
165
164
  <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
166
- <a href="https://github.com/Alphadelta14"><img alt="Alphadelta14" src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px; border-radius: 100%;"></a>
167
165
  <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
168
166
  </p></div>
169
167
 
170
168
 
171
- *And 7 more private sponsor(s).*
169
+ *And 4 more private sponsor(s).*
172
170
 
173
171
  <!-- sponsors-end -->
@@ -108,7 +108,7 @@ dependencies = [
108
108
  <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
109
109
  <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
110
110
  <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
111
- <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4" style="height: 32px; border-radius: 100%;"></a>
111
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4" style="height: 32px; border-radius: 100%;"></a>
112
112
  <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
113
113
  <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
114
114
  <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
@@ -120,17 +120,15 @@ dependencies = [
120
120
  <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
121
  <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
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
- <a href="https://github.com/blaisep"><img alt="blaisep" src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4" style="height: 32px; border-radius: 100%;"></a>
124
123
  <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>
125
124
  <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>
126
125
  <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>
127
126
  <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
128
127
  <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
129
- <a href="https://github.com/Alphadelta14"><img alt="Alphadelta14" src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px; border-radius: 100%;"></a>
130
128
  <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
131
129
  </p></div>
132
130
 
133
131
 
134
- *And 7 more private sponsor(s).*
132
+ *And 4 more private sponsor(s).*
135
133
 
136
134
  <!-- sponsors-end -->
@@ -41,7 +41,7 @@ dependencies = [
41
41
  "griffelib>=2.0",
42
42
  "typing-extensions>=4.0; python_version < '3.11'",
43
43
  ]
44
- version = "2.0.5"
44
+ version = "2.0.7"
45
45
 
46
46
  [project.urls]
47
47
  Homepage = "https://mkdocstrings.github.io/python"
@@ -103,18 +103,19 @@ maintain = [
103
103
  "yore>=0.3.3",
104
104
  ]
105
105
  ci = [
106
+ "beautifulsoup4>=4.12.3",
106
107
  "black>=25.1",
107
108
  "duty>=1.6",
108
- "ruff>=0.4",
109
+ "griffe>=2.1",
110
+ "inline-snapshot>=0.25",
111
+ "mypy>=1.10",
109
112
  "pytest>=8.2",
110
113
  "pytest-cov>=5.0",
111
114
  "pytest-randomly>=3.15",
112
115
  "pytest-xdist>=3.6",
113
- "beautifulsoup4>=4.12.3",
114
- "inline-snapshot>=0.25",
115
- "mypy>=1.10",
116
116
  "types-markdown>=3.6",
117
117
  "types-pyyaml>=6.0",
118
+ "ruff>=0.4",
118
119
  ]
119
120
  docs = [
120
121
  "markdown-callouts>=0.4",
@@ -23,9 +23,14 @@ class CustomFields(griffe.Extension):
23
23
  """Fetch descriptions from `Field` annotations."""
24
24
  if attr.docstring:
25
25
  return
26
+ annotation = attr.annotation
27
+ if not isinstance(annotation, griffe.ExprSubscript) or not isinstance(annotation.slice, griffe.ExprTuple):
28
+ return
26
29
  try:
27
- field: griffe.ExprCall = attr.annotation.slice.elements[1]
28
- except AttributeError:
30
+ field = annotation.slice.elements[1]
31
+ except IndexError:
32
+ return
33
+ if not isinstance(field, griffe.ExprCall):
29
34
  return
30
35
 
31
36
  if field.canonical_path == "mkdocstrings_handlers.python._internal.config._Field":
@@ -31,6 +31,7 @@ from mkdocstrings_handlers.python._internal.rendering import (
31
31
  do_format_type_alias,
32
32
  do_get_template,
33
33
  do_order_members,
34
+ do_source_location,
34
35
  do_split_path,
35
36
  do_stash_crossref,
36
37
  )
@@ -64,6 +65,7 @@ __all__ = [
64
65
  "do_format_type_alias",
65
66
  "do_get_template",
66
67
  "do_order_members",
68
+ "do_source_location",
67
69
  "do_split_path",
68
70
  "do_stash_crossref",
69
71
  "get_handler",
@@ -3,13 +3,14 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import glob
6
+ import inspect
6
7
  import os
7
8
  import posixpath
8
9
  import sys
9
10
  from contextlib import suppress
10
11
  from dataclasses import asdict
11
12
  from pathlib import Path
12
- from typing import TYPE_CHECKING, Any, BinaryIO, ClassVar
13
+ from typing import TYPE_CHECKING, Any, BinaryIO, Callable, ClassVar
13
14
 
14
15
  from griffe import (
15
16
  AliasResolutionError,
@@ -18,6 +19,10 @@ from griffe import (
18
19
  ModulesCollection,
19
20
  Parser,
20
21
  load_extensions,
22
+ parse_auto,
23
+ parse_google,
24
+ parse_numpy,
25
+ parse_sphinx,
21
26
  patch_loggers,
22
27
  )
23
28
  from mkdocs.exceptions import PluginError
@@ -54,6 +59,34 @@ _logger = get_logger(__name__)
54
59
 
55
60
  patch_loggers(get_logger)
56
61
 
62
+ _PARSER_FUNCTIONS: dict[Parser, Callable] = {
63
+ Parser.auto: parse_auto,
64
+ Parser.google: parse_google,
65
+ Parser.numpy: parse_numpy,
66
+ Parser.sphinx: parse_sphinx,
67
+ }
68
+
69
+
70
+ def _filter_parser_options(parser: Parser | None, options: dict[str, Any] | None) -> dict[str, Any] | None:
71
+ """Filter options unsupported by the selected Griffe parser."""
72
+ if parser is None or options is None:
73
+ return options
74
+
75
+ accepted_options = set(inspect.signature(_PARSER_FUNCTIONS[parser]).parameters) - {"docstring"}
76
+ filtered_options = {}
77
+ for name, value in options.items():
78
+ if name in accepted_options:
79
+ if parser is Parser.auto and name == "per_style_options":
80
+ filtered_options[name] = {
81
+ style: _filter_parser_options(Parser(style), style_options)
82
+ for style, style_options in value.items()
83
+ }
84
+ else:
85
+ filtered_options[name] = value
86
+ else:
87
+ _logger.warning(f"Ignoring unsupported {parser.value} docstring parser option: {name}")
88
+ return filtered_options
89
+
57
90
 
58
91
  class PythonHandler(BaseHandler):
59
92
  """The Python handler class."""
@@ -195,7 +228,9 @@ class PythonHandler(BaseHandler):
195
228
 
196
229
  parser_name = options.docstring_style
197
230
  parser = parser_name and Parser(parser_name)
198
- parser_options = options.docstring_options and asdict(options.docstring_options)
231
+ parser_options: dict[str, Any] | None = None
232
+ if options.docstring_options is not None:
233
+ parser_options = _filter_parser_options(parser, asdict(options.docstring_options))
199
234
 
200
235
  if unknown_module:
201
236
  extensions = self.normalize_extension_paths(options.extensions)
@@ -203,7 +238,7 @@ class PythonHandler(BaseHandler):
203
238
  extensions=load_extensions(*extensions),
204
239
  search_paths=self._paths,
205
240
  docstring_parser=parser,
206
- docstring_options=parser_options,
241
+ docstring_options=parser_options, # type: ignore[arg-type]
207
242
  modules_collection=self._modules_collection,
208
243
  lines_collection=self._lines_collection,
209
244
  allow_inspection=options.allow_inspection,
@@ -310,6 +345,7 @@ class PythonHandler(BaseHandler):
310
345
  self.env.filters["filter_objects"] = rendering.do_filter_objects
311
346
  self.env.filters["stash_crossref"] = rendering.do_stash_crossref
312
347
  self.env.filters["get_template"] = rendering.do_get_template
348
+ self.env.filters["source_location"] = rendering.do_source_location
313
349
  self.env.filters["as_attributes_section"] = rendering.do_as_attributes_section
314
350
  self.env.filters["as_functions_section"] = rendering.do_as_functions_section
315
351
  self.env.filters["as_classes_section"] = rendering.do_as_classes_section
@@ -11,6 +11,7 @@ from collections import defaultdict
11
11
  from contextlib import suppress
12
12
  from dataclasses import replace
13
13
  from functools import lru_cache
14
+ from pathlib import Path
14
15
  from re import Pattern
15
16
  from typing import TYPE_CHECKING, Any, Callable, ClassVar, Literal, TypeVar
16
17
 
@@ -107,7 +108,7 @@ class _StashCrossRefFilter:
107
108
 
108
109
  @staticmethod
109
110
  def _gen_key(length: int) -> str:
110
- return "_" + "".join(random.choice(string.ascii_letters + string.digits) for _ in range(max(1, length - 1))) # noqa: S311
111
+ return "_" + "".join(random.choice(string.ascii_letters + string.digits) for _ in range(max(2, length - 1))) # noqa: S311
111
112
 
112
113
  def _gen_stash_key(self, length: int) -> str:
113
114
  key = self._gen_key(length)
@@ -420,22 +421,20 @@ def _keep_object(name: str, filters: Sequence[tuple[Pattern, bool]]) -> bool:
420
421
 
421
422
 
422
423
  def _parents(obj: Alias) -> set[str]:
423
- parent: Object | Alias = obj.parent
424
- parents = {obj.path, parent.path}
425
- if parent.is_alias:
426
- parents.add(parent.final_target.path)
427
- while parent.parent:
428
- parent = parent.parent
424
+ parents = {obj.path}
425
+ parent = obj.parent
426
+ while parent is not None:
429
427
  parents.add(parent.path)
430
- if parent.is_alias:
428
+ if isinstance(parent, Alias):
431
429
  parents.add(parent.final_target.path)
430
+ parent = parent.parent
432
431
  return parents
433
432
 
434
433
 
435
434
  def _remove_cycles(objects: list[Object | Alias]) -> Iterator[Object | Alias]:
436
435
  suppress_errors = suppress(AliasResolutionError, CyclicAliasError)
437
436
  for obj in objects:
438
- if obj.is_alias:
437
+ if isinstance(obj, Alias):
439
438
  with suppress_errors:
440
439
  if obj.final_target.path in _parents(obj):
441
440
  continue
@@ -592,6 +591,30 @@ def do_get_template(obj: Object | Alias) -> str:
592
591
  return f"{name}.html.jinja"
593
592
 
594
593
 
594
+ def do_source_location(obj: Object | Alias) -> Path:
595
+ """Get the file path displayed in an object's source block label.
596
+
597
+ Environment paths are never displayed: when the object's file lives in
598
+ a `site-packages` directory (for example a virtual environment inside
599
+ the current working directory), the path below `site-packages` is
600
+ returned instead.
601
+
602
+ Parameters:
603
+ obj: A Griffe object.
604
+
605
+ Returns:
606
+ The file path to display.
607
+ """
608
+ relative_filepath = obj.relative_filepath
609
+ parts = relative_filepath.parts
610
+ if "site-packages" in parts:
611
+ anchor = len(parts) - 1 - parts[::-1].index("site-packages")
612
+ return Path(*parts[anchor + 1 :])
613
+ if relative_filepath.is_absolute():
614
+ return obj.relative_package_filepath
615
+ return relative_filepath
616
+
617
+
595
618
  @pass_context
596
619
  def do_as_attributes_section(
597
620
  context: Context, # noqa: ARG001
@@ -784,6 +807,8 @@ class AutorefsHook(AutorefsHookInterface):
784
807
  obj = self.current_object
785
808
  while identifier and identifier[0] == ".":
786
809
  identifier = identifier[1:]
810
+ if obj.parent is None:
811
+ break
787
812
  obj = obj.parent
788
813
  identifier = f"{obj.path}.{identifier}" if identifier else obj.path
789
814
 
@@ -814,12 +839,13 @@ class AutorefsHook(AutorefsHookInterface):
814
839
  "module": "mod",
815
840
  }.get(self.current_object.kind.value.lower(), "obj")
816
841
  origin = self.current_object.path
817
- try:
818
- filepath = self.current_object.docstring.parent.filepath
819
- lineno = self.current_object.docstring.lineno or 0
820
- except AttributeError:
842
+ docstring = self.current_object.docstring
843
+ if docstring is None or docstring.parent is None:
821
844
  filepath = self.current_object.filepath
822
845
  lineno = 0
846
+ else:
847
+ filepath = docstring.parent.filepath
848
+ lineno = docstring.lineno or 0
823
849
 
824
850
  return AutorefsHookInterface.Context(
825
851
  domain="py",
@@ -249,26 +249,14 @@ Context:
249
249
  {% if "__init__" in all_members and all_members["__init__"].source %}
250
250
  {% with init = all_members["__init__"] %}
251
251
  <details class="mkdocstrings-source">
252
- <summary>{{ lang.t("Source code in") }} <code>
253
- {%- if init.relative_filepath.is_absolute() -%}
254
- {{ init.relative_package_filepath }}
255
- {%- else -%}
256
- {{ init.relative_filepath }}
257
- {%- endif -%}
258
- </code></summary>
252
+ <summary>{{ lang.t("Source code in") }} <code>{{ init|source_location }}</code></summary>
259
253
  {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True) }}
260
254
  </details>
261
255
  {% endwith %}
262
256
  {% endif %}
263
257
  {% elif class.source %}
264
258
  <details class="mkdocstrings-source">
265
- <summary>{{ lang.t("Source code in") }} <code>
266
- {%- if class.relative_filepath.is_absolute() -%}
267
- {{ class.relative_package_filepath }}
268
- {%- else -%}
269
- {{ class.relative_filepath }}
270
- {%- endif -%}
271
- </code></summary>
259
+ <summary>{{ lang.t("Source code in") }} <code>{{ class|source_location }}</code></summary>
272
260
  {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True) }}
273
261
  </details>
274
262
  {% endif %}
@@ -146,13 +146,7 @@ Context:
146
146
  -#}
147
147
  {% if config.show_source and function.source %}
148
148
  <details class="mkdocstrings-source">
149
- <summary>{{ lang.t("Source code in") }} <code>
150
- {%- if function.relative_filepath.is_absolute() -%}
151
- {{ function.relative_package_filepath }}
152
- {%- else -%}
153
- {{ function.relative_filepath }}
154
- {%- endif -%}
155
- </code></summary>
149
+ <summary>{{ lang.t("Source code in") }} <code>{{ function|source_location }}</code></summary>
156
150
  {{ function.source|highlight(language="python", linestart=function.lineno or 0, linenums=True) }}
157
151
  </details>
158
152
  {% endif %}
@@ -208,26 +208,14 @@ Context:
208
208
  {% if "__init__" in class.all_members and class.all_members["__init__"].source %}
209
209
  {% with init = class.all_members["__init__"] %}
210
210
  <details class="quote">
211
- <summary>Source code in <code>
212
- {%- if init.relative_filepath.is_absolute() -%}
213
- {{ init.relative_package_filepath }}
214
- {%- else -%}
215
- {{ init.relative_filepath }}
216
- {%- endif -%}
217
- </code></summary>
211
+ <summary>Source code in <code>{{ init|source_location }}</code></summary>
218
212
  {{ init.source|highlight(language="python", linestart=init.lineno or 0, linenums=True) }}
219
213
  </details>
220
214
  {% endwith %}
221
215
  {% endif %}
222
216
  {% elif class.source %}
223
217
  <details class="quote">
224
- <summary>Source code in <code>
225
- {%- if class.relative_filepath.is_absolute() -%}
226
- {{ class.relative_package_filepath }}
227
- {%- else -%}
228
- {{ class.relative_filepath }}
229
- {%- endif -%}
230
- </code></summary>
218
+ <summary>Source code in <code>{{ class|source_location }}</code></summary>
231
219
  {{ class.source|highlight(language="python", linestart=class.lineno or 0, linenums=True) }}
232
220
  </details>
233
221
  {% endif %}
@@ -36,7 +36,7 @@ def _fixture_public_api(loader: griffe.GriffeLoader) -> griffe.Module:
36
36
 
37
37
 
38
38
  def _yield_public_objects(
39
- obj: griffe.Module | griffe.Class,
39
+ obj: griffe.Module | griffe.Class | griffe.Alias,
40
40
  *,
41
41
  modules: bool = False,
42
42
  modulelevel: bool = True,
@@ -48,6 +48,7 @@ def _yield_public_objects(
48
48
  if member.is_module:
49
49
  if member.is_alias or not member.is_public:
50
50
  continue
51
+ assert isinstance(member, griffe.Module)
51
52
  if modules:
52
53
  yield member
53
54
  yield from _yield_public_objects(
@@ -62,6 +63,7 @@ def _yield_public_objects(
62
63
  else:
63
64
  continue
64
65
  if member.is_class and not modulelevel:
66
+ assert isinstance(member, (griffe.Class, griffe.Alias))
65
67
  yield from _yield_public_objects(
66
68
  member,
67
69
  modules=modules,
@@ -0,0 +1,61 @@
1
+ """Tests for configuration options."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import inspect
6
+ from dataclasses import asdict, fields
7
+ from typing import TYPE_CHECKING, Any
8
+
9
+ import pytest
10
+ from griffe import Parser, parse_google, parse_numpy, parse_sphinx
11
+
12
+ from mkdocstrings_handlers.python import AutoStyleOptions, GoogleStyleOptions, NumpyStyleOptions, SphinxStyleOptions
13
+ from mkdocstrings_handlers.python._internal.handler import _filter_parser_options
14
+
15
+ if TYPE_CHECKING:
16
+ from collections.abc import Callable
17
+
18
+
19
+ @pytest.mark.parametrize(
20
+ ("options_class", "parser"),
21
+ [
22
+ (GoogleStyleOptions, parse_google),
23
+ (NumpyStyleOptions, parse_numpy),
24
+ (SphinxStyleOptions, parse_sphinx),
25
+ ],
26
+ )
27
+ def test_style_options_match_griffe_parser(options_class: type[Any], parser: Callable[..., object]) -> None:
28
+ """Ensure style options stay in sync with Griffe parser options."""
29
+ option_names = {field.name for field in fields(options_class)}
30
+ parser_parameters = inspect.signature(parser).parameters
31
+ parser_option_names = set(parser_parameters) - {"docstring"}
32
+
33
+ assert parser_option_names <= option_names
34
+
35
+
36
+ def test_filter_style_options(caplog: pytest.LogCaptureFixture) -> None:
37
+ """Ensure unsupported options are not passed to Griffe and are reported."""
38
+ options = asdict(SphinxStyleOptions())
39
+
40
+ filtered_options = _filter_parser_options(Parser.sphinx, options)
41
+
42
+ assert filtered_options == {
43
+ name: value for name, value in options.items() if name in inspect.signature(parse_sphinx).parameters
44
+ }
45
+ assert "warn_missing_types" in options
46
+ for name in set(options) - set(filtered_options or {}):
47
+ assert f"Ignoring unsupported sphinx docstring parser option: {name}" in caplog.text
48
+
49
+
50
+ def test_filter_auto_style_options(caplog: pytest.LogCaptureFixture) -> None:
51
+ """Ensure unsupported options nested in auto style options are reported."""
52
+ options = asdict(AutoStyleOptions())
53
+
54
+ filtered_options = _filter_parser_options(Parser.auto, options)
55
+
56
+ assert filtered_options is not None
57
+ if "warn_missing_types" in inspect.signature(parse_sphinx).parameters:
58
+ assert "warn_missing_types" in filtered_options["per_style_options"]["sphinx"]
59
+ else:
60
+ assert "warn_missing_types" not in filtered_options["per_style_options"]["sphinx"]
61
+ assert "Ignoring unsupported sphinx docstring parser option: warn_missing_types" in caplog.text
@@ -11,6 +11,7 @@ from pathlib import Path
11
11
  from textwrap import dedent
12
12
  from typing import TYPE_CHECKING
13
13
 
14
+ import bs4
14
15
  import mkdocstrings
15
16
  import pytest
16
17
  from griffe import (
@@ -333,3 +334,77 @@ def test_specifying_inventory_base_url(handler: PythonHandler) -> None:
333
334
  # Assert the URL is based on the provided base URL
334
335
  msg = "Expected inventory URL to start with base_url"
335
336
  assert item_url.startswith(base_url), msg
337
+
338
+
339
+ def _source_labels(html: str) -> list[Path]:
340
+ soup = bs4.BeautifulSoup(html, features="html.parser")
341
+ labels = []
342
+ for summary in soup.find_all("summary"):
343
+ if "Source code in" in summary.get_text():
344
+ code_tag = summary.find("code")
345
+ assert code_tag is not None
346
+ labels.append(Path(code_tag.get_text(strip=True)))
347
+ return labels
348
+
349
+
350
+ def _write_site_packages_package(tmp_path: Path, *, single_module: bool) -> None:
351
+ """Lay out the issue-333 scenario: a package installed in a virtual environment inside the project.
352
+
353
+ The environment's `site-packages` directory is relative to the current
354
+ working directory, so the package's `relative_filepath` is relative too,
355
+ slipping past `is_absolute()` checks.
356
+ """
357
+ code = """
358
+ class Model:
359
+ '''Model docstring.'''
360
+
361
+ def __init__(self) -> None:
362
+ '''Init docstring.'''
363
+ self.model_attribute = 0
364
+
365
+ def method(self) -> None:
366
+ '''Method docstring.'''
367
+ """
368
+ site = tmp_path / "site-packages"
369
+ module_path = site / "pkg.py" if single_module else site / "pkg" / "__init__.py"
370
+ module_path.parent.mkdir(parents=True)
371
+ module_path.write_text(dedent(code), encoding="utf-8")
372
+
373
+
374
+ @pytest.mark.parametrize(
375
+ "handler",
376
+ [
377
+ {"theme": "readthedocs"},
378
+ {"theme": {"name": "material"}},
379
+ ],
380
+ indirect=["handler"],
381
+ )
382
+ @pytest.mark.parametrize(
383
+ ("single_module", "extra_options", "expected_label"),
384
+ [
385
+ pytest.param(False, {"merge_init_into_class": True}, Path("pkg", "__init__.py"), id="merged-init"),
386
+ pytest.param(False, {}, Path("pkg", "__init__.py"), id="class-and-methods"),
387
+ pytest.param(True, {"merge_init_into_class": True}, Path("pkg.py"), id="single-module"),
388
+ ],
389
+ )
390
+ def test_no_environment_path_in_source_labels(
391
+ *,
392
+ tmp_path: Path,
393
+ monkeypatch: pytest.MonkeyPatch,
394
+ handler: PythonHandler,
395
+ single_module: bool,
396
+ extra_options: dict,
397
+ expected_label: Path,
398
+ ) -> None:
399
+ """Assert source labels never show an environment path."""
400
+ _write_site_packages_package(tmp_path, single_module=single_module)
401
+ monkeypatch.chdir(tmp_path)
402
+ # `collect()` reads the search paths lazily from this attribute.
403
+ handler._paths = [str(tmp_path / "site-packages")]
404
+ options = handler.get_options({"show_source": True, **extra_options})
405
+ html = handler.render(handler.collect("pkg.Model", options), options)
406
+ labels = _source_labels(html)
407
+ assert labels
408
+ assert set(labels) == {expected_label}
409
+ # The source bodies themselves are still rendered.
410
+ assert "model_attribute" in html
@@ -4,10 +4,10 @@ from __future__ import annotations
4
4
 
5
5
  import re
6
6
  from dataclasses import dataclass
7
- from typing import TYPE_CHECKING, Any, Callable
7
+ from typing import TYPE_CHECKING, Any, Callable, cast
8
8
 
9
9
  import pytest
10
- from griffe import ModulesCollection, temporary_visited_module
10
+ from griffe import Alias, ModulesCollection, Object, temporary_visited_module
11
11
 
12
12
  from mkdocstrings_handlers.python._internal import rendering
13
13
 
@@ -78,7 +78,7 @@ def test_filter_objects(names: list[str], filter_params: dict[str, Any], expecte
78
78
  expected_names: Names expected to be kept.
79
79
  """
80
80
  objects = {name: _FakeObject(name) for name in names}
81
- filtered = rendering.do_filter_objects(objects, **filter_params)
81
+ filtered = rendering.do_filter_objects(cast("dict[str, Object | Alias]", objects), **filter_params)
82
82
  filtered_names = {obj.name for obj in filtered}
83
83
  assert set(filtered_names) == set(expected_names)
84
84