Skip to content

0.8.0

Compare
Choose a tag to compare
@tyarkoni tyarkoni released this 15 Feb 18:45
· 1889 commits to master since this release
3170502

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.