Chowda
CLAMS processing app
App
Application available at chowda.wgbh-mla.org
Documentation
Visit the documentation for install and usage instructions.
Basic Pipeline with 2 CLAMS Apps
Actors:
- User
- Chowda
- Webapp
- Pulbicly available on internet
- DB
- Postgresql
- VPC
- Sperate Cluster?
- Runner
- Pipeline Runner
- In CLAMS cluster
- CLAMS
- Individual CLAMS apps
- In CLAMS cluster
- Deployed as either:
- Webservice
- Kubernetes Job
Call Sequence Diagram
- User starts job
- Chowda enters it in the DB
- Runner sees new job and starts CLAM1 with initial MMIF
- CLAM1 Processes data and returns MMIF to Runner
- Runner Updates DB and starts CLAM2
- CLAM2 Processes data and returns MMIF to Runner
- Runner Updates DB
- User gets data from Chowda
sequenceDiagram
actor User
participant Chowda
participant DB
participant Runner
participant CLAM1
participant CLAM2
%% User starts job
activate User
note left of User: Hey, Chowda! Start batch 123 on pipeline 456
User ->> + Chowda: Start batch 123 with files [] through pipeline 456
Chowda ->> + DB: INSERT (batch, pipeline, Initial mmif) to TABLE pipeline_runs
DB ->> - Chowda: {pipeline_run_id, status: waiting}
Chowda ->> - User: Pipeline run {id} is {status}
deactivate User
loop backgroud process
Runner ->> DB: Check for new jobs
end
%% Runner
activate Runner
note left of Runner: Found new job!
Runner ->> + CLAM1: Start app 1, with initial MMIF
deactivate Runner
%% CLAM1
note right of CLAM1: Processing!
loop Status check
Runner ->> CLAM1: Status report!
CLAM1 ->> Runner: XX %
Runner ->> DB: UPDATE pipeline_run_id SET status CLAM1 XX %
end
note right of CLAM1: Done!
CLAM1 ->> - Runner: intermediate MMIF
activate Runner
Runner ->> DB: UPDATE pipeline_run_id SET status 'done' + MMIF
%% CLAM 2
Runner ->> + CLAM2: Start app 2 with intermediate MMIF
deactivate Runner
note right of CLAM2: Processing!
loop Status check
Runner ->> CLAM2: Status report!
CLAM2 ->> Runner: XX %
Runner ->> DB: UPDATE pipeline_run_id SET status CLAM2 XX %
end
%% User update
activate User
note left of User: Is it done yet?
User ->> + Chowda: Pipeline update?
Chowda ->> + DB: WATCH pipeline_runs WHERE status=running
DB ->> Chowda: ACTIVE_PIPELINE_RUNS
Chowda -->> User: Websocket: Batch 123 status [CLAM1: done, CLAM2: XX %]
note left of User: Not quite, but it should be done soon.
%% CLAMS finished
note right of CLAM2: Done!
CLAM2 -->> - Runner: finished MMIF
activate Runner
Runner ->> - DB: UPDATE pipeline_run_id SET status MMIF
DB ->> Chowda: Batch 123 update
Chowda -->> User: WS: batch 123 Finished!
deactivate Chowda
deactivate DB
note left of User: Yay! My metadata is perfect!
deactivate User
develop
pre-commit secret scanning
- Install ggshield
pip install ggshield
# or
brew install gitguardian/tap/ggshield
- Login to gitguardian
ggshield auth login
- Install the pre-commit hooks
pre-commit install
Release files for chowda 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chowda-0.8.0.tar.gz | 27.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chowda-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.8 kB
Release files / chowda-0.8.0.tar.gz
| Download URL | chowda-0.8.0.tar.gz |
|---|---|
| Size | 27.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7b26ed525dba7514565b2ddd2d684373a5d8c496394f846789ef470994d4bf6
|
|
BLAKE2b-256 checksum How to use checksums |
a814bad6896768b71a5cf5c6b0d429cc1a974a3ed14c9cb493a331364afbd0a3
|
| 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 25, 2026.
Transparency logRelease files / chowda-0.8.0-py3-none-any.whl
| Download URL | chowda-0.8.0-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2518f321ea4513b47c4edc3cacda863f3daa5f1008d796f7b6a70da31a67489e
|
|
BLAKE2b-256 checksum How to use checksums |
87504938512840e0bb67e28efbb5fb059e6b69fc4a11194bac49131f6a7101f1
|
| 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 25, 2026.
Transparency log