pyrefdev 2025.5__tar.gz → 2025.6__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.
- {pyrefdev-2025.5 → pyrefdev-2025.6}/.gitignore +1 -1
- pyrefdev-2025.6/.pre-commit-config.yaml +10 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/CHANGELOG.md +6 -0
- pyrefdev-2025.6/CLAUDE.md +51 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/PKG-INFO +11 -9
- {pyrefdev-2025.5 → pyrefdev-2025.6}/README.md +5 -5
- {pyrefdev-2025.5 → pyrefdev-2025.6}/pyproject.toml +7 -4
- pyrefdev-2025.6/src/pyrefdev/__main__.py +42 -0
- pyrefdev-2025.6/src/pyrefdev/_version.py +1 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/config.py +2 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/crawl_docs.py +4 -6
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/requests.py +2 -6
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/update_landing_page.py +1 -1
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/__init__.py +1 -1
- pyrefdev-2025.6/src/pyrefdev/mapping/cyclopts.py +257 -0
- pyrefdev-2025.6/src/pyrefdev/mapping/yib.py +10 -0
- pyrefdev-2025.6/src/pyrefdev/server.py +35 -0
- pyrefdev-2025.6/static/logo128.png +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6/templates}/index.html +40 -32
- {pyrefdev-2025.5 → pyrefdev-2025.6}/uv.lock +167 -7
- pyrefdev-2025.5/src/pyrefdev/__main__.py +0 -27
- pyrefdev-2025.5/src/pyrefdev/_version.py +0 -1
- pyrefdev-2025.5/src/pyrefdev/server.py +0 -21
- {pyrefdev-2025.5 → pyrefdev-2025.6}/.github/workflows/ci.yml +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/.github/workflows/pypi_upload.yml +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/LICENSE +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/pyrefdev.service +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/__init__.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/__main__.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/add_docs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/parse_docs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/schema.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/indexer/update_docs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/__python__.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/aiohttp.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/aioitertools.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/aiosignal.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/anyio.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/apache-beam.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/arrow.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/attrs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/azure-identity.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/boto3.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/botocore.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/cachetools.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/cattrs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/charset-normalizer.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/click.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/coverage.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/cryptography.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/distlib.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/fastapi.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/fastjsonschema.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/filelock.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/flask.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/frozenlist.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/fsspec.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/google-api-core.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/google-auth.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/grpcio.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/h11.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/h5py.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/httplib2.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/ipython.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/jinja2.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/jsonschema.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/jupyter-core.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/libcst.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/markupsafe.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/matplotlib.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/more-itertools.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/multidict.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/nbformat.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/networkx.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/numba.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/numpy.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/oauthlib.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/packaging.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pandas.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pathspec.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pillow.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/platformdirs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pluggy.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/propcache.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/protobuf.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/psutil.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pyOpenSSL.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pyarrow.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pyasn1.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pydantic-core.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pydantic.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pygments.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pyjwt.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pyparsing.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/pytest.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/python-dateutil.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/requests-oauthlib.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/requests-toolbelt.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/requests.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/rich.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/rpds-py.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/s3fs.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/scikit-learn.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/scipy.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/semver.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/setuptools.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/six.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/sniffio.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/sqlalchemy.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/tomlkit.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/torch.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/tox.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/trio.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/typing-extensions.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/urllib3.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/werkzeug.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/wrapt.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/src/pyrefdev/mapping/yarl.py +0 -0
- {pyrefdev-2025.5 → pyrefdev-2025.6}/tests/test_pyrefdev.py +0 -0
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
Nothing noticeable unreleased.
|
|
6
6
|
|
|
7
|
+
## v2025.6
|
|
8
|
+
|
|
9
|
+
- Added a `-p/--print` flag to the `pyrefdev` CLI to print the URL instead of opening it in the browser.
|
|
10
|
+
- Support [cyclopts](https://cyclopts.readthedocs.io/en/latest/).
|
|
11
|
+
- Support [yib](https://yib.readthedocs.io/en/latest/).
|
|
12
|
+
|
|
7
13
|
## v2025.5
|
|
8
14
|
|
|
9
15
|
- Added `add-docs`, `update-docs`, and `update-landing-page` commands to `pyrefdev-indexer`.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
The project has several components:
|
|
8
|
+
|
|
9
|
+
1. **Web Server** (`src/pyrefdev/server.py`): FastAPI application that serves redirects based on symbol lookup. `index.html` is the landing page of the server
|
|
10
|
+
2. **CLI Tool** (`src/pyrefdev/__main__.py`): Command-line interface that opens documentation in browser
|
|
11
|
+
3. **Indexer** (`src/pyrefdev/indexer/`): Tools for crawling, parsing, and managing documentation mappings
|
|
12
|
+
4. **Mapping System** (`src/pyrefdev/mapping/`): Individual Python files per package containing symbol-to-URL mappings
|
|
13
|
+
|
|
14
|
+
## Common Commands
|
|
15
|
+
|
|
16
|
+
### Development Setup
|
|
17
|
+
```bash
|
|
18
|
+
uv sync --all-extras --locked
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Testing
|
|
22
|
+
```bash
|
|
23
|
+
uv run pytest
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Run Web Server
|
|
27
|
+
```bash
|
|
28
|
+
uv run uvicorn pyrefdev.server:app --reload
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Run CLI Tool
|
|
32
|
+
```bash
|
|
33
|
+
pyrefdev <symbol>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Indexer Operations
|
|
37
|
+
```bash
|
|
38
|
+
pyrefdev-indexer add-docs --docs-directory api-docs --package <package> --url <API reference doc root URL>
|
|
39
|
+
pyrefdev-indexer crawl-docs --docs-directory api-docs --package <package>
|
|
40
|
+
pyrefdev-indexer parse-docs --docs-directory api-docs --package <package>
|
|
41
|
+
pyrefdev-indexer update-docs --docs-directory api-docs --package <package>
|
|
42
|
+
pyrefdev-indexer update-landing-page
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Development Workflow
|
|
46
|
+
|
|
47
|
+
- **Testing**: Run pytest to ensure mappings work correctly
|
|
48
|
+
|
|
49
|
+
## Important Notes
|
|
50
|
+
|
|
51
|
+
- Server deployment uses systemd and is configured in `pyrefdev.service`
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyrefdev
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.6
|
|
4
4
|
Summary: The entry point to Python reference docs
|
|
5
|
-
Project-URL:
|
|
5
|
+
Project-URL: Homepage, https://pyref.dev
|
|
6
6
|
Project-URL: Source, https://github.com/mangoumbrella/pyref.dev
|
|
7
|
+
Project-URL: Changelog, https://github.com/mangoumbrella/pyref.dev/blob/main/CHANGELOG.md
|
|
7
8
|
Author-email: Mango Umbrella LLC <hi@mangoumbrella.com>
|
|
8
9
|
License-Expression: Apache-2.0
|
|
9
10
|
License-File: LICENSE
|
|
@@ -22,11 +23,12 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
22
23
|
Classifier: Programming Language :: Python :: Free Threading
|
|
23
24
|
Classifier: Topic :: Documentation
|
|
24
25
|
Requires-Python: >=3.10
|
|
26
|
+
Requires-Dist: cyclopts>=3.19.0
|
|
27
|
+
Requires-Dist: jinja2>=3.1.6
|
|
25
28
|
Requires-Dist: packaging>=25.0
|
|
26
|
-
Requires-Dist: yib>=0.
|
|
29
|
+
Requires-Dist: yib>=0.3.0
|
|
27
30
|
Provides-Extra: indexer
|
|
28
31
|
Requires-Dist: beautifulsoup4>=4.13.4; extra == 'indexer'
|
|
29
|
-
Requires-Dist: cyclopts>=3.19.0; extra == 'indexer'
|
|
30
32
|
Requires-Dist: rich>=14.0.0; extra == 'indexer'
|
|
31
33
|
Provides-Extra: server
|
|
32
34
|
Requires-Dist: fastapi<1,>=0.115.12; extra == 'server'
|
|
@@ -53,10 +55,10 @@ Alternatively, you could also `pip install pyrefdev` and run the `pyrefdev` CLI
|
|
|
53
55
|
|
|
54
56
|
## Examples
|
|
55
57
|
|
|
56
|
-
* https://pyref.dev/json
|
|
57
|
-
* https://pyref.dev/pathlib.Path
|
|
58
|
-
* https://pyref.dev/datetime.datetime.strftime
|
|
59
|
-
* https://pyref.dev/numpy.array
|
|
58
|
+
* [pyref.dev/json](https://pyref.dev/json)
|
|
59
|
+
* [pyref.dev/pathlib.Path](https://pyref.dev/pathlib.Path)
|
|
60
|
+
* [pyref.dev/datetime.datetime.strftime](https://pyref.dev/datetime.datetime.strftime)
|
|
61
|
+
* [pyref.dev/numpy.array](https://pyref.dev/numpy.array)
|
|
60
62
|
|
|
61
63
|
## Supported packages
|
|
62
64
|
|
|
@@ -82,7 +84,7 @@ To update to a new version:
|
|
|
82
84
|
```bash
|
|
83
85
|
> cd pyref.dev
|
|
84
86
|
> git pull
|
|
85
|
-
> uv sync --all-extras
|
|
87
|
+
> uv sync --all-extras --locked
|
|
86
88
|
> systemctl restart pyrefdev.service
|
|
87
89
|
```
|
|
88
90
|
|
|
@@ -18,10 +18,10 @@ Alternatively, you could also `pip install pyrefdev` and run the `pyrefdev` CLI
|
|
|
18
18
|
|
|
19
19
|
## Examples
|
|
20
20
|
|
|
21
|
-
* https://pyref.dev/json
|
|
22
|
-
* https://pyref.dev/pathlib.Path
|
|
23
|
-
* https://pyref.dev/datetime.datetime.strftime
|
|
24
|
-
* https://pyref.dev/numpy.array
|
|
21
|
+
* [pyref.dev/json](https://pyref.dev/json)
|
|
22
|
+
* [pyref.dev/pathlib.Path](https://pyref.dev/pathlib.Path)
|
|
23
|
+
* [pyref.dev/datetime.datetime.strftime](https://pyref.dev/datetime.datetime.strftime)
|
|
24
|
+
* [pyref.dev/numpy.array](https://pyref.dev/numpy.array)
|
|
25
25
|
|
|
26
26
|
## Supported packages
|
|
27
27
|
|
|
@@ -47,7 +47,7 @@ To update to a new version:
|
|
|
47
47
|
```bash
|
|
48
48
|
> cd pyref.dev
|
|
49
49
|
> git pull
|
|
50
|
-
> uv sync --all-extras
|
|
50
|
+
> uv sync --all-extras --locked
|
|
51
51
|
> systemctl restart pyrefdev.service
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -30,14 +30,17 @@ keywords = [
|
|
|
30
30
|
]
|
|
31
31
|
requires-python = ">=3.10"
|
|
32
32
|
dependencies = [
|
|
33
|
+
"cyclopts>=3.19.0",
|
|
34
|
+
"jinja2>=3.1.6",
|
|
33
35
|
"packaging>=25.0",
|
|
34
|
-
"yib>=0.
|
|
36
|
+
"yib>=0.3.0",
|
|
35
37
|
]
|
|
36
38
|
dynamic = ["version"]
|
|
37
39
|
|
|
38
40
|
[project.urls]
|
|
39
|
-
|
|
41
|
+
Homepage = "https://pyref.dev"
|
|
40
42
|
Source = "https://github.com/mangoumbrella/pyref.dev"
|
|
43
|
+
Changelog = "https://github.com/mangoumbrella/pyref.dev/blob/main/CHANGELOG.md"
|
|
41
44
|
|
|
42
45
|
[project.optional-dependencies]
|
|
43
46
|
server = [
|
|
@@ -45,13 +48,12 @@ server = [
|
|
|
45
48
|
"fastapi>=0.115.12,<1",
|
|
46
49
|
]
|
|
47
50
|
indexer = [
|
|
48
|
-
"cyclopts>=3.19.0",
|
|
49
51
|
"rich>=14.0.0",
|
|
50
52
|
"Beautifulsoup4>=4.13.4",
|
|
51
53
|
]
|
|
52
54
|
|
|
53
55
|
[project.scripts]
|
|
54
|
-
pyrefdev = "pyrefdev.__main__:
|
|
56
|
+
pyrefdev = "pyrefdev.__main__:app"
|
|
55
57
|
pyrefdev-indexer = "pyrefdev.indexer.__main__:app"
|
|
56
58
|
|
|
57
59
|
[tool.hatch.version]
|
|
@@ -66,4 +68,5 @@ version = "{version}"
|
|
|
66
68
|
[dependency-groups]
|
|
67
69
|
dev = [
|
|
68
70
|
"pytest>=8.4.1",
|
|
71
|
+
"pre-commit>=4.2.0",
|
|
69
72
|
]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import webbrowser
|
|
2
|
+
import sys
|
|
3
|
+
from typing import Annotated
|
|
4
|
+
|
|
5
|
+
import cyclopts
|
|
6
|
+
from cyclopts import Parameter
|
|
7
|
+
|
|
8
|
+
import pyrefdev
|
|
9
|
+
from pyrefdev.mapping import MAPPING
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
app = cyclopts.App("pyrefdev", help=pyrefdev.__doc__)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@app.default
|
|
16
|
+
def main(
|
|
17
|
+
symbol: str,
|
|
18
|
+
/,
|
|
19
|
+
*,
|
|
20
|
+
should_print: Annotated[
|
|
21
|
+
bool,
|
|
22
|
+
Parameter(
|
|
23
|
+
name=["--print", "-p"],
|
|
24
|
+
negative="--no-print",
|
|
25
|
+
help="When true, print the API reference URL instead of opening it in the browser.",
|
|
26
|
+
),
|
|
27
|
+
] = False,
|
|
28
|
+
):
|
|
29
|
+
if not (url := MAPPING.get(symbol)):
|
|
30
|
+
url = MAPPING.get(symbol.lower())
|
|
31
|
+
if url:
|
|
32
|
+
if should_print:
|
|
33
|
+
print(url)
|
|
34
|
+
else:
|
|
35
|
+
webbrowser.open_new_tab(url)
|
|
36
|
+
else:
|
|
37
|
+
print(f"{symbol} not found", file=sys.stderr)
|
|
38
|
+
sys.exit(1)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if __name__ == "__main__":
|
|
42
|
+
app()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "2025.6"
|
|
@@ -115,6 +115,8 @@ _packages = [
|
|
|
115
115
|
Package(pypi="networkx", index_url="https://networkx.org/documentation/stable/reference/index.html"),
|
|
116
116
|
Package(pypi="ipython", index_url="https://ipython.readthedocs.io/en/stable/"),
|
|
117
117
|
Package(pypi="httplib2", index_url="https://httplib2.readthedocs.io/en/latest/"),
|
|
118
|
+
Package(pypi="cyclopts", index_url="https://cyclopts.readthedocs.io/en/latest/"),
|
|
119
|
+
Package(pypi="yib", index_url="https://yib.readthedocs.io/en/latest/"),
|
|
118
120
|
# ENTRY-LINE-MARKER
|
|
119
121
|
]
|
|
120
122
|
# fmt: on
|
|
@@ -64,8 +64,8 @@ def crawl_docs(
|
|
|
64
64
|
)
|
|
65
65
|
crawl_state = None
|
|
66
66
|
elif package_version < crawled_version:
|
|
67
|
-
console.
|
|
68
|
-
f"
|
|
67
|
+
console.warning(
|
|
68
|
+
f"{pkg}'s latest version {package_version!s} is older than previously crawled {crawl_state.package_version}"
|
|
69
69
|
)
|
|
70
70
|
else:
|
|
71
71
|
crawl_state = None
|
|
@@ -196,9 +196,7 @@ class _Crawler:
|
|
|
196
196
|
with urlopen(url) as f:
|
|
197
197
|
content = f.read().decode("utf-8", "backslashreplace")
|
|
198
198
|
except error.URLError as e:
|
|
199
|
-
console.
|
|
200
|
-
f"[yellow]WARNING:[/yellow] Failed to fetch url {url}, error: {e}"
|
|
201
|
-
)
|
|
199
|
+
console.warning(f"Failed to fetch url {url}, error: {e}")
|
|
202
200
|
self._failed_urls.append(url)
|
|
203
201
|
return None
|
|
204
202
|
maybe_redirected_url = f.url
|
|
@@ -233,7 +231,7 @@ class _Crawler:
|
|
|
233
231
|
existing_content = output.read_text()
|
|
234
232
|
if content == existing_content:
|
|
235
233
|
return output
|
|
236
|
-
console.
|
|
234
|
+
console.warning(f"Overriding {output!s}")
|
|
237
235
|
output.write_text(content)
|
|
238
236
|
return output
|
|
239
237
|
|
|
@@ -35,9 +35,7 @@ def fetch_package_version(package: Package) -> version.Version | None:
|
|
|
35
35
|
pypi_info = json.loads(content)
|
|
36
36
|
return version.parse(pypi_info["info"]["version"])
|
|
37
37
|
except error.URLError as e:
|
|
38
|
-
console.
|
|
39
|
-
f"[yellow]WARNING:[/yellow] Failed to fetch pypi version for {package.pypi}, error: {e}"
|
|
40
|
-
)
|
|
38
|
+
console.warning(f"Failed to fetch pypi version for {package.pypi}, error: {e}")
|
|
41
39
|
return None
|
|
42
40
|
|
|
43
41
|
|
|
@@ -52,7 +50,5 @@ def _fetch_latest_cpython_version() -> version.Version | None:
|
|
|
52
50
|
latest_version = latest
|
|
53
51
|
return latest_version
|
|
54
52
|
except error.URLError as e:
|
|
55
|
-
console.
|
|
56
|
-
f"[yellow]WARNING:[/yellow] Failed to fetch latest CPython version, error: {e}"
|
|
57
|
-
)
|
|
53
|
+
console.warning(f"Failed to fetch latest CPython version, error: {e}")
|
|
58
54
|
return None
|
|
@@ -13,7 +13,7 @@ def update_landing_page_with_packages(
|
|
|
13
13
|
packages: dict[str, Package], file: Path | None = None
|
|
14
14
|
) -> None:
|
|
15
15
|
if file is None:
|
|
16
|
-
file = Path(__file__).parent.parent.parent.parent / "index.html"
|
|
16
|
+
file = Path(__file__).parent.parent.parent.parent / "templates" / "index.html"
|
|
17
17
|
if not file.exists():
|
|
18
18
|
console.fatal(f"{file} does not exist")
|
|
19
19
|
|
|
@@ -9,7 +9,7 @@ def load_mapping(verify_duplicates: bool) -> dict[str, str]:
|
|
|
9
9
|
try:
|
|
10
10
|
package_module = importlib.import_module(f"pyrefdev.mapping.{package}")
|
|
11
11
|
except ImportError:
|
|
12
|
-
console.
|
|
12
|
+
console.warning(f"Missing mapping for {package}")
|
|
13
13
|
continue
|
|
14
14
|
package_mapping = getattr(package_module, "MAPPING")
|
|
15
15
|
if verify_duplicates:
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# fmt: off
|
|
2
|
+
|
|
3
|
+
MAPPING = {
|
|
4
|
+
"cyclopts": "https://cyclopts.readthedocs.io/en/latest/",
|
|
5
|
+
"cyclopts.app": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App",
|
|
6
|
+
"cyclopts.app.__call__": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.__call__",
|
|
7
|
+
"cyclopts.app.__getitem__": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.__getitem__",
|
|
8
|
+
"cyclopts.app.__iter__": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.__iter__",
|
|
9
|
+
"cyclopts.app.assemble_argument_collection": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.assemble_argument_collection",
|
|
10
|
+
"cyclopts.app.command": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.command",
|
|
11
|
+
"cyclopts.app.config": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.config",
|
|
12
|
+
"cyclopts.app.console": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.console",
|
|
13
|
+
"cyclopts.app.default": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.default",
|
|
14
|
+
"cyclopts.app.default_parameter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.default_parameter",
|
|
15
|
+
"cyclopts.app.end_of_options_delimiter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.end_of_options_delimiter",
|
|
16
|
+
"cyclopts.app.group": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.group",
|
|
17
|
+
"cyclopts.app.group_arguments": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.group_arguments",
|
|
18
|
+
"cyclopts.app.group_commands": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.group_commands",
|
|
19
|
+
"cyclopts.app.group_parameters": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.group_parameters",
|
|
20
|
+
"cyclopts.app.help": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.help",
|
|
21
|
+
"cyclopts.app.help_flags": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.help_flags",
|
|
22
|
+
"cyclopts.app.help_format": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.help_format",
|
|
23
|
+
"cyclopts.app.help_on_error": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.help_on_error",
|
|
24
|
+
"cyclopts.app.help_print": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.help_print",
|
|
25
|
+
"cyclopts.app.interactive_shell": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.interactive_shell",
|
|
26
|
+
"cyclopts.app.name": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.name",
|
|
27
|
+
"cyclopts.app.name_transform": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.name_transform",
|
|
28
|
+
"cyclopts.app.parse_args": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.parse_args",
|
|
29
|
+
"cyclopts.app.parse_commands": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.parse_commands",
|
|
30
|
+
"cyclopts.app.parse_known_args": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.parse_known_args",
|
|
31
|
+
"cyclopts.app.show": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.show",
|
|
32
|
+
"cyclopts.app.sort_key": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.sort_key",
|
|
33
|
+
"cyclopts.app.suppress_keyboard_interrupt": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.suppress_keyboard_interrupt",
|
|
34
|
+
"cyclopts.app.update": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.update",
|
|
35
|
+
"cyclopts.app.usage": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.usage",
|
|
36
|
+
"cyclopts.app.validator": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.validator",
|
|
37
|
+
"cyclopts.app.version": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.version",
|
|
38
|
+
"cyclopts.app.version_flags": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.version_flags",
|
|
39
|
+
"cyclopts.app.version_format": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.version_format",
|
|
40
|
+
"cyclopts.app.version_print": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.App.version_print",
|
|
41
|
+
"cyclopts.argument": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument",
|
|
42
|
+
"cyclopts.argument.append": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.append",
|
|
43
|
+
"cyclopts.argument.children": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.children",
|
|
44
|
+
"cyclopts.argument.children_recursive": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.children_recursive",
|
|
45
|
+
"cyclopts.argument.convert": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.convert",
|
|
46
|
+
"cyclopts.argument.convert_and_validate": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.convert_and_validate",
|
|
47
|
+
"cyclopts.argument.env_var_split": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.env_var_split",
|
|
48
|
+
"cyclopts.argument.field_info": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.field_info",
|
|
49
|
+
"cyclopts.argument.has_tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.has_tokens",
|
|
50
|
+
"cyclopts.argument.hint": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.hint",
|
|
51
|
+
"cyclopts.argument.index": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.index",
|
|
52
|
+
"cyclopts.argument.keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.keys",
|
|
53
|
+
"cyclopts.argument.match": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.match",
|
|
54
|
+
"cyclopts.argument.name": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.name",
|
|
55
|
+
"cyclopts.argument.names": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.names",
|
|
56
|
+
"cyclopts.argument.negatives": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.negatives",
|
|
57
|
+
"cyclopts.argument.parameter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.parameter",
|
|
58
|
+
"cyclopts.argument.required": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.required",
|
|
59
|
+
"cyclopts.argument.show": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.show",
|
|
60
|
+
"cyclopts.argument.show_default": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.show_default",
|
|
61
|
+
"cyclopts.argument.token_count": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.token_count",
|
|
62
|
+
"cyclopts.argument.tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.tokens",
|
|
63
|
+
"cyclopts.argument.validate": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.validate",
|
|
64
|
+
"cyclopts.argument.value": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Argument.value",
|
|
65
|
+
"cyclopts.argumentcollection": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ArgumentCollection",
|
|
66
|
+
"cyclopts.argumentcollection.copy": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ArgumentCollection.copy",
|
|
67
|
+
"cyclopts.argumentcollection.filter_by": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ArgumentCollection.filter_by",
|
|
68
|
+
"cyclopts.argumentcollection.groups": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ArgumentCollection.groups",
|
|
69
|
+
"cyclopts.argumentcollection.match": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ArgumentCollection.match",
|
|
70
|
+
"cyclopts.coercionerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CoercionError",
|
|
71
|
+
"cyclopts.coercionerror.target_type": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CoercionError.target_type",
|
|
72
|
+
"cyclopts.coercionerror.token": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CoercionError.token",
|
|
73
|
+
"cyclopts.combinedshortoptionerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CombinedShortOptionError",
|
|
74
|
+
"cyclopts.commandcollisionerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CommandCollisionError",
|
|
75
|
+
"cyclopts.config": "https://cyclopts.readthedocs.io/en/latest/api.html",
|
|
76
|
+
"cyclopts.config.env": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Env",
|
|
77
|
+
"cyclopts.config.env.command": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Env.command",
|
|
78
|
+
"cyclopts.config.env.prefix": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Env.prefix",
|
|
79
|
+
"cyclopts.config.env.show": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Env.show",
|
|
80
|
+
"cyclopts.config.json": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json",
|
|
81
|
+
"cyclopts.config.json.allow_unknown": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.allow_unknown",
|
|
82
|
+
"cyclopts.config.json.must_exist": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.must_exist",
|
|
83
|
+
"cyclopts.config.json.path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.path",
|
|
84
|
+
"cyclopts.config.json.root_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.root_keys",
|
|
85
|
+
"cyclopts.config.json.search_parents": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.search_parents",
|
|
86
|
+
"cyclopts.config.json.use_commands_as_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Json.use_commands_as_keys",
|
|
87
|
+
"cyclopts.config.toml": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml",
|
|
88
|
+
"cyclopts.config.toml.allow_unknown": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.allow_unknown",
|
|
89
|
+
"cyclopts.config.toml.must_exist": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.must_exist",
|
|
90
|
+
"cyclopts.config.toml.path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.path",
|
|
91
|
+
"cyclopts.config.toml.root_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.root_keys",
|
|
92
|
+
"cyclopts.config.toml.search_parents": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.search_parents",
|
|
93
|
+
"cyclopts.config.toml.use_commands_as_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Toml.use_commands_as_keys",
|
|
94
|
+
"cyclopts.config.yaml": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml",
|
|
95
|
+
"cyclopts.config.yaml.allow_unknown": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.allow_unknown",
|
|
96
|
+
"cyclopts.config.yaml.must_exist": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.must_exist",
|
|
97
|
+
"cyclopts.config.yaml.path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.path",
|
|
98
|
+
"cyclopts.config.yaml.root_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.root_keys",
|
|
99
|
+
"cyclopts.config.yaml.search_parents": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.search_parents",
|
|
100
|
+
"cyclopts.config.yaml.use_commands_as_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.config.Yaml.use_commands_as_keys",
|
|
101
|
+
"cyclopts.cycloptserror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError",
|
|
102
|
+
"cyclopts.cycloptserror.app": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.app",
|
|
103
|
+
"cyclopts.cycloptserror.argument": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.argument",
|
|
104
|
+
"cyclopts.cycloptserror.command_chain": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.command_chain",
|
|
105
|
+
"cyclopts.cycloptserror.console": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.console",
|
|
106
|
+
"cyclopts.cycloptserror.msg": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.msg",
|
|
107
|
+
"cyclopts.cycloptserror.root_input_tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.root_input_tokens",
|
|
108
|
+
"cyclopts.cycloptserror.target": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.target",
|
|
109
|
+
"cyclopts.cycloptserror.unused_tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.unused_tokens",
|
|
110
|
+
"cyclopts.cycloptserror.verbose": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsError.verbose",
|
|
111
|
+
"cyclopts.cycloptspanel": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.CycloptsPanel",
|
|
112
|
+
"cyclopts.default_name_transform": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.default_name_transform",
|
|
113
|
+
"cyclopts.edit": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.edit",
|
|
114
|
+
"cyclopts.editordidnotchangeerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.EditorDidNotChangeError",
|
|
115
|
+
"cyclopts.editordidnotsaveerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.EditorDidNotSaveError",
|
|
116
|
+
"cyclopts.editorerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.EditorError",
|
|
117
|
+
"cyclopts.editornotfounderror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.EditorNotFoundError",
|
|
118
|
+
"cyclopts.env_var_split": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.env_var_split",
|
|
119
|
+
"cyclopts.field_info": "https://cyclopts.readthedocs.io/en/latest/api.html",
|
|
120
|
+
"cyclopts.field_info.fieldinfo": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.field_info.FieldInfo",
|
|
121
|
+
"cyclopts.group": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group",
|
|
122
|
+
"cyclopts.group.create_ordered": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.create_ordered",
|
|
123
|
+
"cyclopts.group.default_parameter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.default_parameter",
|
|
124
|
+
"cyclopts.group.help": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.help",
|
|
125
|
+
"cyclopts.group.name": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.name",
|
|
126
|
+
"cyclopts.group.show": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.show",
|
|
127
|
+
"cyclopts.group.sort_key": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.sort_key",
|
|
128
|
+
"cyclopts.group.validator": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Group.validator",
|
|
129
|
+
"cyclopts.invalidcommanderror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError",
|
|
130
|
+
"cyclopts.invalidcommanderror.app": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.app",
|
|
131
|
+
"cyclopts.invalidcommanderror.argument": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.argument",
|
|
132
|
+
"cyclopts.invalidcommanderror.command_chain": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.command_chain",
|
|
133
|
+
"cyclopts.invalidcommanderror.console": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.console",
|
|
134
|
+
"cyclopts.invalidcommanderror.msg": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.msg",
|
|
135
|
+
"cyclopts.invalidcommanderror.root_input_tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.root_input_tokens",
|
|
136
|
+
"cyclopts.invalidcommanderror.target": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.target",
|
|
137
|
+
"cyclopts.invalidcommanderror.unused_tokens": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.unused_tokens",
|
|
138
|
+
"cyclopts.invalidcommanderror.verbose": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.InvalidCommandError.verbose",
|
|
139
|
+
"cyclopts.missingargumenterror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.MissingArgumentError",
|
|
140
|
+
"cyclopts.missingargumenterror.tokens_so_far": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.MissingArgumentError.tokens_so_far",
|
|
141
|
+
"cyclopts.mixedargumenterror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.MixedArgumentError",
|
|
142
|
+
"cyclopts.parameter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter",
|
|
143
|
+
"cyclopts.parameter.__call__": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.__call__",
|
|
144
|
+
"cyclopts.parameter.accepts_keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.accepts_keys",
|
|
145
|
+
"cyclopts.parameter.alias": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.alias",
|
|
146
|
+
"cyclopts.parameter.allow_leading_hyphen": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.allow_leading_hyphen",
|
|
147
|
+
"cyclopts.parameter.combine": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.combine",
|
|
148
|
+
"cyclopts.parameter.consume_multiple": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.consume_multiple",
|
|
149
|
+
"cyclopts.parameter.converter": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.converter",
|
|
150
|
+
"cyclopts.parameter.default": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.default",
|
|
151
|
+
"cyclopts.parameter.env_var": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.env_var",
|
|
152
|
+
"cyclopts.parameter.env_var_split": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.env_var_split",
|
|
153
|
+
"cyclopts.parameter.group": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.group",
|
|
154
|
+
"cyclopts.parameter.help": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.help",
|
|
155
|
+
"cyclopts.parameter.json_dict": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.json_dict",
|
|
156
|
+
"cyclopts.parameter.json_list": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.json_list",
|
|
157
|
+
"cyclopts.parameter.name": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.name",
|
|
158
|
+
"cyclopts.parameter.name_transform": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.name_transform",
|
|
159
|
+
"cyclopts.parameter.negative": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.negative",
|
|
160
|
+
"cyclopts.parameter.negative_bool": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.negative_bool",
|
|
161
|
+
"cyclopts.parameter.negative_iterable": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.negative_iterable",
|
|
162
|
+
"cyclopts.parameter.negative_none": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.negative_none",
|
|
163
|
+
"cyclopts.parameter.parse": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.parse",
|
|
164
|
+
"cyclopts.parameter.required": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.required",
|
|
165
|
+
"cyclopts.parameter.show": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.show",
|
|
166
|
+
"cyclopts.parameter.show_choices": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.show_choices",
|
|
167
|
+
"cyclopts.parameter.show_default": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.show_default",
|
|
168
|
+
"cyclopts.parameter.show_env_var": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.show_env_var",
|
|
169
|
+
"cyclopts.parameter.validator": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Parameter.validator",
|
|
170
|
+
"cyclopts.repeatargumenterror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.RepeatArgumentError",
|
|
171
|
+
"cyclopts.repeatargumenterror.token": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.RepeatArgumentError.token",
|
|
172
|
+
"cyclopts.run": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.run",
|
|
173
|
+
"cyclopts.token": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token",
|
|
174
|
+
"cyclopts.token.implicit_value": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.implicit_value",
|
|
175
|
+
"cyclopts.token.index": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.index",
|
|
176
|
+
"cyclopts.token.keys": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.keys",
|
|
177
|
+
"cyclopts.token.keyword": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.keyword",
|
|
178
|
+
"cyclopts.token.source": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.source",
|
|
179
|
+
"cyclopts.token.value": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.Token.value",
|
|
180
|
+
"cyclopts.types": "https://cyclopts.readthedocs.io/en/latest/api.html",
|
|
181
|
+
"cyclopts.types.binpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.BinPath",
|
|
182
|
+
"cyclopts.types.csvpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.CsvPath",
|
|
183
|
+
"cyclopts.types.directory": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Directory",
|
|
184
|
+
"cyclopts.types.email": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Email",
|
|
185
|
+
"cyclopts.types.existingbinpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingBinPath",
|
|
186
|
+
"cyclopts.types.existingcsvpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingCsvPath",
|
|
187
|
+
"cyclopts.types.existingdirectory": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingDirectory",
|
|
188
|
+
"cyclopts.types.existingfile": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingFile",
|
|
189
|
+
"cyclopts.types.existingimagepath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingImagePath",
|
|
190
|
+
"cyclopts.types.existingjsonpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingJsonPath",
|
|
191
|
+
"cyclopts.types.existingmp4path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingMp4Path",
|
|
192
|
+
"cyclopts.types.existingpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingPath",
|
|
193
|
+
"cyclopts.types.existingtomlpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingTomlPath",
|
|
194
|
+
"cyclopts.types.existingtxtpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingTxtPath",
|
|
195
|
+
"cyclopts.types.existingyamlpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ExistingYamlPath",
|
|
196
|
+
"cyclopts.types.file": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.File",
|
|
197
|
+
"cyclopts.types.hexuint16": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.HexUInt16",
|
|
198
|
+
"cyclopts.types.hexuint32": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.HexUInt32",
|
|
199
|
+
"cyclopts.types.hexuint64": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.HexUInt64",
|
|
200
|
+
"cyclopts.types.hexuint8": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.HexUInt8",
|
|
201
|
+
"cyclopts.types.imagepath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ImagePath",
|
|
202
|
+
"cyclopts.types.int16": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Int16",
|
|
203
|
+
"cyclopts.types.int32": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Int32",
|
|
204
|
+
"cyclopts.types.int64": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Int64",
|
|
205
|
+
"cyclopts.types.int8": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Int8",
|
|
206
|
+
"cyclopts.types.json": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Json",
|
|
207
|
+
"cyclopts.types.jsonpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.JsonPath",
|
|
208
|
+
"cyclopts.types.mp4path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Mp4Path",
|
|
209
|
+
"cyclopts.types.negativefloat": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NegativeFloat",
|
|
210
|
+
"cyclopts.types.negativeint": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NegativeInt",
|
|
211
|
+
"cyclopts.types.nonnegativefloat": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NonNegativeFloat",
|
|
212
|
+
"cyclopts.types.nonnegativeint": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NonNegativeInt",
|
|
213
|
+
"cyclopts.types.nonpositivefloat": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NonPositiveFloat",
|
|
214
|
+
"cyclopts.types.nonpositiveint": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.NonPositiveInt",
|
|
215
|
+
"cyclopts.types.port": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.Port",
|
|
216
|
+
"cyclopts.types.positivefloat": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.PositiveFloat",
|
|
217
|
+
"cyclopts.types.positiveint": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.PositiveInt",
|
|
218
|
+
"cyclopts.types.resolveddirectory": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedDirectory",
|
|
219
|
+
"cyclopts.types.resolvedexistingdirectory": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedExistingDirectory",
|
|
220
|
+
"cyclopts.types.resolvedexistingfile": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedExistingFile",
|
|
221
|
+
"cyclopts.types.resolvedexistingpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedExistingPath",
|
|
222
|
+
"cyclopts.types.resolvedfile": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedFile",
|
|
223
|
+
"cyclopts.types.resolvedpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.ResolvedPath",
|
|
224
|
+
"cyclopts.types.tomlpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.TomlPath",
|
|
225
|
+
"cyclopts.types.txtpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.TxtPath",
|
|
226
|
+
"cyclopts.types.uint16": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.UInt16",
|
|
227
|
+
"cyclopts.types.uint32": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.UInt32",
|
|
228
|
+
"cyclopts.types.uint64": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.UInt64",
|
|
229
|
+
"cyclopts.types.uint8": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.UInt8",
|
|
230
|
+
"cyclopts.types.url": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.URL",
|
|
231
|
+
"cyclopts.types.yamlpath": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.types.YamlPath",
|
|
232
|
+
"cyclopts.unknownoptionerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.UnknownOptionError",
|
|
233
|
+
"cyclopts.unknownoptionerror.argument_collection": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.UnknownOptionError.argument_collection",
|
|
234
|
+
"cyclopts.unknownoptionerror.token": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.UnknownOptionError.token",
|
|
235
|
+
"cyclopts.unset": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.UNSET",
|
|
236
|
+
"cyclopts.unusedclitokenserror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.UnusedCliTokensError",
|
|
237
|
+
"cyclopts.validationerror": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ValidationError",
|
|
238
|
+
"cyclopts.validationerror.exception_message": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ValidationError.exception_message",
|
|
239
|
+
"cyclopts.validationerror.group": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ValidationError.group",
|
|
240
|
+
"cyclopts.validationerror.value": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.ValidationError.value",
|
|
241
|
+
"cyclopts.validators": "https://cyclopts.readthedocs.io/en/latest/api.html",
|
|
242
|
+
"cyclopts.validators.all_or_none": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.all_or_none",
|
|
243
|
+
"cyclopts.validators.limitedchoice": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.LimitedChoice",
|
|
244
|
+
"cyclopts.validators.mutually_exclusive": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.mutually_exclusive",
|
|
245
|
+
"cyclopts.validators.mutuallyexclusive": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.MutuallyExclusive",
|
|
246
|
+
"cyclopts.validators.number": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number",
|
|
247
|
+
"cyclopts.validators.number.gt": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number.gt",
|
|
248
|
+
"cyclopts.validators.number.gte": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number.gte",
|
|
249
|
+
"cyclopts.validators.number.lt": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number.lt",
|
|
250
|
+
"cyclopts.validators.number.lte": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number.lte",
|
|
251
|
+
"cyclopts.validators.number.modulo": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Number.modulo",
|
|
252
|
+
"cyclopts.validators.path": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Path",
|
|
253
|
+
"cyclopts.validators.path.dir_okay": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Path.dir_okay",
|
|
254
|
+
"cyclopts.validators.path.exists": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Path.exists",
|
|
255
|
+
"cyclopts.validators.path.ext": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Path.ext",
|
|
256
|
+
"cyclopts.validators.path.file_okay": "https://cyclopts.readthedocs.io/en/latest/api.html#cyclopts.validators.Path.file_okay",
|
|
257
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# fmt: off
|
|
2
|
+
|
|
3
|
+
MAPPING = {
|
|
4
|
+
"yib": "https://yib.readthedocs.io/en/latest/",
|
|
5
|
+
"yib.yconsole": "https://yib.readthedocs.io/en/latest/yib.yconsole.html",
|
|
6
|
+
"yib.yconsole.console": "https://yib.readthedocs.io/en/latest/yib.yconsole.html#yib.yconsole.Console",
|
|
7
|
+
"yib.yconsole.console.error": "https://yib.readthedocs.io/en/latest/yib.yconsole.html#yib.yconsole.Console.error",
|
|
8
|
+
"yib.yconsole.console.fatal": "https://yib.readthedocs.io/en/latest/yib.yconsole.html#yib.yconsole.Console.fatal",
|
|
9
|
+
"yib.yconsole.console.warning": "https://yib.readthedocs.io/en/latest/yib.yconsole.html#yib.yconsole.Console.warning",
|
|
10
|
+
}
|