# NiBabel

### Access a cacophony of neuro-imaging file formats

# `deprecator`

Class for recording and reporting deprecations

`Deprecator`(version_comparator, int], ...) | Class to make decorator marking function or method as deprecated
`ExpiredDeprecationError` | Error for expired deprecation

## `Deprecator`

class nibabel.deprecator.Deprecator(version_comparator: ~typing.Callable[[str], int], warn_class: type[Warning] = <class 'DeprecationWarning'>, error_class: type[Exception] = <class 'nibabel.deprecator.ExpiredDeprecationError'>)

  Bases: `object`

  Class to make decorator marking function or method as deprecated

  The decorated function / method will:

  - Raise the given warning_class warning when the function / method gets called, up to (and including) version until (if specified);

  - Raise the given error_class error when the function / method gets called, when the package version is greater than version until (if specified).

  Parameters:
    version_comparator callable

      Callable accepting string as argument, and return 1 if string represents a higher version than encoded in the version_comparator, 0 if the version is equal, and -1 if the version is lower. For example, the version_comparator may compare the input version string to the current package version string.

    warn_class class, optional

      Class of warning to generate for deprecation.

    error_class class, optional

      Class of error to generate when version_comparator returns 1 for a given argument of `until` in the `__call__` method (see below).

  __init__(version_comparator: ~typing.Callable[[str], int], warn_class: type[Warning] = <class 'DeprecationWarning'>, error_class: type[Exception] = <class 'nibabel.deprecator.ExpiredDeprecationError'>) → None
  is_bad_version(version_str: str) → bool

    Return True if version_str is too high

    Tests version_str with `self.version_comparator`

    Parameters:
      version_str str

        String giving version to test

    Returns:
      is_bad bool

        True if version_str is for version below that expected by `self.version_comparator`, False otherwise.

## `ExpiredDeprecationError`

class nibabel.deprecator.ExpiredDeprecationError

  Bases: `RuntimeError`

  Error for expired deprecation

  Error raised when a called function or method has passed out of its deprecation period.

  __init__(*args, **kwargs)