Skip to main content

Coiled utils

Project description

coiled

CI TypeScript Coverage PyPI Python 3.14+ License: MIT Code style: ruff

Coiled utils

Installation

Install using pip:

pip install coiled

Or using uv:

uv pip install coiled

Usage

from pdum import coiled

print(coiled.__version__)

Development

This project uses UV for dependency management.

Setup

# Install UV if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install pnpm (required for the widgets workspace)
curl -fsSL https://get.pnpm.io/install.sh | sh -

# Clone the repository
git clone https://github.com/habemus-papadum/coiled.git
cd coiled

# Provision the entire toolchain (uv sync, pnpm install, widget build, pre-commit hooks)
./scripts/setup.sh

Important for Development:

  • ./scripts/setup.sh is idempotent—rerun it after pulling dependency changes
  • Use uv sync --frozen to ensure the lockfile is respected when installing Python deps
  • The widgets live in widgets/ and are managed with pnpm (see "TypeScript widgets" below)

Running Tests

# Run all tests
uv run pytest

# Run a specific test file
uv run pytest tests/test_example.py

# Run a specific test function
uv run pytest tests/test_example.py::test_version

# Run tests with coverage
uv run pytest --cov=src/pdum/coiled --cov-report=xml --cov-report=term

Code Quality

# Check code with ruff
uv run ruff check .

# Format code with ruff
uv run ruff format .

# Fix auto-fixable issues
uv run ruff check --fix .

TypeScript widgets (pnpm)

# Lint the widget source
pnpm lint

# Type-check only the widgets package
pnpm --filter '@habemus-papadum/coiled-widgets' typecheck

# Build the browser bundle and copy it into the Python package
pnpm --filter '@habemus-papadum/coiled-widgets' build:python

# Run Vitest (or add --coverage)
pnpm --filter '@habemus-papadum/coiled-widgets' test

Building

# Build Python + TypeScript artifacts
./scripts/build.sh

# Or build just the Python distribution artifacts
uv build

Publishing

# Build and publish to PyPI (requires credentials)
./scripts/publish.sh

Automation scripts

  • ./scripts/setup.sh – bootstrap uv, pnpm, widget bundle, and pre-commit hooks
  • ./scripts/build.sh – reproduce the release build locally
  • ./scripts/pre-release.sh – run the full battery of quality checks
  • ./scripts/release.sh – orchestrate the release (creates tags, publishes to PyPI/GitHub)
  • ./scripts/test_notebooks.sh – execute demo notebooks (uses ./scripts/nb.sh under the hood)
  • ./scripts/setup-visual-tests.sh – install Playwright browsers for visual tests

License

MIT License - see LICENSE file for details.

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

habemus_papadum_coiled-0.1.0.tar.gz (97.9 kB view details)

Uploaded Source

Built Distribution

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

habemus_papadum_coiled-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file habemus_papadum_coiled-0.1.0.tar.gz.

File metadata

  • Download URL: habemus_papadum_coiled-0.1.0.tar.gz
  • Upload date:
  • Size: 97.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for habemus_papadum_coiled-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f08e13e5658a503c5aba4bc0fa0b54cdb8f428b983fc3c2d798be4ba288d51b6
MD5 df6d77a76c24cb8b8d4b90d5341d53d1
BLAKE2b-256 132e27c55209eb8cd0af3094116fb604de5554f2f80220b5321c1f66bef276d0

See more details on using hashes here.

File details

Details for the file habemus_papadum_coiled-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for habemus_papadum_coiled-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ac469228993ce8002b754e0b002c33a55b95717ca6f2e3619f16c5ba3aba85f
MD5 8f53b4bee0359697dd67245c1c57d05a
BLAKE2b-256 fa69df8c5cc3d306375694ed208bd8c3b51ce0ce98a6f168c19d514dd1f02b46

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