Skip to main content

DOI Build PyPI version Coverage Maintainability Rating docs GitHub

commonmeta-py

commonmeta-py is a Python library to implement Commonmeta, the common Metadata Model for Scholarly Metadata. Use commonmeta-py to convert scholarly metadata, in a variety of formats, listed below. The first release on PyPi (version 0.5.0) was on February 16, 2023. Up until version 0.5.1, the library was called talbot. Commonmeta is also available as a Rust library commonmeta-rs.

commonmeta-py uses semantic versioning. Currently, its major version number is still at 0, meaning the API is not yet stable, and breaking changes are expected in the internal API and commonmeta JSON format.

Installation

Add commonmeta-py as a library dependency to your project:

uv add commonmeta-py

To use the commonmeta command-line tool, install it globally with uv instead:

uv tool install commonmeta-py

This makes commonmeta available on your PATH. Upgrade it later with uv tool upgrade commonmeta-py, or remove it with uv tool uninstall commonmeta-py.

Supported Metadata Formats

Commometa-py reads and/or writes these metadata formats:

Format Name Content Type Read Write
Commonmeta commonmeta application/vnd.commonmeta+json yes yes
CrossRef XML crossref_xml application/vnd.crossref.unixref+xml yes yes
Crossref crossref application/vnd.crossref+json yes yes
DataCite datacite application/vnd.datacite.datacite+json yes yes
Schema.org (in JSON-LD) schema_org application/vnd.schemaorg.ld+json yes yes
RDF XML rdf_xml application/rdf+xml no later
RDF Turtle turtle text/turtle no later
CSL-JSON csl application/vnd.citationstyles.csl+json yes yes
Formatted text citation citation text/x-bibliography n/a yes
Codemeta codemeta application/vnd.codemeta.ld+json yes later
Citation File Format (CFF) cff application/vnd.cff+yaml yes later
JATS jats application/vnd.jats+xml later later
CSV csv text/csv no later
BibTex bibtex application/x-bibtex yes yes
RIS ris application/x-research-info-systems yes yes
InvenioRDM inveniordm application/vnd.inveniordm.v1+json yes yes
JSON Feed jsonfeed application/feed+json yes later
OpenAlex openalex yes no

commonmeta: the Commonmeta format is the native format for the library and used internally. Planned: we plan to implement this format for the v1.0 public release. Later: we plan to implement this format in a later release.

Command-line interface

Installing commonmeta-py provides a commonmeta command with the subcommands convert, list, put, push, encode, and decode.

You can also run the CLI without installing anything, using uv. Because the package name (commonmeta-py) differs from the command name (commonmeta), pass it with --from:

uvx --from commonmeta-py commonmeta convert 10.5555/12345678 --to csl

The examples below use commonmeta ...; prefix them with uvx --from commonmeta-py to run the same commands without installing.

# Encode/decode a Crockford base32 identifier suffix given a DOI prefix
commonmeta encode 10.5555
commonmeta decode 10.5555/nwbyp-29t86

# Convert a single record between formats, fetching it by DOI
# (--from is auto-detected from a DOI/URL, so it can usually be omitted)
commonmeta convert 10.5555/12345678 --to csl

# Convert a local file and write the result to disk
commonmeta convert record.json --from commonmeta --to csl --file out.json

# Render a formatted citation (CSL style + locale)
commonmeta convert 10.5555/12345678 --to citation --style apa --locale en-US

# Convert to Crossref XML, DataCite JSON, schema.org, BibTeX, or RIS
commonmeta convert 10.5555/12345678 --to crossref_xml
commonmeta convert 10.5555/12345678 --to datacite

# Convert a list of records from a local JSON/JSONL file
commonmeta list records.json --to bibtex --file out.bib

# Read a VRAIX daily dump and convert it (the --from value is the source)
commonmeta list --from crossref --date 2026-06-15 --to commonmeta --file out.json

# Fetch a batch of random records from an API (crossref, datacite, or openalex)
commonmeta list --sample --from crossref --number 5

# Register records with a live InvenioRDM instance (creates/updates and publishes
# real records — registration is currently only supported with --to inveniordm)
commonmeta push records.json --to inveniordm --host rogue-scholar.org --token TOKEN

