No project description provided
Project description
repairshopr-api
Python client and sync utilities for RepairShopr.
repairshopr_api: API models and helpersrepairshopr_sync: Django-based sync service (optional)
Development
- Python version:
3.14 - Install runtime dependencies:
uv sync - Install development dependencies:
uv sync --group dev - Build package:
uv build
Lockfile Guardrails
This repo treats uv.lock as a committed artifact and enforces lockfile
consistency with local checks and CI.
- Check lockfile consistency:
./scripts/check-lockfile.sh - Refresh lockfile after dependency/version changes:
uv lock - Ensure both files are committed together when needed:
git add pyproject.toml uv.lock
Tests
The repository uses pytest with coverage gates.
-
Install test dependencies:
uv sync --group dev -
Run the full suite:
uv run pytest -q -
Run with explicit coverage output:
uv run pytest --cov --cov-report=term-missing -
Run MySQL integration tests:
uv sync --group dev --extra sync uv run python -m django migrate --noinput --settings=tests.django_settings_mysql uv run pytest -q -m integration --ds=tests.django_settings_mysql --no-cov
Notes:
- Tests do not call the live RepairShopr API.
- Shell tests for
scripts/repairshopr-sync-entrypoint.shrun with command stubs. - The default coverage threshold is enforced at
80%. - A dedicated CI job runs MySQL-backed integration checks for schema/migrations.
Code Quality Gates
In addition to tests, run IDE inspections on changed code before opening a PR.
- PyCharm: run Inspect Code on changed files (or whole project for larger changes).
- Required threshold: no
errorseverity inspection findings. - Recommended threshold: no new
warningseverity findings in touched files.
This is a local quality gate and complements (does not replace) the pytest/coverage gates above.
Release (PyPI)
Releases are tag-driven. The GitHub Actions workflow publishes to PyPI only
when a tag matching v* is pushed.
- Bump the version in
pyproject.toml. - Refresh lockfile:
uv lock. - Confirm lockfile is clean:
./scripts/check-lockfile.sh. - Commit the changes on
main. - Create a tag
vX.Y.Zat that commit. - Push the commit and tag:
git push origin main --follow-tags.
Pushing to main without a tag does not publish.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file repairshopr_api-0.4.5.tar.gz.
File metadata
- Download URL: repairshopr_api-0.4.5.tar.gz
- Upload date:
- Size: 77.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e087348022bacc3e475706d3464920194b4e5c1d1a582e1324c7a9a57c36fe
|
|
| MD5 |
2a2dd7c7ca5bd7ae48f717abbfba68f6
|
|
| BLAKE2b-256 |
413af539d0a9b72a7609b3a01762d20440f4fcfeb7236ab29fe7c3fa5d5b1152
|
File details
Details for the file repairshopr_api-0.4.5-py3-none-any.whl.
File metadata
- Download URL: repairshopr_api-0.4.5-py3-none-any.whl
- Upload date:
- Size: 58.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
077e1772945f3e3b51031d4d8daaaf2072b3650c9e996948a79f47e984119176
|
|
| MD5 |
515d62255baca56d535c50c0fe6d6a21
|
|
| BLAKE2b-256 |
7864c4071bca4e4600cf95dcfc85b30259ad2a18de340a9d6a3bf57c66f64311
|