parent
b911796c15
commit
4cd6df86cf
1 changed files with 16 additions and 2 deletions
|
@ -1,7 +1,8 @@
|
||||||
"""
|
"""
|
||||||
Various helpers for compression
|
Various helpers for compression
|
||||||
"""
|
"""
|
||||||
from pathlib import Path, PosixPath
|
import pathlib
|
||||||
|
from pathlib import Path
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
PathIsh = Union[Path, str]
|
PathIsh = Union[Path, str]
|
||||||
|
@ -33,8 +34,21 @@ def kopen(path: PathIsh, *args, **kwargs): # TODO is it bytes stream??
|
||||||
return pp.open(*args, **kwargs)
|
return pp.open(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class CPath(PosixPath):
|
import typing
|
||||||
|
import os
|
||||||
|
|
||||||
|
if typing.TYPE_CHECKING:
|
||||||
|
# otherwise mypy can't figure out that BasePath is a type alias..
|
||||||
|
BasePath = pathlib.Path
|
||||||
|
else:
|
||||||
|
BasePath = pathlib.WindowsPath if os.name == 'nt' else pathlib.PosixPath
|
||||||
|
|
||||||
|
|
||||||
|
class CPath(BasePath):
|
||||||
"""
|
"""
|
||||||
|
Hacky way to support compressed files.
|
||||||
|
If you can think of a better way to do this, please let me know! https://github.com/karlicoss/HPI/issues/20
|
||||||
|
|
||||||
Ugh. So, can't override Path because of some _flavour thing.
|
Ugh. So, can't override Path because of some _flavour thing.
|
||||||
Path only has _accessor and _closed slots, so can't directly set .open method
|
Path only has _accessor and _closed slots, so can't directly set .open method
|
||||||
_accessor.open has to return file descriptor, doesn't work for compressed stuff.
|
_accessor.open has to return file descriptor, doesn't work for compressed stuff.
|
||||||
|
|
Loading…
Add table
Reference in a new issue