nyc-mesh 0.1.0__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 (57) hide show
  1. nyc_mesh-0.1.0/.git_archival.txt +3 -0
  2. nyc_mesh-0.1.0/.gitattributes +1 -0
  3. nyc_mesh-0.1.0/.github/CONTRIBUTING.md +68 -0
  4. nyc_mesh-0.1.0/.github/dependabot.yml +11 -0
  5. nyc_mesh-0.1.0/.github/release.yml +5 -0
  6. nyc_mesh-0.1.0/.github/workflows/cd.yml +101 -0
  7. nyc_mesh-0.1.0/.github/workflows/ci.yml +161 -0
  8. nyc_mesh-0.1.0/.gitignore +186 -0
  9. nyc_mesh-0.1.0/.pre-commit-config.yaml +96 -0
  10. nyc_mesh-0.1.0/.readthedocs.yaml +15 -0
  11. nyc_mesh-0.1.0/CODE_OF_CONDUCT.md +124 -0
  12. nyc_mesh-0.1.0/LICENSE +19 -0
  13. nyc_mesh-0.1.0/Makefile +124 -0
  14. nyc_mesh-0.1.0/PKG-INFO +150 -0
  15. nyc_mesh-0.1.0/README.md +118 -0
  16. nyc_mesh-0.1.0/SECURITY.md +25 -0
  17. nyc_mesh-0.1.0/docs/api.md +12 -0
  18. nyc_mesh-0.1.0/docs/architecture.md +43 -0
  19. nyc_mesh-0.1.0/docs/changelog.md +11 -0
  20. nyc_mesh-0.1.0/docs/cli.md +33 -0
  21. nyc_mesh-0.1.0/docs/contributing.md +40 -0
  22. nyc_mesh-0.1.0/docs/getting-started.md +61 -0
  23. nyc_mesh-0.1.0/docs/index.md +39 -0
  24. nyc_mesh-0.1.0/docs/notebooks.md +21 -0
  25. nyc_mesh-0.1.0/docs/og-context/agent-handoff-prompt.md +10 -0
  26. nyc_mesh-0.1.0/docs/og-context/agent-kickoff-todo.md +52 -0
  27. nyc_mesh-0.1.0/docs/og-context/api.md +94 -0
  28. nyc_mesh-0.1.0/docs/og-context/data-sources.md +32 -0
  29. nyc_mesh-0.1.0/docs/og-context/index.md +45 -0
  30. nyc_mesh-0.1.0/docs/og-context/mvp-roadmap.md +32 -0
  31. nyc_mesh-0.1.0/docs/og-context/notebooks.md +30 -0
  32. nyc_mesh-0.1.0/docs/og-context/notes/gap-explination.md +212 -0
  33. nyc_mesh-0.1.0/docs/og-context/notes/original-spec.md +139 -0
  34. nyc_mesh-0.1.0/docs/og-context/project-brief.md +40 -0
  35. nyc_mesh-0.1.0/docs/releasing.md +54 -0
  36. nyc_mesh-0.1.0/docs/sdk.md +47 -0
  37. nyc_mesh-0.1.0/mkdocs.yml +67 -0
  38. nyc_mesh-0.1.0/notebooks/dumbo-citygml-geojson-walkthrough.ipynb +236 -0
  39. nyc_mesh-0.1.0/noxfile.py +85 -0
  40. nyc_mesh-0.1.0/pyproject.toml +209 -0
  41. nyc_mesh-0.1.0/scripts/audit_public_api.py +195 -0
  42. nyc_mesh-0.1.0/scripts/clean.py +39 -0
  43. nyc_mesh-0.1.0/scripts/smoke_installed_package.py +93 -0
  44. nyc_mesh-0.1.0/src/nyc_mesh/__init__.py +56 -0
  45. nyc_mesh-0.1.0/src/nyc_mesh/__main__.py +7 -0
  46. nyc_mesh-0.1.0/src/nyc_mesh/_not_implemented.py +13 -0
  47. nyc_mesh-0.1.0/src/nyc_mesh/_version.py +24 -0
  48. nyc_mesh-0.1.0/src/nyc_mesh/_version.pyi +2 -0
  49. nyc_mesh-0.1.0/src/nyc_mesh/cli.py +153 -0
  50. nyc_mesh-0.1.0/src/nyc_mesh/exporters.py +62 -0
  51. nyc_mesh-0.1.0/src/nyc_mesh/loaders.py +180 -0
  52. nyc_mesh-0.1.0/src/nyc_mesh/models.py +63 -0
  53. nyc_mesh-0.1.0/src/nyc_mesh/processors.py +97 -0
  54. nyc_mesh-0.1.0/src/nyc_mesh/py.typed +0 -0
  55. nyc_mesh-0.1.0/src/nyc_mesh/sdk.py +40 -0
  56. nyc_mesh-0.1.0/tests/test_package.py +393 -0
  57. nyc_mesh-0.1.0/uv.lock +1296 -0
