griffe-runtime-objects 0.3.1__tar.gz → 0.3.2__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 (49) hide show
  1. griffe_runtime_objects-0.3.2/AI_POLICY.md +15 -0
  2. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/CHANGELOG.md +8 -0
  3. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/CONTRIBUTING.md +5 -14
  4. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/LICENSE +1 -1
  5. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/PKG-INFO +6 -8
  6. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/README.md +2 -4
  7. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/git-changelog.toml +1 -1
  8. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/ruff.toml +1 -1
  9. griffe_runtime_objects-0.3.2/config/zed/debug.json +44 -0
  10. griffe_runtime_objects-0.3.2/config/zed/settings.json +43 -0
  11. griffe_runtime_objects-0.3.2/config/zed/tasks.json +72 -0
  12. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/duties.py +50 -6
  13. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/pyproject.toml +4 -4
  14. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/scripts/gen_credits.py +20 -8
  15. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/scripts/get_version.py +19 -1
  16. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/scripts/make.py +29 -3
  17. griffe_runtime_objects-0.3.2/src/griffe_runtime_objects/__init__.py +28 -0
  18. griffe_runtime_objects-0.3.2/src/griffe_runtime_objects/_internal/__init__.py +17 -0
  19. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/src/griffe_runtime_objects/_internal/debug.py +18 -0
  20. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/src/griffe_runtime_objects/_internal/extension.py +18 -0
  21. griffe_runtime_objects-0.3.2/tests/__init__.py +25 -0
  22. griffe_runtime_objects-0.3.2/tests/conftest.py +19 -0
  23. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/tests/test_api.py +18 -0
  24. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/tests/test_extension.py +18 -0
  25. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/zensical.toml +1 -0
  26. griffe_runtime_objects-0.3.1/src/griffe_runtime_objects/__init__.py +0 -10
  27. griffe_runtime_objects-0.3.1/src/griffe_runtime_objects/_internal/__init__.py +0 -0
  28. griffe_runtime_objects-0.3.1/tests/__init__.py +0 -7
  29. griffe_runtime_objects-0.3.1/tests/conftest.py +0 -1
  30. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/CODE_OF_CONDUCT.md +0 -0
  31. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/coverage.ini +0 -0
  32. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/pytest.ini +0 -0
  33. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/ty.toml +0 -0
  34. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/vscode/launch.json +0 -0
  35. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/vscode/settings.json +0 -0
  36. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/config/vscode/tasks.json +0 -0
  37. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/.overrides/main.html +0 -0
  38. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/.overrides/partials/comments.html +0 -0
  39. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/changelog.md +0 -0
  40. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/code_of_conduct.md +0 -0
  41. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/contributing.md +0 -0
  42. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/credits.md +0 -0
  43. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/css/apidocs.css +0 -0
  44. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/index.md +0 -0
  45. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/js/feedback.js +0 -0
  46. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/license.md +0 -0
  47. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/docs/reference/api.md +0 -0
  48. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/scripts/make +0 -0
  49. {griffe_runtime_objects-0.3.1 → griffe_runtime_objects-0.3.2}/src/griffe_runtime_objects/py.typed +0 -0
