Coiled utils
Project description
coiled
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.shis idempotent—rerun it after pulling dependency changes- Use
uv sync --frozento 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.shunder the hood)./scripts/setup-visual-tests.sh– install Playwright browsers for visual tests
License
MIT License - see LICENSE file for details.
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f08e13e5658a503c5aba4bc0fa0b54cdb8f428b983fc3c2d798be4ba288d51b6
|
|
| MD5 |
df6d77a76c24cb8b8d4b90d5341d53d1
|
|
| BLAKE2b-256 |
132e27c55209eb8cd0af3094116fb604de5554f2f80220b5321c1f66bef276d0
|
File details
Details for the file habemus_papadum_coiled-0.1.0-py3-none-any.whl.
File metadata
- Download URL: habemus_papadum_coiled-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ac469228993ce8002b754e0b002c33a55b95717ca6f2e3619f16c5ba3aba85f
|
|
| MD5 |
8f53b4bee0359697dd67245c1c57d05a
|
|
| BLAKE2b-256 |
fa69df8c5cc3d306375694ed208bd8c3b51ce0ce98a6f168c19d514dd1f02b46
|