Skip to main content

What is next in DataLad

Project description

DataLad NEXT extension

Build status codecov.io crippled-filesystems docs Documentation Status License: MIT GitHub release PyPI version fury.io DOI

This DataLad extension can be thought of as a staging area for additional functionality, or for improved performance and user experience. Unlike other topical or more experimental extensions, the focus here is on functionality with broad applicability. This extension is a suitable dependency for other software packages that intend to build on this improved set of functionality.

Installation

# create and enter a new virtual environment (optional)
$ virtualenv --python=python3 ~/env/dl-next
$ . ~/env/dl-next/bin/activate
# install from PyPi
$ python -m pip install datalad-next

How to use

Additional commands provided by this extension are immediately available after installation. However, in order to fully benefit from all improvements, the extension has to be enabled for auto-loading by executing:

git config --global --add datalad.extensions.load next

Doing so will enable the extension to also alter the behavior the core DataLad package and its commands.

Summary of functionality provided by this extension

  • A replacement sub-system for credential handling that is able to handle arbitrary properties for annotating a secret, and facilitates determining suitable credentials while minimizing avoidable user interaction, without compromising configurability.
  • A user-facing credentials command to set, remove, and query credentials.
  • The create-sibling-... commands for the platforms GitHub, GIN, GOGS, Gitea are equipped with improved credential handling that, for example, only stores entered credentials after they were confirmed to work, or auto-selects the most recently used, matching credentials, when none are specified.
  • A create-sibling-webdav command for hosting datasets on a WebDAV server via a sibling tandem for Git history and file storage. Datasets hosted on WebDAV in this fashion are cloneable with datalad-clone. A full annex setup for storing complete datasets with historical file content version, and an additional mode for depositing single-version dataset snapshot are supported. The latter enables convenient collaboration with audiences that are not using DataLad, because all files are browsable via a WebDAV server's point-and-click user interface.
  • Enhance datalad-push to automatically export files to git-annex special remotes configured with exporttree=yes.
  • Speed-up datalad-push when processing non-git special remotes. This particularly benefits less efficient hosting scenarios like WebDAV.
  • Enhance datalad-siblings enable (AnnexRepo.enable_remote() to automatically deploy credentials for git-annex special remotes that require them.
  • git-remote-datalad-annex is a Git remote helper to push/fetch to any location accessible by any git-annex special remote.
  • git-annex-backend-XDLRA (originally available from the mihextras extension) is a custom external git-annex backend used by git-remote-datalad-annex. A base class to facilitate development of external backends in Python is also provided.
  • Enhance datalad-configuration to support getting configuration from "global" scope without a dataset being present.

Summary of additional features for DataLad extension development

  • serve_path_via_webdav test decorator that automatically deploys a local WebDAV server.
  • with_credential test decorator that temporarily deploys a credential to the local credential system.
  • Utilities for HTTP handling
    • probe_url() discovers redirects and authentication requirements for an HTTP URL
    • get_auth_realm() returns a label for an authentication realm that can be used to query for matching credentials
  • Utilities for special remote credential management:
    • get_specialremote_credential_properties() inspects a special remote and returns properties for querying a credential store for matching credentials
    • update_specialremote_credential() updates a credential in a store after successful use
    • get_specialremote_credential_envpatch() returns a suitable environment "patch" from a credential for a particular special remote type

Acknowledgements

This DataLad extension was developed with funding from the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant SFB 1451 (431549029, INF project).

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

datalad_next-0.6.3.tar.gz (136.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datalad_next-0.6.3-py3-none-any.whl (122.8 kB view details)

Uploaded Python 3

File details

Details for the file datalad_next-0.6.3.tar.gz.

File metadata

  • Download URL: datalad_next-0.6.3.tar.gz
  • Upload date:
  • Size: 136.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for datalad_next-0.6.3.tar.gz
Algorithm Hash digest
SHA256 1d7a6400d73595cc5dbccc632a69be12a89103f1442ec3ee933b33c0cf84012b
MD5 575015fe86ccf167722a899b1210b935
BLAKE2b-256 a736cb809c52f694a052ecc21814e974a327f7e6dad651fe26e3ef63bc4dbd29

See more details on using hashes here.

File details

Details for the file datalad_next-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: datalad_next-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 122.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for datalad_next-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f28e922e85aaba264c3a7868f91eafeafc339c34462ccc954288625aba02ad5b
MD5 3c705107aa60b365a4e6f52bc1050cd5
BLAKE2b-256 454738cebcec00b0a8c6fca96f02e99bcaccce5cdd89ff9179ae034b785397e8

See more details on using hashes here.

Supported by

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