@@ -0,0 +1,3 @@
1
+ node: $Format:%H$
2
+ node-date: $Format:%cI$
3
+ describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$
@@ -0,0 +1 @@
1
+ .git_archival.txt export-subst
@@ -0,0 +1,68 @@
1
+ See the [Scientific Python Developer Guide][spc-dev-intro] for broader
2
+ background on Python package maintenance.
3
+
4
+ [spc-dev-intro]: https://learn.scientific-python.org/development/
5
+
6
+ # Quick development
7
+
8
+ The fastest way to start with development is to use the repo Makefile:
9
+
10
+ ```bash
11
+ make install-dev
12
+ make test
13
+ make lint
14
+ make docs-build
15
+ make ci
16
+ ```
17
+
18
+ `nox` is still available for repository hygiene hooks and focused sessions, but
19
+ `make` is the primary local interface so it matches CI.
20
+
21
+ # Setting up a development environment manually
22
+
23
+ You can set up a development environment by running:
24
+
25
+ ```bash
26
+ uv sync
27
+ ```
28
+
29
+ # Pre-commit
30
+
31
+ Install `pre-commit` to run the same hygiene checks used in CI:
32
+
33
+ ```bash
34
+ uv tool install pre-commit # or brew install pre-commit on macOS
35
+ pre-commit install
36
+ ```
37
+
38
+ You can also run `pre-commit run --all-files`.
39
+
40
+ # Testing
41
+
42
+ Use pytest to run the unit checks:
43
+
44
+ ```bash
45
+ make test
46
+ ```
47
+
48
+ # Coverage
49
+
50
+ Use pytest-cov to generate coverage reports:
51
+
52
+ ```bash
53
+ uv run pytest --cov=nyc_mesh
54
+ ```
55
+
56
+ # Building docs
57
+
58
+ You can build and serve the docs using:
59
+
60
+ ```bash
61
+ make docs
62
+ ```
63
+
64
+ You can build the docs only with:
65
+
66
+ ```bash
67
+ make docs-build
68
+ ```
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ # Maintain dependencies for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ groups:
9
+ actions:
10
+ patterns:
11
+ - "*"
@@ -0,0 +1,5 @@
1
+ changelog:
2
+ exclude:
3
+ authors:
4
+ - dependabot[bot]
5
+ - pre-commit-ci[bot]
@@ -0,0 +1,101 @@
1
+ name: CD
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ publish:
7
+ description: Publish built distributions to the configured package index
8
+ required: true
9
+ type: boolean
10
+ default: false
11
+ repository:
12
+ description: Target package index for manual publishes
13
+ required: true
14
+ type: choice
15
+ default: testpypi
16
+ options:
17
+ - testpypi
18
+ - pypi
19
+ release:
20
+ types:
21
+ - published
22
+
23
+ concurrency:
24
+ group: ${{ github.workflow }}-${{ github.ref }}
25
+ cancel-in-progress: true
26
+
27
+ permissions:
28
+ contents: read
29
+
30
+ jobs:
31
+ dist:
32
+ name: Distribution build
33
+ runs-on: ubuntu-latest
34
+
35
+ steps:
36
+ - uses: actions/checkout@v6
37
+ with:
38
+ fetch-depth: 0
39
+
40
+ - uses: actions/setup-python@v6
41
+ with:
42
+ python-version: "3.12"
43
+
44
+ - uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
45
+ with:
46
+ enable-cache: true
47
+
48
+ - name: Build distributions and validate long description
49
+ run: make ci-build
50
+
51
+ - name: Smoke-test installed wheel
52
+ run: make smoke-dist
53
+
54
+ - uses: actions/upload-artifact@v6
55
+ with:
56
+ name: Packages
57
+ path: dist/*
58
+
59
+ publish:
60
+ needs: [dist]
61
+ name: Publish to PyPI
62
+ environment:
63
+ name: pypi
64
+ permissions:
65
+ id-token: write
66
+ attestations: write
67
+ contents: read
68
+ runs-on: ubuntu-latest
69
+ if: >-
70
+ vars.PYPI_PUBLISH_ENABLED == 'true' && (
71
+ (github.event_name == 'release' && github.event.action == 'published')
72
+ ||
73
+ (github.event_name == 'workflow_dispatch' && inputs.publish == true &&
74
+ startsWith(github.ref, 'refs/tags/'))
75
+ )
76
+
77
+ steps:
78
+ - uses: actions/download-artifact@v8
79
+ with:
80
+ name: Packages
81
+ path: dist
82
+
83
+ - name: Generate artifact attestation for public releases
84
+ if: github.event.repository.private == false
85
+ uses: actions/attest-build-provenance@v4
86
+ with:
87
+ subject-path: "dist/*"
88
+
89
+ - name: Publish package distributions to TestPyPI
90
+ if:
91
+ github.event_name == 'workflow_dispatch' && inputs.repository ==
92
+ 'testpypi'
93
+ uses: pypa/gh-action-pypi-publish@release/v1
94
+ with:
95
+ repository-url: https://test.pypi.org/legacy/
96
+
97
+ - name: Publish package distributions to PyPI
98
+ if:
99
+ github.event_name == 'release' || (github.event_name ==
100
+ 'workflow_dispatch' && inputs.repository == 'pypi')
101
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,161 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ lint:
19
+ name: Lint and types
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - uses: actions/setup-python@v6
27
+ with:
28
+ python-version: "3.12"
29
+
30
+ - uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
31
+ with:
32
+ enable-cache: true
33
+
34
+ - name: Install lint dependencies
35
+ run: uv sync --frozen --group docs --all-extras
36
+
37
+ - name: Run Ruff
38
+ run: uv run --frozen ruff check --output-format=github .
39
+
40
+ - name: Check Ruff formatting
41
+ run: uv run --frozen ruff format --check .
42
+
43
+ - name: Run mypy
44
+ run: uv run --frozen mypy
45
+
46
+ - name: Run pylint
47
+ run: uv run --frozen pylint nyc_mesh --output-format=github
48
+
49
+ - name: Run public API audit
50
+ run: uv run --frozen python scripts/audit_public_api.py
51
+
52
+ - name: Run repository hygiene hooks
53
+ run: >-
54
+ uvx nox -s lint -- blacken-docs check-added-large-files
55
+ check-case-conflict check-merge-conflict check-symlinks check-yaml
56
+ debug-statements end-of-file-fixer mixed-line-ending name-tests-test
57
+ requirements-txt-fixer trailing-whitespace rst-backticks
58
+ rst-directive-colons rst-inline-touching-normal prettier codespell
59
+ shellcheck disallow-caps validate-pyproject check-dependabot
60
+ check-github-workflows check-readthedocs
61
+
62
+ build:
63
+ name: Build distribution
64
+ runs-on: ubuntu-latest
65
+ steps:
66
+ - uses: actions/checkout@v6
67
+ with:
68
+ fetch-depth: 0
69
+
70
+ - uses: actions/setup-python@v6
71
+ with:
72
+ python-version: "3.12"
73
+
74
+ - uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
75
+ with:
76
+ enable-cache: true
77
+
78
+ - name: Build distributions and validate long description
79
+ run: make ci-build
80
+
81
+ - name: Smoke-test installed wheel
82
+ run: make smoke-dist
83
+
84
+ docs:
85
+ name: Build docs
86
+ runs-on: ubuntu-latest
87
+ steps:
88
+ - uses: actions/checkout@v6
89
+ with:
90
+ fetch-depth: 0
91
+
92
+ - uses: actions/setup-python@v6
93
+ with:
94
+ python-version: "3.12"
95
+
96
+ - uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
97
+ with:
98
+ enable-cache: true
99
+
100
+ - name: Install docs dependencies
101
+ run: uv sync --frozen --group docs
102
+
103
+ - name: Build docs with strict checks
104
+ run: uv run --frozen mkdocs build --strict
105
+
106
+ tests:
107
+ name: Test full install (Python ${{ matrix.python-version }})
108
+ runs-on: ubuntu-latest
109
+ permissions:
110
+ contents: read
111
+ checks: write
112
+ strategy:
113
+ fail-fast: false
114
+ matrix:
115
+ python-version: ["3.11", "3.12", "3.13"]
116
+
117
+ steps:
118
+ - uses: actions/checkout@v6
119
+ with:
120
+ fetch-depth: 0
121
+
122
+ - uses: actions/setup-python@v6
123
+ with:
124
+ python-version: ${{ matrix.python-version }}
125
+
126
+ - uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
127
+ with:
128
+ enable-cache: true
129
+
130
+ - name: Install full test environment
131
+ run: uv sync --frozen --all-extras
132
+
133
+ - name: Run full test suite
134
+ run: >-
135
+ uv run --frozen pytest -ra --cov --cov-report=xml --cov-report=term
136
+ --junitxml="junit/${{ matrix.python-version }}.xml" --durations=20
137
+
138
+ - name: Publish test results
139
+ if: always()
140
+ uses: EnricoMi/publish-unit-test-result-action@v2
141
+ with:
142
+ check_name: Test Results (Python ${{ matrix.python-version }})
143
+ comment_mode: off
144
+ files: junit/${{ matrix.python-version }}.xml
145
+
146
+ - name: Upload coverage report
147
+ if: matrix.python-version == '3.11'
148
+ uses: codecov/codecov-action@v6
149
+ with:
150
+ token: ${{ secrets.CODECOV_TOKEN }}
151
+
152
+ pass:
153
+ if: always()
154
+ needs: [lint, build, docs, tests]
155
+ runs-on: ubuntu-slim
156
+ timeout-minutes: 2
157
+ steps:
158
+ - name: Decide whether the needed jobs succeeded or failed
159
+ uses: re-actors/alls-green@release/v1
160
+ with:
161
+ jobs: ${{ toJSON(needs) }}
@@ -0,0 +1,186 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ cover/
52
+
53
+ # Translations
54
+ *.mo
55
+ *.pot
56
+
57
+ # Django stuff:
58
+ *.log
59
+ local_settings.py
60
+ db.sqlite3
61
+ db.sqlite3-journal
62
+
63
+ # Flask stuff:
64
+ instance/
65
+ .webassets-cache
66
+
67
+ # Scrapy stuff:
68
+ .scrapy
69
+
70
+ # Sphinx documentation
71
+ docs/_build/
72
+
73
+ # PyBuilder
74
+ .pybuilder/
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ # For a library or package, you might want to ignore these files since the code is
86
+ # intended to run in multiple environments; otherwise, check them in:
87
+ # .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # UV
97
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
98
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
99
+ # commonly ignored for libraries.
100
+ #uv.lock
101
+
102
+ # poetry
103
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
104
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
105
+ # commonly ignored for libraries.
106
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
107
+ #poetry.lock
108
+
109
+ # pdm
110
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
111
+ #pdm.lock
112
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
113
+ # in version control.
114
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
115
+ .pdm.toml
116
+ .pdm-python
117
+ .pdm-build/
118
+
119
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
120
+ __pypackages__/
121
+
122
+ # Celery stuff
123
+ celerybeat-schedule
124
+ celerybeat.pid
125
+
126
+ # SageMath parsed files
127
+ *.sage.py
128
+
129
+ # Environments
130
+ .env
131
+ .venv
132
+ env/
133
+ venv/
134
+ ENV/
135
+ env.bak/
136
+ venv.bak/
137
+
138
+ # Spyder project settings
139
+ .spyderproject
140
+ .spyproject
141
+
142
+ # Rope project settings
143
+ .ropeproject
144
+
145
+ # mkdocs documentation
146
+ /site
147
+
148
+ # mypy
149
+ .dmypy.json
150
+ dmypy.json
151
+
152
+ # Pyre type checker
153
+ .pyre/
154
+
155
+ # pytype static type analyzer
156
+ .pytype/
157
+
158
+ # Cython debug symbols
159
+ cython_debug/
160
+
161
+ # PyCharm
162
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
163
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
164
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
165
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
166
+ #.idea/
167
+
168
+ # setuptools_scm
169
+ src/*/_version.py
170
+
171
+
172
+ # Caches
173
+ .*_cache/
174
+
175
+ # OS specific stuff
176
+ .DS_Store
177
+ .DS_Store?
178
+ ._*
179
+ .Spotlight-V100
180
+ .Trashes
181
+ ehthumbs.db
182
+ Thumbs.db
183
+
184
+ # Common editor files
185
+ *~
186
+ *.swp
@@ -0,0 +1,96 @@
1
+ ci:
2
+ autoupdate_commit_msg: "chore(deps): update pre-commit hooks"
3
+ autofix_commit_msg: "style: pre-commit fixes"
4
+ autoupdate_schedule: "monthly"
5
+
6
+ exclude: ^.cruft.json|.copier-answers.yml$
7
+
8
+ repos:
9
+ - repo: https://github.com/adamchainz/blacken-docs
10
+ rev: "1.20.0"
11
+ hooks:
12
+ - id: blacken-docs
13
+ additional_dependencies: [black==26.*]
14
+
15
+ - repo: https://github.com/pre-commit/pre-commit-hooks
16
+ rev: "v6.0.0"
17
+ hooks:
18
+ - id: check-added-large-files
19
+ - id: check-case-conflict
20
+ - id: check-merge-conflict
21
+ - id: check-symlinks
22
+ - id: check-yaml
23
+ - id: debug-statements
24
+ - id: end-of-file-fixer
25
+ - id: mixed-line-ending
26
+ - id: name-tests-test
27
+ args: ["--pytest-test-first"]
28
+ - id: requirements-txt-fixer
29
+ - id: trailing-whitespace
30
+
31
+ - repo: https://github.com/pre-commit/pygrep-hooks
32
+ rev: "v1.10.0"
33
+ hooks:
34
+ - id: rst-backticks
35
+ - id: rst-directive-colons
36
+ - id: rst-inline-touching-normal
37
+
38
+ - repo: https://github.com/rbubley/mirrors-prettier
39
+ rev: "v3.8.1"
40
+ hooks:
41
+ - id: prettier
42
+ types_or: [yaml, markdown, html, css, scss, javascript, json]
43
+ args: [--prose-wrap=always]
44
+
45
+ - repo: https://github.com/astral-sh/ruff-pre-commit
46
+ rev: "v0.15.7"
47
+ hooks:
48
+ - id: ruff-check
49
+ args: ["--fix"]
50
+ - id: ruff-format
51
+
52
+ - repo: https://github.com/pre-commit/mirrors-mypy
53
+ rev: "v1.19.1"
54
+ hooks:
55
+ - id: mypy
56
+ files: src|tests|noxfile.py
57
+ args: []
58
+ additional_dependencies:
59
+ - pyproj
60
+ - lxml-stubs
61
+ - nox
62
+ - pytest
63
+
64
+ - repo: https://github.com/codespell-project/codespell
65
+ rev: "v2.4.2"
66
+ hooks:
67
+ - id: codespell
68
+ args: ["-L", "astroid,explination"]
69
+ additional_dependencies:
70
+ - tomli; python_version<'3.11'
71
+
72
+ - repo: https://github.com/shellcheck-py/shellcheck-py
73
+ rev: "v0.11.0.1"
74
+ hooks:
75
+ - id: shellcheck
76
+
77
+ - repo: local
78
+ hooks:
79
+ - id: disallow-caps
80
+ name: Disallow improper capitalization
81
+ language: pygrep
82
+ entry: PyBind|Numpy|Cmake|CCache|Github|PyTest
83
+ exclude: .pre-commit-config.yaml
84
+
85
+ - repo: https://github.com/abravalheri/validate-pyproject
86
+ rev: "v0.25"
87
+ hooks:
88
+ - id: validate-pyproject
89
+ additional_dependencies: ["validate-pyproject-schema-store[all]"]
90
+
91
+ - repo: https://github.com/python-jsonschema/check-jsonschema
92
+ rev: "0.37.0"
93
+ hooks:
94
+ - id: check-dependabot
95
+ - id: check-github-workflows
96
+ - id: check-readthedocs
@@ -0,0 +1,15 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ version: 2
5
+
6
+ build:
7
+ os: ubuntu-24.04
8
+ tools:
9
+ python: "3.13"
10
+ commands:
11
+ - asdf plugin add uv
12
+ - asdf install uv latest
13
+ - asdf global uv latest
14
+ - uv sync --group docs
15
+ - uv run mkdocs build --site-dir $READTHEDOCS_OUTPUT/html