From addf2732124e1959fe6b775a3aab8e0214133ad9 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 18 Jul 2024 19:43:13 -0400 Subject: [PATCH 1/8] chore(pre-commit): Update pre-commit hooks --- .pre-commit-config.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c392fd2b85..ef5b3fb099 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.6.0 hooks: - id: trailing-whitespace exclude: '.gitignore|.*\.gii$' @@ -11,7 +11,10 @@ repos: - id: check-toml - id: check-json - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.3.1 + rev: v0.5.3 hooks: - id: ruff + args: [ --fix ] - id: ruff-format + - id: ruff + args: [ --select, ISC001, --fix ] From 2521495a80675beb11b2681b9fb74249753a07e8 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 18 Jul 2024 19:44:20 -0400 Subject: [PATCH 2/8] chore(env): Bring env.yml into line with fmriprep --- env.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/env.yml b/env.yml index 6c4d96c74c..156572e4a1 100644 --- a/env.yml +++ b/env.yml @@ -10,14 +10,16 @@ dependencies: # Intel Math Kernel Library for numpy - mkl=2023.2 - mkl-service=2.4 + # ANTs is linked against libitk 5.3 but does not pin the version + - libitk=5.3 # Base scientific python stack; required by FSL, so pinned here - numpy=1.26 - - scipy=1.11 + - scipy=1.13 - matplotlib=3.8 - pandas=2.2 - - h5py=3.10 + - h5py=3.11 # Dependencies compiled against numpy, best to stick with conda - - scikit-image=0.22 + - scikit-image=0.23 - scikit-learn=1.4 # Utilities - graphviz=9.0 @@ -32,3 +34,5 @@ dependencies: - pip - pip: - -r requirements.txt +variables: + FSLOUTPUTTYPE: NIFTI_GZ From c2309504fafb93d1ca8dfbffed27b9e4e7861a0c Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 11:38:54 -0400 Subject: [PATCH 3/8] chore(pin): uv pip compile --upgrade --strip-extras pyproject.toml -o requirements.txt -p 3.11 -c - --- requirements.txt | 93 ++++++++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 38 deletions(-) diff --git a/requirements.txt b/requirements.txt index 48babf290b..19e83e7e16 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,12 @@ # This file was autogenerated by uv via the following command: -# uv pip compile pyproject.toml -c - -p 3.11 -o requirements.txt +# uv pip compile --strip-extras pyproject.toml -o requirements.txt -p 3.11 -c - astor==0.8.1 # via formulaic attrs==23.2.0 # via niworkflows -bids-validator==1.14.4 +bids-validator==1.14.6 # via pybids -certifi==2024.2.2 +certifi==2024.7.4 # via requests charset-normalizer==3.3.2 # via requests @@ -16,7 +16,7 @@ click==8.1.7 # via # nipype # pybids -contourpy==1.2.0 +contourpy==1.2.1 # via matplotlib cycler==0.12.1 # via matplotlib @@ -24,74 +24,83 @@ docopt==0.6.2 # via num2words etelemetry==0.3.1 # via nipype -filelock==3.13.1 +filelock==3.15.4 # via nipype -fonttools==4.50.0 +fonttools==4.53.1 # via matplotlib formulaic==0.5.2 # via pybids greenlet==3.0.3 # via sqlalchemy -h5py==3.10.0 +h5py==3.11.0 # via nitransforms -idna==3.6 +idna==3.7 # via requests -imageio==2.34.0 +imageio==2.34.2 # via scikit-image indexed-gzip==1.8.7 + # via smriprep (pyproject.toml) interface-meta==1.3.0 # via formulaic isodate==0.6.1 # via rdflib -jinja2==3.1.3 +jinja2==3.1.4 # via niworkflows -joblib==1.3.2 +joblib==1.4.2 # via # nilearn # scikit-learn kiwisolver==1.4.5 # via matplotlib -lazy-loader==0.3 +lazy-loader==0.4 # via scikit-image lockfile==0.12.2 + # via smriprep (pyproject.toml) looseversion==1.3.0 # via + # smriprep (pyproject.toml) # nipype # niworkflows -lxml==5.1.0 +lxml==5.2.2 # via # nilearn # prov # svgutils markupsafe==2.1.5 # via jinja2 -matplotlib==3.8.3 +matplotlib==3.9.1 # via + # smriprep (pyproject.toml) # niworkflows # seaborn -networkx==3.2.1 +networkx==3.3 # via # nipype # prov # scikit-image nibabel==5.2.1 # via + # smriprep (pyproject.toml) # nilearn # nipype # nitransforms # niworkflows # pybids -nilearn==0.10.3 +nilearn==0.10.4 # via niworkflows nipype==1.8.6 - # via niworkflows + # via + # smriprep (pyproject.toml) + # niworkflows nitransforms==23.0.1 # via niworkflows -niworkflows==1.10.1 +niworkflows==1.10.2 + # via smriprep (pyproject.toml) num2words==0.5.13 # via pybids numpy==1.26.4 # via + # smriprep (pyproject.toml) # contourpy # formulaic # h5py @@ -109,34 +118,38 @@ numpy==1.26.4 # scipy # seaborn # tifffile -packaging==24.0 + # transforms3d +packaging==24.1 # via + # smriprep (pyproject.toml) # etelemetry + # lazy-loader # matplotlib # nibabel # nilearn # nipype # niworkflows # scikit-image -pandas==2.2.1 +pandas==2.2.2 # via # formulaic # nilearn # niworkflows # pybids # seaborn -pillow==10.2.0 +pillow==10.4.0 # via # imageio # matplotlib # scikit-image -prov==2.0.0 +prov==2.0.1 # via nipype -pybids==0.16.4 +pybids==0.16.5 # via + # smriprep (pyproject.toml) # niworkflows # templateflow -pydot==2.0.0 +pydot==3.0.1 # via nipype pyparsing==3.1.2 # via @@ -152,21 +165,23 @@ python-dateutil==2.9.0.post0 pytz==2024.1 # via pandas pyyaml==6.0.1 - # via niworkflows -rdflib==7.0.0 + # via + # smriprep (pyproject.toml) + # niworkflows +rdflib==6.3.2 # via # nipype # prov -requests==2.31.0 +requests==2.32.3 # via # etelemetry # nilearn # templateflow -scikit-image==0.22.0 +scikit-image==0.23.2 # via niworkflows -scikit-learn==1.4.1.post1 +scikit-learn==1.4.2 # via nilearn -scipy==1.11.4 +scipy==1.13.1 # via # formulaic # nilearn @@ -184,31 +199,33 @@ six==1.16.0 # via # isodate # python-dateutil -sqlalchemy==2.0.28 +sqlalchemy==2.0.31 # via pybids svgutils==0.3.4 # via niworkflows templateflow==24.2.0 - # via niworkflows -threadpoolctl==3.4.0 + # via + # smriprep (pyproject.toml) + # niworkflows +threadpoolctl==3.5.0 # via scikit-learn -tifffile==2024.2.12 +tifffile==2024.7.2 # via scikit-image -tqdm==4.66.2 +tqdm==4.66.4 # via templateflow traits==6.3.2 # via # nipype # niworkflows -transforms3d==0.4.1 +transforms3d==0.4.2 # via niworkflows -typing-extensions==4.10.0 +typing-extensions==4.12.2 # via # formulaic # sqlalchemy tzdata==2024.1 # via pandas -urllib3==2.2.1 +urllib3==2.2.2 # via requests wrapt==1.16.0 # via formulaic From 9ebb2c5c867fb20a4d627f7391f58d2d27e6710e Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 11:57:45 -0400 Subject: [PATCH 4/8] chore(ruff): Limit ruff targets --- pyproject.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 7730a84dd1..e316d11127 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -141,6 +141,10 @@ source = [ [tool.ruff] line-length = 99 +extend-exclude = [ + "wrapper/*.py", + "docs/sphinxext/*", +] [tool.ruff.lint] extend-select = [ @@ -177,6 +181,7 @@ inline-quotes = "single" [tool.ruff.lint.extend-per-file-ignores] "*/test_*.py" = ["S101"] +"docs/conf.py" = ["A001"] [tool.ruff.format] quote-style = "single" From bdda66001d0a066623a3514405430ea44d6b372f Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 11:57:58 -0400 Subject: [PATCH 5/8] fix(doc): Remove numpy from mock to resolve import failure --- docs/conf.py | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 0e0fefeea2..9adb51c929 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -59,7 +59,6 @@ "matplotlib", "nilearn", "nitime", - "numpy", "pandas", "seaborn", "skimage", From 6333f4735f341e556113325c7bc9d0f2e284e418 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 11:59:08 -0400 Subject: [PATCH 6/8] chore(ruff): ruff check --fix && ruff format [git-blame-ignore-rev] --- docs/conf.py | 151 +++++++++++++++++++------------------ scripts/fetch_templates.py | 52 ++++++------- 2 files changed, 104 insertions(+), 99 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 9adb51c929..eb98e418c1 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,26 +12,31 @@ # import os import sys + from packaging.version import Version +from smriprep import ( + __copyright__ as _copyright, +) from smriprep import ( __package__ as _package, +) +from smriprep import ( __version__ as _version, - __copyright__ as _copyright, ) -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "sphinxext"))) +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'sphinxext'))) from github_link import make_linkcode_resolve # noqa: E402 os.environ['NO_ET'] = '1' -sys.path.insert(0, os.path.abspath("../wrapper")) +sys.path.insert(0, os.path.abspath('../wrapper')) # -- Project information ----------------------------------------------------- project = _package -copyright = _copyright -author = "The sMRIPrep Developers" +copyright = _copyright # noqa: A001 +author = 'The sMRIPrep Developers' # The short X.Y version version = Version(_version).public @@ -41,29 +46,29 @@ # -- General configuration --------------------------------------------------- extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.doctest", - "sphinx.ext.intersphinx", - "sphinx.ext.coverage", - "sphinx.ext.mathjax", - "sphinx.ext.ifconfig", - "sphinx.ext.viewcode", - "sphinx.ext.githubpages", - "sphinxarg.ext", # argparse extension - "sphinxcontrib.apidoc", - "nipype.sphinxext.plot_workflow", - "nipype.sphinxext.apidoc", + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', + 'sphinx.ext.ifconfig', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', + 'sphinxarg.ext', # argparse extension + 'sphinxcontrib.apidoc', + 'nipype.sphinxext.plot_workflow', + 'nipype.sphinxext.apidoc', ] autodoc_mock_imports = [ - "matplotlib", - "nilearn", - "nitime", - "pandas", - "seaborn", - "skimage", - "svgutils", - "transforms3d", + 'matplotlib', + 'nilearn', + 'nitime', + 'pandas', + 'seaborn', + 'skimage', + 'svgutils', + 'transforms3d', ] # Accept custom section names to be parsed for numpy-style docstrings @@ -72,41 +77,41 @@ # https://github.com/sphinx-contrib/napoleon/pull/10 is merged. napoleon_use_param = False napoleon_custom_sections = [ - ("Inputs", "Parameters"), - ("Outputs", "Parameters"), - ("Attributes", "Parameters"), - ("Mandatory Inputs", "Parameters"), - ("Optional Inputs", "Parameters"), + ('Inputs', 'Parameters'), + ('Outputs', 'Parameters'), + ('Attributes', 'Parameters'), + ('Mandatory Inputs', 'Parameters'), + ('Optional Inputs', 'Parameters'), ] # Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] +templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] -source_suffix = ".rst" +source_suffix = '.rst' # The master toctree document. -master_doc = "index" +master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = "en" +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [ - "_build", - "Thumbs.db", - ".DS_Store", - "api/modules.rst", - "api/smriprep.rst", + '_build', + 'Thumbs.db', + '.DS_Store', + 'api/modules.rst', + 'api/smriprep.rst', ] # The name of the Pygments (syntax highlighting) style to use. @@ -118,7 +123,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "sphinx_rtd_theme" +html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -129,7 +134,7 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] +html_static_path = ['_static'] # Custom sidebar templates, must be a dictionary that maps document names # to template names. @@ -145,7 +150,7 @@ # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. -htmlhelp_basename = "smriprepdoc" +htmlhelp_basename = 'smriprepdoc' # -- Options for LaTeX output ------------------------------------------------ @@ -171,10 +176,10 @@ latex_documents = [ ( master_doc, - "smriprep.tex", - "sMRIPrep Documentation", - "The NiPreps Developers", - "manual", + 'smriprep.tex', + 'sMRIPrep Documentation', + 'The NiPreps Developers', + 'manual', ), ] @@ -183,7 +188,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, "smriprep", "sMRIPrep Documentation", [author], 1)] +man_pages = [(master_doc, 'smriprep', 'sMRIPrep Documentation', [author], 1)] # -- Options for Texinfo output ---------------------------------------------- @@ -194,12 +199,12 @@ texinfo_documents = [ ( master_doc, - "smriprep", - "sMRIPrep Documentation", + 'smriprep', + 'sMRIPrep Documentation', author, - "sMRIPrep", - "One line description of project.", - "Miscellaneous", + 'sMRIPrep', + 'One line description of project.', + 'Miscellaneous', ), ] @@ -219,42 +224,42 @@ # epub_uid = '' # A list of files that should not be packed into the epub file. -epub_exclude_files = ["search.html"] +epub_exclude_files = ['search.html'] # -- Extension configuration ------------------------------------------------- -apidoc_module_dir = "../smriprep" -apidoc_output_dir = "api" +apidoc_module_dir = '../smriprep' +apidoc_output_dir = 'api' apidoc_excluded_paths = [ - "conftest.py", - "*/conftest.py", - "*/tests/*", - "tests/*", - "data/*", - "conf/*", + 'conftest.py', + '*/conftest.py', + '*/tests/*', + 'tests/*', + 'data/*', + 'conf/*', ] apidoc_separate_modules = True -apidoc_extra_args = ["--module-first", "-d 1", "-T"] +apidoc_extra_args = ['--module-first', '-d 1', '-T'] # Options for github links # The following is used by sphinx.ext.linkcode to provide links to github linkcode_resolve = make_linkcode_resolve( - "smriprep", - "https://github.com/nipreps/smriprep/blob/{revision}/{package}/{path}#L{lineno}", + 'smriprep', + 'https://github.com/nipreps/smriprep/blob/{revision}/{package}/{path}#L{lineno}', ) # -- Options for intersphinx extension --------------------------------------- intersphinx_mapping = { - "python": ("https://docs.python.org/3/", None), - "numpy": ("https://numpy.org/doc/stable/", None), - "scipy": ("https://docs.scipy.org/doc/scipy/", None), - "matplotlib": ("https://matplotlib.org/", None), - "bids": ("https://bids-standard.github.io/pybids/", None), - "nibabel": ("https://nipy.org/nibabel/", None), - "nipype": ("https://nipype.readthedocs.io/en/latest/", None), - "niworkflows": ("https://www.nipreps.org/niworkflows/", None), - "templateflow": ("https://www.templateflow.org/python-client", None), + 'python': ('https://docs.python.org/3/', None), + 'numpy': ('https://numpy.org/doc/stable/', None), + 'scipy': ('https://docs.scipy.org/doc/scipy/', None), + 'matplotlib': ('https://matplotlib.org/', None), + 'bids': ('https://bids-standard.github.io/pybids/', None), + 'nibabel': ('https://nipy.org/nibabel/', None), + 'nipype': ('https://nipype.readthedocs.io/en/latest/', None), + 'niworkflows': ('https://www.nipreps.org/niworkflows/', None), + 'templateflow': ('https://www.templateflow.org/python-client', None), } # -- Options for versioning extension ---------------------------------------- diff --git a/scripts/fetch_templates.py b/scripts/fetch_templates.py index 3d65ffc143..f27d8e42c2 100755 --- a/scripts/fetch_templates.py +++ b/scripts/fetch_templates.py @@ -23,13 +23,13 @@ def fetch_MNI2009(): tpl-MNI152NLin2009cAsym/tpl-MNI152NLin2009cAsym_res-02_desc-fMRIPrep_boldref.nii.gz tpl-MNI152NLin2009cAsym/tpl-MNI152NLin2009cAsym_res-01_label-brain_probseg.nii.gz """ - template = "MNI152NLin2009cAsym" + template = 'MNI152NLin2009cAsym' - tf.get(template, resolution=(1, 2), desc=None, suffix="T1w") - tf.get(template, resolution=(1, 2), desc="brain", suffix="mask") - tf.get(template, resolution=1, atlas=None, desc="carpet", suffix="dseg") - tf.get(template, resolution=2, desc="fMRIPrep", suffix="boldref") - tf.get(template, resolution=1, label="brain", suffix="probseg") + tf.get(template, resolution=(1, 2), desc=None, suffix='T1w') + tf.get(template, resolution=(1, 2), desc='brain', suffix='mask') + tf.get(template, resolution=1, atlas=None, desc='carpet', suffix='dseg') + tf.get(template, resolution=2, desc='fMRIPrep', suffix='boldref') + tf.get(template, resolution=1, label='brain', suffix='probseg') def fetch_MNI6(): @@ -42,12 +42,12 @@ def fetch_MNI6(): tpl-MNI152NLin6Asym/tpl-MNI152NLin6Asym_res-02_desc-brain_mask.nii.gz tpl-MNI152NLin6Asym/tpl-MNI152NLin6Asym_res-02_atlas-HCP_dseg.nii.gz """ - template = "MNI152NLin6Asym" + template = 'MNI152NLin6Asym' - tf.get(template, resolution=(1, 2), desc=None, suffix="T1w") - tf.get(template, resolution=(1, 2), desc="brain", suffix="mask") + tf.get(template, resolution=(1, 2), desc=None, suffix='T1w') + tf.get(template, resolution=(1, 2), desc='brain', suffix='mask') # CIFTI - tf.get(template, resolution=2, atlas="HCP", suffix="dseg") + tf.get(template, resolution=2, atlas='HCP', suffix='dseg') def fetch_OASIS(): @@ -61,14 +61,14 @@ def fetch_OASIS(): tpl-OASIS30ANTs/tpl-OASIS30ANTs_res-01_desc-brain_mask.nii.gz tpl-OASIS30ANTs/tpl-OASIS30ANTs_res-01_desc-BrainCerebellumExtraction_mask.nii.gz """ - template = "OASIS30ANTs" + template = 'OASIS30ANTs' - tf.get(template, resolution=1, desc=None, label=None, suffix="T1w") - tf.get(template, resolution=1, label="WM", suffix="probseg") - tf.get(template, resolution=1, label="BS", suffix="probseg") - tf.get(template, resolution=1, label="brain", suffix="probseg") - tf.get(template, resolution=1, label="brain", suffix="mask") - tf.get(template, resolution=1, desc="BrainCerebellumExtraction", suffix="mask") + tf.get(template, resolution=1, desc=None, label=None, suffix='T1w') + tf.get(template, resolution=1, label='WM', suffix='probseg') + tf.get(template, resolution=1, label='BS', suffix='probseg') + tf.get(template, resolution=1, label='brain', suffix='probseg') + tf.get(template, resolution=1, label='brain', suffix='mask') + tf.get(template, resolution=1, desc='BrainCerebellumExtraction', suffix='mask') def fetch_fsaverage(): @@ -82,9 +82,9 @@ def fetch_fsaverage(): tpl-fsaverage/tpl-fsaverage_hemi-L_den-164k_sulc.shape.gii tpl-fsaverage/tpl-fsaverage_hemi-R_den-164k_sulc.shape.gii """ - template = "fsaverage" + template = 'fsaverage' - tf.get(template, density="164k", suffix="dseg", extension=".tsv") + tf.get(template, density='164k', suffix='dseg', extension='.tsv') tf.get(template, density='164k', desc='std', suffix='sphere', extension='.surf.gii') tf.get(template, density='164k', suffix='sulc', extension='.shape.gii') @@ -102,7 +102,7 @@ def fetch_fsLR(): tpl-fsLR/tpl-fsLR_space-fsaverage_hemi-L_den-32k_sphere.surf.gii tpl-fsLR/tpl-fsLR_space-fsaverage_hemi-R_den-32k_sphere.surf.gii """ - tf.get("fsLR", density="32k") + tf.get('fsLR', density='32k') def fetch_all(): @@ -113,21 +113,21 @@ def fetch_all(): fetch_fsLR() -if __name__ == "__main__": +if __name__ == '__main__': parser = argparse.ArgumentParser( - description="Helper script for pre-caching required templates to run fMRIPrep", + description='Helper script for pre-caching required templates to run fMRIPrep', ) parser.add_argument( - "--tf-dir", + '--tf-dir', type=os.path.abspath, - help="Directory to save templates in. If not provided, templates will be saved to" - " `${HOME}/.cache/templateflow`.", + help='Directory to save templates in. If not provided, templates will be saved to' + ' `${HOME}/.cache/templateflow`.', ) opts = parser.parse_args() # set envvar (if necessary) prior to templateflow import if opts.tf_dir is not None: - os.environ["TEMPLATEFLOW_HOME"] = opts.tf_dir + os.environ['TEMPLATEFLOW_HOME'] = opts.tf_dir import templateflow.api as tf From 6964800214e497815e65f96989cc0102a2a3b4cd Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 12:00:14 -0400 Subject: [PATCH 7/8] chore: make .git-blame-ignore-rev --- .git-blame-ignore-revs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 988964e066..8891d4a17f 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,8 +1,10 @@ +# 2024-07-19 - effigies@gmail.com - chore(ruff): ruff check --fix && ruff format [git-blame-ignore-rev] +6333f4735f341e556113325c7bc9d0f2e284e418 # 2024-03-07 - mathiasg@stanford.edu - STY: ruff format smriprep [git-blame-ignore-rev] 83a50d465145c6e8176c3f13d4673ed4e0bdb26f # 2023-11-21 - effigies@gmail.com - STY: ruff --fix smriprep [git-blame-ignore-rev] -3a586cf46cb1bb963b93d9546f20273194d15de5 +5d4743142c43d415b761230d83a471cd5aae0314 # 2023-11-20 - effigies@gmail.com - STY: ruff --fix smriprep [git-blame-ignore-rev] -c5e8b6b8ddb69284a4cba58e2512b299f1e29464 +946f030e4409bd2fcc044e4a0716ba8af91df247 # 2023-11-20 - effigies@gmail.com - STY: ruff format smriprep [git-blame-ignore-rev] -8d62c0f3f3c6a911b1dfe2e9a2016b8de7da051a +d14bcb0d65defd18affb6164867ab665c780637e From f471662dff7dda15135f920daa6bc7359ffb2e04 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Fri, 19 Jul 2024 12:00:56 -0400 Subject: [PATCH 8/8] chore(gitignore): Ignore doc build artifacts --- docs/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/.gitignore diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000000..8c6492ca8e --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +api/