# Same as push, but for a single record (DOI, URL, or file path)
commonmeta put 10.5555/12345678 --from crossref --to inveniordm --host rogue-scholar.org --token TOKEN

# Work fully offline — fails fast if a network call would be required
commonmeta convert record.json --from commonmeta --to csl --no-network

Use commonmeta <subcommand> --help for the full list of options. --from/-f sets the input format (auto-detected when omitted) and --to/-t the output format. JSON output (commonmeta, datacite, schema_org, crossref, inveniordm, csl) is pretty-printed; use --file to write to disk instead of stdout.

convert and list accept --no-network: any step that would make an outbound request (fetching a DOI/URL, --sample, or downloading a VRAIX dump) fails immediately with a clear message, while operations on local files always succeed. push and put always require network access.

Documentation

Documentation (work in progress) for using the library is available at the commonmeta-py Documentation website.

Meta

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License: MIT

Release files for commonmeta-py 0.272

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for commonmeta-py 0.272
File Size Uploaded
commonmeta_py-0.272.tar.gz 466.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for commonmeta-py 0.272
File Interpreter ABI Platform
commonmeta_py-0.272-py3-none-any.whl Python 3 none any Details

Total release size: 994.3 kB

Release files / commonmeta_py-0.272.tar.gz

Download URL commonmeta_py-0.272.tar.gz
Size 466.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a22c0bf85cf1b68aeaa1191f910008325681ad622533b24c6f81b76664e2b375
BLAKE2b-256 checksum
How to use checksums
d16e084649ad106d01503055722c24f490bab05d2a5f245be37db19b34638aa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / commonmeta_py-0.272-py3-none-any.whl

Download URL commonmeta_py-0.272-py3-none-any.whl
Size 527.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d110e54c2bfe02ab4e07f4c27d94807179df45f9bd83ebdc9c68770d279e35d
BLAKE2b-256 checksum
How to use checksums
292cbddf0e3ac3f085cb52d6a73d8bd1828d56c270f20e0a24935f4ff98ce52c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.309

2 release files

0.308

2 release files

0.307

2 release files

0.306

2 release files

0.305

2 release files

0.304

2 release files

0.303

2 release files

0.302

2 release files

0.301

2 release files

0.300

2 release files

0.299

2 release files

0.298

2 release files

0.297

2 release files

0.296

2 release files

0.295

2 release files

0.294

2 release files

0.293

2 release files

0.292

2 release files

0.291

2 release files

0.290

2 release files

0.289

2 release files

0.288

2 release files

0.287

2 release files

0.286

2 release files

0.285

2 release files

0.284

2 release files

0.283

2 release files

0.282

2 release files

0.281

2 release files

0.280

2 release files

0.279

2 release files

0.278

2 release files

0.277

2 release files

0.276

2 release files

0.275

2 release files

0.274

2 release files

0.273

2 release files

This release

0.272 This release

2 release files

0.271

2 release files

0.270

2 release files

0.269

2 release files

0.268

2 release files

0.267

2 release files

0.266

2 release files

0.265

2 release files

0.264

2 release files

0.263

2 release files

0.262

2 release files

0.261

2 release files

0.260

2 release files

0.259

2 release files

0.258

2 release files

0.257

2 release files

0.256

2 release files

0.255

2 release files

0.254

2 release files

0.253

2 release files

0.252

2 release files

0.251

2 release files

0.250

2 release files

0.228

2 release files

0.227

2 release files

0.226

2 release files

0.225

2 release files

0.224

2 release files

0.223

2 release files

0.222

2 release files

0.221

2 release files

0.220

2 release files

0.219

2 release files

0.218

2 release files

0.217

2 release files

0.216

2 release files

0.215

2 release files

0.214

2 release files

0.213

2 release files

0.211

2 release files

0.210

2 release files

0.209

2 release files

0.208

2 release files

0.207

2 release files

0.206

2 release files

0.205

2 release files

0.204

2 release files

0.203

2 release files

0.202

2 release files

0.201

2 release files

0.200

2 release files

0.199

2 release files

0.198

2 release files

