coderpad-py 2026.3.29.1__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.
- coderpad_py-2026.3.29.1/.git_archival.txt +1 -0
- coderpad_py-2026.3.29.1/.gitattributes +2 -0
- coderpad_py-2026.3.29.1/.github/dependabot.yml +14 -0
- coderpad_py-2026.3.29.1/.github/workflows/ci.yml +52 -0
- coderpad_py-2026.3.29.1/.github/workflows/dependabot-merge.yml +19 -0
- coderpad_py-2026.3.29.1/.github/workflows/lint.yml +59 -0
- coderpad_py-2026.3.29.1/.github/workflows/publish-site.yml +28 -0
- coderpad_py-2026.3.29.1/.github/workflows/release.yml +115 -0
- coderpad_py-2026.3.29.1/.gitignore +109 -0
- coderpad_py-2026.3.29.1/.pre-commit-config.yaml +408 -0
- coderpad_py-2026.3.29.1/.prettierrc +11 -0
- coderpad_py-2026.3.29.1/.vscode/extensions.json +6 -0
- coderpad_py-2026.3.29.1/.vscode/settings.json +15 -0
- coderpad_py-2026.3.29.1/CHANGELOG.rst +12 -0
- coderpad_py-2026.3.29.1/LICENSE +21 -0
- coderpad_py-2026.3.29.1/PKG-INFO +101 -0
- coderpad_py-2026.3.29.1/README.rst +36 -0
- coderpad_py-2026.3.29.1/conftest.py +30 -0
- coderpad_py-2026.3.29.1/docs/source/__init__.py +1 -0
- coderpad_py-2026.3.29.1/docs/source/api-reference.rst +10 -0
- coderpad_py-2026.3.29.1/docs/source/changelog.rst +1 -0
- coderpad_py-2026.3.29.1/docs/source/conf.py +94 -0
- coderpad_py-2026.3.29.1/docs/source/contributing.rst +79 -0
- coderpad_py-2026.3.29.1/docs/source/index.rst +28 -0
- coderpad_py-2026.3.29.1/docs/source/openapi-spec.rst +11 -0
- coderpad_py-2026.3.29.1/docs/source/release-process.rst +22 -0
- coderpad_py-2026.3.29.1/openapi.json +4810 -0
- coderpad_py-2026.3.29.1/pyproject.toml +377 -0
- coderpad_py-2026.3.29.1/setup.cfg +4 -0
- coderpad_py-2026.3.29.1/spelling_private_dict.txt +43 -0
- coderpad_py-2026.3.29.1/src/coderpad_api/__init__.py +1 -0
- coderpad_py-2026.3.29.1/src/coderpad_api/_dict_types.py +170 -0
- coderpad_py-2026.3.29.1/src/coderpad_api/client.py +560 -0
- coderpad_py-2026.3.29.1/src/coderpad_api/py.typed +0 -0
- coderpad_py-2026.3.29.1/src/coderpad_api/types.py +602 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/PKG-INFO +101 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/SOURCES.txt +44 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/dependency_links.txt +1 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/not-zip-safe +1 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/requires.txt +46 -0
- coderpad_py-2026.3.29.1/src/coderpad_py.egg-info/top_level.txt +1 -0
- coderpad_py-2026.3.29.1/tests/__init__.py +1 -0
- coderpad_py-2026.3.29.1/tests/conftest.py +53 -0
- coderpad_py-2026.3.29.1/tests/test_client.py +402 -0
- coderpad_py-2026.3.29.1/tests/test_types.py +446 -0
- coderpad_py-2026.3.29.1/zizmor.yml +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ref-names: $Format:%D$
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Test
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
schedule:
|
|
10
|
+
# * is a special character in YAML so you have to quote this string
|
|
11
|
+
# Run at 1:00 every day
|
|
12
|
+
- cron: 0 1 * * *
|
|
13
|
+
|
|
14
|
+
permissions: {}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ['3.13', '3.14']
|
|
21
|
+
platform: [ubuntu-latest, windows-latest]
|
|
22
|
+
|
|
23
|
+
runs-on: ${{ matrix.platform }}
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
with:
|
|
28
|
+
persist-credentials: false
|
|
29
|
+
|
|
30
|
+
- name: Install uv
|
|
31
|
+
uses: astral-sh/setup-uv@v7
|
|
32
|
+
with:
|
|
33
|
+
enable-cache: true
|
|
34
|
+
cache-dependency-glob: '**/pyproject.toml'
|
|
35
|
+
|
|
36
|
+
- name: Run tests
|
|
37
|
+
run: |
|
|
38
|
+
# We run tests against "." and not the tests directory as we test the README
|
|
39
|
+
# and documentation.
|
|
40
|
+
uv run --extra=dev --python=${{ matrix.python-version }} pytest -s -vvv --cov-fail-under 100 --cov=src/ --cov=tests/ .
|
|
41
|
+
|
|
42
|
+
completion-ci:
|
|
43
|
+
needs: build
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
if: always() # Run even if one matrix job fails
|
|
46
|
+
steps:
|
|
47
|
+
- name: Check matrix job status
|
|
48
|
+
run: |-
|
|
49
|
+
if ! ${{ needs.build.result == 'success' }}; then
|
|
50
|
+
echo "One or more matrix jobs failed"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: Dependabot auto-merge
|
|
4
|
+
on: pull_request
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: write
|
|
8
|
+
pull-requests: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
dependabot:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
if: github.event.pull_request.user.login == 'dependabot[bot]'
|
|
14
|
+
steps:
|
|
15
|
+
- name: Enable auto-merge for Dependabot PRs
|
|
16
|
+
run: gh pr merge --auto --merge "$PR_URL"
|
|
17
|
+
env:
|
|
18
|
+
PR_URL: ${{github.event.pull_request.html_url}}
|
|
19
|
+
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Lint
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
schedule:
|
|
10
|
+
# * is a special character in YAML so you have to quote this string
|
|
11
|
+
# Run at 1:00 every day
|
|
12
|
+
- cron: 0 1 * * *
|
|
13
|
+
|
|
14
|
+
permissions: {}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build:
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ['3.13']
|
|
21
|
+
platform: [ubuntu-latest, windows-latest]
|
|
22
|
+
hook-stage: [pre-commit, pre-push, manual]
|
|
23
|
+
|
|
24
|
+
runs-on: ${{ matrix.platform }}
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v6
|
|
28
|
+
with:
|
|
29
|
+
persist-credentials: false
|
|
30
|
+
|
|
31
|
+
- name: Install uv
|
|
32
|
+
uses: astral-sh/setup-uv@v7
|
|
33
|
+
with:
|
|
34
|
+
enable-cache: true
|
|
35
|
+
cache-dependency-glob: '**/pyproject.toml'
|
|
36
|
+
|
|
37
|
+
- name: Lint
|
|
38
|
+
# Use bash to ensure the step fails if any command fails.
|
|
39
|
+
# PowerShell does not fail on intermediate command failures by default.
|
|
40
|
+
shell: bash
|
|
41
|
+
run: uv run --extra=dev prek run --all-files --hook-stage ${{ matrix.hook-stage }}
|
|
42
|
+
--verbose
|
|
43
|
+
env:
|
|
44
|
+
UV_PYTHON: ${{ matrix.python-version }}
|
|
45
|
+
|
|
46
|
+
- uses: pre-commit-ci/lite-action@v1.1.0
|
|
47
|
+
if: always()
|
|
48
|
+
|
|
49
|
+
completion-lint:
|
|
50
|
+
needs: build
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
if: always() # Run even if one matrix job fails
|
|
53
|
+
steps:
|
|
54
|
+
- name: Check matrix job status
|
|
55
|
+
run: |-
|
|
56
|
+
if ! ${{ needs.build.result == 'success' }}; then
|
|
57
|
+
echo "One or more matrix jobs failed"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Deploy documentation
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
pages:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
environment:
|
|
14
|
+
name: ${{ github.ref_name == 'main' && 'github-pages' || 'development' }}
|
|
15
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
16
|
+
permissions:
|
|
17
|
+
pages: write
|
|
18
|
+
id-token: write
|
|
19
|
+
steps:
|
|
20
|
+
- id: deployment
|
|
21
|
+
uses: sphinx-notes/pages@v3
|
|
22
|
+
with:
|
|
23
|
+
documentation_path: docs/source
|
|
24
|
+
pyproject_extras: dev
|
|
25
|
+
python_version: '3.13'
|
|
26
|
+
sphinx_build_options: -W
|
|
27
|
+
cache: true
|
|
28
|
+
publish: ${{ github.ref_name == 'main' }}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Release
|
|
3
|
+
|
|
4
|
+
on: workflow_dispatch
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
build:
|
|
8
|
+
name: Publish a release
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
|
|
11
|
+
# Specifying an environment is strongly recommended by PyPI.
|
|
12
|
+
# See https://github.com/pypa/gh-action-pypi-publish/tree/release/v1/?tab=readme-ov-file#trusted-publishing.
|
|
13
|
+
environment: release
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
# This is needed for PyPI publishing.
|
|
17
|
+
# See https://github.com/pypa/gh-action-pypi-publish/tree/release/v1/?tab=readme-ov-file#trusted-publishing.
|
|
18
|
+
id-token: write
|
|
19
|
+
# This is needed for https://github.com/stefanzweifel/git-auto-commit-action.
|
|
20
|
+
contents: write
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v6
|
|
24
|
+
with: # zizmor: ignore[artipacked] git-auto-commit-action requires credentials
|
|
25
|
+
# See
|
|
26
|
+
# https://github.com/stefanzweifel/git-auto-commit-action?tab=readme-ov-file#push-to-protected-branches
|
|
27
|
+
token: ${{ secrets.RELEASE_PAT }}
|
|
28
|
+
# Fetch all history including tags.
|
|
29
|
+
# Needed to find the latest tag.
|
|
30
|
+
#
|
|
31
|
+
# Also, avoids
|
|
32
|
+
# https://github.com/stefanzweifel/git-auto-commit-action/issues/99.
|
|
33
|
+
fetch-depth: 0
|
|
34
|
+
|
|
35
|
+
- name: Install uv
|
|
36
|
+
uses: astral-sh/setup-uv@v7
|
|
37
|
+
with:
|
|
38
|
+
enable-cache: true
|
|
39
|
+
cache-dependency-glob: '**/pyproject.toml'
|
|
40
|
+
|
|
41
|
+
- name: Calver calculate version
|
|
42
|
+
uses: StephaneBour/actions-calver@master
|
|
43
|
+
id: calver
|
|
44
|
+
with:
|
|
45
|
+
date_format: '%Y.%m.%d'
|
|
46
|
+
release: false
|
|
47
|
+
env:
|
|
48
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
49
|
+
|
|
50
|
+
- name: Get the changelog underline
|
|
51
|
+
id: changelog_underline
|
|
52
|
+
env:
|
|
53
|
+
RELEASE: ${{ steps.calver.outputs.release }}
|
|
54
|
+
run: |
|
|
55
|
+
underline="$(echo "$RELEASE" | tr -c '\n' '-')"
|
|
56
|
+
echo "underline=${underline}" >> "$GITHUB_OUTPUT"
|
|
57
|
+
|
|
58
|
+
- name: Update changelog
|
|
59
|
+
id: update_changelog
|
|
60
|
+
uses: jacobtomlinson/gha-find-replace@v3
|
|
61
|
+
with:
|
|
62
|
+
find: "Next\n----"
|
|
63
|
+
replace: "Next\n----\n\n${{ steps.calver.outputs.release }}\n${{ steps.changelog_underline.outputs.underline\
|
|
64
|
+
\ }}\n"
|
|
65
|
+
include: CHANGELOG.rst
|
|
66
|
+
regex: false
|
|
67
|
+
|
|
68
|
+
- name: Check Update changelog was modified
|
|
69
|
+
env:
|
|
70
|
+
MODIFIED_FILES: ${{ steps.update_changelog.outputs.modifiedFiles }}
|
|
71
|
+
run: |
|
|
72
|
+
if [ "$MODIFIED_FILES" = "0" ]; then
|
|
73
|
+
echo "Error: No files were modified when updating changelog"
|
|
74
|
+
exit 1
|
|
75
|
+
fi
|
|
76
|
+
- uses: stefanzweifel/git-auto-commit-action@v7
|
|
77
|
+
id: commit
|
|
78
|
+
with:
|
|
79
|
+
commit_message: Bump CHANGELOG
|
|
80
|
+
file_pattern: CHANGELOG.rst
|
|
81
|
+
# Error if there are no changes.
|
|
82
|
+
skip_dirty_check: true
|
|
83
|
+
|
|
84
|
+
- name: Bump version and push tag
|
|
85
|
+
id: tag_version
|
|
86
|
+
uses: mathieudutour/github-tag-action@v6.2
|
|
87
|
+
with:
|
|
88
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
89
|
+
custom_tag: ${{ steps.calver.outputs.release }}
|
|
90
|
+
tag_prefix: ''
|
|
91
|
+
commit_sha: ${{ steps.commit.outputs.commit_hash }}
|
|
92
|
+
|
|
93
|
+
- name: Create a GitHub release
|
|
94
|
+
uses: ncipollo/release-action@v1
|
|
95
|
+
with:
|
|
96
|
+
tag: ${{ steps.tag_version.outputs.new_tag }}
|
|
97
|
+
makeLatest: true
|
|
98
|
+
name: Release ${{ steps.tag_version.outputs.new_tag }}
|
|
99
|
+
body: ${{ steps.tag_version.outputs.changelog }}
|
|
100
|
+
|
|
101
|
+
- name: Build a binary wheel and a source tarball
|
|
102
|
+
env:
|
|
103
|
+
NEW_TAG: ${{ steps.tag_version.outputs.new_tag }}
|
|
104
|
+
run: |
|
|
105
|
+
git fetch --tags
|
|
106
|
+
git checkout "$NEW_TAG"
|
|
107
|
+
uv build --sdist --wheel --out-dir dist/
|
|
108
|
+
uv run --extra=release check-wheel-contents dist/*.whl
|
|
109
|
+
|
|
110
|
+
- name: Publish distribution to PyPI
|
|
111
|
+
# We use PyPI trusted publishing rather than a PyPI API token.
|
|
112
|
+
# See https://github.com/pypa/gh-action-pypi-publish/tree/release/v1/?tab=readme-ov-file#trusted-publishing.
|
|
113
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
114
|
+
with:
|
|
115
|
+
verbose: true
|
|
@@ -0,0 +1,109 @@
|
|
|
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
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
|
|
28
|
+
# PyInstaller
|
|
29
|
+
# Usually these files are written by a python script from a template
|
|
30
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
31
|
+
*.manifest
|
|
32
|
+
*.spec
|
|
33
|
+
|
|
34
|
+
# Installer logs
|
|
35
|
+
pip-log.txt
|
|
36
|
+
pip-delete-this-directory.txt
|
|
37
|
+
|
|
38
|
+
# Unit test / coverage reports
|
|
39
|
+
htmlcov/
|
|
40
|
+
.tox/
|
|
41
|
+
.coverage
|
|
42
|
+
.coverage.*
|
|
43
|
+
.cache
|
|
44
|
+
nosetests.xml
|
|
45
|
+
coverage.xml
|
|
46
|
+
*,cover
|
|
47
|
+
.hypothesis/
|
|
48
|
+
|
|
49
|
+
# Translations
|
|
50
|
+
*.mo
|
|
51
|
+
*.pot
|
|
52
|
+
|
|
53
|
+
# Django stuff:
|
|
54
|
+
*.log
|
|
55
|
+
local_settings.py
|
|
56
|
+
|
|
57
|
+
# Flask stuff:
|
|
58
|
+
instance/
|
|
59
|
+
.webassets-cache
|
|
60
|
+
|
|
61
|
+
# Scrapy stuff:
|
|
62
|
+
.scrapy
|
|
63
|
+
|
|
64
|
+
# Sphinx documentation
|
|
65
|
+
docs/_build/
|
|
66
|
+
|
|
67
|
+
# PyBuilder
|
|
68
|
+
target/
|
|
69
|
+
|
|
70
|
+
# Jupyter Notebook
|
|
71
|
+
.ipynb_checkpoints
|
|
72
|
+
|
|
73
|
+
# pyenv
|
|
74
|
+
.python-version
|
|
75
|
+
|
|
76
|
+
# celery beat schedule file
|
|
77
|
+
celerybeat-schedule
|
|
78
|
+
|
|
79
|
+
# dotenv
|
|
80
|
+
.env
|
|
81
|
+
|
|
82
|
+
# virtualenv
|
|
83
|
+
.venv/
|
|
84
|
+
venv/
|
|
85
|
+
ENV/
|
|
86
|
+
|
|
87
|
+
# Spyder project settings
|
|
88
|
+
.spyderproject
|
|
89
|
+
|
|
90
|
+
# Rope project settings
|
|
91
|
+
.ropeproject
|
|
92
|
+
|
|
93
|
+
# mypy
|
|
94
|
+
.mypy_cache/
|
|
95
|
+
|
|
96
|
+
# Ignore Mac DS_Store files
|
|
97
|
+
.DS_Store
|
|
98
|
+
**/.DS_Store
|
|
99
|
+
|
|
100
|
+
# pyre
|
|
101
|
+
.pyre/
|
|
102
|
+
|
|
103
|
+
# pytest
|
|
104
|
+
.pytest_cache/
|
|
105
|
+
|
|
106
|
+
# setuptools_scm
|
|
107
|
+
src/*/_setuptools_scm_version.txt
|
|
108
|
+
|
|
109
|
+
uv.lock
|