Metadata-Version: 2.1
Name: cdstarcat
Version: 0.6.2
Summary: Manage objects in a CDSTAR instance through a catalog
Home-page: https://github.com/clld/cdstarcat
Author: Robert Forkel
Author-email: forkel@shh.mpg.de
License: Apache 2
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Description-Content-Type: text/markdown
Provides-Extra: test
Provides-Extra: dev
Requires-Dist: clldutils (>=2.0)
Requires-Dist: pycdstar (>=0.4)
Requires-Dist: attrs
Provides-Extra: dev
Requires-Dist: tox; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Provides-Extra: test
Requires-Dist: mock; extra == 'test'
Requires-Dist: pytest (>=3.1); extra == 'test'
Requires-Dist: pytest-mock; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: coverage (>=4.2); extra == 'test'

# cdstarcat

[![Build Status](https://travis-ci.org/clld/cdstarcat.svg?branch=master)](https://travis-ci.org/clld/cdstarcat)
[![codecov](https://codecov.io/gh/clld/cdstarcat/branch/master/graph/badge.svg)](https://codecov.io/gh/clld/cdstarcat)
[![Requirements Status](https://requires.io/github/clld/cdstarcat/requirements.svg?branch=master)](https://requires.io/github/clld/cdstarcat/requirements/?branch=master)
[![PyPI](https://img.shields.io/pypi/v/cdstarcat.svg)](https://pypi.python.org/pypi/cdstarcat)

Manage objects in a CDSTAR instance using a local catalog.


## Install

Running
```shell
pip install cdstarcat
```

will install the `cdstarcat` package as well as a commandline interface `cdstarcat`.

For developing `cdstarcat`, clone the repository `clld/cdstarcat` and run
```shell
cd cdstarcat
pip install -r requirements.txt
```


## CLI

Run
```shell
cdstarcat --help
```
to get a list of available subcommands, and
```shell
cdstarcat help SUBCOMMAND
```
to get usage information for a particular subcommand.


## cdstarcat API

Typically, `cdstarcat` will be used programmatically, to implement recurring media file maintenance tasks
within projects - such as 
[uploading media files for a new submission to Dictionaria](https://github.com/clld/dictionaria-intern/blob/292644d23c0495d5a339bae1a0696ffe3129dcbf/pydictionaria/commands.py#L22-L42).

In the simplest case this could look as follows:
```python
import os
from cdstarcat import Catalog

def upload(directory):
    with Catalog(
        os.environ['CDSTAR_CATALOG'],
        cdstar_url=os.environ['CDSTAR_URL'],
        cdstar_user=os.environ['CDSTAR_USER'],
        cdstar_pwd=os.environ['CDSTAR_PWD']
    ) as cat:
        md = {
            'collection': 'PROJECT NAME',
            'path': '%s' % directory,
        }
        for fname, created, obj in cat.create(directory, md):
            print('{0} -> {1}'.format(fname, obj.id))
```


