Skip to main content

A toolkit for accessing and working with data from the CRITT Translation Process Research Database (TPR-DB).

Reason this release was yanked:

Prematurely jumped up to 1.0.0 (should have stayed at 0.x.x for longer)

Project description

tprdb-utilities

PyPI version Python License: MIT

A Python toolkit for downloading and reading data tables from the CRITT Translation Process Research Database (TPR-DB).

Two functions cover the full workflow:

Function What it does
fetch_TPRDB_tables Downloads study tables from the CRITT API and saves them to a local directory structure
read_TPRDB_tables Reads those tables (locally or on the CRITT server) into a single pandas.DataFrame

Installation

# pip
pip install tprdb-utilities

# uv
uv add tprdb-utilities

# poetry
poetry add tprdb-utilities

Quick Start

1 — Download data (fetcher)

Public study (no credentials needed):

from tprdb_utilities import fetch_TPRDB_tables

fetch_TPRDB_tables(
    path="/path/to/local/data",
    StudyID="DG21",
    extension=["kd", "ss"],
    public=True,
)

Private study (requires your TPR-DB username and API token):

from tprdb_utilities import fetch_TPRDB_tables

fetch_TPRDB_tables(
    path="/path/to/local/data",
    StudyID="MYSTUDY",
    extension=["kd"],
    public=False,
    username="myTPRDBusername",   # case-sensitive, must match your account
    token="my-api-token",
)

After downloading, the function always prints a summary like this:

=== fetch_TPRDB_tables Summary ===
StudyID  : DG21
Clone dir: /path/to/local/data/tprdb-mothership-clone
User dir : PUBLIC

Extension  Status            Time
---------  ----------------  ------
kd         Downloaded        1.23s
ss         Downloaded        0.98s

To read these files with read_TPRDB_tables:
  path      = "/path/to/local/data/tprdb-mothership-clone"
  user      = "PUBLIC"
  studies   = ["DG21"]

Copy those argument values directly into read_TPRDB_tables.

Subsequent calls are bandwidth-efficient. When files for an extension are already present, fetch_TPRDB_tables sends the X-Client-Tables-Timestamp header (sourced from the studySummary.xml bundled with the study). The server returns 304 Not Modified when nothing has changed, so no data is transferred. The summary will reflect the outcome:

Extension  Status            Time
---------  ----------------  ------
kd         Up to date (304)  0.21s
ss         Updated           1.05s

2 — Read data (reader)

From a local clone (mothership=False) — after running fetch_TPRDB_tables:

from tprdb_utilities import read_TPRDB_tables

df = read_TPRDB_tables(
    studies=["DG21", "AR22"],
    extension="kd",
    mothership=False,
    path="/path/to/local/data/tprdb-mothership-clone",
    user="PUBLIC",
)

Directly on the CRITT TPR-DB server (mothership=True):

from tprdb_utilities import read_TPRDB_tables

df = read_TPRDB_tables(
    studies=["DG21", "AR22"],
    extension="kd",
    mothership=True,   # path is set automatically; no path argument needed
)

Directory Structure

fetch_TPRDB_tables creates the following layout under path:

<path>/
└── tprdb-mothership-clone/
    ├── PUBLIC/                  ← public studies
    │   └── <StudyID>/
    │       ├── studySummary.xml
    │       └── Tables/
    │           ├── session1.kd
    │           └── ...
    └── <username>/             ← private studies
        └── <StudyID>/
            ├── studySummary.xml
            └── Tables/
                ├── session1.kd
                └── ...

Each zip response bundles a studySummary.xml file alongside the table files. fetch_TPRDB_tables places it in the <StudyID>/ directory (one level above Tables/) and uses it on subsequent calls to detect whether the server data has changed.

read_TPRDB_tables with mothership=False expects this exact layout, so the two functions are designed to work together seamlessly.


Supported Table Extensions

ag, au, ex, fd, fu, hc, hs, kd, ku, pu, sg, ss, st, tt

License

MIT — see LICENSE.

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

tprdb_utilities-1.0.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

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

tprdb_utilities-1.0.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file tprdb_utilities-1.0.0.tar.gz.

File metadata

  • Download URL: tprdb_utilities-1.0.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tprdb_utilities-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c1db4419e9a69862e14d38ad39332d0bb6ab2d308cba6a75f41241f2293ceb95
MD5 a65e7569e735cbfc0eea69d2e6b42a5a
BLAKE2b-256 2c7ed61aed9476c3ce02e5ba1313034ff13c100f9d162d8e2ab65afaacd274dc

See more details on using hashes here.

File details

Details for the file tprdb_utilities-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tprdb_utilities-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d5ef3eca8f2e7b314819988b9cf0d899997ecea4e2d3dae4b62f958e6e08932
MD5 f149dbafa891612fcc09eaf257310f05
BLAKE2b-256 2228e21cdeee186a6d8a93e8f2b625df41f2c97c6ecc02f076f032c3e79cbf8d

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