Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] AttributeError for _ApplyCoeffsFieldInputSpec #481

Merged
merged 2 commits into from
Mar 7, 2025

Conversation

HippocampusGirl
Copy link
Contributor

I've been recently working with unstable fMRIPrep and have been getting the following error with SDCFlows 2.11.0 and Nipype 1.9.2:

13:49:33 [   ERROR] _log_exception: Exception occurred in traits notification handler for object:
approx = True
data2fmap_xfm = <undefined>
fmap2data_xfm = ['/tmp/halfpipe/derivatives/fmriprep/sub-1012/func/sub-1012_task-rest_from-boldref_to-auto00001_mode-image_xfm.txt']
in_coeff = ['/tmp/halfpipe/nipype/fmriprep_25_0_wf/sub_1012_wf/fmap_preproc_wf/wf_auto_00001/bs_filter/sub-1012_acq-3mm_phasediff_rads_unwrapped_fmap_coeff000.nii.gz']
in_data = /tmp/halfpipe/nipype/fmriprep_25_0_wf/sub_1012_wf/bold_task_rest_wf/bold_fit_wf/enhance_and_skullstrip_bold_wf/n4_correct/sub-1012_task-rest_bold_average_corrected.nii.gz
in_xfms = <undefined>
jacobian = True
num_threads = 5
pe_dir = ['j-']
ro_time = [0.01071]
, trait: fmap2data_xfm, old value: <undefined>, new value: ['/tmp/halfpipe/derivatives/fmriprep/sub-1012/func/sub-1012_task-rest_from-boldref_to-auto00001_mode-image_xfm.txt'] (trait_notifiers.py:220)
Traceback (most recent call last):
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/traits/trait_notifiers.py", line 525, in _dispatch_change_event
    self.dispatch(handler, *args)
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/traits/trait_notifiers.py", line 487, in dispatch
    handler(*args)
  File "/opt/conda/envs/fmriprep/lib/python3.11/site-packages/nipype/interfaces/base/specs.py", line 110, in _xor_warn
    if isdefined(getattr(self, trait_name)):
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: '_ApplyCoeffsFieldInputSpec' object has no attribute 'd'
FAILED    

As far as I can tell, Nipype expects the xor attribute for traits to always be a list. It's just a string here though

fmap2data_xfm = InputMultiObject(
File(exists=True),
desc="the transform by which the target EPI can be resampled on the fieldmap's grid.",
xor="data2fmap_xfm",
)
data2fmap_xfm = InputMultiObject(
File(exists=True),
desc="the transform by which the fieldmap can be resampled on the target EPI's grid.",
xor="fmap2data_xfm",
)

If it's just a string, then the individual characters of the string will be iterated, leading to an AttributeError when no single character attribute exists on the spec.

I believe this may be related to #386

