Skip to main content

praxicraft-shared

Stateless Python utilities shared by Praxicraft backends (Practice, auth, notifications, billing, support, Tutor, LLM clients). Products pin a PyPI version. No Django ORM, settings, or product business logic lives here.

PyPI https://pypi.org/project/praxicraft-shared/
Current version 0.8.1 (see pyproject.toml)
Python 3.11+

Contents

  1. About
  2. Install in a product
  3. Local development
  4. What’s in the package
  5. Release
  6. Docs and deeper integrations

About

Hard rules:

  1. Stateless — no Django models, ORM, Celery, or package-owned Redis singletons
  2. No django.conf.settings — callers inject URLs and keys
  3. No product logic (XP, Assess scoring, Tutor mastery)
  4. Semver via git tags + PyPI — breaking JWT/auth contracts = major bump

Planning history: Practice shared docs.


Install in a product

Published on PyPI:

pip install praxicraft-shared==0.8.1

Docker / CI need no GitHub token — public index only.

Local editable (sibling checkout):

pip install -e ~/Desktop/praxicraft-shared

Local development

cd ~/Desktop/praxicraft-shared
pip install -e ".[dev]"
ruff check src tests
pytest

What’s in the package

Module Role
jwt_utils Validate RS256 access JWTs (JWKS / PEM)
auth_client HTTP client for praxicraft-auth
org_client Auth organisation directory
billing_client Entitlements, checkout, cancel/resume
notifications_client Send, events, prefs, push, inbox
support_client Support tickets API
ai_service Thin client for praxicraft-llm (chat, streaming, tools, get_speech_audio)
s3_client Injectable MinIO/S3 helpers
service_token Parse product:token / JSON maps
error_envelope Standard success/error shapes
events Event envelope helpers
email/ Shared HTML/text email templates (rendered by notifications)
secret_crypto Fernet encrypt/decrypt (inject key)
work_email / hibp Email helpers / HIBP check

Release

  1. Bump version in pyproject.toml and __version__ in src/praxicraft_shared/__init__.py.
  2. Merge to main.
  3. Tag vX.Y.Z and push the tag (triggers Publish), or Actions → Publish → Run workflow with that existing tag.
  4. GitHub Actions publishes to PyPI via Trusted Publishing and creates a GitHub Release.

Pushing main alone runs CI only — it does not publish to PyPI until a v* tag exists.


Docs and deeper integrations

Link Topic
notifications PRODUCT-INTEGRATION How products call notifications_client
support PRODUCT-INTEGRATION How products call support_client
auth README Application registry + JWT
billing README Entitlements client
Tutor README End-to-end product wiring
praxicraft-llm Gateway tokens for ai_service

Release files for praxicraft-shared 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for praxicraft-shared 0.8.1
File Size Uploaded
praxicraft_shared-0.8.1.tar.gz 70.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for praxicraft-shared 0.8.1
File Interpreter ABI Platform
praxicraft_shared-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 198.2 kB

Release files / praxicraft_shared-0.8.1.tar.gz

Download URL praxicraft_shared-0.8.1.tar.gz
Size 70.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ef9e7c6478c359946fc09b44668bcdb5bfad28b1cedcce7bdfd3fb7a238dcf14
BLAKE2b-256 checksum
How to use checksums
2de3d87ff33139091364358228301e499bc974993f045533a895a4ceaba0ae23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / praxicraft_shared-0.8.1-py3-none-any.whl

Download URL praxicraft_shared-0.8.1-py3-none-any.whl
Size 128.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26d06438eda7b12a6124a51eb954116eb0a89387a13d4db7f14f51bfe019e888
BLAKE2b-256 checksum
How to use checksums
1553e6858ac57eef1fd582cadaeb686c14ac68be8c943a8fb189cbb02f9e0fa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.8.0

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page