Passed
Pull Request — main (#1278)
by Fernando
01:32
created

torchio.external.imports   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 23
rs 10
c 0
b 0
f 0
wmc 4

3 Functions

Rating   Name   Duplication   Size   Complexity  
A get_pandas() 0 2 1
A _check_package() 0 8 2
A _check_and_import() 0 3 1
1
from importlib import import_module
2
from importlib.util import find_spec
3
from types import ModuleType
4
5
6
def _check_package(*, package: str, extra: str) -> None:
7
    if find_spec(package) is None:
8
        message = (
9
            f'The `{package}` package is required for this.'
10
            f' Install TorchIO with the `{extra}` extra:'
11
            f' `pip install torchio[{extra}]`.'
12
        )
13
        raise ImportError(message)
14
15
16
def _check_and_import(package: str, extra: str) -> ModuleType:
17
    _check_package(package=package, extra=extra)
18
    return import_module(package)
19
20
21
def get_pandas() -> ModuleType:
22
    return _check_and_import(package='pandas', extra='csv')
23