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.
- nyc_mesh-0.1.0/.git_archival.txt +3 -0
- nyc_mesh-0.1.0/.gitattributes +1 -0
- nyc_mesh-0.1.0/.github/CONTRIBUTING.md +68 -0
- nyc_mesh-0.1.0/.github/dependabot.yml +11 -0
- nyc_mesh-0.1.0/.github/release.yml +5 -0
- nyc_mesh-0.1.0/.github/workflows/cd.yml +101 -0
- nyc_mesh-0.1.0/.github/workflows/ci.yml +161 -0
- nyc_mesh-0.1.0/.gitignore +186 -0
- nyc_mesh-0.1.0/.pre-commit-config.yaml +96 -0
- nyc_mesh-0.1.0/.readthedocs.yaml +15 -0
- nyc_mesh-0.1.0/CODE_OF_CONDUCT.md +124 -0
- nyc_mesh-0.1.0/LICENSE +19 -0
- nyc_mesh-0.1.0/Makefile +124 -0
- nyc_mesh-0.1.0/PKG-INFO +150 -0
- nyc_mesh-0.1.0/README.md +118 -0
- nyc_mesh-0.1.0/SECURITY.md +25 -0
- nyc_mesh-0.1.0/docs/api.md +12 -0
- nyc_mesh-0.1.0/docs/architecture.md +43 -0
- nyc_mesh-0.1.0/docs/changelog.md +11 -0
- nyc_mesh-0.1.0/docs/cli.md +33 -0
- nyc_mesh-0.1.0/docs/contributing.md +40 -0
- nyc_mesh-0.1.0/docs/getting-started.md +61 -0
- nyc_mesh-0.1.0/docs/index.md +39 -0
- nyc_mesh-0.1.0/docs/notebooks.md +21 -0
- nyc_mesh-0.1.0/docs/og-context/agent-handoff-prompt.md +10 -0
- nyc_mesh-0.1.0/docs/og-context/agent-kickoff-todo.md +52 -0
- nyc_mesh-0.1.0/docs/og-context/api.md +94 -0
- nyc_mesh-0.1.0/docs/og-context/data-sources.md +32 -0
- nyc_mesh-0.1.0/docs/og-context/index.md +45 -0
- nyc_mesh-0.1.0/docs/og-context/mvp-roadmap.md +32 -0
- nyc_mesh-0.1.0/docs/og-context/notebooks.md +30 -0
- nyc_mesh-0.1.0/docs/og-context/notes/gap-explination.md +212 -0
- nyc_mesh-0.1.0/docs/og-context/notes/original-spec.md +139 -0
- nyc_mesh-0.1.0/docs/og-context/project-brief.md +40 -0
- nyc_mesh-0.1.0/docs/releasing.md +54 -0
- nyc_mesh-0.1.0/docs/sdk.md +47 -0
- nyc_mesh-0.1.0/mkdocs.yml +67 -0
- nyc_mesh-0.1.0/notebooks/dumbo-citygml-geojson-walkthrough.ipynb +236 -0
- nyc_mesh-0.1.0/noxfile.py +85 -0
- nyc_mesh-0.1.0/pyproject.toml +209 -0
- nyc_mesh-0.1.0/scripts/audit_public_api.py +195 -0
- nyc_mesh-0.1.0/scripts/clean.py +39 -0
- nyc_mesh-0.1.0/scripts/smoke_installed_package.py +93 -0
- nyc_mesh-0.1.0/src/nyc_mesh/__init__.py +56 -0
- nyc_mesh-0.1.0/src/nyc_mesh/__main__.py +7 -0
- nyc_mesh-0.1.0/src/nyc_mesh/_not_implemented.py +13 -0
- nyc_mesh-0.1.0/src/nyc_mesh/_version.py +24 -0
- nyc_mesh-0.1.0/src/nyc_mesh/_version.pyi +2 -0
- nyc_mesh-0.1.0/src/nyc_mesh/cli.py +153 -0
- nyc_mesh-0.1.0/src/nyc_mesh/exporters.py +62 -0
- nyc_mesh-0.1.0/src/nyc_mesh/loaders.py +180 -0
- nyc_mesh-0.1.0/src/nyc_mesh/models.py +63 -0
- nyc_mesh-0.1.0/src/nyc_mesh/processors.py +97 -0
- nyc_mesh-0.1.0/src/nyc_mesh/py.typed +0 -0
- nyc_mesh-0.1.0/src/nyc_mesh/sdk.py +40 -0
- nyc_mesh-0.1.0/tests/test_package.py +393 -0
- nyc_mesh-0.1.0/uv.lock +1296 -0
|
@@ -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,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
|