import sys from typing import List, Union, NoReturn, Iterable, Any, Tuple, Optional, TypeVar if sys.version_info < (3, 8): from typing_extensions import Protocol else: from typing import Protocol class _HasFileNo(Protocol): def fileno(self) -> int: ... def get_verbosity() -> int: ... def set_verbosity(level: int): ... THFile = TypeVar("THFile", bound="HFile") class HFile: def __init__(self, name: Union[int, str], mode: str = ...) -> None: ... def __enter__(self: THFile) -> THFile: ... def __exit__(self, type, value, tb): ... def __iter__(self) -> Any: ... def __next__(self) -> str: ... @property def closed(self) -> bool: ... @property def mode(self) -> str: ... @property def name(self) -> Union[int, str]: ... def close(self) -> None: ... def fileno(self) -> int: ... def flush(self) -> None: ... def isatty(self) -> bool: ... def readable(self) -> bool: ... def read(self, size: int = ...) -> bytes: ... def readall(self) -> bytes: ... def readinto(self, buf: Any) -> bytes: ... def readline(self, size: int = ...) -> bytes: ... def readlines(self) -> List[bytes]: ... def seek(self, offset: int, whence: int = ...) -> int: ... def seekable(self) -> bool: ... def tell(self) -> int: ... def truncate(self, *args) -> NoReturn: ... def writable(self) -> bool: ... def write(self, b: bytes) -> int: ... def writelines(self, lines: Iterable[bytes]) -> None: ... THTSFile = TypeVar("THTSFile", bound="HTSFile") class HTSFile: def __enter__(self: THTSFile) -> THTSFile: ... def __exit__(self, type, value, traceback) -> Any: ... @property def filename(self) -> Any: ... @property def mode(self) -> str: ... @property def threads(self) -> int: ... @property def index_filename(self) -> Optional[str]: ... @property def is_stream(self) -> bool: ... @property def is_remote(self) -> bool: ... @property def duplicate_filehandle(self) -> bool: ... def close(self) -> None: ... def check_truncation(self, ignore_truncation: bool = ...) -> None: ... @property def category(self) -> str: ... @property def format(self) -> str: ... @property def version(self) -> Tuple[int, int]: ... @property def compression(self) -> str: ... @property def description(self) -> str: ... @property def is_open(self) -> bool: ... @property def is_closed(self) -> bool: ... @property def closed(self) -> bool: ... @property def is_write(self) -> bool: ... @property def is_read(self) -> bool: ... @property def is_sam(self) -> bool: ... @property def is_bam(self) -> bool: ... @property def is_cram(self) -> bool: ... @property def is_vcf(self) -> bool: ... @property def is_bcf(self) -> bool: ... def reset(self) -> None: ... def seek(self, offset: int, whence: int = ...) -> int: ... def tell(self) -> int: ... def add_hts_options(self, format_options: Optional[List[str]] = ...) -> None: ... def parse_region( self, contig: Optional[str] = ..., start: Optional[int] = ..., stop: Optional[int] = ..., region: Optional[str] = ..., tid: Optional[int] = ..., reference: Optional[str] = ..., end: Optional[int] = ..., ) -> Tuple[int, int, int, int]: ... def is_valid_tid(self, tid: int) -> bool: ... def is_valid_reference_name(self, contig: str) -> bool: ... def get_tid(self, contig: str) -> int: ... def get_reference_name(self, tid: int) -> Optional[str]: ...