0.197

2 release files

0.196

2 release files

0.195

2 release files

0.194

2 release files

0.193

2 release files

0.192

2 release files

0.191

2 release files

0.190

2 release files

0.189

2 release files

0.188

2 release files

0.187

2 release files

0.186

2 release files

0.185

2 release files

0.184

2 release files

0.183

2 release files

0.182

2 release files

0.180

2 release files

0.179

2 release files

0.178

2 release files

0.177

2 release files

0.176

2 release files

0.175

2 release files

0.174

2 release files

0.173

2 release files

0.172

2 release files

0.170

2 release files

0.169

2 release files

0.168

2 release files

0.167

2 release files

0.166

2 release files

0.165

2 release files

0.164

2 release files

0.163

2 release files

0.162

2 release files

0.161

2 release files

0.160

2 release files

0.159

2 release files

0.158

2 release files

0.157

2 release files

0.156

2 release files

0.155

2 release files

0.154

2 release files

0.153

2 release files

0.152

2 release files

0.151

2 release files

0.150

2 release files

0.149

2 release files

0.148

2 release files

0.147

2 release files

0.146

2 release files

0.145

2 release files

0.144

2 release files

0.143

2 release files

0.142

2 release files

0.141

2 release files

0.140

2 release files

0.139

2 release files

0.138

2 release files

0.137

2 release files

0.136

2 release files

0.135

2 release files

0.134

2 release files

0.133

2 release files

0.132

2 release files

0.131

2 release files

0.130

2 release files

0.129

2 release files

0.128

2 release files

0.127

2 release files

0.126

2 release files

0.125

2 release files

0.124

2 release files

0.123

2 release files

0.122

2 release files

0.121

2 release files

0.120

2 release files

0.119

2 release files

0.118

2 release files

0.117

2 release files

0.116

2 release files

0.115

2 release files

0.114

2 release files

0.113

2 release files

0.112

2 release files

0.111

2 release files

0.110

2 release files

0.109

2 release files

0.108

2 release files

0.107

2 release files

0.106

2 release files

0.105

2 release files

0.104

2 release files

0.103

2 release files

0.101

2 release files

0.100

2 release files

0.98

2 release files

0.97

2 release files

0.96

2 release files

0.95

2 release files

0.94

2 release files

0.93

2 release files

0.92

2 release files

0.91

2 release files

0.90

2 release files

0.89

2 release files

0.88

2 release files

0.87

2 release files

0.86

2 release files

0.85

2 release files

0.84

2 release files

0.83

2 release files

0.82

2 release files

0.81

2 release files

0.80

2 release files

0.79

2 release files

0.78

2 release files

0.76

2 release files

0.75

2 release files

0.74

2 release files

0.73

2 release files

0.72

2 release files

0.71

2 release files

0.70

2 release files

0.69

2 release files

0.68

2 release files

0.67

2 release files

0.66

2 release files

0.65

2 release files

0.63

2 release files

0.62

2 release files

0.61

2 release files

0.60

2 release files

0.59

2 release files

0.58

2 release files

0.57

2 release files

0.56

2 release files

0.55

2 release files

0.54

2 release files

0.53

2 release files

0.52

2 release files

0.51

2 release files

0.50

2 release files

0.49

2 release files

0.48

2 release files

0.46

2 release files

0.45

2 release files

0.44

2 release files

0.43

2 release files

0.42

2 release files

0.41

2 release files

0.40

2 release files

0.39

2 release files

0.38

2 release files

0.37

2 release files

0.35

2 release files

0.34

2 release files

0.33

2 release files

0.32

2 release files

0.31

2 release files

0.30

2 release files

0.29

2 release files

0.28

2 release files

0.27

2 release files

0.26

2 release files

0.25

2 release files

0.24

2 release files

0.23

2 release files

0.22

2 release files

0.21

2 release files

0.20

2 release files

0.18

2 release files

0.17.3

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17

2 release files

0.16.8

2 release files

0.16.6

2 release files

0.16.5

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.14.9

2 release files

0.14.8

2 release files

0.14.7

2 release files

0.14.6

2 release files

0.14.5

2 release files

0.11.4

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page