Metadata-Version: 2.1
Name: dandi
Version: 0.49.0
Summary: Command line client for interaction with DANDI archive elements
Home-page: http://dandiarchive.org
Author: DANDI developers
Author-email: team@dandiarchive.org
Maintainer: Yaroslav O. Halchenko
Maintainer-email: debian@onerussian.com
License: Apache 2.0
Project-URL: Source Code, https://github.com/dandi/dandi-cli
Project-URL: Documentation, https://dandi.readthedocs.io
Platform: OS Independent
Classifier: Development Status :: 1 - Planning
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8
License-File: LICENSE
Requires-Dist: appdirs
Requires-Dist: bidsschematools (>=0.5.0)
Requires-Dist: click
Requires-Dist: click-didyoumean
Requires-Dist: dandischema (~=0.7.0)
Requires-Dist: etelemetry (>=0.2.2)
Requires-Dist: fasteners
Requires-Dist: fscacher
Requires-Dist: hdmf (!=3.5.0)
Requires-Dist: humanize
Requires-Dist: interleave (~=0.1)
Requires-Dist: joblib
Requires-Dist: keyring (!=23.9.0)
Requires-Dist: keyrings.alt
Requires-Dist: packaging
Requires-Dist: pycryptodomex
Requires-Dist: pydantic (>=1.9.0)
Requires-Dist: pynwb (!=1.1.0,>=1.0.3)
Requires-Dist: nwbinspector (>=0.4.12)
Requires-Dist: pyout (!=0.6.0,>=0.5)
Requires-Dist: python-dateutil
Requires-Dist: requests (~=2.20)
Requires-Dist: ruamel.yaml (<1,>=0.15)
Requires-Dist: semantic-version
Requires-Dist: tenacity
Requires-Dist: zarr (~=2.10)
Requires-Dist: zarr-checksum
Requires-Dist: importlib-metadata ; python_version < "3.8"
Provides-Extra: all
Requires-Dist: allensdk ; extra == 'all'
Requires-Dist: duecredit ; extra == 'all'
Requires-Dist: flake8 ; extra == 'all'
Requires-Dist: pre-commit ; extra == 'all'
Requires-Dist: anys (~=0.2) ; extra == 'all'
Requires-Dist: coverage ; extra == 'all'
Requires-Dist: opencv-python ; extra == 'all'
Requires-Dist: pytest ; extra == 'all'
Requires-Dist: pytest-cov ; extra == 'all'
Requires-Dist: pytest-mock ; extra == 'all'
Requires-Dist: responses ; extra == 'all'
Requires-Dist: boto3 ; extra == 'all'
Provides-Extra: extensions
Requires-Dist: allensdk ; extra == 'extensions'
Provides-Extra: extras
Requires-Dist: duecredit ; extra == 'extras'
Provides-Extra: style
Requires-Dist: flake8 ; extra == 'style'
Requires-Dist: pre-commit ; extra == 'style'
Provides-Extra: test
Requires-Dist: anys (~=0.2) ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: opencv-python ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-mock ; extra == 'test'
Requires-Dist: responses ; extra == 'test'
Provides-Extra: tools
Requires-Dist: boto3 ; extra == 'tools'

# DANDI Client

[![Tests](https://github.com/dandi/dandi-cli/workflows/Tests/badge.svg)](https://github.com/dandi/dandi-cli/actions?query=workflow%3ATests)
[![codecov.io](https://codecov.io/github/dandi/dandi-cli/coverage.svg?branch=master)](https://codecov.io/github/dandi/dandi-cli?branch=master)
[![GitHub release](https://img.shields.io/github/release/dandi/dandi-cli.svg)](https://GitHub.com/dandi/dandi-cli/releases/)
[![PyPI version fury.io](https://badge.fury.io/py/dandi.svg)](https://pypi.python.org/pypi/dandi/)
[![Documentation Status](https://readthedocs.org/projects/dandi/badge/?version=latest)](https://dandi.readthedocs.io/en/latest/?badge=latest)

The [DANDI Python client](https://pypi.org/project/dandi/) allows you to:

* Download `Dandisets` and individual subject folders or files
* Validate data to locally conform to standards
* Organize your data locally before upload
* Upload `Dandisets`
* Interact with the DANDI archive's web API from Python
* Delete data in the DANDI archive
* Perform other auxiliary operations with data or the DANDI archive

**Note**: This project is under heavy development. See [the issues log](https://github.com/dandi/dandi-cli/issues) or
[Work-in-Progress (WiP)](https://github.com/dandi/dandi-cli/pulls).

## Installation

DANDI Client releases are [available from PyPI](https://pypi.org/project/dandi)
and [conda-forge](https://anaconda.org/conda-forge/dandi).  Install them in your Python (native, virtualenv, or
conda) environment via

    pip install dandi

or

    conda install -c conda-forge dandi


## CLI Tool

This package provides a command line utility with a basic interface
to help you prepare and upload your data to, or obtain data from, the [DANDI archive](http://dandiarchive.org).


```bash
$> dandi
Usage: dandi [OPTIONS] COMMAND [ARGS]...

  A client to support interactions with DANDI archive
  (http://dandiarchive.org).

  To see help for a specific command, run

      dandi COMMAND --help

  e.g. dandi upload --help

Options:
  --version
  -l, --log-level [DEBUG|INFO|WARNING|ERROR|CRITICAL]
                                  Log level (case insensitive).  May be
                                  specified as an integer.  [default: INFO]
  --pdb                           Fall into pdb if errors out
  --help                          Show this message and exit.

Commands:
  delete            Delete dandisets and assets from the server.
  digest            Calculate file digests
  download          Download a file or entire folder from DANDI.
  instances         List known Dandi Archive instances that the CLI can...
  ls                List .nwb files and dandisets metadata.
  move              Move or rename assets in a local Dandiset and/or on...
  organize          (Re)organize files according to the metadata.
  shell-completion  Emit shell script for enabling command completion.
  upload            Upload Dandiset files to DANDI Archive.
  validate          Validate files for NWB and DANDI compliance.
  validate-bids     Validate BIDS paths.
```
Run `dandi --help` or `dandi <subcommand> --help` (e.g. `dandi upload --help`) to see manual pages.

## Resources

* To learn how to interact with the DANDI archive and for examples on how to use the DANDI Client in various use cases,
see [the handbook](https://www.dandiarchive.org/handbook/)
  (specifically the sections on using the CLI to
[download](https://www.dandiarchive.org/handbook/12_download/) and
[upload](https://www.dandiarchive.org/handbook/13_upload/) `Dandisets`).

* To get help:
  - ask a question: https://github.com/dandi/helpdesk/discussions
  - file a feature request or bug report: https://github.com/dandi/helpdesk/issues/new/choose
  - contact the DANDI team: help@dandiarchive.org

* To understand how to contribute to the dandi-cli repository, see the [DEVELOPMENT.md](./DEVELOPMENT.md) file.
