Skip to main content

No project description provided

Project description

repairshopr-api

Python client and sync utilities for RepairShopr.

  • repairshopr_api: API models and helpers
  • repairshopr_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.sh run 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 error severity inspection findings.
  • Recommended threshold: no new warning severity 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.

  1. Bump the version in pyproject.toml.
  2. Refresh lockfile: uv lock.
  3. Confirm lockfile is clean: ./scripts/check-lockfile.sh.
  4. Commit the changes on main.
  5. Create a tag vX.Y.Z at that commit.
  6. Push the commit and tag: git push origin main --follow-tags.

Pushing to main without a tag does not publish.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repairshopr_api-0.4.5.tar.gz (77.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repairshopr_api-0.4.5-py3-none-any.whl (58.4 kB view details)

Uploaded Python 3

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

Hashes for repairshopr_api-0.4.5.tar.gz
Algorithm Hash digest
SHA256 06e087348022bacc3e475706d3464920194b4e5c1d1a582e1324c7a9a57c36fe
MD5 2a2dd7c7ca5bd7ae48f717abbfba68f6
BLAKE2b-256 413af539d0a9b72a7609b3a01762d20440f4fcfeb7236ab29fe7c3fa5d5b1152

See more details on using hashes here.

File details

Details for the file repairshopr_api-0.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for repairshopr_api-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 077e1772945f3e3b51031d4d8daaaf2072b3650c9e996948a79f47e984119176
MD5 515d62255baca56d535c50c0fe6d6a21
BLAKE2b-256 7864c4071bca4e4600cf95dcfc85b30259ad2a18de340a9d6a3bf57c66f64311

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page