Skip to main content

Python library to access CLDF reference catalogs

Project description

cldfcatalog

Utilities to use git repository clones and reference catalogs.

Build Status codecov 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 appdirs.user_config_dir('cldf') (see appdirs) 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.5.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

cldfcatalog-1.5.0-py2.py3-none-any.whl (11.7 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: cldfcatalog-1.5.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/28.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.56.2 importlib-metadata/4.10.1 keyring/22.0.1 rfc3986/1.5.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for cldfcatalog-1.5.0.tar.gz
Algorithm Hash digest
SHA256 12e26df742ee2eead7a6c9e64ebca27ca3de1f9de6a42f1eab4bab47e64d50b6
MD5 aaf634f8a15e0a73dcc9fee9c747806c
BLAKE2b-256 274eeb952dddb8824ce9113ef7f6006845ebe0dbd97ab5d3f5ce24f773dafc40

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: cldfcatalog-1.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/28.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.56.2 importlib-metadata/4.10.1 keyring/22.0.1 rfc3986/1.5.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for cldfcatalog-1.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 899a61e010418e92248bd9884dfef504f93f6d0df5ab73029d74c9c377ed7202
MD5 2d6e5a9eb01f1455cfb0d19fdcad5368
BLAKE2b-256 2ffc1d5288e8af03af932edcb4c1ac318b573fb85eca466f2aa50342f98133fa

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page