Skip to main content

clerk

A Python library for managing civic data pipelines for civic.band. Clerk handles the complete workflow of fetching, processing, and deploying civic meeting data including minutes and agendas.

Tests Lint Python 3.12+

Features

  • Distributed Task Queue: RQ-based distributed processing with parallel OCR and horizontal scaling
  • Site Management: Create and manage civic sites with metadata
  • Data Pipeline: Automated fetch → OCR → compilation → deploy workflow
  • Plugin System: Extensible architecture using pluggy for custom fetchers and deployers
  • Full-Text Search: Automatic FTS index generation for searchable meeting data
  • Database Management: SQLite-based storage with per-site and aggregate databases
  • Observability: Structured JSON logs on stdout shipped to VictoriaLogs via Vector, OTel traces to VictoriaTraces, Prometheus metrics per worker (see docs/observability.md)

Quick Install

pip install "civicband-clerk[pdf,extraction] @ git+https://github.com/civicband/clerk.git"

Documentation

Setup

Operations

Reference

Guides

Quick Start

# Create a new site
clerk etl new

# Update a site (enqueues fetch → OCR → compilation → deploy)
clerk etl update --subdomain example.civic.band

# Check status
clerk status

See Your First Site Tutorial for a complete walkthrough.

Architecture

Clerk uses a distributed task queue (RQ) with specialized worker types:

  • fetch - Download meeting data from city websites
  • ocr - Extract text from PDFs (parallel, CPU-intensive)
  • compilation - Build databases and coordinate pipeline
  • extraction - Entity and vote extraction (optional, memory-intensive)
  • deploy - Upload to storage/CDN

Workers can run on a single machine or distributed across multiple machines for better performance.

See Worker Architecture Guide for details.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

BSD 3-Clause License - See LICENSE for details.

Metadata

Release files for civicband-clerk 0.1.3

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

Source distribution (sdist)

Source distribution for civicband-clerk 0.1.3
File Size Uploaded Provenance
civicband_clerk-0.1.3.tar.gz 294.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for civicband-clerk 0.1.3
File Interpreter ABI Platform
civicband_clerk-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 378.2 kB

Release files / civicband_clerk-0.1.3.tar.gz

Download URL civicband_clerk-0.1.3.tar.gz
Size 294.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3b492e36b435b610208f6c34add6d4d376269c7307bd905591650e77aa6fe447
BLAKE2b-256 checksum
How to use checksums
8cdd8ec3c24bec67c7d40a8e7b2cd10a3dc844ab3a5f5cc9cd965230f0be71a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / civicband_clerk-0.1.3-py3-none-any.whl

Download URL civicband_clerk-0.1.3-py3-none-any.whl
Size 83.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff86ca006e01da7f32164823c6f8eab43e3ac665496b7a65b2a6355b3f13f66b
BLAKE2b-256 checksum
How to use checksums
529378e4ad7e056310c13c7ac0281a6807492a96f47ce2076c3be08ca35753f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Security for civicband-clerk 0.1.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for civicband_clerk-0.1.3.tar.gz

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 Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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