Metadata-Version: 2.4
Name: dandi
Version: 0.73.0
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: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8
License-File: LICENSE
Requires-Dist: bidsschematools~=1.0
Requires-Dist: bids-validator-deno>=2.0.5
Requires-Dist: click<8.2.0,>=7.1
Requires-Dist: click-didyoumean
Requires-Dist: dandischema<0.12.0,>=0.11.1
Requires-Dist: etelemetry>=0.2.2
Requires-Dist: eval_type_backport; python_version < "3.10"
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.3
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: numcodecs<0.16
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: tensorstore
Requires-Dist: urllib3>=2.0.0
Requires-Dist: yarl~=1.9
Requires-Dist: zarr<=3.0.8,>=2.10
Requires-Dist: zarr_checksum~=0.4.0
Provides-Extra: extensions
Requires-Dist: allensdk; extra == "extensions"
Requires-Dist: ndx-hed; extra == "extensions"
Requires-Dist: ndx-events; 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: ndx-hed; extra == "all"
Requires-Dist: ndx-events; 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"
Dynamic: license-file

# 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 active 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 DANDI instances, 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 files or entire folders 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.
  service-scripts   Various utility operations
  shell-completion  Emit shell script for enabling command completion.
  upload            Upload Dandiset files to DANDI Archive.
  validate          Validate files for data standards 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 [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.
