Skip to content

Commit dfaddb8

Browse files
committed
RF: Move type hints, add docs for gzip_open/zstd_open
1 parent 34b9dc6 commit dfaddb8

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

nibabel/_compression.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import bz2
1414
import gzip
15+
import io
1516
import typing as ty
1617

1718
from .optpkg import optional_package
@@ -30,6 +31,15 @@
3031

3132
HAVE_INDEXED_GZIP = True
3233
HAVE_ZSTD = True
34+
35+
ModeRT = ty.Literal['r', 'rt']
36+
ModeRB = ty.Literal['rb']
37+
ModeWT = ty.Literal['w', 'wt']
38+
ModeWB = ty.Literal['wb']
39+
ModeR = ty.Union[ModeRT, ModeRB]
40+
ModeW = ty.Union[ModeWT, ModeWB]
41+
Mode = ty.Union[ModeR, ModeW]
42+
3343
else:
3444
indexed_gzip, HAVE_INDEXED_GZIP, _ = optional_package('indexed_gzip')
3545
zstd, HAVE_ZSTD, _ = optional_package(('compression.zstd',
@@ -101,6 +111,30 @@ def gzip_open(
101111
mtime: int = 0,
102112
keep_open: bool = False,
103113
) -> gzip.GzipFile:
114+
"""Open a gzip file for reading or writing.
115+
116+
If opening a file for reading, and ``indexed_gzip`` is available,
117+
an ``IndexedGzipFile`` is returned.
118+
119+
Otherwise (opening for writing, or ``indexed_gzip`` not available),
120+
a ``DeterministicGzipFile`` is returned.
121+
122+
Parameters:
123+
-----------
124+
125+
filename : str
126+
Path of file to open.
127+
mode : Mode
128+
Opening mode - either ``rb`` or ``wb``.
129+
compresslevel: int
130+
Compression level when writing.
131+
mtime: int
132+
Modification time used when writing a file - passed to the
133+
``DetemrinisticGzipFile``. Ignored when reading.
134+
keep_open: bool
135+
Whether to keep the file handle open between reads. Ignored when writing,
136+
or when ``indexed_gzip`` is not present.
137+
"""
104138
if not HAVE_INDEXED_GZIP or mode != 'rb':
105139
gzip_file = DeterministicGzipFile(filename, mode, compresslevel, mtime=mtime)
106140

nibabel/openers.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@
3030

3131
from ._typing import Self
3232

33-
ModeRT = ty.Literal['r', 'rt']
34-
ModeRB = ty.Literal['rb']
35-
ModeWT = ty.Literal['w', 'wt']
36-
ModeWB = ty.Literal['wb']
37-
ModeR = ty.Union[ModeRT, ModeRB]
38-
ModeW = ty.Union[ModeWT, ModeWB]
39-
Mode = ty.Union[ModeR, ModeW]
40-
4133
OpenerDef = tuple[ty.Callable[..., io.IOBase], tuple[str, ...]]
4234

4335

0 commit comments

Comments
 (0)