cpdocs 0.1.0__py3-none-any.whl
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.
- cpdocs/__init__.py +5 -0
- cpdocs/__main__.py +5 -0
- cpdocs/build.py +645 -0
- cpdocs/clang_backend.py +1254 -0
- cpdocs/cli.py +78 -0
- cpdocs/config.py +160 -0
- cpdocs/contract.py +407 -0
- cpdocs/html_renderer.py +1803 -0
- cpdocs/model.py +228 -0
- cpdocs/properdocs_core.py +158 -0
- cpdocs/properdocs_plugin.py +236 -0
- cpdocs/python_backend.py +469 -0
- cpdocs/python_manifest.py +84 -0
- cpdocs/render.py +838 -0
- cpdocs/rust_backend.py +234 -0
- cpdocs/share/cmake/cpdocs.cmake +464 -0
- cpdocs/versioning.py +201 -0
- cpdocs-0.1.0.dist-info/METADATA +48 -0
- cpdocs-0.1.0.dist-info/RECORD +21 -0
- cpdocs-0.1.0.dist-info/WHEEL +4 -0
- cpdocs-0.1.0.dist-info/entry_points.txt +5 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: cpdocs
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Semantic, versioned API documentation for C, C++, Python and Rust projects
|
|
5
|
+
Project-URL: Source, https://github.com/ambhora/cpdocs
|
|
6
|
+
Author-email: Jayesh Badwaik <j.badwaik@fz-juelich.de>
|
|
7
|
+
License-Expression: Apache-2.0
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Requires-Dist: markdown-it-py>=3
|
|
10
|
+
Requires-Dist: packaging>=24
|
|
11
|
+
Requires-Dist: pygments>=2.17
|
|
12
|
+
Requires-Dist: pyyaml>=6
|
|
13
|
+
Provides-Extra: properdocs
|
|
14
|
+
Requires-Dist: properdocs>=1.6.7; extra == 'properdocs'
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
<!--
|
|
18
|
+
SPDX-FileCopyrightText: 2026 cpdocs developers
|
|
19
|
+
SPDX-License-Identifier: Apache-2.0
|
|
20
|
+
-->
|
|
21
|
+
# cpdocs
|
|
22
|
+
|
|
23
|
+
cpdocs generates semantic, versioned API documentation for C, C++, Python and Rust projects.
|
|
24
|
+
|
|
25
|
+
It asks the project's build system, through a small JSON contract, which variants of the API exist
|
|
26
|
+
and how to read each of them. It then extracts every variant, Clang for C and C++, `ast` for Python
|
|
27
|
+
and rustdoc JSON for Rust, merges them into one reference, and publishes one version per configured
|
|
28
|
+
branch and tag. A CMake adapter ships with cpdocs; other build systems implement the same contract.
|
|
29
|
+
|
|
30
|
+
```console
|
|
31
|
+
cpdocs build # document the working tree into build/cpdocs/current
|
|
32
|
+
cpdocs versions # document the configured branches and tags
|
|
33
|
+
properdocs build # project website with the versioned API mounted
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The configuration lives in `docs/cpdocs.yml`, the API introduction in `docs/api/index.md` and the
|
|
37
|
+
ProperDocs pages in `docs/web`. The documentation starts at `docs/web/index.md`; the `examples/`
|
|
38
|
+
directory holds standalone projects that the test suite builds.
|
|
39
|
+
|
|
40
|
+
## Development
|
|
41
|
+
|
|
42
|
+
```console
|
|
43
|
+
uv sync
|
|
44
|
+
uv run pytest
|
|
45
|
+
uv run ruff check && uv run ruff format --check
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The C and C++ tests need `clang++`, `cmake` and `ninja`; they are skipped when these are missing.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
cpdocs/__init__.py,sha256=jpgwSPEthZo4nk4WWdWCqUf2REa9lUXxxZDr_VVroTE,171
|
|
2
|
+
cpdocs/__main__.py,sha256=ES-VA7L4p9j7Oer_eGp7OZxPbOmjfp1qPdaBD4zM0oo,135
|
|
3
|
+
cpdocs/build.py,sha256=87icHPSZfAmpsC2M66fI5cFuVETP1FsLJkE9WZRr-tg,21885
|
|
4
|
+
cpdocs/clang_backend.py,sha256=Y8DaUD25-l4vEpL4MjobTAzWMLF9GQKMks9v73iOfh0,45548
|
|
5
|
+
cpdocs/cli.py,sha256=auQt1xTfjR0Yu_UxHG-RBUkm2DBFCH5Fo0k0NEikZ0k,3044
|
|
6
|
+
cpdocs/config.py,sha256=yMOW602SDOxN2UuJU0a0hmi8tixmeYA0AEN4FxNQngE,6194
|
|
7
|
+
cpdocs/contract.py,sha256=ijK3QYk3tIq4LqQUVBxW0F3d9NdfyIxh4SeJRSbzsQY,15219
|
|
8
|
+
cpdocs/html_renderer.py,sha256=iFjZUIhRGtdDCM8lCgKCjj_aZNdWtma9FlqXWqRi8eo,80707
|
|
9
|
+
cpdocs/model.py,sha256=aMpXeNRWtLoBk9T60n03rxXnS36JgNrtvKF0bzVzPX8,8358
|
|
10
|
+
cpdocs/properdocs_core.py,sha256=bfYUyVNaq-BpkQtWqg1QtMya0nCqgxKMTgFB5rFKRb4,6084
|
|
11
|
+
cpdocs/properdocs_plugin.py,sha256=omJ6Q2N8FBE-D_pxHWM_DGKU1QZ2nXe5Yrp9SYeqpk0,9098
|
|
12
|
+
cpdocs/python_backend.py,sha256=1Ys9OIcJLUasKV2uNCrAgi54lMlNYajEBk1h9YmLBnc,18237
|
|
13
|
+
cpdocs/python_manifest.py,sha256=10g-F5a_Y2ntw1VvFY8MzkfVz8soWxUwfLxJIxTP_xs,3051
|
|
14
|
+
cpdocs/render.py,sha256=Xg5PBp-GvQK7_u1--kJV4Jry3aRTu5lylDCOVh7pgZw,27478
|
|
15
|
+
cpdocs/rust_backend.py,sha256=cgHM-9XUSNSxWFL5hnp6PvpJ-2reW0Wql7RBL4oiRw0,9736
|
|
16
|
+
cpdocs/versioning.py,sha256=jtAJWi1wLCDILvaZ8BxY6HZC-QxMCkadIAdmDFpiPs0,7518
|
|
17
|
+
cpdocs/share/cmake/cpdocs.cmake,sha256=W-k96_iwwh4qYl0XHSEx8xVCrgjAZ5DbaqmHnhSKyuc,18390
|
|
18
|
+
cpdocs-0.1.0.dist-info/METADATA,sha256=rTBTtO8cIRSpvbYBaKxgHVkyHXOIgeZwz0DlhvmLDic,1825
|
|
19
|
+
cpdocs-0.1.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
20
|
+
cpdocs-0.1.0.dist-info/entry_points.txt,sha256=laQgfPViS4li7Speu_qWqx6XLv3qgxsZ2UVmK2XC5ZU,112
|
|
21
|
+
cpdocs-0.1.0.dist-info/RECORD,,
|