My conda environment
#74 10.03   _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
#74 10.03   _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-2_gnu
#74 10.03   acres              opt/conda/conda-bld/linux-64::acres-0.3.0-py311_0
#74 10.03   afni-3dblurtofwhm  opt/conda/conda-bld/linux-64::afni-3dblurtofwhm-24.2.05-0
#74 10.03   afni-3dcalc        opt/conda/conda-bld/linux-64::afni-3dcalc-24.2.05-0
#74 10.03   afni-3dreho        opt/conda/conda-bld/linux-64::afni-3dreho-24.2.05-0
#74 10.03   afni-3dtproject    opt/conda/conda-bld/linux-64::afni-3dtproject-24.2.05-0
#74 10.03   afni-3dtstat       opt/conda/conda-bld/linux-64::afni-3dtstat-24.2.05-0
#74 10.03   afni-lib3dedge     opt/conda/conda-bld/linux-64::afni-lib3dedge-24.2.05-0
#74 10.03   afni-libeispack    opt/conda/conda-bld/linux-64::afni-libeispack-24.2.05-0
#74 10.03   afni-libgiftiio    opt/conda/conda-bld/linux-64::afni-libgiftiio-24.2.05-0
#74 10.03   afni-libmri        opt/conda/conda-bld/linux-64::afni-libmri-24.2.05-0
#74 10.03   afni-libnifti2     opt/conda/conda-bld/linux-64::afni-libnifti2-24.2.05-0
#74 10.03   afni-libnifticdf   opt/conda/conda-bld/linux-64::afni-libnifticdf-24.2.05-0
#74 10.03   afni-libtracktools opt/conda/conda-bld/linux-64::afni-libtracktools-24.2.05-0
#74 10.03   afni-libznz        opt/conda/conda-bld/linux-64::afni-libznz-24.2.05-0
#74 10.03   aiofiles           conda-forge/noarch::aiofiles-24.1.0-pyhd8ed1ab_1
#74 10.03   alsa-lib           conda-forge/linux-64::alsa-lib-1.2.13-hb9d3cd8_0
#74 10.03   annexremote        conda-forge/linux-64::annexremote-1.6.6-py311h38be061_0
#74 10.03   ants               conda-forge/linux-64::ants-2.5.4-h8c3795b_0
#74 10.03   anyio              conda-forge/noarch::anyio-4.8.0-pyhd8ed1ab_0
#74 10.03   apscheduler        conda-forge/noarch::apscheduler-3.11.0-pyh29332c3_0
#74 10.03   arrow              conda-forge/noarch::arrow-1.3.0-pyhd8ed1ab_1
#74 10.03   astor              conda-forge/noarch::astor-0.8.1-pyhd8ed1ab_1
#74 10.03   atk-1.0            conda-forge/linux-64::atk-1.0-2.38.0-h04ea711_2
#74 10.03   atpublic           conda-forge/noarch::atpublic-5.1-pyhd8ed1ab_0
#74 10.03   attr               conda-forge/linux-64::attr-2.5.1-h166bdaf_1
#74 10.03   attrs              conda-forge/noarch::attrs-25.1.0-pyh71513ae_0
#74 10.03   babel              conda-forge/noarch::babel-2.17.0-pyhd8ed1ab_0
#74 10.03   backoff            conda-forge/noarch::backoff-2.2.1-pyhd8ed1ab_1
#74 10.03   backports          conda-forge/noarch::backports-1.0-pyhd8ed1ab_5
#74 10.03   backports.tarfile  conda-forge/noarch::backports.tarfile-1.2.0-pyhd8ed1ab_1
#74 10.03   bids-validator     conda-forge/noarch::bids-validator-1.14.7.post0-pyhd8ed1ab_1
#74 10.03   bidsschematools    conda-forge/noarch::bidsschematools-1.0.3-pyhd8ed1ab_0
#74 10.03   blinker            conda-forge/noarch::blinker-1.9.0-pyhff2d567_0
#74 10.03   bokeh              conda-forge/noarch::bokeh-3.6.3-pyhd8ed1ab_0
#74 10.03   boost-cpp          conda-forge/linux-64::boost-cpp-1.84.0-h44aadfe_3
#74 10.03   boto3              conda-forge/noarch::boto3-1.37.8-pyhd8ed1ab_0
#74 10.03   botocore           conda-forge/noarch::botocore-1.37.8-pyge310_1234567_0
#74 10.03   brotli             conda-forge/linux-64::brotli-1.1.0-hb9d3cd8_2
#74 10.03   brotli-bin         conda-forge/linux-64::brotli-bin-1.1.0-hb9d3cd8_2
#74 10.03   brotli-python      conda-forge/linux-64::brotli-python-1.1.0-py311hfdbb021_2
#74 10.03   bzip2              conda-forge/linux-64::bzip2-1.0.8-h4bc722e_7
#74 10.03   c-ares             conda-forge/linux-64::c-ares-1.34.4-hb9d3cd8_0
#74 10.03   ca-certificates    conda-forge/linux-64::ca-certificates-2025.1.31-hbcca054_0
#74 10.03   cached-property    conda-forge/noarch::cached-property-1.5.2-hd8ed1ab_1
#74 10.03   cached_property    conda-forge/noarch::cached_property-1.5.2-pyha770c72_1
#74 10.03   cairo              conda-forge/linux-64::cairo-1.18.0-h3faef2a_0
#74 10.03   certifi            conda-forge/noarch::certifi-2025.1.31-pyhd8ed1ab_0
#74 10.03   cffi               conda-forge/linux-64::cffi-1.17.1-py311hf29c0ef_0
#74 10.03   chardet            conda-forge/linux-64::chardet-5.2.0-py311h38be061_2
#74 10.03   charset-normalizer conda-forge/noarch::charset-normalizer-3.4.1-pyhd8ed1ab_0
#74 10.03   ci-info            conda-forge/noarch::ci-info-0.3.0-pyhd8ed1ab_1
#74 10.03   ciftilib           fsldownloads/fslconda/public/linux-64::ciftilib-1.6.0-h87bc4d8_5
#74 10.03   click              conda-forge/noarch::click-8.1.8-pyh707e725_0
#74 10.03   cloudpickle        conda-forge/noarch::cloudpickle-3.1.1-pyhd8ed1ab_0
#74 10.03   codecarbon         conda-forge/noarch::codecarbon-2.2.2-pyh1a96a4e_0
#74 10.03   colorama           conda-forge/noarch::colorama-0.4.6-pyhd8ed1ab_1
#74 10.03   contourpy          conda-forge/linux-64::contourpy-1.3.1-py311hd18a35c_0
#74 10.03   coverage           conda-forge/linux-64::coverage-7.6.12-py311h2dc5d0c_0
#74 10.03   cryptography       conda-forge/linux-64::cryptography-44.0.2-py311hafd3f86_0
#74 10.03   curl               conda-forge/linux-64::curl-8.8.0-he654da7_1
#74 10.03   cycler             conda-forge/noarch::cycler-0.12.1-pyhd8ed1ab_1
#74 10.03   cytoolz            conda-forge/linux-64::cytoolz-1.0.1-py311h9ecbd09_0
#74 10.03   dash               conda-forge/noarch::dash-2.18.2-pyhd8ed1ab_2
#74 10.03   dash-bootstrap-co~ conda-forge/noarch::dash-bootstrap-components-1.7.1-pyhd8ed1ab_0
#74 10.03   dash-core-compone~ conda-forge/noarch::dash-core-components-2.0.0-pyhd8ed1ab_1
#74 10.03   dash-html-compone~ conda-forge/noarch::dash-html-components-2.0.0-pyhd8ed1ab_2
#74 10.03   dash-table         conda-forge/noarch::dash-table-5.0.0-pyhd8ed1ab_1
#74 10.03   dask-core          conda-forge/noarch::dask-core-2025.2.0-pyhd8ed1ab_0
#74 10.03   dataclasses        conda-forge/noarch::dataclasses-0.8-pyhc8e2a94_3
#74 10.03   datalad            conda-forge/linux-64::datalad-1.1.4-py311h38be061_0
#74 10.03   dbus               conda-forge/linux-64::dbus-1.13.6-h5008d03_3
#74 10.03   defusedxml         conda-forge/noarch::defusedxml-0.7.1-pyhd8ed1ab_0
#74 10.03   dill               conda-forge/noarch::dill-0.3.9-pyhd8ed1ab_1
#74 10.03   distro             conda-forge/noarch::distro-1.9.0-pyhd8ed1ab_1
#74 10.03   docopt             conda-forge/noarch::docopt-0.6.2-pyhd8ed1ab_2
#74 10.03   editables          conda-forge/noarch::editables-0.5-pyhd8ed1ab_1
#74 10.03   eigen              conda-forge/linux-64::eigen-3.4.0-h00ab1b0_0
#74 10.03   et_xmlfile         conda-forge/noarch::et_xmlfile-2.0.0-pyhd8ed1ab_1
#74 10.03   etelemetry         conda-forge/noarch::etelemetry-0.3.1-pyhd8ed1ab_1
#74 10.03   exceptiongroup     conda-forge/noarch::exceptiongroup-1.2.2-pyhd8ed1ab_1
#74 10.03   execnet            conda-forge/noarch::execnet-2.1.1-pyhd8ed1ab_1
#74 10.03   exifread           conda-forge/noarch::exifread-3.0.0-pyhd8ed1ab_1
#74 10.03   expat              conda-forge/linux-64::expat-2.6.4-h5888daf_0
#74 10.03   f2c                conda-forge/linux-64::f2c-20210323183018-h166bdaf_1010
#74 10.03   fasteners          conda-forge/noarch::fasteners-0.19-pyhd8ed1ab_1
#74 10.03   fftw               conda-forge/linux-64::fftw-3.3.10-nompi_hf1063bd_110
#74 10.03   filelock           conda-forge/noarch::filelock-3.17.0-pyhd8ed1ab_0
#74 10.03   fire               conda-forge/noarch::fire-0.7.0-pyhd8ed1ab_0
#74 10.03   flask              conda-forge/noarch::flask-3.1.0-pyhff2d567_0
#74 10.03   flexcache          conda-forge/noarch::flexcache-0.3-pyhd8ed1ab_1
#74 10.03   flexparser         conda-forge/noarch::flexparser-0.4-pyhd8ed1ab_1
#74 10.03   flufl.lock         conda-forge/noarch::flufl.lock-8.1.0-pyhd8ed1ab_0
#74 10.03   fmripost_aroma     opt/conda/conda-bld/linux-64::fmripost_aroma-0.0.8-py311_0
#74 10.03   fmriprep           opt/conda/conda-bld/linux-64::fmriprep-24.1.x-py311_0
#74 10.03   font-ttf-dejavu-s~ conda-forge/noarch::font-ttf-dejavu-sans-mono-2.37-hab24e00_0
#74 10.03   font-ttf-inconsol~ conda-forge/noarch::font-ttf-inconsolata-3.000-h77eed37_0
#74 10.03   font-ttf-source-c~ conda-forge/noarch::font-ttf-source-code-pro-2.038-h77eed37_0
#74 10.03   font-ttf-ubuntu    conda-forge/noarch::font-ttf-ubuntu-0.83-h77eed37_3
#74 10.03   fontconfig         conda-forge/linux-64::fontconfig-2.14.2-h14ed4e7_0
#74 10.03   fonts-conda-ecosy~ conda-forge/noarch::fonts-conda-ecosystem-1-0
#74 10.03   fonts-conda-forge  conda-forge/noarch::fonts-conda-forge-1-0
#74 10.03   fonttools          conda-forge/linux-64::fonttools-4.56.0-py311h2dc5d0c_0
#74 10.03   formulaic          conda-forge/noarch::formulaic-1.1.1-pyhd8ed1ab_0
#74 10.03   freetype           conda-forge/linux-64::freetype-2.12.1-h267a509_2
#74 10.03   fribidi            conda-forge/linux-64::fribidi-1.0.10-h36c2ea0_0
#74 10.03   frozendict         conda-forge/linux-64::frozendict-2.4.6-py311h9ecbd09_0
#74 10.03   fsl-armawrap       fsldownloads/fslconda/public/linux-64::fsl-armawrap-0.7.0-hdef71a4_1
#74 10.03   fsl-avwutils       fsldownloads/fslconda/public/linux-64::fsl-avwutils-2209.3-hb6de94e_0
#74 10.03   fsl-base           fsldownloads/fslconda/public/noarch::fsl-base-2502.2-py_0
#74 10.03   fsl-basisfield     fsldownloads/fslconda/public/linux-64::fsl-basisfield-2203.1-hb6de94e_7
#74 10.03   fsl-bet2           fsldownloads/fslconda/public/linux-64::fsl-bet2-2111.4-hb6de94e_1
#74 10.03   fsl-cluster        fsldownloads/fslconda/public/linux-64::fsl-cluster-2201.0-hb6de94e_7
#74 10.03   fsl-cprob          fsldownloads/fslconda/public/linux-64::fsl-cprob-2111.0-hdef71a4_6
#74 10.03   fsl-fast4          fsldownloads/fslconda/public/linux-64::fsl-fast4-2111.3-hb6de94e_3
#74 10.03   fsl-feat5          fsldownloads/fslconda/public/linux-64::fsl-feat5-2201.7-hb6de94e_0
#74 10.03   fsl-film           fsldownloads/fslconda/public/linux-64::fsl-film-2111.1-hb6de94e_0
#74 10.03   fsl-first_lib      fsldownloads/fslconda/public/linux-64::fsl-first_lib-2111.0-hb6de94e_7
#74 10.03   fsl-flameo         fsldownloads/fslconda/public/linux-64::fsl-flameo-2111.1-hb6de94e_0
#74 10.03   fsl-flirt          fsldownloads/fslconda/public/linux-64::fsl-flirt-2111.2-hb6de94e_3
#74 10.03   fsl-fnirt          fsldownloads/fslconda/public/linux-64::fsl-fnirt-2203.1-hb6de94e_0
#74 10.03   fsl-fugue          fsldownloads/fslconda/public/linux-64::fsl-fugue-2201.3-hb6de94e_0
#74 10.03   fsl-giftiio        fsldownloads/fslconda/public/linux-64::fsl-giftiio-2111.1-hdef71a4_2
#74 10.03   fsl-installer      fsldownloads/fslconda/public/noarch::fsl-installer-3.16.7-py_0
#74 10.03   fsl-libgdc         fsldownloads/fslconda/public/linux-64::fsl-libgdc-2111.0-hdef71a4_5
#74 10.03   fsl-libvis         fsldownloads/fslconda/public/linux-64::fsl-libvis-2111.0-hb6de94e_7
#74 10.03   fsl-mcflirt        fsldownloads/fslconda/public/linux-64::fsl-mcflirt-2111.0-hb6de94e_6
#74 10.03   fsl-melodic        fsldownloads/fslconda/public/linux-64::fsl-melodic-2111.3-hb6de94e_3
#74 10.03   fsl-meshclass      fsldownloads/fslconda/public/linux-64::fsl-meshclass-2111.0-hb6de94e_7
#74 10.03   fsl-misc_c         fsldownloads/fslconda/public/linux-64::fsl-misc_c-2111.0-hdef71a4_6
#74 10.03   fsl-misc_tcl       fsldownloads/fslconda/public/noarch::fsl-misc_tcl-2406.0-0
#74 10.03   fsl-miscmaths      fsldownloads/fslconda/public/linux-64::fsl-miscmaths-2203.2-hb6de94e_5
#74 10.03   fsl-miscvis        fsldownloads/fslconda/public/noarch::fsl-miscvis-2201.1-2
#74 10.03   fsl-newimage       fsldownloads/fslconda/public/linux-64::fsl-newimage-2203.12-h489b204_0
#74 10.03   fsl-newnifti       fsldownloads/fslconda/public/linux-64::fsl-newnifti-4.1.0-hdef71a4_5
#74 10.03   fsl-randomise      fsldownloads/fslconda/public/linux-64::fsl-randomise-2203.3-hb6de94e_3
#74 10.03   fsl-shapemodel     fsldownloads/fslconda/public/linux-64::fsl-shapemodel-2111.0-hb6de94e_7
#74 10.03   fsl-slicetimer     fsldownloads/fslconda/public/linux-64::fsl-slicetimer-2111.0-hb6de94e_6
#74 10.03   fsl-sub            conda-forge/noarch::fsl-sub-2.8.3-pyhd8ed1ab_1
#74 10.03   fsl-surface        fsldownloads/fslconda/public/linux-64::fsl-surface-2111.1-hb6de94e_4
#74 10.03   fsl-susan          fsldownloads/fslconda/public/linux-64::fsl-susan-2111.0-hb6de94e_7
#74 10.03   fsl-topup          fsldownloads/fslconda/public/linux-64::fsl-topup-2203.2-hb6de94e_3
#74 10.03   fsl-utils          fsldownloads/fslconda/public/linux-64::fsl-utils-2203.5-hb6de94e_0
#74 10.03   fsl-vtkio          fsldownloads/fslconda/public/linux-64::fsl-vtkio-2111.0-hb6de94e_7
#74 10.03   fsl-warpfns        fsldownloads/fslconda/public/linux-64::fsl-warpfns-2203.0-hb6de94e_5
#74 10.03   fsl-znzlib         fsldownloads/fslconda/public/linux-64::fsl-znzlib-2111.0-hdef71a4_8
#74 10.03   fslpy              conda-forge/noarch::fslpy-3.22.0-pyhd8ed1ab_0
#74 10.03   fsspec             conda-forge/noarch::fsspec-2025.2.0-pyhd8ed1ab_0
#74 10.03   fuzzywuzzy         conda-forge/noarch::fuzzywuzzy-0.18.0-pyhd8ed1ab_1
#74 10.03   gdk-pixbuf         conda-forge/linux-64::gdk-pixbuf-2.42.12-hb9ae30d_0
#74 10.03   gettext            conda-forge/linux-64::gettext-0.23.1-h5888daf_0
#74 10.03   gettext-tools      conda-forge/linux-64::gettext-tools-0.23.1-h5888daf_0
#74 10.03   ghp-import         conda-forge/noarch::ghp-import-2.1.0-pyhd8ed1ab_2
#74 10.03   giflib             conda-forge/linux-64::giflib-5.2.2-hd590300_0
#74 10.03   git                conda-forge/linux-64::git-2.45.1-pl5321hef9f9f3_0
#74 10.03   git-annex          conda-forge/linux-64::git-annex-10.20230626-alldep_h9c70df9_101
#74 10.03   gitdb              conda-forge/noarch::gitdb-4.0.12-pyhd8ed1ab_0
#74 10.03   gitpython          conda-forge/noarch::gitpython-3.1.44-pyhff2d567_0
#74 10.03   glib               conda-forge/linux-64::glib-2.80.2-hf974151_0
#74 10.03   glib-tools         conda-forge/linux-64::glib-tools-2.80.2-hb6ce0ca_0
#74 10.03   glibmm             conda-forge/linux-64::glibmm-2.78.1-ha770c72_0
#74 10.03   glibmm-2.68        conda-forge/linux-64::glibmm-2.68-2.78.1-h2f54ecc_0
#74 10.03   gmp                conda-forge/linux-64::gmp-6.3.0-hac33072_2
#74 10.03   gnupg              conda-forge/linux-64::gnupg-2.4.5-h1cac74d_0
#74 10.03   gql                conda-forge/noarch::gql-3.5.0-pyhd8ed1ab_2
#74 10.03   graphite2          conda-forge/linux-64::graphite2-1.3.13-h59595ed_1003
#74 10.03   graphlib-backport  conda-forge/noarch::graphlib-backport-1.0.3-pyhd8ed1ab_0
#74 10.03   graphql-core       conda-forge/noarch::graphql-core-3.2.6-pyh29332c3_0
#74 10.03   graphviz           conda-forge/linux-64::graphviz-9.0.0-h78e8752_1
#74 10.03   greenlet           conda-forge/linux-64::greenlet-3.1.1-py311hfdbb021_1
#74 10.03   gsl                conda-forge/linux-64::gsl-2.8-hbf7d49c_1
#74 10.03   gst-plugins-base   conda-forge/linux-64::gst-plugins-base-1.24.4-h9ad1361_0
#74 10.03   gstreamer          conda-forge/linux-64::gstreamer-1.24.4-haf2f30d_0
#74 10.03   gtk2               conda-forge/linux-64::gtk2-2.24.33-h280cfa0_4
#74 10.03   gts                conda-forge/linux-64::gts-0.7.6-h977cf35_4
#74 10.03   h11                conda-forge/noarch::h11-0.14.0-pyhd8ed1ab_1
#74 10.03   h2                 conda-forge/noarch::h2-4.2.0-pyhd8ed1ab_0
#74 10.03   h5py               conda-forge/linux-64::h5py-3.10.0-nompi_py311hebc2b07_101
#74 10.03   halfpipe           opt/conda/conda-bld/linux-64::halfpipe-unknown-py311_0
#74 10.03   harfbuzz           conda-forge/linux-64::harfbuzz-8.5.0-hfac3d4d_0
#74 10.03   hatch-vcs          conda-forge/noarch::hatch-vcs-0.4.0-pyhd8ed1ab_1
#74 10.03   hatchling          conda-forge/noarch::hatchling-1.27.0-pypyhd8ed1ab_0
#74 10.03   hdf5               conda-forge/linux-64::hdf5-1.14.3-nompi_hdf9ad27_105
#74 10.03   hpack              conda-forge/noarch::hpack-4.1.0-pyhd8ed1ab_0
#74 10.03   httpcore           conda-forge/noarch::httpcore-1.0.7-pyh29332c3_1
#74 10.03   httpx              conda-forge/noarch::httpx-0.28.1-pyhd8ed1ab_0
#74 10.03   humanize           conda-forge/noarch::humanize-4.12.1-pyhd8ed1ab_0
#74 10.03   hyperframe         conda-forge/noarch::hyperframe-6.1.0-pyhd8ed1ab_0
#74 10.03   icu                conda-forge/linux-64::icu-73.2-h59595ed_0
#74 10.03   idna               conda-forge/noarch::idna-3.10-pyhd8ed1ab_1
#74 10.03   imagecodecs-lite   conda-forge/linux-64::imagecodecs-lite-2019.12.3-py311h18e1886_8
#74 10.03   imageio            conda-forge/noarch::imageio-2.37.0-pyhfb79c49_0
#74 10.03   importlib-metadata conda-forge/noarch::importlib-metadata-8.6.1-pyha770c72_0
#74 10.03   importlib-resourc~ conda-forge/noarch::importlib-resources-6.5.2-pyhd8ed1ab_0
#74 10.03   importlib_resourc~ conda-forge/noarch::importlib_resources-6.5.2-pyhd8ed1ab_0
#74 10.03   indexed_gzip       conda-forge/linux-64::indexed_gzip-1.8.7-py311hc1e8438_1
#74 10.03   inflect            conda-forge/noarch::inflect-7.5.0-pyhd8ed1ab_0
#74 10.03   inflection         conda-forge/noarch::inflection-0.5.1-pyhd8ed1ab_1
#74 10.03   iniconfig          conda-forge/noarch::iniconfig-2.0.0-pyhd8ed1ab_1
#74 10.03   interface_meta     conda-forge/noarch::interface_meta-1.3.0-pyhd8ed1ab_1
#74 10.03   iso8601            conda-forge/noarch::iso8601-2.1.0-pyhd8ed1ab_1
#74 10.03   isodate            conda-forge/noarch::isodate-0.7.2-pyhd8ed1ab_1
#74 10.03   itsdangerous       conda-forge/noarch::itsdangerous-2.2.0-pyhd8ed1ab_1
#74 10.03   jaraco.classes     conda-forge/noarch::jaraco.classes-3.4.0-pyhd8ed1ab_2
#74 10.03   jaraco.context     conda-forge/noarch::jaraco.context-6.0.1-pyhd8ed1ab_0
#74 10.03   jaraco.functools   conda-forge/noarch::jaraco.functools-4.1.0-pyhd8ed1ab_0
#74 10.03   jeepney            conda-forge/noarch::jeepney-0.9.0-pyhd8ed1ab_0
#74 10.03   jinja2             conda-forge/noarch::jinja2-3.1.6-pyhd8ed1ab_0
#74 10.03   jmespath           conda-forge/noarch::jmespath-1.0.1-pyhd8ed1ab_1
#74 10.03   joblib             conda-forge/noarch::joblib-1.4.2-pyhd8ed1ab_1
#74 10.03   jsonschema         conda-forge/noarch::jsonschema-4.23.0-pyhd8ed1ab_1
#74 10.03   jsonschema-specif~ conda-forge/noarch::jsonschema-specifications-2024.10.1-pyhd8ed1ab_1
#74 10.03   keyring            conda-forge/noarch::keyring-25.6.0-pyha804496_0
#74 10.03   keyrings.alt       conda-forge/noarch::keyrings.alt-5.0.2-pyhd8ed1ab_0
#74 10.03   keyutils           conda-forge/linux-64::keyutils-1.6.1-h166bdaf_0
#74 10.03   kiwisolver         conda-forge/linux-64::kiwisolver-1.4.7-py311hd18a35c_0
#74 10.03   krb5               conda-forge/linux-64::krb5-1.21.3-h659f571_0
#74 10.03   lame               conda-forge/linux-64::lame-3.100-h166bdaf_1003
#74 10.03   lazy-loader        conda-forge/noarch::lazy-loader-0.4-pyhd8ed1ab_2
#74 10.03   lazy_loader        conda-forge/noarch::lazy_loader-0.4-pyhd8ed1ab_2
#74 10.03   lcms2              conda-forge/linux-64::lcms2-2.16-hb7c19ff_0
#74 10.03   ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.43-h712a8e2_4
#74 10.03   lerc               conda-forge/linux-64::lerc-4.0.0-h27087fc_0
#74 10.03   levenshtein        conda-forge/linux-64::levenshtein-0.27.1-py311hfdbb021_0
#74 10.03   libaec             conda-forge/linux-64::libaec-1.1.3-h59595ed_0
#74 10.03   libasprintf        conda-forge/linux-64::libasprintf-0.23.1-h8e693c7_0
#74 10.03   libasprintf-devel  conda-forge/linux-64::libasprintf-devel-0.23.1-h8e693c7_0
#74 10.03   libassuan          conda-forge/linux-64::libassuan-2.5.7-h59595ed_0
#74 10.03   libblas            conda-forge/linux-64::libblas-3.9.0-20_linux64_openblas
#74 10.03   libboost           conda-forge/linux-64::libboost-1.84.0-hba137d9_3
#74 10.03   libboost-devel     conda-forge/linux-64::libboost-devel-1.84.0-h00ab1b0_3
#74 10.03   libboost-headers   conda-forge/linux-64::libboost-headers-1.84.0-ha770c72_3
#74 10.03   libbrotlicommon    conda-forge/linux-64::libbrotlicommon-1.1.0-hb9d3cd8_2
#74 10.03   libbrotlidec       conda-forge/linux-64::libbrotlidec-1.1.0-hb9d3cd8_2
#74 10.03   libbrotlienc       conda-forge/linux-64::libbrotlienc-1.1.0-hb9d3cd8_2
#74 10.03   libcap             conda-forge/linux-64::libcap-2.71-h39aace5_0
#74 10.03   libcblas           conda-forge/linux-64::libcblas-3.9.0-20_linux64_openblas
#74 10.03   libcbor            conda-forge/linux-64::libcbor-0.10.2-hcb278e6_0
#74 10.03   libclang-cpp15     conda-forge/linux-64::libclang-cpp15-15.0.7-default_h127d8a8_5
#74 10.03   libclang13         conda-forge/linux-64::libclang13-18.1.7-default_h087397f_0
#74 10.03   libcups            conda-forge/linux-64::libcups-2.3.3-h4637d8d_4
#74 10.03   libcurl            conda-forge/linux-64::libcurl-8.8.0-hca28451_1
#74 10.03   libdeflate         conda-forge/linux-64::libdeflate-1.20-hd590300_0
#74 10.03   libedit            conda-forge/linux-64::libedit-3.1.20250104-pl5321h7949ede_0
#74 10.03   libev              conda-forge/linux-64::libev-4.33-hd590300_2
#74 10.03   libevent           conda-forge/linux-64::libevent-2.1.12-hf998b51_1
#74 10.03   libexpat           conda-forge/linux-64::libexpat-2.6.4-h5888daf_0
#74 10.03   libffi             conda-forge/linux-64::libffi-3.4.6-h2dba641_0
#74 10.03   libfido2           conda-forge/linux-64::libfido2-1.14.0-h4446dcb_0
#74 10.03   libflac            conda-forge/linux-64::libflac-1.4.3-h59595ed_0
#74 10.03   libgcc             conda-forge/linux-64::libgcc-14.2.0-h767d61c_2
#74 10.03   libgcc-ng          conda-forge/linux-64::libgcc-ng-14.2.0-h69a702a_2
#74 10.03   libgcrypt          conda-forge/linux-64::libgcrypt-1.11.0-ha770c72_2
#74 10.03   libgcrypt-devel    conda-forge/linux-64::libgcrypt-devel-1.11.0-hb9d3cd8_2
#74 10.03   libgcrypt-lib      conda-forge/linux-64::libgcrypt-lib-1.11.0-hb9d3cd8_2
#74 10.03   libgcrypt-tools    conda-forge/linux-64::libgcrypt-tools-1.11.0-hb9d3cd8_2
#74 10.03   libgd              conda-forge/linux-64::libgd-2.3.3-h119a65a_9
#74 10.03   libgettextpo       conda-forge/linux-64::libgettextpo-0.23.1-h5888daf_0
#74 10.03   libgettextpo-devel conda-forge/linux-64::libgettextpo-devel-0.23.1-h5888daf_0
#74 10.03   libgfortran        conda-forge/linux-64::libgfortran-14.2.0-h69a702a_2
#74 10.03   libgfortran-ng     conda-forge/linux-64::libgfortran-ng-14.2.0-h69a702a_2
#74 10.03   libgfortran5       conda-forge/linux-64::libgfortran5-14.2.0-hf1ad2bd_2
#74 10.03   libglib            conda-forge/linux-64::libglib-2.80.2-hf974151_0
#74 10.03   libgomp            conda-forge/linux-64::libgomp-14.2.0-h767d61c_2
#74 10.03   libgpg-error       conda-forge/linux-64::libgpg-error-1.51-hbd13f7d_1
#74 10.03   libhwloc           conda-forge/linux-64::libhwloc-2.11.2-default_he43201b_1000
#74 10.03   libiconv           conda-forge/linux-64::libiconv-1.18-h4ce23a2_1
#74 10.03   libitk             conda-forge/linux-64::libitk-5.4.0-ha759891_2
#74 10.03   libjpeg-turbo      conda-forge/linux-64::libjpeg-turbo-3.0.0-hd590300_1
#74 10.03   libksba            conda-forge/linux-64::libksba-1.6.7-hac33072_0
#74 10.03   liblapack          conda-forge/linux-64::liblapack-3.9.0-20_linux64_openblas
#74 10.03   libllvm14          conda-forge/linux-64::libllvm14-14.0.6-hcd5def8_4
#74 10.03   libllvm15          conda-forge/linux-64::libllvm15-15.0.7-hb3ce162_4
#74 10.03   libllvm18          conda-forge/linux-64::libllvm18-18.1.7-hb77312f_0
#74 10.03   liblzma            conda-forge/linux-64::liblzma-5.6.4-hb9d3cd8_0
#74 10.03   liblzma-devel      conda-forge/linux-64::liblzma-devel-5.6.4-hb9d3cd8_0
#74 10.03   libmagic           conda-forge/linux-64::libmagic-5.39-h753d276_1
#74 10.03   libnghttp2         conda-forge/linux-64::libnghttp2-1.58.0-h47da74e_1
#74 10.03   libnsl             conda-forge/linux-64::libnsl-2.0.1-hd590300_0
#74 10.03   libogg             conda-forge/linux-64::libogg-1.3.5-h4ab18f5_0
#74 10.03   libopenblas        conda-forge/linux-64::libopenblas-0.3.25-pthreads_h413a1c8_0
#74 10.03   libopus            conda-forge/linux-64::libopus-1.3.1-h7f98852_1
#74 10.03   libpng             conda-forge/linux-64::libpng-1.6.43-h2797004_0
#74 10.03   libpq              conda-forge/linux-64::libpq-16.8-h87c4ccc_0
#74 10.03   librsvg            conda-forge/linux-64::librsvg-2.58.1-hadf69e7_0
#74 10.03   libsigcpp          conda-forge/linux-64::libsigcpp-3.6.0-ha770c72_0
#74 10.03   libsndfile         conda-forge/linux-64::libsndfile-1.2.2-hc60ed4a_1
#74 10.03   libsqlite          conda-forge/linux-64::libsqlite-3.46.0-hde9e2c9_0
#74 10.03   libssh2            conda-forge/linux-64::libssh2-1.11.0-h0841786_0
#74 10.03   libstdcxx          conda-forge/linux-64::libstdcxx-14.2.0-h8f9b012_2
#74 10.03   libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-14.2.0-h4852527_2
#74 10.03   libsystemd0        conda-forge/linux-64::libsystemd0-257.3-h3dc2cb9_0
#74 10.03   libtiff            conda-forge/linux-64::libtiff-4.6.0-h1dd3fc0_3
#74 10.03   libudev1           conda-forge/linux-64::libudev1-257.3-h9a4d06a_0
#74 10.03   libuuid            conda-forge/linux-64::libuuid-2.38.1-h0b41bf4_0
#74 10.03   libuv              conda-forge/linux-64::libuv-1.48.0-hd590300_0
#74 10.03   libvorbis          conda-forge/linux-64::libvorbis-1.3.7-h9c3ff4c_0
#74 10.03   libwebp            conda-forge/linux-64::libwebp-1.4.0-h2c329e2_0
#74 10.03   libwebp-base       conda-forge/linux-64::libwebp-base-1.4.0-hd590300_0
#74 10.03   libxcb             conda-forge/linux-64::libxcb-1.15-h0b41bf4_0
#74 10.03   libxcrypt          conda-forge/linux-64::libxcrypt-4.4.36-hd590300_1
#74 10.03   libxkbcommon       conda-forge/linux-64::libxkbcommon-1.7.0-h662e7e4_0
#74 10.03   libxml2            conda-forge/linux-64::libxml2-2.12.7-hc051c1a_1
#74 10.03   libxmlpp           conda-forge/linux-64::libxmlpp-4.0.2-ha770c72_1
#74 10.03   libxmlpp-4.0       conda-forge/linux-64::libxmlpp-4.0-4.0.2-h550762b_1
#74 10.03   libxslt            conda-forge/linux-64::libxslt-1.1.39-h76b75d6_0
#74 10.03   libzlib            conda-forge/linux-64::libzlib-1.2.13-h4ab18f5_6
#74 10.03   line_profiler      conda-forge/linux-64::line_profiler-4.2.0-py311hd18a35c_0
#74 10.03   llvmlite           conda-forge/linux-64::llvmlite-0.42.0-py311ha6695c7_1
#74 10.03   locket             conda-forge/noarch::locket-1.0.0-pyhd8ed1ab_0
#74 10.03   lockfile           conda-forge/noarch::lockfile-0.12.2-py_1
#74 10.03   looseversion       conda-forge/noarch::looseversion-1.3.0-pyhd8ed1ab_0
#74 10.03   lsof               conda-forge/linux-64::lsof-4.99.4-hb9d3cd8_0
#74 10.03   lxml               conda-forge/linux-64::lxml-5.2.2-py311hc0a218f_0
#74 10.03   lz4-c              conda-forge/linux-64::lz4-c-1.10.0-h5888daf_1
#74 10.03   mapca              opt/conda/conda-bld/linux-64::mapca-0.0.5-py311_0
#74 10.03   markdown           conda-forge/noarch::markdown-3.6-pyhd8ed1ab_0
#74 10.03   markdown-it-py     conda-forge/noarch::markdown-it-py-3.0.0-pyhd8ed1ab_1
#74 10.03   markupsafe         conda-forge/linux-64::markupsafe-3.0.2-py311h2dc5d0c_1
#74 10.03   marshmallow        conda-forge/noarch::marshmallow-3.26.1-pyhd8ed1ab_0
#74 10.03   marshmallow-datac~ conda-forge/noarch::marshmallow-dataclass-8.7.1-pyhd8ed1ab_0
#74 10.03   marshmallow-enum   conda-forge/noarch::marshmallow-enum-1.5.1-pyhd8ed1ab_4
#74 10.03   marshmallow-oneof~ conda-forge/noarch::marshmallow-oneofschema-3.1.1-pyhd8ed1ab_1
#74 10.03   matplotlib         conda-forge/linux-64::matplotlib-3.8.4-py311h38be061_2
#74 10.03   matplotlib-base    conda-forge/linux-64::matplotlib-base-3.8.4-py311ha4ca890_2
#74 10.03   mdurl              conda-forge/noarch::mdurl-0.1.2-pyhd8ed1ab_1
#74 10.03   mergedeep          conda-forge/noarch::mergedeep-1.3.4-pyhd8ed1ab_1
#74 10.03   migas              opt/conda/conda-bld/linux-64::migas-0.4.0-py311_0
#74 10.03   mkdocs             conda-forge/noarch::mkdocs-1.6.1-pyhd8ed1ab_1
#74 10.03   mkdocs-get-deps    conda-forge/noarch::mkdocs-get-deps-0.2.0-pyhd8ed1ab_1
#74 10.03   mkdocs-git-revisi~ conda-forge/noarch::mkdocs-git-revision-date-localized-plugin-1.2.9-pyhd8ed1ab_0
#74 10.03   more-itertools     conda-forge/noarch::more-itertools-10.6.0-pyhd8ed1ab_0
#74 10.03   mpg123             conda-forge/linux-64::mpg123-1.32.9-hc50e24c_0
#74 10.03   msgpack-python     conda-forge/linux-64::msgpack-python-1.1.0-py311hd18a35c_0
#74 10.03   multidict          conda-forge/linux-64::multidict-6.1.0-py311h2dc5d0c_2
#74 10.03   munkres            conda-forge/noarch::munkres-1.1.4-pyh9f0ad1d_0
#74 10.03   mutagen            conda-forge/noarch::mutagen-1.47.0-pyhd8ed1ab_1
#74 10.03   mypy_extensions    conda-forge/noarch::mypy_extensions-1.0.0-pyha770c72_1
#74 10.03   mysql-common       conda-forge/linux-64::mysql-common-8.3.0-hf1915f5_4
#74 10.03   mysql-libs         conda-forge/linux-64::mysql-libs-8.3.0-hca2cd23_4
#74 10.03   narwhals           conda-forge/noarch::narwhals-1.29.1-pyhd8ed1ab_0
#74 10.03   ncurses            conda-forge/linux-64::ncurses-6.5-h2d0b736_3
#74 10.03   nest-asyncio       conda-forge/noarch::nest-asyncio-1.6.0-pyhd8ed1ab_1
#74 10.03   networkx           conda-forge/noarch::networkx-3.4.2-pyh267e887_2
#74 10.03   nibabel            conda-forge/noarch::nibabel-5.3.2-pyha770c72_1
#74 10.03   nilearn            conda-forge/noarch::nilearn-0.11.1-pyhd8ed1ab_0
#74 10.03   nipype             conda-forge/noarch::nipype-1.9.2-pyhd8ed1ab_1
#74 10.03   nireports          opt/conda/conda-bld/linux-64::nireports-24.1.0-py311_0
#74 10.03   nitime             conda-forge/linux-64::nitime-0.11-py311h9f3472d_2
#74 10.03   nitransforms       opt/conda/conda-bld/linux-64::nitransforms-24.1.1-py311_0
#74 10.03   niworkflows        opt/conda/conda-bld/linux-64::niworkflows-1.12.2-py311_0
#74 10.03   nodejs             conda-forge/linux-64::nodejs-20.12.2-hb753e55_0
#74 10.03   npth               conda-forge/linux-64::npth-1.8-h5888daf_0
#74 10.03   nspr               conda-forge/linux-64::nspr-4.36-h5888daf_0
#74 10.03   nss                conda-forge/linux-64::nss-3.100-hca3bf56_0
#74 10.03   ntbtls             conda-forge/linux-64::ntbtls-0.3.2-hfc55251_0
#74 10.03   num2words          conda-forge/noarch::num2words-0.5.12-pyhd8ed1ab_0
#74 10.03   numba              conda-forge/linux-64::numba-0.59.1-py311h96b013e_0
#74 10.03   numpy              conda-forge/linux-64::numpy-1.26.4-py311h64a7726_0
#74 10.03   nvidia-ml-py       conda-forge/noarch::nvidia-ml-py-12.570.86-pyhd8ed1ab_0
#74 10.03   odfpy              conda-forge/noarch::odfpy-1.4.1-pyhd8ed1ab_1
#74 10.03   openjpeg           conda-forge/linux-64::openjpeg-2.5.2-h488ebb8_0
#74 10.03   openneuro-py       conda-forge/noarch::openneuro-py-2024.2.0-pyha770c72_1
#74 10.03   openpyxl           conda-forge/linux-64::openpyxl-3.1.5-py311h50c5138_1
#74 10.03   openssh            conda-forge/linux-64::openssh-9.6p1-h2d3b35a_0
#74 10.03   openssl            conda-forge/linux-64::openssl-3.4.1-h7b32b05_0
#74 10.03   p7zip              conda-forge/linux-64::p7zip-16.02-h9c3ff4c_1001
#74 10.03   packaging          conda-forge/noarch::packaging-24.2-pyhd8ed1ab_2
#74 10.03   pandas             conda-forge/linux-64::pandas-2.2.3-py311h7db5c69_1
#74 10.03   pandoc             conda-forge/linux-64::pandoc-3.1.13-ha770c72_0
#74 10.03   pango              conda-forge/linux-64::pango-1.54.0-h84a9a3c_0
#74 10.03   parse              conda-forge/noarch::parse-1.20.2-pyhd8ed1ab_1
#74 10.03   partd              conda-forge/noarch::partd-1.4.2-pyhd8ed1ab_0
#74 10.03   pathspec           conda-forge/noarch::pathspec-0.12.1-pyhd8ed1ab_1
#74 10.03   patool             conda-forge/noarch::patool-4.0.0-pyhd8ed1ab_0
#74 10.03   patsy              conda-forge/noarch::patsy-1.0.1-pyhd8ed1ab_1
#74 10.03   pcre2              conda-forge/linux-64::pcre2-10.43-hcad00b1_0
#74 10.03   perl               conda-forge/linux-64::perl-5.32.1-7_hd590300_perl5
#74 10.03   pillow             conda-forge/linux-64::pillow-10.3.0-py311h18e6fac_0
#74 10.03   pint               conda-forge/noarch::pint-0.24.4-pyhd8ed1ab_1
#74 10.03   pip                conda-forge/noarch::pip-25.0.1-pyh8b19718_0
#74 10.03   pixman             conda-forge/linux-64::pixman-0.44.2-h29eaf8c_0
#74 10.03   pkgutil-resolve-n~ conda-forge/noarch::pkgutil-resolve-name-1.3.10-pyhd8ed1ab_2
#74 10.03   platformdirs       conda-forge/noarch::platformdirs-4.3.6-pyhd8ed1ab_1
#74 10.03   plotly             conda-forge/noarch::plotly-6.0.0-pyhd8ed1ab_0
#74 10.03   pluggy             conda-forge/noarch::pluggy-1.5.0-pyhd8ed1ab_1
#74 10.03   ply                conda-forge/noarch::ply-3.11-pyhd8ed1ab_3
#74 10.03   popt               conda-forge/linux-64::popt-1.16-h0b475e3_2002
#74 10.03   propcache          conda-forge/linux-64::propcache-0.2.1-py311h2dc5d0c_1
#74 10.03   prov               conda-forge/noarch::prov-2.0.0-pyhd3deb0d_0
#74 10.03   psutil             conda-forge/linux-64::psutil-7.0.0-py311h9ecbd09_0
#74 10.03   pthread-stubs      conda-forge/linux-64::pthread-stubs-0.4-hb9d3cd8_1002
#74 10.03   pulseaudio-client  conda-forge/linux-64::pulseaudio-client-17.0-hb77b528_0
#74 10.03   puremagic          conda-forge/noarch::puremagic-1.28-pyhd8ed1ab_1
#74 10.03   py-cpuinfo         conda-forge/noarch::py-cpuinfo-9.0.0-pyhd8ed1ab_1
#74 10.03   pybids             conda-forge/noarch::pybids-0.19.0-pyhd8ed1ab_0
#74 10.03   pycparser          conda-forge/noarch::pycparser-2.22-pyh29332c3_1
#74 10.03   pydot              conda-forge/linux-64::pydot-3.0.4-py311h38be061_0
#74 10.03   pygments           conda-forge/noarch::pygments-2.19.1-pyhd8ed1ab_0
#74 10.03   pympler            conda-forge/noarch::pympler-1.1-pyhd8ed1ab_1
#74 10.03   pynvml             conda-forge/noarch::pynvml-12.0.0-pyhd8ed1ab_0
#74 10.03   pyparsing          conda-forge/noarch::pyparsing-3.2.1-pyhd8ed1ab_0
#74 10.03   pyperclip          conda-forge/noarch::pyperclip-1.9.0-pyha804496_3
#74 10.03   pyqt               conda-forge/linux-64::pyqt-5.15.9-py311hf0fb5b6_5
#74 10.03   pyqt5-sip          conda-forge/linux-64::pyqt5-sip-12.12.2-py311hb755f60_5
#74 10.03   pyrsistent         conda-forge/linux-64::pyrsistent-0.20.0-py311h9ecbd09_1
#74 10.03   pysocks            conda-forge/noarch::pysocks-1.7.1-pyha55dd90_7
#74 10.03   pytest             conda-forge/noarch::pytest-8.3.5-pyhd8ed1ab_0
#74 10.03   pytest-cov         conda-forge/noarch::pytest-cov-6.0.0-pyhd8ed1ab_1
#74 10.03   pytest-env         conda-forge/noarch::pytest-env-1.1.5-pyhd8ed1ab_1
#74 10.03   pytest-github-act~ conda-forge/noarch::pytest-github-actions-annotate-failures-0.3.0-pyhd8ed1ab_0
#74 10.03   pytest-textual-sn~ opt/conda/conda-bld/noarch::pytest-textual-snapshot-1.0.0-py_0
#74 10.03   pytest-timeout     conda-forge/noarch::pytest-timeout-2.3.1-pyhd8ed1ab_2
#74 10.03   pytest-xdist       conda-forge/noarch::pytest-xdist-3.6.1-pyhd8ed1ab_1
#74 10.03   python             conda-forge/linux-64::python-3.11.9-hb806964_0_cpython
#74 10.03   python-dateutil    conda-forge/noarch::python-dateutil-2.9.0.post0-pyhff2d567_1
#74 10.03   python-gitlab      conda-forge/noarch::python-gitlab-5.6.0-pyhff2d567_0
#74 10.03   python-levenshtein conda-forge/noarch::python-levenshtein-0.27.1-pyhff2d567_0
#74 10.03   python-tzdata      conda-forge/noarch::python-tzdata-2025.1-pyhd8ed1ab_0
#74 10.03   python_abi         conda-forge/linux-64::python_abi-3.11-5_cp311
#74 10.03   pytz               conda-forge/noarch::pytz-2024.1-pyhd8ed1ab_0
#74 10.03   pywavelets         conda-forge/linux-64::pywavelets-1.8.0-py311h9f3472d_0
#74 10.03   pywin32-on-windows conda-forge/noarch::pywin32-on-windows-0.1.0-pyh1179c8e_3
#74 10.03   pyyaml             conda-forge/linux-64::pyyaml-6.0.2-py311h2dc5d0c_2
#74 10.03   pyyaml-env-tag     conda-forge/noarch::pyyaml-env-tag-0.1-pyhd8ed1ab_1
#74 10.03   qt-main            conda-forge/linux-64::qt-main-5.15.8-hc9dc06e_21
#74 10.03   rapidfuzz          conda-forge/linux-64::rapidfuzz-3.12.2-py311hfdbb021_0
#74 10.03   rdflib             conda-forge/noarch::rdflib-7.1.3-pyhd8ed1ab_0
#74 10.03   readline           conda-forge/linux-64::readline-8.2-h8c095d6_2
#74 10.03   referencing        conda-forge/noarch::referencing-0.36.2-pyh29332c3_0
#74 10.03   requests           conda-forge/noarch::requests-2.32.3-pyhd8ed1ab_1
#74 10.03   requests-ftp       conda-forge/noarch::requests-ftp-0.3.1-pyhd8ed1ab_2
#74 10.03   requests-toolbelt  conda-forge/noarch::requests-toolbelt-1.0.0-pyhd8ed1ab_1
#74 10.03   retrying           conda-forge/noarch::retrying-1.3.4-pyhd8ed1ab_0
#74 10.03   rich               conda-forge/noarch::rich-13.9.4-pyhd8ed1ab_1
#74 10.03   rmath              opt/conda/conda-bld/linux-64::rmath-4.4.1-h6578b86_0
#74 10.03   rpds-py            conda-forge/linux-64::rpds-py-0.23.1-py311h687327b_0
#74 10.03   rsync              conda-forge/linux-64::rsync-3.1.3-h1245774_1003
#74 10.03   ruamel.yaml        conda-forge/linux-64::ruamel.yaml-0.18.10-py311h9ecbd09_0
#74 10.03   ruamel.yaml.clib   conda-forge/linux-64::ruamel.yaml.clib-0.2.8-py311h9ecbd09_1
#74 10.03   s3transfer         conda-forge/noarch::s3transfer-0.11.4-pyhd8ed1ab_0
#74 10.03   scikit-image       conda-forge/linux-64::scikit-image-0.20.0-py311h2872171_1
#74 10.03   scikit-learn       conda-forge/linux-64::scikit-learn-1.4.2-py311he08f58d_1
#74 10.03   scipy              conda-forge/linux-64::scipy-1.11.4-py311h64a7726_0
#74 10.03   sdcflows           opt/conda/conda-bld/linux-64::sdcflows-2.11.0-py311_0
#74 10.03   seaborn            conda-forge/noarch::seaborn-0.13.2-hd8ed1ab_3
#74 10.03   seaborn-base       conda-forge/noarch::seaborn-base-0.13.2-pyhd8ed1ab_3
#74 10.03   secretstorage      conda-forge/linux-64::secretstorage-3.3.3-py311h38be061_3
#74 10.03   setuptools         conda-forge/noarch::setuptools-75.8.2-pyhff2d567_0
#74 10.03   setuptools-scm     conda-forge/noarch::setuptools-scm-8.2.0-pyhd8ed1ab_0
#74 10.03   sgqlc              conda-forge/noarch::sgqlc-16.4-pyhd8ed1ab_1
#74 10.03   shellingham        conda-forge/noarch::shellingham-1.5.4-pyhd8ed1ab_1
#74 10.03   sigcpp-3.0         conda-forge/linux-64::sigcpp-3.0-3.6.0-h59595ed_0
#74 10.03   simplejson         conda-forge/linux-64::simplejson-3.20.1-py311h9ecbd09_0
#74 10.03   sip                conda-forge/linux-64::sip-6.7.12-py311hb755f60_0
#74 10.03   six                conda-forge/noarch::six-1.17.0-pyhd8ed1ab_0
#74 10.03   smmap              conda-forge/noarch::smmap-5.0.2-pyhd8ed1ab_0
#74 10.03   smriprep           opt/conda/conda-bld/linux-64::smriprep-0.17.0-py311_0
#74 10.03   sniffio            conda-forge/noarch::sniffio-1.3.1-pyhd8ed1ab_1
#74 10.03   sqlalchemy         conda-forge/linux-64::sqlalchemy-2.0.38-py311h9ecbd09_0
#74 10.03   sqlite             conda-forge/linux-64::sqlite-3.46.0-h6d4b2fc_0
#74 10.03   stackprinter       conda-forge/noarch::stackprinter-0.2.12-pyhd8ed1ab_0
#74 10.03   statsmodels        conda-forge/linux-64::statsmodels-0.14.4-py311h9f3472d_0
#74 10.03   svgutils           conda-forge/noarch::svgutils-0.3.4-pyhd8ed1ab_0
#74 10.03   syrupy             conda-forge/noarch::syrupy-4.8.2-pyhd8ed1ab_0
#74 10.03   tabulate           conda-forge/noarch::tabulate-0.9.0-pyhd8ed1ab_2
#74 10.03   tbb                conda-forge/linux-64::tbb-2022.0.0-hceb3a55_0
#74 10.03   tedana             opt/conda/conda-bld/linux-64::tedana-23.0.2-py311_0
#74 10.03   templateflow       conda-forge/noarch::templateflow-24.2.2-pyhd8ed1ab_1
#74 10.03   termcolor          conda-forge/noarch::termcolor-2.5.0-pyhd8ed1ab_1
#74 10.03   textual            conda-forge/noarch::textual-0.60.0-pyhd8ed1ab_0
#74 10.03   threadpoolctl      conda-forge/noarch::threadpoolctl-3.5.0-pyhc1e730c_0
#74 10.03   tifffile           conda-forge/noarch::tifffile-2020.6.3-py_0
#74 10.03   tk                 conda-forge/linux-64::tk-8.6.13-noxft_h4845f30_101
#74 10.03   toml               conda-forge/noarch::toml-0.10.2-pyhd8ed1ab_1
#74 10.03   tomli              conda-forge/noarch::tomli-2.2.1-pyhd8ed1ab_1
#74 10.03   toolz              conda-forge/noarch::toolz-1.0.0-pyhd8ed1ab_1
#74 10.03   tornado            conda-forge/linux-64::tornado-6.4.2-py311h9ecbd09_0
#74 10.03   tqdm               conda-forge/noarch::tqdm-4.67.1-pyhd8ed1ab_1
#74 10.03   traits             conda-forge/linux-64::traits-7.0.2-py311h9ecbd09_0
#74 10.03   transforms3d       conda-forge/noarch::transforms3d-0.4.2-pyhd8ed1ab_1
#74 10.03   trove-classifiers  conda-forge/noarch::trove-classifiers-2025.3.3.18-pyhd8ed1ab_0
#74 10.03   typeguard          conda-forge/noarch::typeguard-4.4.2-pyhd8ed1ab_0
#74 10.03   typer              conda-forge/noarch::typer-0.15.2-pyhff008b6_0
#74 10.03   typer-slim         conda-forge/noarch::typer-slim-0.15.2-pyh29332c3_0
#74 10.03   typer-slim-standa~ conda-forge/noarch::typer-slim-standard-0.15.2-h801b22e_0
#74 10.03   types-python-date~ conda-forge/noarch::types-python-dateutil-2.9.0.20241206-pyhd8ed1ab_0
#74 10.03   typing-extensions  conda-forge/noarch::typing-extensions-4.12.2-hd8ed1ab_1
#74 10.03   typing_extensions  conda-forge/noarch::typing_extensions-4.12.2-pyha770c72_1
#74 10.03   typing_inspect     conda-forge/noarch::typing_inspect-0.9.0-pyhd8ed1ab_1
#74 10.03   tzdata             conda-forge/noarch::tzdata-2025a-h78e105d_0
#74 10.03   tzlocal            conda-forge/linux-64::tzlocal-5.3-py311h38be061_0
#74 10.03   unicodedata2       conda-forge/linux-64::unicodedata2-16.0.0-py311h9ecbd09_0
#74 10.03   universal_pathlib  conda-forge/noarch::universal_pathlib-0.2.6-pyhd8ed1ab_0
#74 10.03   urllib3            conda-forge/noarch::urllib3-2.3.0-pyhd8ed1ab_0
#74 10.03   watchdog           conda-forge/linux-64::watchdog-6.0.0-py311h38be061_0
#74 10.03   websocket-client   conda-forge/noarch::websocket-client-1.8.0-pyhd8ed1ab_1
#74 10.03   werkzeug           conda-forge/noarch::werkzeug-3.1.3-pyhd8ed1ab_1
#74 10.03   wheel              conda-forge/noarch::wheel-0.45.1-pyhd8ed1ab_1
#74 10.03   whoosh             conda-forge/linux-64::whoosh-2.7.4-py311h38be061_9
#74 10.03   wrapt              conda-forge/linux-64::wrapt-1.17.2-py311h9ecbd09_0
#74 10.03   xcb-util           conda-forge/linux-64::xcb-util-0.4.0-hd590300_1
#74 10.03   xcb-util-image     conda-forge/linux-64::xcb-util-image-0.4.0-h8ee46fc_1
#74 10.03   xcb-util-keysyms   conda-forge/linux-64::xcb-util-keysyms-0.4.0-h8ee46fc_1
#74 10.03   xcb-util-renderut~ conda-forge/linux-64::xcb-util-renderutil-0.3.9-hd590300_1
#74 10.03   xcb-util-wm        conda-forge/linux-64::xcb-util-wm-0.4.1-h8ee46fc_1
#74 10.03   xclip              conda-forge/linux-64::xclip-0.13-h4ab18f5_1
#74 10.03   xkeyboard-config   conda-forge/linux-64::xkeyboard-config-2.42-h4ab18f5_0
#74 10.03   xlrd               conda-forge/noarch::xlrd-2.0.1-pyhd8ed1ab_3
#74 10.03   xlsxwriter         conda-forge/noarch::xlsxwriter-3.2.2-pyhd8ed1ab_0
#74 10.03   xorg-kbproto       conda-forge/linux-64::xorg-kbproto-1.0.7-hb9d3cd8_1003
#74 10.03   xorg-libice        conda-forge/linux-64::xorg-libice-1.1.2-hb9d3cd8_0
#74 10.03   xorg-libsm         conda-forge/linux-64::xorg-libsm-1.2.5-he73a12e_0
#74 10.03   xorg-libx11        conda-forge/linux-64::xorg-libx11-1.8.9-h8ee46fc_0
#74 10.03   xorg-libxau        conda-forge/linux-64::xorg-libxau-1.0.12-hb9d3cd8_0
#74 10.03   xorg-libxdmcp      conda-forge/linux-64::xorg-libxdmcp-1.1.5-hb9d3cd8_0
#74 10.03   xorg-libxext       conda-forge/linux-64::xorg-libxext-1.3.4-h0b41bf4_2
#74 10.03   xorg-libxmu        conda-forge/linux-64::xorg-libxmu-1.1.3-h4ab18f5_1
#74 10.03   xorg-libxrender    conda-forge/linux-64::xorg-libxrender-0.9.11-hd590300_0
#74 10.03   xorg-libxt         conda-forge/linux-64::xorg-libxt-1.3.0-hd590300_1
#74 10.03   xorg-renderproto   conda-forge/linux-64::xorg-renderproto-0.11.1-hb9d3cd8_1003
#74 10.03   xorg-xextproto     conda-forge/linux-64::xorg-xextproto-7.3.0-hb9d3cd8_1004
#74 10.03   xorg-xf86vidmodep~ conda-forge/linux-64::xorg-xf86vidmodeproto-2.3.1-hb9d3cd8_1005
#74 10.03   xorg-xproto        conda-forge/linux-64::xorg-xproto-7.0.31-hb9d3cd8_1008
#74 10.03   xsel               conda-forge/linux-64::xsel-1.2.1-h4ab18f5_2
#74 10.03   xvfbwrapper        conda-forge/noarch::xvfbwrapper-0.2.9-pyhd8ed1ab_1005
#74 10.03   xyzservices        conda-forge/noarch::xyzservices-2025.1.0-pyhd8ed1ab_0
#74 10.03   xz                 conda-forge/linux-64::xz-5.6.4-hbcc6ac9_0
#74 10.03   xz-gpl-tools       conda-forge/linux-64::xz-gpl-tools-5.6.4-hbcc6ac9_0
#74 10.03   xz-tools           conda-forge/linux-64::xz-tools-5.6.4-hb9d3cd8_0
#74 10.03   yaml               conda-forge/linux-64::yaml-0.2.5-h7f98852_2
#74 10.03   yarl               conda-forge/linux-64::yarl-1.18.3-py311h2dc5d0c_1
#74 10.03   zipp               conda-forge/noarch::zipp-3.21.0-pyhd8ed1ab_1
#74 10.03   zlib               conda-forge/linux-64::zlib-1.2.13-h4ab18f5_6
#74 10.03   zstandard          conda-forge/linux-64::zstandard-0.23.0-py311hbc35293_1
#74 10.03   zstd               conda-forge/linux-64::zstd-1.5.6-ha6fb4c9_0

