caltechdata-api

Python library for using the CaltechDATA API

https://github.com/caltechlibrary/caltechdata_api

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    3 of 6 committers (50.0%) from academic institutions
  • Institutional organization owner
    Organization caltechlibrary has institutional domain (www.library.caltech.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary

Keywords

inveniordm

Keywords from Contributors

archives
Last synced: 6 months ago · JSON representation ·

Repository

Python library for using the CaltechDATA API

Basic Info
Statistics
  • Stars: 11
  • Watchers: 7
  • Forks: 4
  • Open Issues: 2
  • Releases: 48
Topics
inveniordm
Created almost 9 years ago · Last pushed 6 months ago
Metadata Files
Readme License Code of conduct Citation Codemeta

README.md

CaltechDATA API Python Library

DOI

The caltechdata_api Python library provides a convenient interface for interacting with the CaltechDATA API. It allows users to write files, create DataCite 4 standard JSON records, edit existing records, and retrieve metadata from the CaltechDATA repository.

Features

Writing and Editing Records

  • caltechdata_write: Writes files and a DataCite 4 standard JSON record to the CaltechDATA repository.
  • caltechdata_edit: Edits existing records in CaltechDATA.

Metadata Operations

  • get_metadata: Retrieves metadata from CaltechDATA records.

Requirements

  • Python 3.6+

Installation

Install the library via pip:

shell pip install caltechdata_api

Examples

There are some example python scripts in the GitHub repository.

Create a record:

```shell python write.py example.json -fnames logo.gif

Output: pbkn6-m9y63 (unique identifier)

```

The response will be the unique identifier for the record. You can put this at the end of a url to visit the record (e.g. https://data.caltechlibrary.dev/records/pbkn6-m9y63)

Edit a record

Make changes to the example.json file to see a change) python edit.py example.json -id pbkn6-m9y63 10.33569/pbkn6-m9y63

The response is the DOI for the record, which includes the unique identifier for the record in the default configuration.

Using Custom DOIs

Some groups have worked with the library to create custom DOIs. These can be passed in the metadata like:

shell python write.py example_custom.json -fnames logo.gif m6zxz-p4j22

And then you can edit with python edit.py example_custom.json -id m6zxz-p4j22 10.5281/inveniordm.1234

This returns the custom DOI of the record if it is successful.

Setup and Authentication

  1. Acquire a personal access token from your CaltechDATA account (found under "Applications" at the top right of your screen).
  2. Copy the token to a file named token.bash.
  3. Load the token in the command line using source token.bash.

Note on Testing

Only test your application on the test repository (data.caltechlibrary.dev). Testing the API on the public repository will generate junk records that are annoying to delete.

Using the Command Line Interface

If you would like to interact with the CaltechDATA API using the Command line Interface (CLI), please see the detailed documentation.

Owner

  • Name: Caltech Library
  • Login: caltechlibrary
  • Kind: organization
  • Email: helpdesk@library.caltech.edu
  • Location: Pasadena, CA 91125

We manage the physical and digital holdings of the California Institute of Technology, provide services and training, and develop open-source software.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: caltechdata_api
authors:
  - family-names: Morrell
    given-names: Thomas E
    orcid: https://orcid.org/0000-0001-9266-5146
  - family-names: Bhattarai
    given-names: Rohan
    orcid: https://orcid.org/0009-0007-0323-4733
  - family-names: Won
    given-names: Elizabeth
    orcid: https://orcid.org/0009-0002-2450-6471
  - family-names: Abakah
    given-names: Alexander A
    orcid: https://orcid.org/0009-0003-5640-6691
  - family-names: Nagi
    given-names: Kshemaahna
    orcid: https://orcid.org/0009-0002-8113-3763
abstract: Python wrapper for CaltechDATA API.
repository-code: "https://github.com/caltechlibrary/caltechdata_api"
type: software
doi: 10.22002/ay21y-rbc09
version: 1.10.3
license-url: "https://data.caltech.edu/license"
keywords:
  - GitHub
  - metadata
  - software
  - InvenioRDM
date-released: 2025-08-22

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "description": "Python wrapper for CaltechDATA API.",
  "name": "caltechdata_api",
  "codeRepository": "https://github.com/caltechlibrary/caltechdata_api",
  "issueTracker": "https://github.com/caltechlibrary/caltechdata_api/issues",
  "license": "https://data.caltech.edu/license",
  "version": "1.10.6",
  "author": [
    {
      "@type": "Person",
      "givenName": "Thomas E",
      "familyName": "Morrell",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "tmorrell@caltech.edu",
      "@id": "https://orcid.org/0000-0001-9266-5146"
    },
    {
      "@type": "Person",
      "givenName": "Rohan",
      "familyName": "Bhattarai",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech"
      },
      "@id": "https://orcid.org/0009-0007-0323-4733"
    },
    {
      "@type": "Person",
      "givenName": "Elizabeth",
      "familyName": "Won",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech"
      },
      "@id": "https://orcid.org/0009-0002-2450-6471"
    },
    {
      "@type": "Person",
      "givenName": "Alexander A",
      "familyName": "Abakah",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "aabakah@caltech.edu",
      "@id": "https://orcid.org/0009-0003-5640-6691"
    },
    {
      "@type": "Person",
      "givenName": "Kshemaahna",
      "familyName": "Nagi",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech"
      },
      "email": "knagi@caltech.edu",
      "@id": "https://orcid.org/0009-0002-8113-3763"
    }
  ],
  "developmentStatus": "active",
  "downloadUrl": "https://github.com/caltechlibrary/caltechdata_api/archive/main.zip",
  "keywords": [
    "GitHub",
    "metadata",
    "software",
    "InvenioRDM"
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Thomas E",
      "familyName": "Morrell",
      "affiliation": {
        "@id": "https://ror.org/05dxps055",
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "tmorrell@caltech.edu",
      "@id": "https://orcid.org/0000-0001-9266-5146"
    }
  ],
  "funding": {
    "@type": "Grant",
    "identifier": "2322420",
    "name": "CC* Data Storage: Closing Caltech's data storage gap: from ad-hoc to well-managed stewardship of large-scale datasets",
    "funder": {
      "@id": "https://doi.org/10.13039/100000001",
      "@type": "Organization",
      "name": "National Science Foundation"
    }
  },
  "programmingLanguage": "Python",
  "identifier": "10.22002/2g4c7-zva46"
}

