Skip to main content

A Python library to access CLDF reference catalogs

Project description

cldfcatalog

Utilities to use git repository clones and reference catalogs.

Build Status PyPI

Research data - and in particular CLDF data - is often curated using git repositories for version control. cldfcatalog.Repository provides a wrapper around GitPython's git.Repo class, exposing relevant functionality in this context.

A particularly important piece of data for CLDF are reference catalogs, which are consulted during CLDF data creation. Again, such catalogs are often available as git repositories hosted on GitHub, such as Glottolog or Concepticon.

The typical usage scenario for these catalogs is as follows:

  • To follow upstream development of the catalogs, a user has a local clone of the repository, which is periodically synched running git pull origin.
  • When creating a CLDF dataset, a particular released version of a catalog is consulted.

Thus, we want to

  • checkout a particular version of the catalog,
  • run the CLDF creation,
  • restore the previous state of the repository clone.

This is exactly the functionality of cldfcatalog.Catalog:

>>> from cldfcatalog import Catalog
>>> glottolog = Catalog('../../glottolog/glottolog', 'v4.0')
>>> glottolog.active_branch
'master'
>>> with glottolog:
...     print(glottolog.describe())
...     
v4.0
>>> glottolog.describe()
'v4.0-52-ga4cfc90'

Configuration

cldfcatalog supports discovery of local paths to catalog clones via a configuration file. If a file catalog.ini is found at platformdirs.user_config_dir('cldf') (see platformdirs) is found, its clones section is used as a mapping from Catalog.cli_name() to clone path. Thus, with a configuration

[clones]
clts = /home/forkel/.config/cldf/clts

a catalog can be intialized as

with Catalog.from_config('clts', tag='v1.0'):
    ...

When cloning a catalog, running Catalog.clone,appdirs.user_config_dir('cldf') will be used as directory for the clone, and the path will be written to the config file.

To add add paths to a config file use it as context manager:

from cldfcatalog import Config

with Config.from_file() as cfg:
    cfg.add_clone(key, path)

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

cldfcatalog-1.7.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

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

cldfcatalog-1.7.0-py2.py3-none-any.whl (12.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cldfcatalog-1.7.0.tar.gz.

File metadata

  • Download URL: cldfcatalog-1.7.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for cldfcatalog-1.7.0.tar.gz
Algorithm Hash digest
SHA256 87c87b4a2b11d94eb2642701ef45e6c912cae2b042add7fe9ee0a142f0402897
MD5 4f67a977b6db8c021b6847f94dd7e91f
BLAKE2b-256 5535dae1e85839b350a2716406ba2eba1fb2863ab33b3f9124d3c3d09a3456ea

See more details on using hashes here.

File details

Details for the file cldfcatalog-1.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: cldfcatalog-1.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for cldfcatalog-1.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8df6257efddc9134e853ab75535ffb28e4ab1737a2ec31c6cb0e724bd6350532
MD5 74742f6b79e4da14226afed0c6ea05a1
BLAKE2b-256 5ac6df678df491bb7dbfd0ae51b0efd91c6f34e16d85cb47aa3b14ae9602f1fd

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