caltechdata-api
Python library for using the 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
Keywords from Contributors
Repository
Python library for using the CaltechDATA API
Basic Info
- Host: GitHub
- Owner: caltechlibrary
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://caltechlibrary.github.io/caltechdata_api/
- Size: 17.5 MB
Statistics
- Stars: 11
- Watchers: 7
- Forks: 4
- Open Issues: 2
- Releases: 48
Topics
Metadata Files
README.md
CaltechDATA API Python Library
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
- Acquire a personal access token from your CaltechDATA account (found under "Applications" at the top right of your screen).
- Copy the token to a file named token.bash.
- 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
- Website: https://www.library.caltech.edu/
- Repositories: 84
- Profile: https://github.com/caltechlibrary
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 | 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.
- Homepage: https://github.com/caltechlibrary/caltechdata_api
- Documentation: https://caltechdata-api.readthedocs.io/
- License: MIT
-
Latest release: 1.10.3
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- EndBug/add-and-commit v7 composite
- actions/checkout v2 composite
- caltechlibrary/codemeta2cff main composite