Nipype expects the `xor` attribute for traits to always be a list. If
it's just a string, then the individual characters of the string will be
iterated, leading to an AttributeError when no single character
attribute exists on the spec.
Copy link

codecov bot commented Mar 7, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.87%. Comparing base (5a55a81) to head (9c1c0c0).
Report is 10 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #481      +/-   ##
==========================================
+ Coverage   83.85%   83.87%   +0.01%     
==========================================
  Files          30       30              
  Lines        2819     2822       +3     
  Branches      365      366       +1     
==========================================
+ Hits         2364     2367       +3     
  Misses        384      384              
  Partials       71       71              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

mgxd
mgxd previously approved these changes Mar 7, 2025
Copy link
Contributor

@mgxd mgxd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, this looks reasonable - would you be up for a simple smoke test or doctest to catch this in the future?

@effigies effigies force-pushed the fix/nipype-xor-list branch from 5cabd76 to 9c1c0c0 Compare March 7, 2025 18:42
Copy link
Member

@effigies effigies left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a doctest. If I revert the @HippocampusGirl's fix, I get:

----------------------------------------------------- Captured log call ------------------------------------------------------
ERROR    traits:trait_notifiers.py:220 Exception occurred in traits notification handler for object: 
approx = True
data2fmap_xfm = ['/var/home/chris/Projects/nipreps/sdcflows/sdcflows/tests/data/epi2fmap_xfm.txt']
fmap2data_xfm = <undefined>
in_coeff = ['/var/home/chris/Projects/nipreps/sdcflows/sdcflows/tests/data/topup-coeff.nii.gz']
in_data = /var/home/chris/Projects/nipreps/sdcflows/sdcflows/tests/data/epi.nii.gz
in_xfms = <undefined>
jacobian = False
num_threads = <undefined>
pe_dir = ['j']
ro_time = [0.03125]
, trait: data2fmap_xfm, old value: <undefined>, new value: ['/var/home/chris/Projects/nipreps/sdcflows/sdcflows/tests/data/epi2fmap_xfm.txt']
Traceback (most recent call last):
  File "/var/home/chris/Projects/nipreps/sdcflows/.tox/py312-latest/lib/python3.12/site-packages/traits/trait_notifiers.py", line 525, in _dispatch_change_event
    self.dispatch(handler, *args)
  File "/var/home/chris/Projects/nipreps/sdcflows/.tox/py312-latest/lib/python3.12/site-packages/traits/trait_notifiers.py", line 487, in dispatch
    handler(*args)
  File "/var/home/chris/Projects/nipreps/sdcflows/.tox/py312-latest/lib/python3.12/site-packages/nipype/interfaces/base/specs.py", line 110, in _xor_warn
    if isdefined(getattr(self, trait_name)):
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: '_ApplyCoeffsFieldInputSpec' object has no attribute 'f'

With the fix, the tests pass.

@mgxd mgxd merged commit 647d690 into nipreps:master Mar 7, 2025
18 checks passed
@HippocampusGirl
Copy link
Contributor Author

Thanks @mgxd and @effigies. I have actually never heard of doctests before so this is super cool :-)

@HippocampusGirl HippocampusGirl deleted the fix/nipype-xor-list branch March 7, 2025 21:19
effigies added a commit that referenced this pull request Mar 21, 2025
2.12.0 (March 21, 2025)

Feature release in the 2.12.x series.

This release migrates from the deprecated ``niworkflows.reporting``
module to the ``nireports`` package.

* FIX: AttributeError for _ApplyCoeffsFieldInputSpec (#481)
* ENH: Allow running SyN SDC without using prior (#480)
* ENH: Allow estimated and fallback TotalReadoutTime (#477)
* RF: Transition from niworkflows reporting interfaces (#473)
* DOC: Fix broken link [skip ci] (#482)
* MNT: Add `defaults` to `conda` channels in `build-test-publish` GHA (#474)
* MNT: Update `niworkflows` version to 1.11.0 (#478)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants