- Disallow hdmf 3.14.4, make organize to not parallelize for a single file, log information about all exceptions while reading metadata for organize #1496 (@yarikoptic)
- BF: use correct variable in exception upon unknown how to handle value of "species" #1482 (@yarikoptic)
- move: Immediately authenticate client after creation #1480 (@jwodder)
- Dump audit table to file specified by
DANDI_TESTS_AUDIT_CSV
envvar #1486 (@jwodder) - Fix host used in minio URLs #1487 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Fix one insignificant typo in CHANGELOG #1477 (@yarikoptic)
- Revert "Unbreak vcrpy install" #1472 (@jwodder)
- Unbreak vcrpy install #1471 (@jwodder)
- Further improvements to
docker-compose.yml
#1470 (@jwodder) - Assorted Docker Compose improvements #1465 (@jwodder)
- Do not use mypy 1.11.0 #1466 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Normalize path while requesting list of assets from the server #1454 (@yarikoptic)
- OPT+RF of zarr downloads: do not wait for full files listing + compute %done from total zarr size #1443 (@yarikoptic)
- Separate datetime components in logfile names with punctuation #1445 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Rewind filehandle request bodies before retrying requests #1444 (@jwodder)
- Slight tune up to formatting of examples etc to harmonize appearance/make shorter #1439 (@yarikoptic)
- Fix spelling of netlify and instance #1433 (@rly @yarikoptic)
- ENH: add/use codespell-project/codespell-problem-matcher to annotate PRs on where typos added #1429 (@yarikoptic)
- ENH: add timeout of 300 (5 minutes) to any test running #1440 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Ryan Ly (@rly)
- Yaroslav Halchenko (@yarikoptic)
- Adjust tests for the added email requirement for contact person #1438 (@candleindark @yarikoptic)
- Add DJANGO_DANDI_DEV_EMAIL env var to archive tests #1436 (@jjnesbitt)
- clarify resource identifier docs #1437 (@asmacdo)
- Fix spelling of
--scheduled
option used in scheduled tests #1428 (@jwodder) - Xfail flaky ontobee tests, unless running daily tests #1423 (@jwodder)
- Austin Macdonald (@asmacdo)
- Isaac To (@candleindark)
- Jacob Nesbitt (@jjnesbitt)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Add missing command to
dandi-archive
docker compose fixture #1421 (@mvandenburgh)
- Mike VanDenburgh (@mvandenburgh)
- Revert "Do not allow dandischema 0.10.1 - new schema not yet supporteed by dandi-archive" #1420 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Add arguments for API query parameters when fetching all Dandisets; support creating embargoed Dandisets #1414 (@jwodder)
- Do not allow dandischema 0.10.1 - new schema not yet supported by dandi-archive #1419 (@yarikoptic)
- Clean up URL parsing in
extract_species()
#1416 (@jwodder @yarikoptic)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Report progress in deleting Zarr entries during upload #1412 (@jwodder)
- Update for Pydantic v2 #1381 (@jwodder)
- gh-actions: Bump codecov/codecov-action from 3 to 4 #1402 (@dependabot[bot])
- @dependabot[bot]
- John T. Wodder II (@jwodder)
- Failsafe etelemetry import #1399 (@TheChymera)
- Blacklist buggy nwbinspector 0.4.32 #1401 (@yarikoptic)
- Update zarr_checksum dependency to
~= 0.4.0
#1393 (@jwodder) - Update zarr_checksum dependency to
~= 0.3.2
#1392 (@jwodder)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Adopt
dandischema.digests.zarr.get_checksum()
to dandi-cli: use zarr_checksum library constructs instead of copies in dandischema #1371 (@jwodder) - gh-actions: Bump github/codeql-action from 2 to 3 #1379 (@dependabot[bot])
- Minor codespell fix in a CHANGELOG entry #1389 (@yarikoptic)
- Minor update to
organize
docstring #1382 (@kabilar) - Minor docs update for
dandi validate
#1377 (@kabilar)
- @dependabot[bot]
- John T. Wodder II (@jwodder)
- Kabilar Gunalan (@kabilar)
- Yaroslav Halchenko (@yarikoptic)
- Properly open filehandles for
RemoteReadableAsset
s #1376 (@jwodder) - Repeatedly double-check return values of zero when spying on
super_len()
#1370 (@jwodder) - Set 30-second connect & read timeout when downloading files #1369 (@jwodder)
- gh-actions: Bump actions/setup-python from 4 to 5 #1372 (@dependabot[bot])
- Remove redundant
ensure_datetime()
call #1367 (@jwodder) - Move imports in functions to top level or annotate why they can't be moved #1368 (@jwodder)
- @dependabot[bot]
- John T. Wodder II (@jwodder)
- Add Python 3.12 to supported versions and test against on GitHub Actions; upgrade versioneer #1330 (@yarikoptic)
- Minor fix for an occasional typo in a comment introduced recently #1357 (@yarikoptic)
- Replace magic string arguments with enums #1357 (@jwodder)
- Merge duplicate entries in species_map #1358 (@garrettmflynn)
- Sanitize spaces and ,s in organized filenames #1351 (@yarikoptic)
- Remove unused configuration settings #1346 (@jwodder)
- find_files: Simplify check for VCS and DataLad paths #1355 (@jwodder)
- Convert dandiarchive URL classes from pydantic models to dataclasses #1356 (@jwodder)
- Replace
_pytest
imports with modernpytest
imports #1347 (@jwodder) - Remove
_order_
attribute fromSeverity
enum #1348 (@jwodder) - Use dataclass instead of
auto_repr
#1349 (@jwodder) - Run
pyupgrade --py38-plus
on source #1350 (@jwodder) - Modernize type annotations and improve mypy config #1343 (@jwodder)
- Move words ignored by codespell from
.codespellignore
tosetup.cfg
#1344 (@jwodder)
- Install also hdmf from git in the dev-deps CI run #1320 (@yarikoptic)
- Fix typing error #1359 (@jwodder)
- Garrett Michael Flynn (@garrettmflynn)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Expose number of jobs to organize #1341 (@CodyCBakerPhD)
- Cody Baker (@CodyCBakerPhD)
- John T. Wodder II (@jwodder)
?location
parameter in URLs can only point to a folder #1305 (@yarikoptic @jwodder)
- Add missing term in ETA calculation #1340 (@sneakers-the-rat)
- typing: Account for the fact that requests.HTTPError .response might be None now #1336 (@yarikoptic)
- gh-actions: Bump actions/checkout from 3 to 4 #1326 (@dependabot[bot])
- codespell: tuneup of config and some new typos detected fixes #1334 (@yarikoptic)
- Minor documentation tune up #1338 (@yarikoptic)
- Re-record VCR tapes using newer versions of libraries #1337 (@yarikoptic)
- Ignore unclosed connection resource warning from VCR #1333 (@yarikoptic)
- @dependabot[bot]
- John T. Wodder II (@jwodder)
- Jonny Saunders (@sneakers-the-rat)
- Yaroslav Halchenko (@yarikoptic)
- Fix uploading Zarr within a BIDS dataset; typing-check guided fix for handling requests exception #1331 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Add Macaca nemestrina to species #1327 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- ENH: Add support for _desc- entity to label different processings of a file #1315 (@yarikoptic)
- Accept URLs as Dandi instance specifiers #1298 (@jwodder)
- Check if URL matches the API URL so we do not hardcode wrong "False" for is_api #1318 (@yarikoptic)
- Fix wait_until_valid to properly wait for a publishable version #1311 (@danlamanna)
- Update
asset_validation_errors
structure #1303 (@jwodder) - Don't treat certain broken symlinks as absent files #1292 (@jwodder @yarikoptic)
- Removed deprecated boilerplate for copying tree to an existing directory #1294 (@TheChymera @jwodder)
- Remove Python 3.7-specific code #1296 (@jwodder)
- TST: fix and not announce xfailed test which checks /server-info - version is provided now #1319 (@yarikoptic)
- Fix typing errors due to keyring and cv externals changes. #1316 (@jwodder)
- Fix test for newer hdf5 #1301 (@jwodder)
- Dan LaManna (@danlamanna)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Bidsschematools 0.7.0 API usage update #1243 (@TheChymera @yarikoptic)
- Horea Christian (@TheChymera)
- Yaroslav Halchenko (@yarikoptic)
- Support uploading a subset of files from a BIDS dataset #1286 (@jwodder)
- Add
dandi service-scripts update-dandiset-from-doi
command #1283 (@jwodder)
- Use
inspect_nwbfile()
instead ofinspect_nwb()
; address bug in recentruamel.yaml
versions #1285 (@jwodder)
- John T. Wodder II (@jwodder)
- Explicitly open h5py.File as read-only where we read it #1282 (@yarikoptic)
- C elegans #1276 (@bendichter @yarikoptic)
- Ben Dichter (@bendichter)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Suppress log messages when downloading with pyout, even if no logger has been configured #1279 (@jwodder)
- Accept Other sex as o abbreviation #1275 (@bendichter)
- validate: resolved issues with relative path input #1260 (@TheChymera)
- Log results of
requests.utils.super_len()
whenDANDI_DEVEL_INSTRUMENT_REQUESTS_SUPERLEN
is set #1267 (@jwodder)
- Add configuration for log buckets in testing #1277 (@danlamanna)
- Make test NFS-safe #1274 (@jwodder)
- Fix
test_validate_relative_path
#1272 (@jwodder)
- Ben Dichter (@bendichter)
- Dan LaManna (@danlamanna)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- enh: add cellline parsing #1254 (@satra @yarikoptic)
- [ENH] Add severity restriction option to
dandi-validate
#1248 (@TheChymera)
- Add an example for streaming using as_readable + reference to PyNWB examples #1250 (@yarikoptic)
- Add CI run testing against NFS #1262 (@jwodder)
- Creating test for file-wise NWB error output listing #1244 (@TheChymera)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
validate
: Yield error if path is not inside a Dandiset #1237 (@jwodder)- Add service script for re-extracting remote NWB metadata #1236 (@jwodder)
- Corrected docstring #1245 (@TheChymera)
- Revert "Restrict mypy to pre-v1.1.1" #1247 (@jwodder)
- Restrict mypy to pre-v1.1.1 #1246 (@jwodder)
- Skip reextract-metadata test if fsspec is not installed #1240 (@jwodder)
- Update for dandischema 0.8.0 #1241 (@jwodder @yarikoptic)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- skip test_nwb2asset_remote_asset if no fsspec installed #1239 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Add
--ignore ID_REGEX
option todandi validate
#1234 (@jwodder) - download: support for downloading multiple URLs at once; dandiset path is now included in the report #1231 (@jwodder)
- Merging
bids_validate
intovalidate
, stop validating nested BIDS. #1203 (@TheChymera @jwodder) - Support re-extracting metadata from remote assets #1214 (@jwodder)
- Inform user with a warning in case of jobs > 1 but non pyout format #1222 (@yarikoptic)
- BF: add missing f- for a string #1228 (@yarikoptic)
- Don't even test for
cp --reflink
support on Windows #1221 (@jwodder) - Filter out pyout logs from logfile by default #1220 (@jwodder)
- Metadata: add extraction of strain from nwb files #1216 (@satra @yarikoptic)
- Added distribution badge (sadly only one ATM) #1224 (@TheChymera)
- List in documentation the "high level" interfaces corresponding to CLI #1200 (@yarikoptic)
- Update
parse_purlobourl()
test for change to rat metadata #1227 (@jwodder) - Revert "Temporarily disable all tests which talk to obolibrary" - ontobee said to be back #1226 (@yarikoptic)
- Fix tests: avoid obolibrary (for now) and pynwb 2.3.0 (forever) #1225 (@yarikoptic)
- Test against Python 3.11 #1143 (@jwodder)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- John T. Wodder II (@jwodder)
- Update for new Zarr upload procedure; remove no longer needed
service-scripts
#1202 (@jwodder) - BF+RF validation #1209 (@yarikoptic)
- Make
RemoteDandiset.get_version()
return aVersionInfo
instance with validation error fields #1210 (@jwodder) - Improve messages displayed when an upload fails #1204 (@jwodder)
- RF/BF: make find_parent_directory_containing operate on absolute path #1188 (@yarikoptic)
- Pass $USER to tox envs #1201 (@jwodder)
- boost isort in precommit to 5.12.0 to overcome issue with poetry #1199 (@yarikoptic)
- Move doc/design under docs/ where the rest of docs reside #1198 (@yarikoptic)
- Further improve README.md: point to specific sections of handbook, remove lengthy
dandi ls --help
example #1193 (@melster1010)
- Fix type errors; unbound mypy #1207 (@jwodder)
- We no longer need to catch warning as hdmf has fixed the bug #1194 (@TheChymera)
- Joint BIDS-NWB metadata extraction. #1183 (@TheChymera)
- Fix for newer HDMF #1191 (@TheChymera)
- Blacklisting the most recent hdmf version 3.5.0 forbidding its use and breaking CI/testing. #1190 (@TheChymera)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Mary Elise Dedicke (@melster1010)
- Yaroslav Halchenko (@yarikoptic)
- Fail upload only for validation ERRORs and not necessarily WARNINGs or HINTs + log all errors #1186 (@yarikoptic)
- Don't warn on unexpected formats for "next" page URLs #1184 (@jwodder)
- Upload test to check for metadata #1180 (@TheChymera)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- John T. Wodder II (@jwodder)
- Add validation of filepaths for non-BIDS NWB assets #1173 (@jwodder)
- Exclude special dotfiles from Zarrs #1147 (@jwodder)
- Structured validation results #1104 (@jwodder @yarikoptic @TheChymera)
- Allow user to specify mandatory (if not empty) fields in organize #1171 (@yarikoptic @jwodder)
- BF: convert str errors from checking nwb version into proper ValidationResult #1174 (@yarikoptic)
- Tests for
ls
reinstated, underlying function fixed, support for ZARR-BIDS files added. #1164 (@TheChymera @jwodder) - Add CodeQL workflow for GitHub code scanning and fix few bugs it detected #1165 (@lgtm-migrator @jwodder @lgtm-com[bot])
- Corrected reporting function logic to complete group message variable #1166 (@TheChymera)
- Renamed failing test, added prospective use case for NWBI warning. #1162 (@TheChymera)
- Use cached namespace validation #1149 (@CodyCBakerPhD)
- dandi-cli readme edit #1170 (@melster1010)
- Remove Parameters description from docstring used by click #1150 (@yarikoptic)
- No longer mark
test_rename_type_mismatch
as xfailing #1161 (@jwodder) - Fix typing error under mypy 0.990 #1156 (@jwodder)
- Update
test_validate_nwb_path_grouping
test #1157 (@jwodder) - Fixed logic and commented a temporarily broken BIDS (lacking README) dataset #1148 (@TheChymera)
- Installing hdf5 for Python 3.10 is no longer needed #1145 (@jwodder)
- Fix a typing issue involving the outdated
tmpdir_factory
#1144 (@jwodder)
- @lgtm-com[bot]
- Cody Baker (@CodyCBakerPhD)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- LGTM Migrator (@lgtm-migrator)
- Mary Elise Dedicke (@melster1010)
- Yaroslav Halchenko (@yarikoptic)
- ENH: lgr.debug that we are using DANDI_API_KEY provided key #1133 (@yarikoptic)
- add zebrafish to species list #1129 (@satra)
- Make
dandi ls
properly detect embargoed Dandisets #1132 (@jwodder)
- Make internal Zarr-checksumming tree types support empty Zarrs #1138 (@jwodder)
- Simplify implementations of
get_asset()
methods #1136 (@jwodder) - Update GitHub Actions action versions #1135 (@jwodder)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- increase number of trials in docker_compose_setup to 25 #1122 (@djarecka)
- Pull latest Docker images before spinning up Compose #1121 (@jwodder)
- Detect link type for
organize
by linking from first src dir to dest dir #1115 (@jwodder) - Check for usage of latest NWB Inspector release #1108 (@CodyCBakerPhD)
- Cody Baker (@CodyCBakerPhD)
- John T. Wodder II (@jwodder)
- Use upstream bidsschematools for BIDS validation #1095 (@TheChymera)
- get_content_url(): If a HEAD fails, return the failing URL #1107 (@jwodder)
- BF(workaround): blacklist 23.9.0 of keyring since introduced regression #1112 (@yarikoptic)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- DOC: minor - boost copyright years in the docs #1106 (@yarikoptic)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- ENH: list localhost:8085 as the web UI for dandi-api-local-docker-tests #1003 (@yarikoptic)
- BF: guard download_generator to not propagate errors #1008 (@yarikoptic)
- User notification if datasets are invalid. #1080 (@TheChymera)
- Updating BIDS validator and schema to contemporary upstream equivalent #1050 (@TheChymera)
- Support DANDI:/draft and stop using identifiers.org for any of the DANDI: URIs #1066 (@yarikoptic)
- Do not traverse .ome.zarr and .ngff folders while looking for BIDS datasets #1071 (@yarikoptic)
- Update README.md (@bendichter)
- Tell codespell to ignore "bu" strings in tests #1102 (@jwodder)
- Update video NWB fixtures for next pynwb version #1100 (@jwodder)
- Remove redirector from Docker Compose setup #1087 (@jwodder)
- Ben Dichter (@bendichter)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- dandi move: Fix resolution of nonexistent dests when in a subdirectory #1063 (@jwodder)
- dandi move: Include all mismatches in error messages #1064 (@jwodder)
- John T. Wodder II (@jwodder)
- Built-in BIDS support for
dandi upload
#1011 (@TheChymera)
- DOC: describe the purpose for --instance in download #1053 (@yarikoptic)
- Replace numpy.asscalar() with numpy.ndarray.item() #1056 (@jwodder)
- Clone entire repo in "Lint" action #1052 (@jwodder)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Retry Zarr entry uploads that fail with "header ... implies functionality ... not implemented" #1048 (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Fix calculation of download paths for asset path prefix URLs #1026 (@jwodder)
- organize - sanitize ; as well within the entity value #1009 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- BIDS metadata read-in pilot. #962 (@TheChymera @yarikoptic)
- Corrected regex label string #1015 (@TheChymera)
- Fix error message formatting #1013 (@JuliaSprenger)
- Removing trace from previous commit #1010 (@TheChymera)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Julia Sprenger (@JuliaSprenger)
- Yaroslav Halchenko (@yarikoptic)
- Logging validation warnings and errors #992 (@TheChymera)
- ENH: delete - allow to specify --force in CLI #1001 (@yarikoptic)
- Horea Christian (@TheChymera)
- Yaroslav Halchenko (@yarikoptic)
- Setting version to min version if not available #994 (@TheChymera)
- Whitespace for string returns #985 (@TheChymera)
- Upgrade dandischema to 0.7.x series #987 (@yarikoptic @jwodder)
- Prepend to sys.path to fix versioneer in PEP517 mode #998 (@mgorny)
- minor spelling typo fix #998 (@yarikoptic)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Michał Górny (@mgorny)
- Yaroslav Halchenko (@yarikoptic)
- John T. Wodder II (@jwodder)
- Increase Zarr depth limit to 7 directories #984 (@jwodder)
- keeping logs cleaner in dedicated directory #971 (@TheChymera)
- performance: do not duplicate schema loading #982 (@TheChymera)
- Strip trailing slash from URLs in
/server-info
#972 (@jwodder)
- Removed duplicate, and simplified bids validator tests #965 (@TheChymera)
- Mark
test_server_info
as xfailing #978 (@jwodder) - Mark
test_parse_dandi_url_not_found
as xfailing #973 (@jwodder) - Update
test_parse_api_url[DANDI:000027]
#974 (@jwodder) - Update
test_follow_redirect
#975 (@jwodder) - Combine subtests of
test_publish_and_manipulate
#964 (@jwodder)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Validator fixes: fallback to our version, skip dotdirs on windows, etc #955 (@TheChymera)
- Better detection of empty directories when download-syncing Zarrs #961 (@jwodder)
- Horea Christian (@TheChymera)
- John T. Wodder II (@jwodder)
- Fix type in test docker-compose env var #960 (@AlmightyYakob)
- Jacob Nesbitt (@AlmightyYakob)
- Add DANDI_JUPYTERHUB_URL to test docker-compose #959 (@AlmightyYakob)
- Integrate NWBInspector with DANDI validation #941 (@CodyCBakerPhD)
- Integration test config #957 (@dchiquito)
- Smaller video files #947 (@TheChymera)
- add .mkv as a valid video extension (@bendichter)
- DX: enable "released" plugin for auto #951 (@yarikoptic)
- Fixed test_write_report() log path issue #954 (@TheChymera)
- Specify all queues in test celery worker #953 (@dchiquito)
- Work around a bug in docker-compose #949 (@jwodder)
- Ben Dichter (@bendichter)
- Cody Baker (@CodyCBakerPhD)
- Daniel Chiquito (@dchiquito)
- Horea Christian (@TheChymera)
- Jacob Nesbitt (@AlmightyYakob)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Adding BIDS support #896 (@yarikoptic @TheChymera)
- Black update #945 (@TheChymera)
- Horea Christian (@TheChymera)
- Yaroslav Halchenko (@yarikoptic)
- Update for change in Zarr checksum format #933 (@jwodder)
- Trigger Zarr ingestion after performing an upload #938 (@jwodder)
- check for existence of video path else assume relative path #931 (@Saksham20)
- dandi upload: Make
--jobs
default to5:5
and document it #940 (@jwodder) - checking for duplicate video files in external_files #928 (@Saksham20)
- skip handling URLs in external files references as we do for local paths #932 (@Saksham20)
- Let
dandi delete
take paths to local Zarrs #925 (@jwodder)
- Minimize/optimize Zarr digestion when uploading #923 (@jwodder)
- Don't repeat API requests when finding subdir files to delete before Zarr upload #919 (@jwodder)
- John T. Wodder II (@jwodder)
- Saksham Sharda (@Saksham20)
- Add zarr-checksum method to
dandi digest
#900 (@jwodder) - Move
dandi organize
code to anorganize()
function #902 (@jwodder) - Video files organize #841 (@Saksham20)
- Make use of
/assets/{asset_id}/info/
endpoint #895 (@jwodder) - Support Zarr directories #853 (@jwodder)
- Make
dandi upload
look for dandiset.yaml in parents of common path #916 (@jwodder) - Mint Zarr assets at start of upload and sync Zarr contents #907 (@jwodder)
- Use full asset path as name of Zarr object #912 (@jwodder)
- Specify Dandiset ID when creating a Zarr #911 (@jwodder)
- Cancel a Zarr upload if an error occurs partway through #893 (@jwodder)
- Make
get_raw_digest()
actually default to the proper digest type for Zarrs #894 (@jwodder) - Fix neural data type to metadata extractor #891 (@satra @yarikoptic)
- Add dedicated HTTP404Error exception class #908 (@jwodder)
- Make
paths
argument toupload()
optional #899 (@jwodder) - Add type-annotations to various files #887 (@jwodder)
- Delete functions (get_asset_metadata, find_dandi_files) obsoleted by PR #853 #885 (@jwodder)
- Use a pydantic model to store a RemoteDandiset's cached data #876 (@jwodder)
- improve DandiApiClient.init docstring #909 (@bendichter)
- Document new
dandi organize
options in Read the Docs site #901 (@jwodder) - Organize & fine-tune dandi.dandiapi Sphinx docs #888 (@jwodder)
- Pin minio image version #898 (@AlmightyYakob)
- Enable type-checking #877 (@jwodder)
- Add
new_dandiset
fixture #874 (@jwodder) - Mark a test with missing
skipif_no_network
marker #886 (@jwodder)
- Remove unused tqdm dependency #910 (@jwodder)
- Update minimum pydantic version to 1.9.0 #905 (@jwodder)
- Ben Dichter (@bendichter)
- Jacob Nesbitt (@AlmightyYakob)
- John T. Wodder II (@jwodder)
- Saksham Sharda (@Saksham20)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- upgrade dandischema requirement from 0.4.1 to 0.5.1 (~=) #868 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Add
embargo_status
to dandiset endpoint #855 (@dchiquito) - Remove dandi/core/ in favor of copy in dandischema #849 (@jwodder)
- Error on NWB files with external links #843 (@jwodder)
- Add DJANGO_DANDI_DANDISETS_EMBARGO_BUCKET_NAME setting to test docker-compose.yml #854 (@dchiquito)
- Move a comment #862 (@jwodder)
- Add a wrapper function for the calls to
find_files()
in tests #860 (@jwodder) - Assorted code cleanups #859 (@jwodder)
- Remove generatorify.py #850 (@jwodder)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Set new environment variables required by API server #845 (@mvandenburgh)
- Test against Python 3.10 #794 (@jwodder)
- Ignore a deprecation warning from humanize #844 (@jwodder)
- John T. Wodder II (@jwodder)
- Mike VanDenburgh (@mvandenburgh)
- Convert DANDI: resource identifiers to lowercase when prepending "https://identifiers.org/" and tighten regex #829 (@jwodder)
- John T. Wodder II (@jwodder)
- Support setting
--dandi-instance
via aDANDI_INSTANCE
envvar #822 (@jwodder) - Give the resource classes
api_url
properties #816 (@jwodder)
- Convert metadata 404's when downloading into an "error" status #839 (@jwodder)
- Don't error when redownloading the same dandiset.yaml file #824 (@jwodder)
- Make download fail immediately on nonexistent resources #820 (@jwodder)
- Add Read the Docs badge to README #832 (@jwodder)
- Improve
dandi ls --help
anddandi download --help
output #827 (@jwodder)
- John T. Wodder II (@jwodder)
- Support requesting sorted assets #807 (@jwodder)
- Make logfile always contain all DEBUG or higher log messages #813 (@jwodder)
- Publicly expose classmethods for constructing API resource instances #808 (@jwodder)
- Make
--dandi-instance
public and add "instances" command #804 (@jwodder) - dandi.dandiapi: Convert 404 responses to NotFoundErrors #801 (@jwodder)
- Fix a minor bug in a handler for a rare condition #806 (@jwodder)
- Show valid instance names when given a dandi:// URL with an unknown instance #815 (@jwodder)
- John T. Wodder II (@jwodder)
- Document & type-annotate all public values in
dandi.dandiapi
#799 (@jwodder) - Set Sphinx
default_role
to "py:obj" #795 (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Register all celery queues with dandiarchive env #787 (@dchiquito)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Remove Girder envvars from Docker Compose setup #779 (@jwodder)
- Specify DJANGO_DANDI_VALIDATION_JOB_INTERVAL #778 (@dchiquito)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Stop uploading a file if no metadata can be extracted #767 (@jwodder)
- Retry following redirects on 400 (not 404), 502, 503, & 504 up to 5 times #762 (@jwodder)
- Add dandischema into fscacher tokens for validate #760 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Make
download_url
RemoteAsset
-only; giveBaseRemoteAsset
base_download_url
#759 (@jwodder) - Give API resource classes
__str__
methods #753 (@jwodder)
- John T. Wodder II (@jwodder)
- Boost dandischema to ~= 0.3.1 as it provides dandischema 0.5.1 required by dandi-api #749 (@yarikoptic)
- Yaroslav Halchenko (@yarikoptic)
- Restore the rabbitmq version #747 (@dchiquito)
- Test against rc/2.0.0 branch of pynwb #746 (@jwodder)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Add
replace_asset
parameter toiter_upload_raw_asset()
#743 (@jwodder) - Rename get_assets_under_path() to get_assets_with_path_prefix() #741 (@jwodder)
- Pin rabbitmq version #744 (@dchiquito)
- Test RemoteDandiset.refresh() #740 (@jwodder)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Python API rewrite, part 2 #676 (@jwodder)
- RF: attempt nwb metadata extraction only on .nwb, if fails -- warning #733 (@yarikoptic)
- Invoke etelemetry when constructing a DandiAPIClient; honor DANDI_NO_ET #728 (@jwodder)
- Make upload() fail if client & server schema versions are not in sync #724 (@jwodder)
- Log "error" statuses while uploading as ERROR log messages #737 (@jwodder)
- Retry following redirects that return 404 #734 (@jwodder)
- ENH: exit with non-0 when "bad_version" of dandi-cli is used #725 (@yarikoptic)
- Stretch the doc to the screen width #721 (@yarikoptic)
- Set "version" in docs/source/conf.py #720 (@jwodder)
- Install "test" extras when building docs #718 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Increase retries & wait times for API errors #716 (@jwodder)
- Use timed wait in publish test #706 (@dchiquito)
- ENH: adding sphinx documentation for the dandi-cli #712 (@yarikoptic @jwodder)
- BF(TST): Allow for IteratorWithAggregation to get nothing if reraise_immediately #707 (@yarikoptic)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Skip shell completion test entirely on Windows #702 (@jwodder)
- BF+RF(TST): populate contentUrl to satisfy Asset requirement in 0.5.0 #705 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- fix: raise error when unable to parse age and set session name properly #669 (@satra @yarikoptic)
- fix: set CLI version to align with schema base version #694 (@satra)
- adding valueReference to extract_age return PropertyValue; adding test #689 (@djarecka @satra)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Create valid Dandiset metadata when testing; create valid asset metadata for non-NWB files; wait for validation before publishing #683 (@jwodder)
- changing unitText #686 (@djarecka)
- Fix a failing test on Windows on conda-forge (again) #681 (@jwodder)
- Remove references to "dandi register" command #684 (@jwodder)
- Increase minimum dandischema version to 0.2.9 #687 (@jwodder @yarikoptic)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- John T. Wodder II (@jwodder)
- ENH: more metadata to reconstruct filename, upgrade to use dandischema 0.2.3 (schema 0.4.0) #644 (@satra @yarikoptic)
- ls --schema: Calculate digest for local assets #666 (@jwodder)
- updating parse age to cover more formats #633 (@djarecka)
- fix: add a default name when using an unknown session id #662 (@satra)
- Run test workflow on pushes only on master #667 (@yarikoptic)
- Address LGTM alerts #657 (@jwodder)
- Update pre-commit repo versions and configure isort to properly handle "from . import" lines #656 (@jwodder)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Reprompt or fail on attempt to use an invalid API token #655 (@jwodder)
- dandi ls: Make json and json_pp formats output arrays; add json_lines for old json format #654 (@jwodder)
- Change
download --existing
default to "error"; add "overwrite-different" option; handle git-annex repos #646 (@jwodder)
- John T. Wodder II (@jwodder)
- Move schema code to dandischema #643 (@jwodder)
- Add "shell-completion" command #640 (@jwodder)
- REF: updated model requirements #623 (@satra @yarikoptic)
- Pin dandischema to compatible 0.minor version #650 (@yarikoptic)
- Warn on ignored symlinks to directories #647 (@jwodder)
- Delete name2title() #645 (@jwodder)
- adding to_datacite method #596 (@djarecka @yarikoptic)
- Datacite tmp #595 (@djarecka)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Add "sync" option for upload & download #616 (@jwodder)
- RF: organize - should no longer alter dandiset.yaml #615 (@yarikoptic)
- Allow trailing slash in GUI URLs #636 (@jwodder)
- Make the "#/" in GUI URLs optional #637 (@jwodder)
- Add dandi-staging to known_instances #621 (@dchiquito)
- RM: .github/workflows/test-populate-dandiset-yaml.yml (@yarikoptic)
- move test_get_metaadata to test_metadata.py #634 (@bendichter)
- Error on PRs that modify existing schemata instead of creating a new version #626 (@jwodder)
- Ben Dichter (@bendichter)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- DOC: Extend description for delete to point that it could be URL etc #609 (@yarikoptic)
- Make test_server_info use Docker fixture if DANDI_REDIRECTOR_BASE is set #612 (@jwodder)
- Add DANDI_DEVEL=1 job to GitHub Actions tests #607 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Remove unused functions (and other cleanups) #604 (@jwodder)
- Remove Girder support #588 (@jwodder)
- Give "delete" a --skip-missing option #594 (@jwodder)
- Include list of supported URL patterns in
dandi ls --help
#601 (@jwodder) - Recognize "DANDI:" strings as URL-likes #602 (@jwodder)
- Support specifying the dandi redirector via an env var #581 (@jwodder)
- a script to validate dandi-api collection listing against girder #589 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- BF: "girder" record might be there but "url" might be None #591 (@yarikoptic)
- Retry upload requests that result in 500 responses #585 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Update for the version /info endpoint in dandi-api #575 (@dchiquito)
- Log validation errors #579 (@jwodder)
- Log 409 responses at DEBUG level #578 (@jwodder)
- Daniel Chiquito (@dchiquito)
- John T. Wodder II (@jwodder)
- Models: define id, add various additional types (genotype, etc), boost model version to 0.3.0 #560 (@satra)
- Switch default dandi instance to dandi-api based on redirector #565 (@jwodder)
- BF: do not assume that service record of redirector is present/has url #567 (@yarikoptic)
- Fix a typo in the display string for one of the known URL patterns #564 (@jwodder)
- Error with a decent message when trying to delete() a path not in a Dandiset #563 (@jwodder)
- Fix & test for downloading by asset ID URL #561 (@jwodder)
- Strip trailing slash from API URL used by delete() #559 (@jwodder)
- Refresh dandiset.yaml on download if out of date #556 (@jwodder)
- Support "…/assets/?path=" URLs #555 (@jwodder)
- Get hdmf, pynwb, h5py versions without importing #553 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Log dandi, hdmf, h5py, and pynwb versions to log file #545 (@jwodder)
- small fix of extract_sex #549 (@djarecka)
- Add and use get_module_version for cache tokens #539 (@yarikoptic)
- Log errors in extracting metadata for upload #546 (@jwodder)
- DOC: minor tune up to README.md on installation instructions and WiP #551 (@yarikoptic)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Update dandiarchive client to use most_recent_published_version #537 (@dchiquito @yarikoptic)
- Support parsing & navigating asset download URLs #535 (@jwodder)
- Give
ls
a--metadata
option #536 (@jwodder) - Fix retrying 503's #528 (@jwodder)
- Retry requests that fail with 503 #521 (@jwodder)
- Better filtering of file-only log messages #523 (@jwodder)
- Fix typo in setting jobs_per_file for upload command #519 (@jwodder)
- fix to migrate2newschema #515 (@djarecka)
- BF(workaround): get the list of entries with sizes before querying #513 (@yarikoptic)
- fix: remove unset fields to enable schemaKey #512 (@satra)
- Fixes conversion of existing dandiset metadata with sub-object validation #505 (@satra)
- Upload file parts in parallel #499 (@jwodder)
- DOC: provide instructions in DEVELOPMENT.md for interaction with dandi-api instance (@yarikoptic)
- ENH: Enhancements to metadata schema and compatibility with JSONLD #517 (@satra @yarikoptic)
- Add --only-metadata option to migrate-dandisets.py #511 (@jwodder)
- Add tests of json_dict() method #526 (@jwodder)
- Store metadata test JSON in files #525 (@jwodder)
- Run "provision" container in the foreground #506 (@jwodder)
- Ignore warnings from ruamel.yaml caused by hdmf using deprecated functions #507 (@jwodder)
- Daniel Chiquito (@dchiquito)
- Dorota Jarecka (@djarecka)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Lowercase "sha256" #493 (@jwodder)
- Validate uploads before digesting #495 (@jwodder)
- Check for already-uploaded blobs via /uploads/initialize/ instead of /blobs/digest/ #496 (@jwodder)
- Update upload code for changes in API #479 (@jwodder)
- dandi ls: Error if --schema is given with remote resource of different version #489 (@jwodder)
- Add option for only running new Dandi API tests #500 (@jwodder)
- Don't hardcode DANDI_SCHEMA_VERSION value in tests #491 (@jwodder)
- John T. Wodder II (@jwodder)
- Add "digest" command #480 (@jwodder)
- ENH: prototype for the DANDIEtag "digester" #474 (@yarikoptic @jwodder)
- Change BareAssetMeta.digest to a list #460 (@jwodder)
- Remove "current" column from upload progress display #486 (@jwodder)
- Add dandi_etag digest type to schema #481 (@jwodder)
- Add --devel-debug to
dandi validate
#476 (@jwodder) - Only call logging.basicConfig() when used as a command #468 (@jwodder)
- BF: Require pydantic >= 1.8.1 #461 (@yarikoptic)
- Fix "%s: ok" log message from
dandi validate
#462 (@jwodder) - Display
dandi validate
errors using logger #459 (@jwodder) - ENH: more of lgr.debug for multipart upload #457 (@yarikoptic)
- Rename DandiMeta to DandisetMeta #454 (@jwodder)
- Script for generating S3 versioned file stats #473 (@jwodder)
- Add
-vv
option toauto shipit
#471 (@jwodder)
- John T. Wodder II (@jwodder)
- Yaroslav Halchenko (@yarikoptic)
- Update and simplify models to support automated editor generation #348 (@satra @yarikoptic @jwodder)
- Use separate session for S3 requests #330 (@jwodder)
- BF: no --develop-debug for download ATM #330 (@yarikoptic)
- RF: moved handling of dandiset identifier "deduction" into Dandiset itself #330 (@yarikoptic)
- BF(workaround): allow for "proper" identifier according to new schema #330 (@yarikoptic)
- Merge remote-tracking branch 'origin/master' into gh-320 #330 (@yarikoptic)
- Further fixes #330 (@jwodder)
- Give DandiAPIClient a dandi_authenticate() method #330 (@jwodder)
- Fixes #330 (@jwodder)
- Rename DANDI_API_KEY to DANDI_GIRDER_API_KEY #330 (@jwodder)
- Test of uploading & downloading via new API #330 (@jwodder)
- RF+ENH: support mapping for direct API urls, and use netlify instance instead of api+ prefix #330 (@yarikoptic)
- Delint #330 (@jwodder)
- RF: account for web UI URL changes/dropped features, remove support for girder URLs #330 (@yarikoptic)
- Handle uploading already-extant assets #330 (@jwodder)
- Use new metadata schema #330 (@jwodder)
- Yield more from iter_upload() #330 (@jwodder)
- Document upload method parameters #330 (@jwodder)
- New API upload function #330 (@jwodder)
- Give dandi_instance a metadata_version field #330 (@jwodder)
- Split Docker Compose dandi_instances and fixtures in two #330 (@jwodder)
- Add dandi-api instance record #330 (@jwodder)
- Add dateModified to asset metadata #452 (@jwodder)
- fix: change enum to const for single enums #449 (@satra)
- Add --new-schema option to
ls
command for converting output #445 (@jwodder) - Eliminate check for session_start_time preceding date_of_birth #440 (@jwodder)
- Eliminate DANDI_SCHEMA; add get_schema_version() #442 (@jwodder)
- Discard empty "sex" and "species" fields on conversion #438 (@jwodder)
- schema: minor spotted typo fixes #435 (@yarikoptic)
- Retry requests on ConnectionErrors #437 (@jwodder)
- Include HDMF version as well into the token #434 (@yarikoptic)
- Error if sha256 digest is missing from asset being downloaded #428 (@jwodder)
- Report dandi version in User-Agent header #424 (@jwodder)
- Remove misleading log message about authenticating with new API #425 (@jwodder)
- Distinguish between pre- and post-validation when uploading #420 (@jwodder)
- Log failed HTTP connections; include PID and TID in logs; include asset path in upload log messages #418 (@jwodder)
- Revert PR #409 (Content-MD5 header) #419 (@jwodder)
- Set Content-MD5 header when uploading asset parts #409 (@jwodder)
- upload(): Only yield first "validating" status to pyout #417 (@jwodder)
- Add more logging when uploading & downloading #412 (@jwodder)
- Sleep increasing amounts while waiting for uploaded assets to validate #408 (@jwodder)
- Populate wasDerivedFrom #386 (@jwodder)
- FIX: use authorized checkout for actions #403 (@satra)
- enh: account for samples, sessions and participants #392 (@satra @jwodder @yarikoptic)
- Disabling logging to stderr while using pyout #401 (@jwodder)
- Cache file digests and check for change in digest when uploading #391 (@jwodder)
- Make existing="refresh" a synonym for "overwrite" for new upload #390 (@jwodder)
- RF/NF: Identifiable and BareAssetMeta to describe an asset anywhere #373 (@yarikoptic @jwodder)
- Give known_urls human-readable display strings #384 (@jwodder)
- Make
dandi download -i <instance>
run in a Dandiset download that Dandiset #383 (@jwodder) - Give
validate
command a--schema VERSION
option for validating assets and dandiset.yaml #379 (@jwodder) - Support downloading folders and latest Dandiset version #377 (@jwodder @yarikoptic)
- Add
include_metadata=False
parameter to asset-listing DandiAPIClient methods #378 (@jwodder @yarikoptic) - Discard invalid asset identifiers when extracting metadata #374 (@jwodder)
- Handle uploading already-present files in new API #347 (@jwodder)
- Adjust license metadata conversion #364 (@jwodder @yarikoptic)
- Give AssetMeta and DandiMeta
json_dict()
methods for better dictification #346 (@jwodder) - BF: allow to handle an item with multiple files #342 (@yarikoptic)
- ENH: devel upload dandiset metadata #341 (@yarikoptic)
- Try self.listFile() again on ConnectionErrors #335 (@jwodder)
- Add functions for validating metadata against JSON Schema and use in tests #338 (@jwodder)
- Fix
AttributeError: 'Resource' object has no attribute 'values'
#336 (@jwodder) - [DATALAD RUNCMD] Swap order of str and AnyUrl to be from specific to generic #334 (@yarikoptic)
- cleaning up biosample and participant #312 (@satra @jwodder)
- Tee all logs to user log directory #318 (@jwodder)
- Update for new API at https://api.dandiarchive.org/api #283 (@jwodder)
- Merge branch 'gh-320' (@yarikoptic)
- DOC: provide description for both DANDI_API_KEY and DANDI_GIRDER_API_KEY (@yarikoptic)
- ENH: log at DEBUG result.text from a failed response (@yarikoptic)
- ENH: allow for DeprecationWarning to come from requests_toolbelt, not our problem (@yarikoptic)
- Cache the individual functions called by validate_file() #446 (@jwodder)
- Simplify release workflow #444 (@jwodder)
- Check out dandi/dandi-api-datasets with direct
git clone
#443 (@jwodder) - Use iter_content() instead of raw.stream() #423 (@jwodder)
- Update Black #426 (@jwodder)
- Assorted code cleanup #422 (@jwodder)
- Use fscacher #397 (@jwodder)
- Use PUT endpoint to replace pre-existing assets on upload #394 (@jwodder)
- Support passing precomputed file digest to DandiAPIClient upload methods #388 (@jwodder)
- Set asset path via metadata only #382 (@jwodder)
- Add script for migrating Dandiset metadata #366 (@jwodder)
- Add workflow for running populate_dandiset_yaml.py #363 (@jwodder)
- Configure & apply isort via pre-commit #353 (@jwodder)
- Sort install_requires #351 (@jwodder)
- Set DJANGO_DANDI_SCHEMA_VERSION in docker-compose.yml #429 (@jwodder)
- Add test of upload of large file to new API #415 (@jwodder)
- Capture all dandi log messages when testing #413 (@jwodder)
- Add CI run with dev version of pynwb #399 (@jwodder @yarikoptic)
- Add sample Dandiset test fixture #380 (@jwodder @yarikoptic)
- Add DANDI_TESTS_PERSIST_DOCKER_COMPOSE envvar for reusing Docker containers across test runs #354 (@jwodder)
- Fix numpy dependency issue in tests #356 (@jwodder)
- Fetch Django test API token more robustly #323 (@jwodder)
- Require keyring backends to be initialized before running any tests #326 (@jwodder)
- Install hdf5 for Python 3.9 tests #315 (@jwodder)
- Close a file in a test case #314 (@jwodder)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Set chunk size on per-file basis; limit to 1000 chunks; upload files up to 400GB ATM #310 (@jwodder @yarikoptic)
- Autogenerate schema element titles #304 (@jwodder)
- Compare uploaded file size against what download headers report #306 (@jwodder)
- fix: rat to common lab rat #307 (@satra)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Function for converting NWB file to AssetMeta instance #226 (@jwodder @yarikoptic @satra)
- Temporary workaround: prevent upload of files larger than 67108864000 #303 (@yarikoptic)
- Add title to
Field
calls where necessary #299 (@AlmightyYakob @satra) - Replace askyesno() with click.confirm() #296 (@jwodder)
- Test against & support Python 3.9 #297 (@jwodder)
- ls - avoid workaround, more consistent reporting of errors #293 (@yarikoptic)
- add dandimeta migration #295 (@satra)
- Nwb2asset #294 (@satra)
- Some schema updates #286 (@jwodder @yarikoptic @dandibot auto@nil @satra)
- make most things optional #234 (@satra)
- @dandibot
- auto (auto@nil)
- Jacob Nesbitt (@AlmightyYakob)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Add rudimentary duecredit support using zenodo's dandi-cli DOI #285 (@yarikoptic)
- BF: add h5py.version into the list of tokens for caching #284 (@yarikoptic)
- change from disease to disorder #291 (@satra)
- Fix publish-schemata workflow #290 (@jwodder)
- updated just models #287 (@satra)
- Add workflow for publishing model schemata to dandi/schema #276 (@jwodder)
- DOC: strip away duplicate with the handbook information #279 (@yarikoptic)
- John T. Wodder II (@jwodder)
- Satrajit Ghosh (@satra)
- Yaroslav Halchenko (@yarikoptic)
- Support h5py 3.0 #275 (@jwodder)
- Include item path in "Multiple files found for item" message #271 (@jwodder)
- Copy files with
cp --reflink=auto
where supported #269 (@jwodder) - Make keyring lookup more flexible #267 (@jwodder)
- John T. Wodder II (@jwodder)
- John T. Wodder II (@jwodder)
- Files are now stored in temporary directories while downloading alongside metadata for use in resuming interrupted downloads
- Moved code for navigating Dandi Archive into new
dandiarchive
submodule - YAML output now sorts keys
dandiset.yaml
is no longer uploaded to the archive- Restrict h5py dependency to pre-v3.0
Primarily a range of bugfixes to ensure correct operation with current state of other components of DANDI, and use of the client on Windows OS.
- Initial DANDI schema files
- More tests for various code paths
download
: new option--download [assets,dandiset.yaml,all]
download
- account for changes in DANDI API (relevant only for released datasets, of which we do not have any "real" ones yet)upload
- various Windows specific fixes
Note: [0.6.3] was released under missing some of the fixes, so overall abandoned.
organize
treatment of paths on window (gh-204)
- CLI modules RF to avoid circular imports
pytest
default traceback style is short and shows 10 slowest tsts
download
of draft datasets from Windows (gh-202)upload
and other tests to account for new web UI
A variety of improvements and bug fixes, with major changes toward support of a new DANDI API, and improving DX (Development eXperience).
- Support for WiP DANDI API service.
download
now can download from "published" (versioned) dandisets. - A wide range of development enhancements
tox
setup- code linting via
tox
and on github workflows - testing against Python 3.8
- testing against a local instance of the archive via
docker-compose
, which is used against
- Locking of the dandiset during upload to prevent multiple sessions modifying the same dandiset in the archive
upload
now addsuploaded_by
field into the item metadata
download
was refactored and new UI also uses pyout (asupload
andls
) so there will be no tqdm progress bar indicators.download
also does "on-the-fly" integrity of the data as received (whenever corresponding metadata provided from the archive)--log-level
could be numeric or specified in lower-case- Unified YAML operations to
ruamel.yaml
- Avoid hardcoded URLs for dandiarchive components by querying
/server-info
- Improved logging for interactions with girder server
- minor compatibility issues across OSes
metadata
andorganize
: extract and useprobe_ids
metadata to disambiguate (if needed)organize
:--devel-debug
option to perform metadata extraction seriallyupload
:--allow-any-path
development option to allow upload of DANDI not yet 'unsupported' file types/paths- compute 4 digests (all are checksums ATM): md5, sha1, sha256, sha512 and upload as a part of the metadata record
download
:- use the "fastest" available digest (sha1) to validate correctness of the download
- follow redirections from arbitrary redirector (e.g., bit.ly). Succeeds only if the final URL is known to DANDI.
upload
: a crash while issuing a record to update about deleted empty item
organize
: disambiguation process now could use a flexible list of metadata fields (ATM onlyprobe_ids
andobj_id
)download
: handling of redirection - now usesHEAD
request instead ofGET
- invoke etelemetry only in command line (at click interface level)
- download of updated dandiset landing page url (
/dandiset
not/dandiset-meta
)
- support for downloading dandisets and files in the just released gui.dandiarchive.org UI refactor
validate
should no longer crash if loading metadata raises an exception
- the way URLs are mapped into girder instances. Now more regex driven
validate
now will report absentsubject_id
as an error
- Caching of multiple functions re-using the same cache -- it could have resulted in our case neural data types returned where full metadata was requested, or vice versa
- Tolerate outdated (before 2.0.0) etelemetry
- Ability to download (multiple) individual files (using URL from gui.dandiarchive.org having files selected)
DANDI_CACHE_CLEAR
->DANDI_CACHE=(ignore|clear)
env variable.- Sanitize and tollerate better incorrect
nwb_version
field.
- Test to not invoke Popen with shell=True to avoid stalling.
- Explicit
NO_ET=1
in workflows to avoid overreporting to etelemetry.
- Use of etelemetry for informing about new (or bad) versions
- Fixed saving into yaml so it is consistently not using a flow style (#59)
- All file names starting with a period are not considered (#63)
organize
-- now would add_obj-
key with the crc32 checksum of the nwb fileobject_id
if files could not be otherwise disambiguated- variety of small tune ups and fixes
organize
-- not implemented option--format
upload
-- not properly implemented option-d|--dandiset-path
Provides interfaces for a full cycle of dandiset preparation, registration, upload, and download.
- caching of read metadata and validation results for .nwb files.
Typically those take too long and as long as dandi and pynwb
versions do not change -- results should not change.
Set
DANDI_DEVEL
variable to forcefully reset all the caches.
- DEVELOPMENT.md provides more information about full local test setup of the dandiarchive, and description of environment variables which could assist in development.
organize
: organize files into hierarchy using metadata. ATM operates only in "simulate" mode using .json files dumped byls
- various refactorings and minor improvements (docs, testing, etc).
Improvements to ls
and upload
commands
ls
: include a list (with counts) of neural datatypes in the fileupload
:- ability to reupload files (by removing already existing ones)
- ability to "sync" (skip if not modified) to girder based on mtime and size
- CI (github actions): testing on macos-latest
- removed
hdmf !=
statement in setup.cfg to not confuse pypi.
upload
- assure string for an error message- mitigated crashes in pynwb if neural data type schema is not cached
in the file and requires import of the extension module. ATM the
known/handled only the
AIBS_ecephys
fromallensdk