GitHub Events

Total
  • Create event: 10
  • Issues event: 20
  • Release event: 8
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 5
  • Push event: 82
  • Pull request review event: 5
  • Pull request review comment event: 7
  • Pull request event: 31
  • Fork event: 2
Last Year
  • Create event: 10
  • Issues event: 20
  • Release event: 8
  • Watch event: 1
  • Delete event: 2
  • Issue comment event: 5
  • Push event: 82
  • Pull request review event: 5
  • Pull request review comment event: 7
  • Pull request event: 31
  • Fork event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 273
  • Total Committers: 6
  • Avg Commits per committer: 45.5
  • Development Distribution Score (DDS): 0.396
Top Committers
Name Email Commits
Tom Morrell t****l@c****u 165
Thomas Morrell t****l@u****m 102
R. S. Doiel r****l@g****m 2
Andrew McCracken a****w@t****o 2
Michael Hucka m****a@c****u 1
Tom Morrell t****l@c****q 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 32
  • Total pull requests: 43
  • Average time to close issues: 5 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 4
  • Total pull request authors: 7
  • Average comments per issue: 1.34
  • Average comments per pull request: 0.21
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 12
  • Pull requests: 25
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 7 days
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.28
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tmorrell (23)
  • caseyjlaw (7)
  • Munfred (2)
  • RohanBhattaraiNP (1)
  • mhucka (1)
Pull Request Authors
  • RohanBhattaraiNP (36)
  • tmorrell (9)
  • elizabethjhwon (7)
  • AbakahAlexander (6)
  • Kshemaahna (2)
  • andrewm89 (2)
  • mhucka (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 4,330 last-month
  • Total docker downloads: 81
  • Total dependent packages: 3
  • Total dependent repositories: 1
  • Total versions: 41
  • Total maintainers: 1
pypi.org: caltechdata-api

Python wrapper for CaltechDATA API.

  • Versions: 41
  • Dependent Packages: 3
  • Dependent Repositories: 1
  • Downloads: 4,330 Last month
  • Docker Downloads: 81
Rankings
Dependent packages count: 2.3%
Docker downloads count: 2.8%
Downloads: 4.8%
Average: 11.4%
Stargazers count: 17.7%
Forks count: 19.1%
Dependent repos count: 21.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/codemeta2cff.yml actions
  • EndBug/add-and-commit v7 composite
  • actions/checkout v2 composite
  • caltechlibrary/codemeta2cff main composite