MedCATtrainer Python Client

mctclient provides a Python wrapper over MedCATtrainer REST APIs for automation and batch workflows.

Install

pip install mctclient

Authenticate

The client uses username/password API-token auth.

export MCTRAINER_USERNAME=<username>
export MCTRAINER_PASSWORD=<password>

Minimal example

from mctclient import (
    MedCATTrainerSession,
    MCTDataset,
    MCTConceptDB,
    MCTVocab,
    MCTModelPack,
    MCTUser,
)

session = MedCATTrainerSession(server="http://localhost:8001")

# Inspect existing resources
projects = session.get_projects()
model_packs = session.get_model_packs()

# Upload dataset
ds = session.create_dataset(name="Demo Dataset", dataset_file="data.csv")

# Create user (optional)
annotator = session.create_user(username="annotator_1", password="strong-password")

# Create project using model pack OR cdb+vocab
project = session.create_project(
    name="Demo Project",
    description="Automated setup",
    members=[annotator],
    dataset=ds,
    modelpack=model_packs[0],
)

Common methods

  • create_project(...)

  • create_dataset(name, dataset_file)

  • create_user(username, password)

  • create_medcat_model(cdb, vocab)

  • create_medcat_model_pack(model_pack)

  • get_users()

  • get_models()

  • get_concept_dbs()

  • get_vocabs()

  • get_model_packs()

  • get_meta_tasks()

  • get_rel_tasks()

  • get_projects()

  • get_datasets()

  • get_project_annos(projects)

  • upload_projects_export(...)

Notes

  • create_project expects either modelpack or concept_db + vocab.

  • Wrapper objects (MCTDataset, MCTConceptDB, etc.) can often be passed by object or resolved by name.