{"id":23511,"library":"datalad","title":"DataLad","description":"DataLad is a distributed system for joint management of code, data, and their relationships, built on top of Git and git-annex. Current version is 1.4.1, with frequent bug-fix releases. Requires Python >=3.10.","status":"active","version":"1.4.1","language":"python","source_language":"en","source_url":"https://github.com/datalad/datalad","tags":["data management","git-annex","reproducible science","version control","distributed"],"install":[{"cmd":"pip install datalad","lang":"bash","label":"Install latest stable"}],"dependencies":[{"reason":"Required runtime dependency for annex operations","package":"git-annex","optional":false},{"reason":"Used for archive extraction; API changed in 2.0","package":"patoolib","optional":true}],"imports":[{"note":"datalad.api is a legacy alias; prefer direct import of datalad.api.","wrong":"from datalad import api","symbol":"datalad","correct":"import datalad"},{"note":"Case-sensitive; module is lowercase 'datalad'.","wrong":"import DataLad","symbol":"datalad.api","correct":"from datalad.api import Dataset"},{"note":"Dataset is in datalad.api, not top-level.","wrong":"from datalad import Dataset","symbol":"Dataset","correct":"from datalad.api import Dataset"}],"quickstart":{"code":"from datalad.api import Dataset\nds = Dataset('.')\nds.install(source='///example/dataset')\nprint(ds.id)","lang":"python","description":"Install a dataset from a DataLad superdataset URL and print its ID."},"warnings":[{"fix":"Upgrade Python to 3.10 or later.","message":"Python 3.9 support dropped in DataLad 1.3.0; requires Python >=3.10.","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"Upgrade to DataLad 1.4.1 or pin patoolib<2.0.","message":"patoolib API change in version 2.0 broke DataLad <1.4.1; DataLad 1.4.1 includes a fix.","severity":"breaking","affected_versions":"1.4.0"},{"fix":"In conftest.py, use pytest_plugins = ['datalad.tests.fixtures'] to auto-register.","message":"DataLad uses custom markers for pytest; extensions must register them or use the DataLad pytest plugin introduced in 1.4.0.","severity":"gotcha","affected_versions":">=1.4.0"},{"fix":"Upgrade to 1.3.3+ or manually run git annex merge/adjust.","message":"Operations on adjusted branches (crippled filesystems) may require extra merge steps; fixed in 1.3.3.","severity":"gotcha","affected_versions":"<1.3.3"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from datalad.api import Dataset'","cause":"Dataset is not in datalad top-level; it's in datalad.api.","error":"ImportError: cannot import name 'Dataset' from 'datalad'"},{"fix":"Rename any local script or module named 'datalad.py'.","cause":"Python 3.10+ may shadow with a local file named datalad.py.","error":"AttributeError: module 'datalad' has no attribute 'api'"},{"fix":"Install git-annex via system package manager (e.g., apt-get install git-annex-standalone)","cause":"git-annex binary missing from PATH.","error":"CommandNotFoundError: git-annex is not installed"},{"fix":"Use a valid git URL like 'https://github.com/datalad-datasets/longnow-podcasts.git'","cause":"Triple-slash URLs are valid only with a configured remote; raw source URL needed.","error":"requests.exceptions.InvalidURL: Failed to parse: ///example/dataset"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}