Metadata-Version: 2.2
Name: dandi
Version: 0.66.4
Summary: Command line client for interaction with DANDI instances
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.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8
License-File: LICENSE
Requires-Dist: bidsschematools~=0.7.0
Requires-Dist: click>=7.1
Requires-Dist: click-didyoumean
Requires-Dist: dandischema<0.12,>=0.9.0
Requires-Dist: etelemetry>=0.2.2
Requires-Dist: fasteners
Requires-Dist: fscacher>=0.3.0
Requires-Dist: hdmf!=3.14.4,!=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: platformdirs
Requires-Dist: pycryptodomex
Requires-Dist: pydantic~=2.0
Requires-Dist: pynwb!=1.1.0,!=2.3.0,>=1.0.3
Requires-Dist: nwbinspector!=0.4.32,>=0.4.28
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: urllib3>=2.0.0
Requires-Dist: yarl~=1.9
Requires-Dist: zarr~=2.10
Requires-Dist: zarr_checksum~=0.4.0
Provides-Extra: extensions
Requires-Dist: allensdk; extra == "extensions"
Provides-Extra: extras
Requires-Dist: duecredit>=0.6.0; extra == "extras"
Requires-Dist: fsspec[http]; 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: pytest-rerunfailures; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Requires-Dist: responses!=0.24.0,!=0.25.5; extra == "test"
Requires-Dist: vcrpy; extra == "test"
Provides-Extra: tools
Requires-Dist: boto3; extra == "tools"
Provides-Extra: all
Requires-Dist: allensdk; extra == "all"
Requires-Dist: duecredit>=0.6.0; extra == "all"
Requires-Dist: fsspec[http]; 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: pytest-rerunfailures; extra == "all"
Requires-Dist: pytest-timeout; extra == "all"
Requires-Dist: responses!=0.24.0,!=0.25.5; extra == "all"
Requires-Dist: vcrpy; extra == "all"
Requires-Dist: boto3; extra == "all"

# 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)
[![Conda](https://anaconda.org/conda-forge/dandi/badges/version.svg)](https://anaconda.org/conda-forge/dandi)
[![Gentoo (::science)](https://repology.org/badge/version-for-repo/gentoo_ovl_science/dandi-cli.svg?header=Gentoo%20%28%3A%3Ascience%29)](https://repology.org/project/dandi-cli/versions)
[![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 instance's web API from Python
* Delete data in the DANDI instance
* Perform other auxiliary operations with data on the DANDI instance

**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, a DANDI instance such as the [DANDI Archive](http://dandiarchive.org).


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

  A client to support interactions with a DANDI instance, such as the 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 instances that the CLI can interact
  ls                List .nwb files and dandisets metadata.
  move              Move or rename assets in a local Dandiset and/or on...
  organize          (Re)organize NWB files according to their metadata.
  shell-completion  Emit shell script for enabling command completion.
  upload            Upload Dandiset files to DANDI Archive.
  validate          Validate files for data standards compliance.
```
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 [DANDI Docs](https://docs.dandiarchive.org)
  (specifically the sections on using the CLI to
[download](https://docs.dandiarchive.org/12_download/) and
[upload](https://docs.dandiarchive.org/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.