@@ -0,0 +1,15 @@
1
+ # AI Contribution Policy
2
+
3
+ We accept AI-*assisted* contributions, both for code and documentation, with the following expectations:
4
+
5
+ - AI-assisted contributions must disclaim their use of AI.
6
+ - Contributors must fully understand the proposed changes and be able to explain why they are the correct approach.
7
+ - Issues must be created before creating pull requests (unless there is already a relevant issue).
8
+ - Issue and pull request templates must be followed.
9
+ - Comments (including bodies) in issues and pull requests must be written by humans. If you use LLMs to translate from one language to another, please include your original comment and the translated one.
10
+ - Git commits must be authored by humans, not AI/bot accounts or identities.
11
+ - Git commit messages must be written by humans, in English. If you cannot write English, please state so in the pull request body and we will write the commit messages ourselves.
12
+
13
+ Failure to comply with any of these requirements will result in issues or pull requests being closed immediately without comment. Repeated violations of this policy will result in a ban of the offending accounts/identities from contributing to this project and any related project from the same author/organization.
14
+
15
+ We do not accept AI-generated content in community spaces we maintain or moderate, such as GitHub discussions or Matrix rooms.
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  <!-- insertion marker -->
9
+ ## [0.3.2](https://github.com/mkdocstrings/griffe-runtime-objects/releases/tag/0.3.2) - 2026-10-06
10
+
11
+ <small>[Compare with 0.3.1](https://github.com/mkdocstrings/griffe-runtime-objects/compare/0.3.1...0.3.2)</small>
12
+
13
+ ### Build
14
+
15
+ - Drop support for Python 3.10 ([f467fa6](https://github.com/mkdocstrings/griffe-runtime-objects/commit/f467fa69a1ce956d1720c49614856cc35e35c969) by Timothée Mazzucotelli).
16
+
9
17
  ## [0.3.1](https://github.com/mkdocstrings/griffe-runtime-objects/releases/tag/0.3.1) - 2026-02-20
10
18
 
11
19
  <small>[Compare with 0.3.0](https://github.com/mkdocstrings/griffe-runtime-objects/compare/0.3.0...0.3.1)</small>
@@ -1,28 +1,19 @@
1
1
  # Contributing
2
2
 
3
- Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
3
+ Contributions are welcome, and they are greatly appreciated. Every little bit helps, and credit will always be given.
4
4
 
5
- ## Environment setup
5
+ **Please always create an issue before working on a new feature or a bug fix, so that we can discuss the implementation and make sure that your work will be merged.**
6
6
 
7
- Nothing easier!
7
+ ## Environment setup
8
8
 
9
- Fork and clone the repository, then:
9
+ Install [uv](https://github.com/astral-sh/uv) and [direnv](https://direnv.net/), fork and clone the repository, then:
10
10
 
11
11
  ```bash
12
12
  cd griffe-runtime-objects
13
+ direnv allow
13
14
  make setup
14
15
  ```
15
16
 
16
- > NOTE: If it fails for some reason, you'll need to install [uv](https://github.com/astral-sh/uv) manually.
17
- >
18
- > You can install it with:
19
- >
20
- > ```bash
21
- > curl -LsSf https://astral.sh/uv/install.sh | sh
22
- > ```
23
- >
24
- > Now you can try running `make setup` again, or simply `uv sync`.
25
-
26
17
  You now have the dependencies installed.
27
18
 
28
19
  Run `make help` to see all the available actions!
@@ -1,6 +1,6 @@
1
1
  ISC License
2
2
 
3
- Copyright (c) 2024, Timothée Mazzucotelli
3
+ Copyright (c) 2024, Timothée Mazzucotelli and contributors
4
4
 
5
5
  Permission to use, copy, modify, and/or distribute this software for any
6
6
  purpose with or without fee is hereby granted, provided that the above
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: griffe-runtime-objects
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Make runtime objects available through `extra`.
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,11 +10,11 @@ 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
17
16
  Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3.15
18
18
  Classifier: Topic :: Documentation
19
19
  Classifier: Topic :: Software Development
20
20
  Classifier: Topic :: Utilities
@@ -27,7 +27,7 @@ Project-URL: Issues, https://github.com/mkdocstrings/griffe-runtime-objects/issu
27
27
  Project-URL: Discussions, https://github.com/mkdocstrings/griffe-runtime-objects/discussions
28
28
  Project-URL: Gitter, https://gitter.im/mkdocstrings/griffe-runtime-objects
29
29
  Project-URL: Funding, https://github.com/sponsors/pawamoy
30
- Requires-Python: >=3.10
30
+ Requires-Python: >=3.11
31
31
  Requires-Dist: griffelib>=2.0
32
32
  Description-Content-Type: text/markdown
33
33
 
@@ -103,7 +103,7 @@ plugins:
103
103
  <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>
104
104
  <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>
105
105
  <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>
106
- <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>
106
+ <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>
107
107
  <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>
108
108
  <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>
109
109
  <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>
@@ -115,17 +115,15 @@ plugins:
115
115
  <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>
116
116
  <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>
117
117
  <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>
118
- <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>
119
118
  <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>
120
119
  <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>
121
120
  <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>
122
121
  <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>
123
122
  <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>
124
- <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>
125
123
  <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>
126
124
  </p></div>
127
125
 
128
126
 
129
- *And 7 more private sponsor(s).*
127
+ *And 4 more private sponsor(s).*
130
128
 
131
129
  <!-- sponsors-end -->
@@ -70,7 +70,7 @@ plugins:
70
70
  <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>
71
71
  <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>
72
72
  <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>
73
- <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>
73
+ <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>
74
74
  <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>
75
75
  <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>
76
76
  <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>
@@ -82,17 +82,15 @@ plugins:
82
82
  <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>
83
83
  <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>
84
84
  <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>
85
- <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>
86
85
  <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>
87
86
  <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>
88
87
  <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>
89
88
  <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>
90
89
  <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>
91
- <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>
92
90
  <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>
93
91
  </p></div>
94
92
 
95
93
 
96
- *And 7 more private sponsor(s).*
94
+ *And 4 more private sponsor(s).*
97
95
 
98
96
  <!-- sponsors-end -->
@@ -4,6 +4,6 @@ in-place = true
4
4
  output = "CHANGELOG.md"
5
5
  parse-refs = false
6
6
  parse-trailers = true
7
- sections = ["build", "deps", "feat", "fix", "refactor"]
7
+ sections = ["build", "deps", "feat", "fix", "perf", "refactor"]
8
8
  template = "keepachangelog"
9
9
  versioning = "pep440"
@@ -1,4 +1,4 @@
1
- target-version = "py310"
1
+ target-version = "py311"
2
2
  line-length = 120
3
3
  output-format = "concise"
4
4
 
@@ -0,0 +1,44 @@
1
+ // Project-local debug tasks
2
+ //
3
+ // For more documentation on how to configure debug tasks,
4
+ // see: https://zed.dev/docs/debugger
5
+ [
6
+ {
7
+ "label": "python (current file)",
8
+ "adapter": "Debugpy",
9
+ "request": "launch",
10
+ "program": "$ZED_FILE",
11
+ "justMyCode": false
12
+ },
13
+ {
14
+ "label": "run",
15
+ "adapter": "Debugpy",
16
+ "request": "launch",
17
+ "module": "griffe_runtime_objects",
18
+ "justMyCode": false
19
+ },
20
+ {
21
+ "label": "docs",
22
+ "adapter": "Debugpy",
23
+ "request": "launch",
24
+ "module": "zensical",
25
+ "args": [
26
+ "serve"
27
+ ],
28
+ "justMyCode": false
29
+ },
30
+ {
31
+ "label": "test",
32
+ "adapter": "Debugpy",
33
+ "request": "launch",
34
+ "module": "pytest",
35
+ "args": [
36
+ "-c=config/pytest.ini",
37
+ "-vvv",
38
+ "--no-cov",
39
+ "--dist=no",
40
+ "tests"
41
+ ],
42
+ "justMyCode": false
43
+ }
44
+ ]
@@ -0,0 +1,43 @@
1
+ // Zed settings
2
+ //
3
+ // For information on how to configure Zed, see the Zed
4
+ // documentation: https://zed.dev/docs/configuring-zed
5
+ //
6
+ // To see all of Zed's default settings without changing your
7
+ // custom settings, run `zed: open default settings` from the
8
+ // command palette (cmd-shift-p / ctrl-shift-p)
9
+ {
10
+ "languages": {
11
+ "YAML": {
12
+ "auto_indent_on_paste": false,
13
+ "auto_indent": "preserve_indent",
14
+ "format_on_save": "off"
15
+ },
16
+ "Python": {
17
+ "language_servers": ["ty", "ruff"],
18
+ "code_actions_on_format": {
19
+ "source.organizeImports.ruff": true
20
+ },
21
+ "formatter": {
22
+ "language_server": {
23
+ "name": "ruff"
24
+ }
25
+ }
26
+ }
27
+ },
28
+ "lsp": {
29
+ "ty": {
30
+ "settings": {
31
+ "configurationFile": "config/ty.toml"
32
+ }
33
+ },
34
+ "ruff": {
35
+ "initialization_options": {
36
+ "settings": {
37
+ "configurationPreference": "filesystemFirst",
38
+ "configuration": "config/ruff.toml"
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,72 @@
1
+ [
2
+ {
3
+ "label": "changelog",
4
+ "command": "scripts/make",
5
+ "args": ["changelog"]
6
+ },
7
+ {
8
+ "label": "check",
9
+ "command": "scripts/make",
10
+ "args": ["check"]
11
+ },
12
+ {
13
+ "label": "check-quality",
14
+ "command": "scripts/make",
15
+ "args": ["check-quality"]
16
+ },
17
+ {
18
+ "label": "check-types",
19
+ "command": "scripts/make",
20
+ "args": ["check-types"]
21
+ },
22
+ {
23
+ "label": "check-docs",
24
+ "command": "scripts/make",
25
+ "args": ["check-docs"]
26
+ },
27
+ {
28
+ "label": "check-api",
29
+ "command": "scripts/make",
30
+ "args": ["check-api"]
31
+ },
32
+ {
33
+ "label": "clean",
34
+ "command": "scripts/make",
35
+ "args": ["clean"]
36
+ },
37
+ {
38
+ "label": "docs",
39
+ "command": "scripts/make",
40
+ "args": ["docs"]
41
+ },
42
+ {
43
+ "label": "docs-deploy",
44
+ "command": "scripts/make",
45
+ "args": ["docs-deploy"]
46
+ },
47
+ {
48
+ "label": "format",
49
+ "command": "scripts/make",
50
+ "args": ["format"]
51
+ },
52
+ {
53
+ "label": "release",
54
+ "command": "scripts/make",
55
+ "args": ["release"]
56
+ },
57
+ {
58
+ "label": "setup",
59
+ "command": "scripts/make",
60
+ "args": ["setup"]
61
+ },
62
+ {
63
+ "label": "test",
64
+ "command": "scripts/make",
65
+ "args": ["test", "coverage"]
66
+ },
67
+ {
68
+ "label": "vscode",
69
+ "command": "scripts/make",
70
+ "args": ["vscode"]
71
+ }
72
+ ]
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  """Development tasks."""
2
20
 
3
21
  from __future__ import annotations
@@ -22,7 +40,7 @@ WINDOWS = os.name == "nt"
22
40
  PTY = not WINDOWS and not CI
23
41
  MULTIRUN = os.environ.get("MULTIRUN", "0") == "1"
24
42
  PY_VERSION = f"{sys.version_info.major}{sys.version_info.minor}"
25
- PY_DEV = "315"
43
+ PY_DEV = "316"
26
44
 
27
45
 
28
46
  def pyprefix(title: str) -> str:
@@ -35,7 +53,7 @@ def pyprefix(title: str) -> str:
35
53
  def _get_changelog_version() -> str:
36
54
  changelog_version_re = re.compile(r"^## \[(\d+\.\d+\.\d+)\].*$")
37
55
  with Path(__file__).parent.joinpath("CHANGELOG.md").open("r", encoding="utf8") as file:
38
- return next(filter(bool, map(changelog_version_re.match, file))).group(1) # ty: ignore[invalid-argument-type]
56
+ return next(filter(bool, map(changelog_version_re.match, file))).group(1) # ty: ignore[unresolved-attribute]
39
57
 
40
58
 
41
59
  @duty
@@ -97,6 +115,21 @@ def check_api(ctx: Context, *cli_args: str) -> None:
97
115
  )
98
116
 
99
117
 
118
+ @duty
119
+ def check_security(ctx: Context) -> None:
120
+ """Check for security vulnerabilities."""
121
+ ctx.run(
122
+ ["uv", "audit"],
123
+ title="Auditing dependencies",
124
+ pty=PTY,
125
+ )
126
+ ctx.run(
127
+ ["zizmor", "."],
128
+ title="Auditing GitHub Actions workflows",
129
+ pty=PTY,
130
+ )
131
+
132
+
100
133
  @duty
101
134
  def docs(ctx: Context, *cli_args: str, host: str = "127.0.0.1", port: int = 8000) -> None:
102
135
  """Serve the documentation (localhost:8000).
@@ -157,9 +190,20 @@ def publish(ctx: Context) -> None:
157
190
  """Publish source and wheel distributions to PyPI."""
158
191
  if not Path("dist").exists():
159
192
  ctx.run("false", title="No distribution files found")
160
- dists = [str(dist) for dist in Path("dist").iterdir() if dist.suffix in (".tar.gz", ".whl")]
193
+ dists = [str(dist) for dist in Path("dist").iterdir() if dist.suffix in (".gz", ".whl")]
194
+ password = None
195
+ if password_cmd := os.getenv("PUBLISH_PASS_CMD"):
196
+ password = ctx.run(
197
+ password_cmd.format(project="griffe-runtime-objects"),
198
+ capture="stdout",
199
+ pty=False,
200
+ silent=True,
201
+ allow_overrides=False,
202
+ ).strip()
161
203
  ctx.run(
162
- tools.twine.upload(*dists, skip_existing=True),
204
+ tools.twine.upload(*dists, skip_existing=True, password=password),
205
+ # Keep the password out of the displayed command, including on failure.
206
+ command=tools.twine.upload(*dists, skip_existing=True).cli_command,
163
207
  title="Publishing distributions to PyPI",
164
208
  pty=PTY,
165
209
  )
@@ -172,8 +216,8 @@ def release(ctx: Context, version: str = "") -> None:
172
216
  Parameters:
173
217
  version: The new version number to use.
174
218
  """
175
- if not (version := (version or input("> Version to release: ")).strip()):
176
- ctx.run("false", title="A version must be provided")
219
+ if not version:
220
+ version = ctx.run(tools.git_changelog(latest_version=True), silent=True).strip()
177
221
  ctx.run("git add pyproject.toml CHANGELOG.md", title="Staging files", pty=PTY)
178
222
  ctx.run(["git", "commit", "-m", f"chore: Prepare release {version}"], title="Committing changes", pty=PTY)
179
223
  ctx.run(f"git tag -m '' -a {version}", title="Tagging commit", pty=PTY)
@@ -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,11 +24,11 @@ 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",
31
30
  "Programming Language :: Python :: 3.14",
31
+ "Programming Language :: Python :: 3.15",
32
32
  "Topic :: Documentation",
33
33
  "Topic :: Software Development",
34
34
  "Topic :: Utilities",
@@ -37,7 +37,7 @@ classifiers = [
37
37
  dependencies = [
38
38
  "griffelib>=2.0",
39
39
  ]
40
- version = "0.3.1"
40
+ version = "0.3.2"
41
41
 
42
42
  [project.urls]
43
43
  Homepage = "https://mkdocstrings.github.io/griffe-runtime-objects"
@@ -98,12 +98,12 @@ ci = [
98
98
  "ty>=0.0.14",
99
99
  "types-markdown>=3.6",
100
100
  "types-pyyaml>=6.0",
101
+ "zizmor>=1.0",
101
102
  ]
102
103
  docs = [
103
104
  "ghp-import>=2.1",
104
105
  "markdown-callouts>=0.4",
105
106
  "markdown-exec>=1.8",
106
107
  "mkdocstrings[python]>=0.29",
107
- "tomli>=2.0; python_version < '3.11'",
108
108
  "zensical>=0.0.21",
109
109
  ]
@@ -1,8 +1,26 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  # Script to generate the project's credits.
2
20
 
3
21
  from __future__ import annotations
4
22
 
5
- import sys
23
+ import tomllib
6
24
  from collections import defaultdict
7
25
  from collections.abc import Iterable
8
26
  from importlib.metadata import distributions
@@ -14,12 +32,6 @@ from jinja2 import StrictUndefined
14
32
  from jinja2.sandbox import SandboxedEnvironment
15
33
  from packaging.requirements import Requirement
16
34
 
17
- # YORE: EOL 3.10: Replace block with line 2.
18
- if sys.version_info >= (3, 11):
19
- import tomllib
20
- else:
21
- import tomli as tomllib
22
-
23
35
  project_dir = Path.cwd()
24
36
  with project_dir.joinpath("pyproject.toml").open("rb") as pyproject_file:
25
37
  pyproject = tomllib.load(pyproject_file)
@@ -53,7 +65,7 @@ def _extra_marker(req: Requirement) -> str | None:
53
65
  if not req.marker:
54
66
  return None
55
67
  try:
56
- return next(marker[2].value for marker in req.marker._markers if getattr(marker[0], "value", None) == "extra")
68
+ return next(marker[2].value for marker in req.marker._markers if getattr(marker[0], "value", None) == "extra") # ty:ignore[unresolved-attribute]
57
69
  except StopIteration:
58
70
  return None
59
71
 
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  # Get current project version from Git tags or changelog.
2
20
 
3
21
  import re
@@ -22,7 +40,7 @@ def get_version() -> str:
22
40
  if scm_version.version <= Version("0.1"): # Missing Git tags?
23
41
  with suppress(OSError, StopIteration): # noqa: SIM117
24
42
  with _changelog.open("r", encoding="utf8") as file:
25
- match = next(filter(None, map(_changelog_version_re.match, file))) # ty: ignore[invalid-argument-type]
43
+ match = next(filter(None, map(_changelog_version_re.match, file)))
26
44
  scm_version = scm_version._replace(version=Version(match.group(1)))
27
45
  return default_version_formatter(scm_version)
28
46
 
@@ -1,4 +1,22 @@
1
1
  #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: ISC
3
+ #
4
+ # ISC License
5
+ #
6
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
7
+ #
8
+ # Permission to use, copy, modify, and/or distribute this software for any
9
+ # purpose with or without fee is hereby granted, provided that the above
10
+ # copyright notice and this permission notice appear in all copies.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19
+
2
20
  from __future__ import annotations
3
21
 
4
22
  import os
@@ -14,8 +32,8 @@ if TYPE_CHECKING:
14
32
  from collections.abc import Iterator
15
33
 
16
34
 
17
- PYTHON_VERSIONS = os.getenv("PYTHON_VERSIONS", "3.10 3.11 3.12 3.13 3.14 3.15").split()
18
- PYTHON_DEV = "3.15"
35
+ PYTHON_VERSIONS = os.getenv("PYTHON_VERSIONS", "3.11 3.12 3.13 3.14 3.15").split()
36
+ PYTHON_DEV = "3.16"
19
37
 
20
38
 
21
39
  def shell(cmd: str, *, capture_output: bool = False, **kwargs: Any) -> str | None:
@@ -128,6 +146,11 @@ def vscode() -> None:
128
146
  shutil.copytree("config/vscode", ".vscode", dirs_exist_ok=True)
129
147
 
130
148
 
149
+ def zed() -> None:
150
+ """Configure Zed to work on this project."""
151
+ shutil.copytree("config/zed", ".zed", dirs_exist_ok=True)
152
+
153
+
131
154
  def main() -> int:
132
155
  """Main entry point."""
133
156
  args = list(sys.argv[1:])
@@ -147,6 +170,7 @@ def main() -> int:
147
170
  3.x Run a command in the virtual environment for Python 3.x.
148
171
  clean Delete build artifacts and cache files.
149
172
  vscode Configure VSCode to work on this project.
173
+ zed Configure Zed to work on this project.
150
174
  """,
151
175
  ),
152
176
  flush=True,
@@ -197,9 +221,11 @@ def main() -> int:
197
221
  setup()
198
222
  elif cmd == "vscode":
199
223
  vscode()
224
+ elif cmd == "zed":
225
+ zed()
200
226
  elif cmd == "check":
201
227
  multirun("duty", "check-quality", "check-types", "check-docs")
202
- run("default", "duty", "check-api")
228
+ run("default", "duty", "check-security", "check-api")
203
229
  elif cmd in {"check-quality", "check-docs", "check-types", "test"}:
204
230
  multirun("duty", cmd, *opts)
205
231
  else:
@@ -0,0 +1,28 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
19
+ """griffe-runtime-objects package.
20
+
21
+ Make runtime objects available through `extra`.
22
+ """
23
+
24
+ from __future__ import annotations
25
+
26
+ from griffe_runtime_objects._internal.extension import RuntimeObjectsExtension
27
+
28
+ __all__: list[str] = ["RuntimeObjectsExtension"]
@@ -0,0 +1,17 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  from __future__ import annotations
2
20
 
3
21
  import os
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  from __future__ import annotations
2
20
 
3
21
  from typing import TYPE_CHECKING, Any
@@ -0,0 +1,25 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
19
+ """Tests suite for `griffe_runtime_objects`."""
20
+
21
+ from pathlib import Path
22
+
23
+ TESTS_DIR = Path(__file__).parent
24
+ TMP_DIR = TESTS_DIR / "tmp"
25
+ FIXTURES_DIR = TESTS_DIR / "fixtures"
@@ -0,0 +1,19 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
19
+ """Configuration for the pytest test suite."""
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  """Tests for our own API exposition."""
2
20
 
3
21
  from __future__ import annotations
@@ -1,3 +1,21 @@
1
+ # SPDX-License-Identifier: ISC
2
+ #
3
+ # ISC License
4
+ #
5
+ # Copyright (c) 2024, Timothée Mazzucotelli and contributors
6
+ #
7
+ # Permission to use, copy, modify, and/or distribute this software for any
8
+ # purpose with or without fee is hereby granted, provided that the above
9
+ # copyright notice and this permission notice appear in all copies.
10
+ #
11
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
+ # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
+ # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
+ # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
+ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
+
1
19
  """Test extension."""
2
20
 
3
21
  import griffe
@@ -5,6 +5,7 @@ site_author = "Timothée Mazzucotelli"
5
5
  site_url = "https://mkdocstrings.github.io/griffe-runtime-objects"
6
6
  repo_url = "https://github.com/mkdocstrings/griffe-runtime-objects"
7
7
  repo_name = "mkdocstrings/griffe-runtime-objects"
8
+ edit_uri = "edit/main/docs/"
8
9
  copyright = "Copyright &copy; 2024 Timothée Mazzucotelli"
9
10
  extra_css = ["css/apidocs.css"]
10
11
  extra_javascript = ["js/feedback.js"]
@@ -1,10 +0,0 @@
1
- """griffe-runtime-objects package.
2
-
3
- Make runtime objects available through `extra`.
4
- """
5
-
6
- from __future__ import annotations
7
-
8
- from griffe_runtime_objects._internal.extension import RuntimeObjectsExtension
9
-
10
- __all__: list[str] = ["RuntimeObjectsExtension"]
@@ -1,7 +0,0 @@
1
- """Tests suite for `griffe_runtime_objects`."""
2
-
3
- from pathlib import Path
4
-
5
- TESTS_DIR = Path(__file__).parent
6
- TMP_DIR = TESTS_DIR / "tmp"
7
- FIXTURES_DIR = TESTS_DIR / "fixtures"
@@ -1 +0,0 @@
1
- """Configuration for the pytest test suite."""