Recent Releases of PyBIDS

PyBIDS - 0.19.0

DOI

Release notes

New feature release in the 0.19.x series.

This release adds plus signs to labels and suffixes, anticipating the release of BIDS 1.10.1 or 1.11.0 (whichever is next). Until the BIDS specification is updated and the bidsschematools package containing the updated schema is published, files with + will not validate, but can still be indexed with BIDSLayout(..., validate=False).

Several small fixes resolving issues with BIDS Stats Models are included, and complex JSON metadata (lists and objects) will now play more nicely with contexts where they need to be hashed.

Changes

  • FIX: Catch StopIteration on directory walk (#1124)
  • FIX: Ensure dotfiles are always filtered (#1123)
  • FIX: Copy entities dict before modifying run variable type (#1120)
  • FIX: Allow numpy arrays to treat PaddedInt like int (#1119)
  • FIX: Make lists and dicts hashable (#1112)
  • ENH: Allow plus signs in labels (#1117)
  • MNT: Remove formulaic upper bound (#1121)
  • MNT: Use tox-uv to ease lower bound checking, test on Python 3.13 (#1109)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.18.1...0.19.0

Scientific Software - Peer-reviewed - Python
Published by effigies about 1 year ago

PyBIDS - 0.18.1

Release notes

Bug-fix release in the 0.18.x series.

0.18.0 was missing package data, which went unnoticed because the workflow to publish to PyPI was also broken. These have been fixed, and we no longer alter global logging state.

With thanks to Fede Raimondo for the contribution.

Changes

  • FIX: Install package data (#1108)
  • FIX: Remove calls to root logger basicConfig (#1106)
  • MNT: Upload attested package to (test) PyPI (#1110)

New Contributors

  • @fraimondo made their first contribution in https://github.com/bids-standard/pybids/pull/1106

Full Changelog: https://github.com/bids-standard/pybids/compare/0.18.0...0.18.1

Scientific Software - Peer-reviewed - Python
Published by effigies over 1 year ago

PyBIDS - 0.18.0

DOI

Release notes

New feature release in the 0.18.x series.

No actual new features, but this version moves test data out of the installed distribution and ratchets its dependencies on Python and the Scientific Python stack, justifying a minor release.

Changes

  • FIX: Improve compatibility with cloud paths (#1094)
  • MNT: Transition to src/ layout (#1099)
  • MNT: Update minimum Python (3.9) and dependencies (SPEC 0 + 1yr) (#1092)
  • MNT: Update test for BIDS-MRS (#1089)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.17.2...0.18.0

Scientific Software - Peer-reviewed - Python
Published by effigies over 1 year ago

PyBIDS - 0.17.2

DOI

Release Notes

Bug-fix release in the 0.17.x series.

Changes

  • BUG: symlink dirs treated as files during indexing by @cookpa in https://github.com/bids-standard/pybids/pull/1087

New Contributors

  • @cookpa made their first contribution in https://github.com/bids-standard/pybids/pull/1087

Full Changelog: https://github.com/bids-standard/pybids/compare/0.17.1...0.17.2

Scientific Software - Peer-reviewed - Python
Published by effigies over 1 year ago

PyBIDS - 0.17.1

DOI

Release Notes

Bug-fix release in the 0.17.x series.

Mostly quiets down warnings generated by more recent versions of Pandas.

Changes

  • FIX: Create indices with object dtype (#1084)
  • MNT: Transfer validation tests to bids validator (#1081)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.17.0...0.17.1

Scientific Software - Peer-reviewed - Python
Published by effigies over 1 year ago

PyBIDS - 0.17.0

DOI

Release notes

Feature release in the 0.17.0 series.

This release includes experimental support for MRS (BEP22) datasets and universal_pathlib.

Changes

  • ENH: pathlib -> universal_pathlib to enable cloud (and other filesystem) support (#1074)
  • ENH: Add MRS entities, path patterns (#1075)
  • STY: No parentheses after assert (#1065)
  • MNT: Bump bids-examples from 47c4da1 to 401f4cf (#1073)
  • MNT: Fix typo newly found by codespell (#1066)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.16.5...0.17.0

Scientific Software - Peer-reviewed - Python
Published by effigies almost 2 years ago

PyBIDS - 0.16.5

DOI

Release notes

Bug-fix release in the 0.16.x series.

This release includes minor fixes, but reworks the testing infrastructure and resolves Python 3.12 incompatibilities.

What's Changed

  • FIX: Handle FileNotFoundError in BIDSLayout init when is_derivative=True and validate=False (#1049)
  • FIX: Add dwi root sbref, missing dwi entities to path patterns (#1059)
  • ENH: Update indexer to treat .zarr as files not dirs (#1046)
  • DOC: Deal with several warnings and errors in the doc build (#1061)
  • TST: Add bids-examples tests to cover ieeg, eeg, dwi (#1060)
  • MNT: Add Python 3.12 support (#1057)
  • MNT: Use tox to simplify testing environment setup (#1055)
  • MNT: Bump codecov/codecov-action from 3 to 4 (#1041)
  • MNT: Bump bids-examples from 1a000d6 to eff47f1 (#1039)
  • MNT: Bump bids-examples from b6e5234 to 1a000d6 (#1038)
  • MNT: Bump actions/upload-artifact from 3 to 4 (#1037)
  • MNT: Bump actions/setup-python from 4 to 5 (#1036)

New Contributors

  • @bpinsard made their first contribution in https://github.com/bids-standard/pybids/pull/1059
  • @akhanf made their first contribution in https://github.com/bids-standard/pybids/pull/1046
  • @alperkent made their first contribution in https://github.com/bids-standard/pybids/pull/1049

Full Changelog: https://github.com/bids-standard/pybids/compare/0.16.4...0.16.5

Scientific Software - Peer-reviewed - Python
Published by effigies about 2 years ago

PyBIDS - 0.16.4

Release Notes

Bug-fix release in the 0.16.x series.

This release resolves a bug likely introduced in 0.9.0 (when PyBIDS started using SQL), in which boolean metadata fields with values of False were read in as True.

CHANGES

  • REL: 0.16.4 (#1035) @tsalo
  • FIX: Ensure values of boolean metadata fields are preserved (#1034) @tsalo
  • Build(deps): Bump bids-examples from 064db11 to b6e5234 (#1031) @dependabot
  • [STY] pacify codespell (#1029) @Remi-Gau
  • Build(deps): Bump bids-examples from d039879 to 064db11 (#1028) @dependabot
  • Build(deps): Bump bids-examples from bfcc5c6 to d039879 (#1027) @dependabot
  • Bump bids-examples from 502c917 to bfcc5c6 (#1026) @dependabot
  • Bump bids-examples from 1c30c6e to 502c917 (#1025) @dependabot
  • Bump actions/checkout from 3 to 4 (#1024) @dependabot
  • Clearer BIDSValidation error message (#1023) @pierre-nedelec
  • Bump bids-examples from e857597 to 1c30c6e (#1021) @dependabot
  • Bump bids-examples from c557d1f to e857597 (#1019) @dependabot
  • [FIX] update config for PET tracer entity (#1018) @Remi-Gau
  • Bump bids-examples from 75968b9 to c557d1f (#1011) @dependabot

Scientific Software - Peer-reviewed - Python
Published by tsalo over 2 years ago

PyBIDS - 0.16.3

Release Notes

Bug-fix release in the 0.16.x series.

This release resolves a regression introduced in 0.16.2 when JSON sidecar files contain null values.

What's Changed

  • FIX: Drop JSON sidecar fields with null values during metadata indexing by @effigies in https://github.com/bids-standard/pybids/pull/1016

Full Changelog: https://github.com/bids-standard/pybids/compare/0.16.2...0.16.3

Scientific Software - Peer-reviewed - Python
Published by effigies almost 3 years ago

PyBIDS - 0.16.2

Release Notes

Bug-fix and performance release in the 0.16.x series. Notably, indexing is now significantly faster (2-2.5x).

CHANGES

  • ENH: Speed up indexing by bulk committing to database (#1013) @adelavega
  • Include indexer in add_derivatives call (#1009) @wasciutto
  • Bump bids-examples from 8550641 to 75968b9 (#1008) @dependabot
  • Bump bids-examples from e96b702 to 8550641 (#1007) @dependabot
  • Bump bids-examples from d8455af to e96b702 (#1005) @dependabot
  • Bump bids-examples from bc36231 to d8455af (#1003) @dependabot
  • CI: Use OIDC publishing instead of tokens (#1001) @effigies

Scientific Software - Peer-reviewed - Python
Published by adelavega almost 3 years ago

PyBIDS - 0.16.1

Release Notes

CHANGES

  • REL: 0.16.1 (#998) @effigies
  • MNT, DOC: fix imports in documentation scripts (#980) @DimitriPapadopoulos
  • FIX: Improve parsing of suffix/extension in non-BIDS files (#997) @effigies
  • MNT: update zenodo (#995) @DimitriPapadopoulos
  • CI: Update Python version for doc/sdist/wheel tests (#996) @effigies
  • ENH: Support use of Query enums in filter lists (#994) @pvandyken

Scientific Software - Peer-reviewed - Python
Published by release-drafter[bot] almost 3 years ago

PyBIDS - 0.16.0

DOI

Release Notes

New feature release in the 0.16.x series.

What's Changed

  • FIX: Adapt to SQLAlchemy 1.4+ (#985)
  • FIX: Fill na with zero for VIF (#976)
  • ENH: Only warn if missing values not explicitly set (#977)
  • ENH: Create run reports of whole graph / create HTML reports (#918)
  • ENH: Speed up Sparse to Dense BIDSVariable conversion (#969)
  • ENH: Update config to support motion and nirs modalities (#965)
  • REF: Add derivative subdatasets in a less ad hoc fashion (#954)
  • MNT: Update minimum dependencies, add CI job to test them (#987)
  • MNT: Drop jinja2/markupsafe constraints (#986)
  • MNT: Fix ruff issue E712 (#981)
  • MNT: A few Python3 updates (#971)
  • MNT: Drop Python 3.7 EOL (#974)
  • MNT: Fix repeat-word typo (#968)
  • MNT: Update vendored inflect to 5.6.2 (#961)
  • MNT: Fix flake8 issues found by ruff (#955)
  • MNT: Remove (large) unused PNG from doc directory (#962)
  • MNT: http:// → https:// (#960)
  • MNT: Update git submodules (#964)
  • CI: Drop codecov PyPI package and appveyor config (#979)
  • CI: Add Python 3.11 (#975)
  • CI: Replace custom update_submodules action with dependabot action (#967)
  • CI: fix errors caused by changes in examples (#963)
  • CI: Update parameters to gh-action-pypi-publish (#957)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.6...0.16.0

Scientific Software - Peer-reviewed - Python
Published by effigies about 3 years ago

PyBIDS - 0.15.6

DOI

Release Notes

Bug-fix release in 0.15.x series.

What's Changed

  • FIX: Exclude non-Hashables from set in .get(return_type='id') (#948)
  • FIX: Broken pattern matching (#936)
  • FIX: Coerce oversampling parameter in convolution to int (#929)
  • FIX: Allowing custom BIDS configuration files for derivative datasets (#922)
  • FIX: Address change in default pandas grouping behavior (#917)
  • ENH: Speed up BIDSLayout.get(return_type='id', ...) (#942)
  • ENH: Update default anat filename patterns in config (#933)
  • DOC: Make clear how to ignore folders (#945)
  • DOC: Fix tutorial link in README (#944)
  • DOC: Mention conda installation in README (#928)
  • MNT: Update git submodules (#946 + #943 + #932)
  • MNT: Move package metadata to pyproject.toml, unvendor versioneer (#907)
  • MNT: Bump formulaic max version constraint to include 0.5.x (#916)

New Contributors

  • @sanjayankur31 made their first contribution in https://github.com/bids-standard/pybids/pull/916
  • @thewilliamdrew made their first contribution in https://github.com/bids-standard/pybids/pull/922
  • @sarthakpati made their first contribution in https://github.com/bids-standard/pybids/pull/928

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.5...0.15.6

Scientific Software - Peer-reviewed - Python
Published by effigies about 3 years ago

PyBIDS - 0.15.5

DOI

Release Notes

Bug-fix release in 0.15.x series.

What's Changed

  • FIX: Use kwargs for DataFrame.pivot() (#913)
  • ENH: Add transformation history to BIDSStatsModelsNodeOutput (#905)
  • ENH: Update examples, add to sphinx, and convert to .md (#908)
  • ENH: More helpful __repr__ in modeling (#906)
  • MNT: Update git submodules (#911)
  • MNT: Bump peter-evans/create-pull-request from 3 to 4 (#904)
  • CI: Automatically update GitHub Actions in the future (#903)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.4...0.15.5

Scientific Software - Peer-reviewed - Python
Published by effigies over 3 years ago

PyBIDS - 0.15.3

DOI

What's Changed

  • FIX: Test and update sync_kwargs class variable on transformations by @jdkent in (https://github.com/bids-standard/pybids/pull/891)
  • FIX: Filtering of DM columns by @adelavega in (https://github.com/bids-standard/pybids/pull/892)
  • ENH: Enable using participants.tsv, scans.tsv & session.tsv values as grouping variables by @adelavega in (https://github.com/bids-standard/pybids/pull/894)
  • REF: Rename incoming single contrast column to intercept by @adelavega in (https://github.com/bids-standard/pybids/pull/886)
  • DOC: Update references to nistats with references to nilearn in docs by @alexisthual in (https://github.com/bids-standard/pybids/pull/882)
  • TST: some sort of QA for derivatives' defaultpathpatterns by @GalBenZvi in (https://github.com/bids-standard/pybids/pull/879)
  • MNT: Codespell errors by @effigies in (https://github.com/bids-standard/pybids/pull/885)
  • CI: Update actions versions by @effigies in (https://github.com/bids-standard/pybids/pull/897)

New Contributors

  • @GalBenZvi made their first contribution in https://github.com/bids-standard/pybids/pull/879
  • @alexisthual made their first contribution in https://github.com/bids-standard/pybids/pull/882

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.2...0.15.3

Scientific Software - Peer-reviewed - Python
Published by effigies over 3 years ago

PyBIDS - 0.15.2

DOI

Release Notes

Bug-fix release in 0.15.x series.

Changes

  • FIX: Synchronize kwargs in transformations, e.g., in Assign (#836)
  • FIX: Add HRF derivatives to variable collection when created (#838)
  • FIX: Interpolate derivative pipeline name in error message (#847)
  • FIX: Match only within relative path when indexer is validating (#859)
  • FIX: Rename intercept in DummyContrast (#866)
  • FIX: Add variables to correct Node in loadtsvvariables (#872)
  • FIX: Repair variable IO so scans.tsv is found (#869)
  • FIX: Restore automodel functionality (#853)
  • FIX: Allow pybids layout --derivatives to be a boolean flag or accept a path (#848)
  • ENH: Add default path patterns to derivatives.json (#605)
  • ENH: Rename statsmodels contrasts if they cannot be uniquely identified downstream (#861)
  • ENH: Make intercept-only first level models throw a NotImplementedError (#854)
  • ENH: Update config to support microscopy, qMRI, PET, ASL (#840)
  • TEST: Add bids-examples submodule and bids_examples pytest fixture (#842)
  • TEST: Add tests for default path patterns (#846)
  • TEST: Update bids-examples and remove expected failing tests (#845)
  • MNT: Update git submodules (#874)
  • MNT: Add workflow top automatically update submodule (#870)
  • MNT: Remove deprecated no dot config (#841)
  • CI: Upgrade several GitHub actions to v3 (#867)
  • CI: Add cron jobs to avoid sneaky failures during low activity periods (#860)

New Contributors

  • @jmumford made their first contribution in https://github.com/bids-standard/pybids/pull/869
  • @arovai made their first contribution in https://github.com/bids-standard/pybids/pull/847

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.1...0.15.2

Scientific Software - Peer-reviewed - Python
Published by effigies almost 4 years ago

PyBIDS - 0.15.1

DOI

Release Notes

Bug-fix release in the 0.15.x series.

Changes

  • RF/FIX: Decompose filter construction for special queries and lists (#826)
  • ENH: Relax group_by rules, allowing any entity to be used (#829)
  • MNT: Replace deprecated DataFrame.append call (#833)
  • DOC: Fresh rerun of entire pybids_tutorial.ipynb (#832)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.15.0...0.15.1

Scientific Software - Peer-reviewed - Python
Published by effigies about 4 years ago

PyBIDS - 0.14.1

DOI

Release Notes

Bug-fix release in the 0.14.x series.

Changes

  • RF/FIX: Decompose filter construction for special queries and lists by @effigies in https://github.com/bids-standard/pybids/pull/826

Includes the following back-ports from 0.15.0:

  • FIX: Clarify exception message (#806)
  • FIX: Catch UnicodeDecodeErrors along with JSONDecodeErrors for better reporting (#796)
  • FIX: Accept paths/strings for layout configuration files (#799)
  • ENH: Add __main__ to allow python -m bids to run CLI (#794)

Full Changelog: https://github.com/bids-standard/pybids/compare/0.14.0...0.14.1

Scientific Software - Peer-reviewed - Python
Published by effigies about 4 years ago

PyBIDS - 0.15.0

DOI

Release Notes

New feature release in the 0.15.x series.

Downstream tools should be aware of a potentially breaking, albeit long-demanded, change introduced in #819. Run indices are now stored so that the integers that come out retain any zero-padding that was found during parsing.

This release also introduces the bids.ext namespace package that allows independent packages to install modules in this namespace. This is an infrastructural change that will allow some components to be separately managed and follow a different development pace.

Changes

  • FIX: Allow grouping by run and session when entities are undefined (#822)
  • FIX: Clarify exception message (#806)
  • FIX: Catch UnicodeDecodeErrors along with JSONDecodeErrors for better reporting (#796)
  • FIX: Accept paths/strings for layout configuration files (#799)
  • FIX: Small typo: repeated word in docstring (#793)
  • ENH: Retain zero-padding in run entities while preserving integer queries and comparisons (#819)
  • ENH: Add bids.ext namespace package for subpackages (#820)
  • ENH: Handle wildcards in model X (#810)
  • ENH: Implement automatic detection of derivative data (#805)
  • ENH: Add new Query for optional entities (#809)
  • ENH: Add main to allow python -m bids to run CLI (#794)
  • REF: Improve modularization of bids.reports (#617)
  • DOC: Link from sphinx documentation to notebook tutorials. (#797)
  • MNT: Test on Python 3.10, various CI updates (#824)
  • MNT: Avoid jinja2 v3 until nbconvert handles breakages (#823)

New Contributors

  • @kousu made their first contribution in https://github.com/bids-standard/pybids/pull/791
  • @jstaph made their first contribution in https://github.com/bids-standard/pybids/pull/806
  • @pvandyken made their first contribution in https://github.com/bids-standard/pybids/pull/805

Full Changelog: https://github.com/bids-standard/pybids/compare/0.14.0...0.15.0

Scientific Software - Peer-reviewed - Python
Published by effigies about 4 years ago

PyBIDS - 0.14.0

DOI

Release Notes

New feature release in the 0.14.x series.

This release includes a significant refactor of BIDS Statistical Models, replacing the bids.analysis module with bids.modeling.

Changes to bids.layout are minimal, and we do not anticipate API breakage.

Changes

  • FIX: LGTM.com warning: Implicit string concatenation in a list (#785)
  • FIX: Take the intersection of variables and Model.X, ignoring missing variables (usually contrasts) (#764)
  • FIX: Associate "ismetadata" with Tag, not Entity; and only return non-metadata entries for core Entities in ``get(returntype='id')`` (#749)
  • FIX: Only include regressors if they are TSV (#752)
  • FIX: ensure forcedense=True runs todense only on sparse variables (#745)
  • FIX: get unique, with conflicting meta-data (#748)
  • FIX: Clean up some deprecation and syntax warnings (#738)
  • ENH: Add pybids upgrade command (#654)
  • ENH: Add Lag transformation (#759)
  • ENH: Use indirect transformations structure (#737)
  • ENH: Add visualization for statsmodel graph (#742)
  • ENH: Permit explicit intercept (1) in Contrasts and DummyContrasts (#743)
  • ENH: Add meta-analysis model type (#731)
  • ENH: Contrast type is now test (#733)
  • REF: Use pathlib.Path internally when possible (#746)
  • REF: Remove group_by from edges and add filter (#734)
  • REF: Improved/refactored StatsModels module (#722)
  • MNT: Make sure codespell skips .git when run locally (#787)
  • MNT: LGTM.com recommendations (#786)
  • MNT: Better codespell configuration (#782)
  • MNT: Constrain formulaic version to 0.2.x . (#784)
  • MNT: Update versioneer: 0.18 → 0.20 (#778)
  • MNT: Add "codespell" tool to CI checks to catch typos sooner (#776)
  • MNT: Disable bids-nodot mode (#769)
  • MNT: Send codecov reports again (#766)
  • MNT: Set minimum version to Python 3.6 (#739)

Scientific Software - Peer-reviewed - Python
Published by effigies over 4 years ago

PyBIDS - 0.13.2

DOI

Release Notes

Bug-fix release in the 0.13 series.

CHANGES

  • FIX/TEST: gunzip regressors.tsv.gz, allow timeseries.tsv as well (#767)
  • FIX: run is required (#762)
  • MNT: Patch 0.13.x maint branch (#763)

Scientific Software - Peer-reviewed - Python
Published by effigies almost 5 years ago

PyBIDS - 0.13.1

DOI

Release Notes

Bug-fix release in the 0.13 series. With thanks to Lea Waller for contributions.

CHANGES

  • ENH: Improve get performance (#723)
  • STY: Fix typos identified by codespell (#720)
  • TEST: dataset-level model spec retrieval (#693)

Scientific Software - Peer-reviewed - Python
Published by effigies about 5 years ago

PyBIDS - 0.13

Release Notes

Minor new feature and bugfix release in the 0.13 series.

CHANGES

Version 0.13 (April 14, 2021)

FIX: Resample to n_vols for sampling_rate == 'TR' (#713)
FIX: Lazily load metadata, skip when missing data files are missing sidecars (#711)
FIX: Ensure indicator matrix is boolean when indexing in Split transformation (#710)
FIX: Correctly pair metadata file when creating association records (#699)
FIX: Resolve side-effects of new testfile in #682 (#695)
FIX: BIDSLayout -- TypeError: unhashable type: 'dict' (#682)
ENH: Add res/den entities to derivatives.json (#709)
ENH: Update datatypes (#708)
ENH: add more informative validation error message for dataset_description.json (#705)
ENH: Add flip, inv, mt, and part entities (#688)
CI: Run packaging tests on main repository only (#696)
CI: Migrate to GH actions (#691)

Scientific Software - Peer-reviewed - Python
Published by release-drafter[bot] about 5 years ago

PyBIDS - 0.12.3

Release Notes

Minor new feature and bugfix release in the 0.12.x series.

CHANGES

  • FIX: Require aligned input for logical operations (#649) @adelavega
  • ENH: Incremental variable loading in Step setup (#672) @tyarkoni

Scientific Software - Peer-reviewed - Python
Published by release-drafter[bot] over 5 years ago

PyBIDS - 0.12.2

DOI

Release Notes

Bug-fix release in 0.12.x series.

Changes

  • FIX: Support nibabel < 3 when calculating time series length (#669)
  • FIX: Sanitize single derivative Path passed to BIDSLayout (#665)
  • FIX: Force UTF-8 encoding in indexmetadata (#663)
  • FIX: Explicitly convert to HTML when testing tutorial (nbconvert 6.0 breakage) (#664)

Scientific Software - Peer-reviewed - Python
Published by effigies over 5 years ago

PyBIDS - 0.12.0

DOI

Release Notes

New feature release for the 0.12.x series.

This release includes significant speedups for BIDSLayout creation and improves handling of GIFTI and CIFTI-2 derivative files.

Changes

  • FIX: Remove need to eager load associations (#642)
  • ENH: Fetch number of time points from NIfTI, GIFTI or CIFTI-2 (#637)
  • ENH: Catch any NIfTI/GIFTI (incl. CIFTI-2) files as BIDSImageFiles (#638)

Scientific Software - Peer-reviewed - Python
Published by effigies almost 6 years ago

PyBIDS - 0.11.1

DOI

Release Notes

Bug-fix release in the 0.11.x series

With thanks to Mathias Goncalves for finding and fixing the issue.

Changes

  • FIX: Preserve get logic when using custom config (#636)

Scientific Software - Peer-reviewed - Python
Published by effigies almost 6 years ago

PyBIDS - 0.11.0

DOI

Release Notes

New feature release in the 0.11.x series.

One significant change in this PR is to add the configuration option extension_initial_dot. Setting to True will adopt the future default behavior of returning extension entities with an initial dot (.).

Other notable changes include a significant refactoring of the Analysis module, and a number of small improvements to error reporting that should add up to simpler debugging for users and developers.

Changes

  • FIX: Post-fix And and Or transformations with underscore (#628)
  • FIX: made validatefile work on Windows (#627)
  • FIX: Scale transformation fails if passed constant input. (#614)
  • FIX: Certain queries involving multiple layouts are very slow (#616)
  • FIX: Bug in get() when passing enums as extensions (#612)
  • FIX: Bug in BIDSDataFile.get_df() (#611)
  • FIX: Make entity assertions Python 3.5-safe (#606)
  • FIX: BIDSLayout.buildpath to respect absolutepaths. (#580)
  • ENH: Adds OS-level file copying instead of reading/writing via Python (#613)
  • ENH: Add explicit warning message when users pass in filters as a dictionary keyword (#623)
  • ENH: Introduce PyBIDS exceptions (#615)
  • ENH: Add example bids and derivatives dataset_description.json strings to error messages (#620)
  • ENH: Improved handling of invalid filters (#610)
  • ENH: Add method to generate report from list of files (#607)
  • ENH: Pass kwargs from BIDSImageFile.get_image() to nibabel.load (#601)
  • ENH: Model spec module and associated utilities (#548)
  • ENH: Add BIDSMetadata dictionary to report file with missing metadata (#593)
  • RF: Add extension_initial_dot config option to transition to extension entity with initial dot (#629)
  • MNT: Automatically deploy docs (#598)
  • CI: Drop --pre check for Python 3.5 (#621)
  • CI: Test on Python 3.8 (#594)

Scientific Software - Peer-reviewed - Python
Published by effigies almost 6 years ago

PyBIDS - 0.10.2

DOI

Release Notes

Bug fix release in the 0.10.x series.

Changes

  • FIX: Add Replace as exception to recursive JSON conversion (#589)

Scientific Software - Peer-reviewed - Python
Published by adelavega about 6 years ago

PyBIDS - 0.10.1

DOI

Release Notes

Bug fix release in the 0.10.x series.

This release just makes available some of the latest minor fixes and improvements.

Changes

  • FIX: Replace os.path.sep with fwdslash because bids validator hardcodes fwd (#582)
  • FIX: Refactor of build_path and inner machinery (#574)
  • FIX: Domain entity, and slow __repr__ (#569)
  • FIX: "strict" helptext in BIDSLayout.write_contents_to_file (#566)
  • FIX: typos in helpstrings and comments (#564)
  • FIX: Correct term "caret" to "angle bracket" in helpstrings (#565)
  • ENH: Extend build_path to generate lists of files (#576)
  • ENH: Add one parametric test of BIDSLayout.build_path (#577)
  • ENH: Enable partial metadata indexing (#560)
  • ENH: Upscale to collection sampling rate prior to resampling (#568)
  • ENH: Calculate default sampling rate for SparseRunVariable.to_dense (#571)
  • MNT: Add .vscode (for Visual Studio Code) to .gitignore (#562)
  • MNT: Ignore pip-wheel-metadata (#581)
  • DOC: Remove Python 2 support statement, now that v0.10.0 has dropped it (#561)

Scientific Software - Peer-reviewed - Python
Published by oesteban over 6 years ago

PyBIDS - 0.10.0

DOI

Release Notes

New feature release in the 0.10.x series.

This release removes Python 2 support.

Changes

  • ENH: Helpful error for db argument mismatch, and add classmethod loadfromdb (#547)
  • ENH: Add Resample transformation (#373)
  • ENH: Save BIDSLayout + Derivatives to folder (with init arguments) (#540)
  • ENH: Adds support for NONE and ANY query Enums (#542)
  • ENH: Transformation-related improvements (#541)
  • ENH: FEMA contrasts (#520)
  • STY: Minor PEP8 Fixes (#545)
  • MNT: Various (#543)
  • MNT: Remove Python 2.7 support (#524)
  • CI: Configure Circle Artifact Redirector (#544)

Scientific Software - Peer-reviewed - Python
Published by effigies over 6 years ago

PyBIDS - 0.9.5

DOI

Release Notes

Bug fix release in the 0.9.x series.

Final planned release with Python 2 support.

With thanks to new contributors Ashley Gillman, Satra Ghosh and Hans Johnson.

Changes

  • FIX: Filter before downsampling (#529)
  • FIX: Copy input dict in replace_entities; Typos in default_path_patterns (#517)
  • FIX: Use string dtype for all entities when using regex search (#511)
  • FIX: Update Sphinx docs for 2.2 (#507)
  • ENH: Enable automatic derivative database caching (#523)
  • ENH: Raise ValueError if BIDSLayout.build_path fails to match any pattern (#508)
  • RF: Subclass analysis Node from object (#528)
  • DOC: Unify docstring format (#499)
  • DOC: Auto-generate stubs (#513)
  • STY: .sql is a misleading extension to sqlite files (#531)
  • STY: General cleanups (#526, #527)

Scientific Software - Peer-reviewed - Python
Published by effigies over 6 years ago

PyBIDS - 0.9.4

DOI

Release Notes

Bug fix release in the 0.9.x series.

With thanks to new contributor Jon Haitz Legarreta.

Changes

  • FIX: Ignore default_ignore paths by default (#495)
  • FIX: Filter and sort on scalar metadata in get_nodes() (#488)
  • FIX: Automatically sanitize dtype of get() arguments (#492)
  • FIX: Check that default_path_patterns is not None before using in build_path (#485)
  • FIX: Add CBV and phase modalities to func datatype path pattern (#479)
  • FIX: Drop bold suffix constraint from echo entity (#477)
  • ENH: Enforce dtypes on spec-defined columns when reading in DFs (#494)
  • ENH: Validate built paths (#496)
  • ENH: Update contrast enhancing agent query name (ceagent) (#497)
  • DOC: Add citation information to README (#493)
  • DOC: Improve wording in Python notebook example comment (#484)
  • DOC: Finish sentence in Python Notebook example documentation (#483)
  • DOC: Add JOSS Badge (#472)
  • STY: Apply syntax highlight to Python notebook example doc (#482)
  • MAINT: Move setup configuration to setup.cfg (#448)
  • MAINT: Additional Zenodo metadata (#470)
  • MAINT/CI: Use extras_require to declare dependencies for tests (#471)

Scientific Software - Peer-reviewed - Python
Published by effigies over 6 years ago

PyBIDS - 0.9.3

DOI

Release Notes

This version includes a number of minor fixes and improvements, one of which breaks the existing API (by renaming two entities; see #464).

With thanks to new contributor Remi Gau.

Changes

  • FIX: Avoid DB collisions for redundant entities (#468)
  • FIX: Minor changes to entity names in core spec (#464)
  • FIX: Make bids.reports work properly with .nii images (#463)
  • CI: Execute notebook in Travis (#461)
  • ENH: More sensible __repr__ for Tag model (#467)

Scientific Software - Peer-reviewed - Python
Published by release-drafter[bot] almost 7 years ago

PyBIDS - 0.9.2

DOI

Release Notes

This version includes a number of minor fixes and improvements. EEG files are better handled, and BIDSLayout and BIDSFile play more nicely with Path-like objects.

With thanks to new contributor Cecile Madjar.

Changes

  • FIX: Instantiate ignore/force_index after root validation (#457)
  • FIX: Restore <entity>=None query returning files lacking the entity (#458)
  • ENH: Add BIDSJSONFile (#444)
  • ENH: Add BIDSFile.__fspath__ to work with pathlib (#449)
  • ENH: Add eeg datatype to layout config (#455)
  • RF: Remove unused kwargs to BIDSFile (#443)
  • DOC: Improve docstring consistency, style (#443)
  • DOC: Address final JOSS review (#453)
  • STY: PEP8 Fixes (#456)
  • MAINT: Set name explicitly in setup.py (#450)

Scientific Software - Peer-reviewed - Python
Published by effigies almost 7 years ago

PyBIDS - 0.9.1

DOI

Release notes

Hotfix release:

  • Fixed package deployment issues (#446)
  • Updated author list (#447)

Thanks to new contributors Erin Dickie, Chadwick Boulay and Johannes Wennberg.

Scientific Software - Peer-reviewed - Python
Published by effigies about 7 years ago

PyBIDS - 0.9.0

DOI

Release notes

Version 0.9 replaces the native Python backend with a SQLite database managed via SQLAlchemy. The layout module has been refactored (again), but API changes are minimal. This release also adds many new features and closes a number of open issues.

API CHANGES/DEPRECATIONS: * The extensions argument has now been banished forever; instead, use extension, which is now defined as a first-class entity. The former will continue to work until at least the 0.11 release (closes #404). * Relatedly, values for extension should no longer include a leading ., though this should also continue to work for the time being. * The BIDSLayout init argument index_associated has been removed as the various other filtering/indexing options mean there is longer a good reason for users to manipulate this. * bids.layout.MetadataIndex no longer exists. It's unlikely that anyone will notice this. * BIDSLayout.get_metadata() no longer takes additional entities as optional keyword arguments (they weren't necessary for anything). * Direct access to most BIDSFile properties is discouraged, and in one case is broken in 0.9 (for .metadata, which was unavoidable, because it's reserved by SQLAlchemy). Instead, users should use getters (get_metadata, get_image, get_df, etc.) whenever possible.

NEW FUNCTIONALITY: * All file and metadata indexing and querying is now supported by a relational (SQLite) database (see #422). While this has few API implications, the efficiency of many operations is improved, and complex user-generated queries can now be performed via the SQLAlchemy .session stored in each BIDSLayout. * Adds .save() method to the BIDSLayout that saves the current SQLite DB to the specified location. Conversely, passing a filename as database_file at init will use the specified store instead of re-indexing all files. This eliminates the need for a pickling strategy (#435). * Related to the above, the BIDSLayout init adds a reset_database argument that forces reindexing even if a database_file is specified. * The BIDSLayout has a new index_metadata flag that controls whether or not the contents of JSON metadata files are indexed. * Added metadata flag to BIDSLayout.to_df() that controls whether or not metadata columns are included in the returned pandas DataFrame (#232). * Added get_entities() method to BIDSLayout that allows retrieval of all Entity instances available within a specified scope (#346). * Adds drop_invalid_filters argument to BIDSLayout.get(), enabling users to (optionally) ensure that invalid filters don't clobber all search results (#402). * BIDSFile instances now have a get_associations() method that returns associated files (see #431). * The BIDSFile class has been split into a hierarchy, with BIDSImageFile and BIDSDataFile subclasses. The former adds a get_image() method (returns a NiBabel image); the latter adds a get_df() method (returns a pandas DF). All BIDSFile instances now also have a get_entities() method.

BUG FIXES AND OTHER MINOR CHANGES: * Metadata key/value pairs and file entities are now treated identically, eliminating a source of ambiguity in search (see #398). * Metadata no longer bleeds between raw and derivatives directories unless explicitly specified (see #383). * BIDSLayout.get_collections() no longer drops user-added columns (#273). * Various minor fixes/improvements/changes to tests. * The tutorial Jupyter notebook has been fixed and updated to reflect the latest changes.

Scientific Software - Peer-reviewed - Python
Published by tyarkoni about 7 years ago

PyBIDS - 0.8.0

DOI

Release notes

Version 0.8 refactors much of the layout module. It drops the grabbit dependency, overhauls the file indexing process, and features a number of other improvements. However, changes to the public API are very minimal, and in the vast majority of cases, 0.8 should be a drop-in replacement for 0.7.*.

API-breaking changes

  • Changes to (rarely-used) BIDSLayout initialization arguments:
    • include and exclude have been replaced with ignore and force_index. Paths passed to ignore will be ignored from indexing; paths passed to force_index will be forcibly indexed even if they are otherwise BIDS-non-compliant. force_index takes precedence over ignore.
  • Most querying/selection methods add a new scope argument that controls scope of querying (e.g., 'raw', 'derivatives', 'all', etc.). In some cases this replaces the more limited derivatives argument.
  • No more domains: with the grabbit removal (see below), the notion of a 'domain' has been removed. This should impact few users, but those who need to restrict indexing or querying to specific parts of a BIDS project should be able to use the scope argument more effectively.

Other changes

  • FIX: Path indexing issues in get_file() (#379)
  • FIX: Duplicate file returns under certain conditions (#350)
  • FIX: Pass new variable args as kwargs in split() (#386) @effigies
  • TEST: Update naming conventions for synthetic dataset (#385) @effigies
  • REF: The grabbit package is no longer a dependency; as a result, much of the functionality from grabbit has been ported over to pybids.
  • REF: Required functionality from six and inflect is now bundled with pybids in bids.external, minimizing external dependencies.
  • REF: Core modules have been reorganized. Key data structures and containers (e.g., BIDSFile, Entity, etc.) are now in a new bids.layout.core module.
  • REF: A new Config class has been introduced to house the information found in bids.json and other layout configuration files.
  • REF: The file-indexing process has been completely refactored. A new hierarchy of BIDSNode objects has been introduced. While this has no real impact on the public API, and isn't really intended for public consumption yet, it will in future make it easier for users to work with BIDS projects in a tree-like way, while also laying the basis for a more sensible approach to reading and accessing associated BIDS data (e.g., .tsv files).
  • MNT: All invocations of pd.read_table have been replaced with read_csv.

Scientific Software - Peer-reviewed - Python
Published by tyarkoni over 7 years ago

PyBIDS - 0.7.1

DOI

Release Notes

This is a bug fix release in the 0.7 series. The primary API change is improved handling of Path objects.

CHANGES

  • FIX: Path validation (#342)
  • FIX: Ensure consistent entities at all levels (#326)
  • FIX: Edge case where a resampled column was too-long-by-one (#365)
  • FIX: Use BIDS metadata for TR over nii header (#357)
  • FIX: Add check for run_info to be a list, pass run_info in correct position. (#353)
  • FIX: If sampling_rate is 'auto', set to first rate of DenseRunVariables (#351)
  • FIX: Get the absolute path of the test data directory (#347)
  • FIX: Update reports to be 0.7-compatible (#341)
  • ENH: Rename sr variable to more intuitive interval (#366)
  • ENH: Support pathlib.Path and other str-castable types (#307)
  • MNT: Updates link to derivative config file in notebook (#344)
  • MNT: Add bids-validator dependency (#363)
  • MNT: Require pandas >= 0.23.0 (#348)
  • MNT: Bump grabbit version (#338)
  • CI: Ignore OSX Python 3.5 failures (#372)
  • CI: Build with Python 3.7 on Travis, deploy on 3.6 (#337)

Scientific Software - Peer-reviewed - Python
Published by effigies over 7 years ago

PyBIDS - 0.7.0

DOI

Release notes

This is a major, API-breaking release. It introduces a large number of new features, bug fixes, and improvements.

API-BREAKING CHANGES: * A number of entities (or keywords) have been renamed to align more closely with the BIDS specification documents: * 'type' becomes 'suffix' * 'modality' becomes 'datatype' * 'acq' is removed (use 'acquisition') * 'mod' becomes 'modality' * The following directories are no longer indexed by default: derivatives/, code/, stimuli/, models/, sourcedata/. They must be explicitly included using the 'include' initialization argument. * The grabbids module has been renamed to layout and BIDSLayout.py and BIDSvalidator.py are now layout.py and validation.py, respectively. * The BIDS validator is now enabled by default at layout initialization (i.e., validate=True) * The exclude initialization argument has been removed. * BIDSLayout.parse_entities utility has been removed (use the more flexible parse_file_entities). * Calls to .get() now return BIDSFile objects, rather than namedtuples, by default (#281). The BIDSFile API has been tweaked to ensure backwards incompatibility in nearly all cases. * Naming conventions throughout the codebase have been updated to ensure consistency with the BIDS specs. This is most salient in the analysis module, where snake_case has been replaced with CamelCase throughout.

NEW FEATURES: * File metadata (i.e., in JSON sidecars) is now searchable by default, and behaves just like native BIDS entities (e.g., metadata keys can be passed as arguments to .get() calls) * A new BIDSFile wrapper provides easy access to .metadata and .image * HRF convolution is now supported via bundling of nistats' hemodynamicmodels module; convolution is handled via the `convolveHRF` transformation. * Named config paths that customize how projects are processed can be added at run-time (#313) * Preliminary support for BIDS-Derivatives RC1 (mainly core keywords)

MINOR IMPROVEMENTS AND BUG FIXES: * Specifying 'derivatives' in a path specification now automatically includes 'bids' (#246) * Zenodo DOIs are now minted with new releases (#308) * Variable loading via loadvariables can now be done incrementally * Expanded and improved path-building via `layout.buildpath() *getcollectionsno longer breaks whenmerge=Trueand the list is empty (#202) * Layout initialization no longer fails whenvalidate=True` (#222) * The autocontrasts field in the modeling tools now complies with the BIDS-Model spec (#234) * Printing a BIDSFile now provides more useful information, including path (#298) * Resample design matrix to 1/TR by default (#309) * Fix the Sum transformation * Ensure that resampling works properly when a sampling rate is passed to get_design_matrix (#297) * Propagate derivative entities into top-level dynamic getters (#306) * Deprecated get_header call in nibabel removed (#300) * Fix bug in entity indexing for BIDSVariableCollection (#319) * Exclude modules with heavy dependencies from root namespace for performance reasons (#321) * Fix bug that caused in-place updating of input selectors in Analysis objects (#323) * Add a DropNA transformation (#325) * Add a get_tr() method to BIDSLayout (#327) * Add entity hints when calling get() with a target argument (#328) * Improved test coverage

Scientific Software - Peer-reviewed - Python
Published by tyarkoni over 7 years ago

PyBIDS - 0.6.5

Release Notes

This release includes a number of documentation improvements, BIDS-MEG support, as well as some bug fixes.

CHANGES

  • FIX: Do not drop rows of NaNs (#217) @adelavega
  • FIX: Declare run as having integer type (#236) @effigies
  • ENH: MEG support (#229) @jasmainak
  • REF: rename grabbids to layout, closes #228 (#230) @ltirrell
  • DOC: add .get_collection examples to tutorial (#219) @Shotgunosine
  • DOC: Fix link in README to point to documentation (#223) @KirstieJane
  • DOC: Add binder link for tutorial (#225) @KirstieJane
  • MAINT: Restore "analysis" installation extra (#218) @yarikoptic
  • MAINT: Do not import tests in __init__.py (#226) @tyarkoni

Scientific Software - Peer-reviewed - Python
Published by release-drafter[bot] almost 8 years ago

PyBIDS - 0.6.4

Bugfix release (see #211 for details).

Scientific Software - Peer-reviewed - Python
Published by tyarkoni almost 8 years ago

PyBIDS - 0.6.3

Fixed author email in setup.py

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo almost 8 years ago

PyBIDS - 0.6.2

Scientific Software - Peer-reviewed - Python
Published by tyarkoni almost 8 years ago

PyBIDS - 0.6.0

This is an API-breaking release that implements a new BIDSLayout initialization pattern.

Scientific Software - Peer-reviewed - Python
Published by tyarkoni almost 8 years ago

PyBIDS - 0.5.1

Hotfix release:

  • Includes data files omitted from 0.5.0 release.
  • Improves testing of installation.

Scientific Software - Peer-reviewed - Python
Published by effigies about 8 years ago

PyBIDS - 0.5.0 (bidsy brontosaurus)

This is a major release that includes several new variable-loading, analysis construction, and report generation modules.

Scientific Software - Peer-reviewed - Python
Published by tyarkoni about 8 years ago

PyBIDS - 0.4.2

  • fix for parsing "type" suffixes

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo over 8 years ago

PyBIDS - 0.4.1

  • Restoring Python 2 compatibility (https://github.com/INCF/pybids/pull/86)

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo over 8 years ago

PyBIDS - 0.4.0

  • fixes to fixed bval/bvec getters (https://github.com/INCF/pybids/pull/62)
  • better handling of text file encoding (https://github.com/INCF/pybids/pull/71)
  • improve performance by ignoring non-BIDS files (https://github.com/INCF/pybids/pull/65)
  • support of echo filename keys (https://github.com/INCF/pybids/pull/76)
  • support for echo difference fieldmaps with only one magnitude file (https://github.com/INCF/pybids/pull/81)
  • better error reporting (https://github.com/INCF/pybids/pull/79)

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo over 8 years ago

PyBIDS - 0.3.0

  • Added get_bval/bvec/events functions
  • Fixed a bug in get_metadata()

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo almost 9 years ago

PyBIDS - 0.2.1

  • Fixing deployment

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo almost 9 years ago

PyBIDS - 0.2.0

  • Refactor of the function for finding nearest files via inheritance rule
  • bugfixes

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo almost 9 years ago

PyBIDS - 0.1.0

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo about 9 years ago

PyBIDS - 0.0.2

  • label matching is not greedy anymore
  • 'ext' was replaced by 'extension' (as per grabbit) and accepts lists

Scientific Software - Peer-reviewed - Python
Published by chrisgorgo about 9 years ago