Skip to main content

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.

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.

Release history Release notifications | RSS feed

This release

0.4.5 This release

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.93

2 files

0.1.92

2 files

0.1.90

2 files

0.1.89

2 files

0.1.83

2 files

0.1.82

2 files

0.1.81

2 files

0.1.80

2 files

0.1.79

2 files

0.1.76

2 files

0.1.72

2 files

0.1.63

2 files

0.1.61

2 files

0.1.53

2 files

0.1.52

2 files

0.1.48

2 files

0.1.46

2 files

0.1.45

2 files

0.1.42

2 files

0.1.41

2 files

0.1.34

2 files

0.1.32

2 files

0.1.28

2 files

0.1.26

2 files

0.1.22

2 files

0.1.17

2 files

0.1.13

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.5

2 files

0.1.4

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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