# Path: pycdlib/inode.py
# class Inode(object):
# class InodeOpenData(object):
#     DATA_ON_ORIGINAL_ISO = 1
#     DATA_IN_EXTERNAL_FP = 2
#     def __init__(self):
#     def new(self, length, fp, manage_fp, offset):
#     def parse(self, extent, length, fp, log_block_size):
#     def extent_location(self):
#     def set_extent_location(self, extent):
#     def get_data_length(self):
#     def add_boot_info_table(self, boot_info_table):
#     def update_fp(self, fp, length):
#     def __init__(self, ino, logical_block_size):
#     def __enter__(self):
#     def __exit__(self, *args):
# 
# Path: pycdlib/pycdlibexception.py
# class PyCdlibException(Exception):
# class PyCdlibInternalError(PyCdlibException):
# class PyCdlibInvalidInput(PyCdlibException):
# class PyCdlibInvalidISO(PyCdlibException):
#     def __init__(self, msg):
#     def __init__(self, msg):
#     def __init__(self, msg):
#     def __init__(self, msg):


import array
import io
import sys
from pycdlib import inode
from pycdlib import pycdlibexception
    from mmap import mmap
    from typing import Any, Optional, Union  # NOQA pylint: disable=unused-import
        """
        if not self._open:
            raise pycdlibexception.PyCdlibInvalidInput('I/O operation on closed file.')
        return self._length

    def readable(self):
        # type: () -> bool
        """
        Determine whether this file is readable.

        Parameters:
         None.
        Returns:
         True in all cases.
        """
        if not self._open:
            raise pycdlibexception.PyCdlibInvalidInput('I/O operation on closed file.')
        return True

    def seekable(self):
        # type: () -> bool
        """
        Determine whether this file is seekable.

        Parameters:
         None.
        Returns:
         True in all cases.
        """
        if not self._open:

# Path: pycdlib/inode.py
# class Inode(object):
# class InodeOpenData(object):
#     DATA_ON_ORIGINAL_ISO = 1
#     DATA_IN_EXTERNAL_FP = 2
#     def __init__(self):
#     def new(self, length, fp, manage_fp, offset):
#     def parse(self, extent, length, fp, log_block_size):
#     def extent_location(self):
#     def set_extent_location(self, extent):
#     def get_data_length(self):
#     def add_boot_info_table(self, boot_info_table):
#     def update_fp(self, fp, length):
#     def __init__(self, ino, logical_block_size):
#     def __enter__(self):
#     def __exit__(self, *args):
# 
# Path: pycdlib/pycdlibexception.py
# class PyCdlibException(Exception):
# class PyCdlibInternalError(PyCdlibException):
# class PyCdlibInvalidInput(PyCdlibException):
# class PyCdlibInvalidISO(PyCdlibException):
#     def __init__(self, msg):
#     def __init__(self, msg):
#     def __init__(self, msg):
#     def __init__(self, msg):


# Path: pycdlib/pycdlibio.py
import array
import io
import sys
from pycdlib import inode
from pycdlib import pycdlibexception
    from mmap import mmap
    from typing import Any, Optional, Union  # NOQA pylint: disable=unused-import

        """
        if not self._open:
            raise pycdlibexception.PyCdlibInvalidInput('I/O operation on closed file.')
        return self._length

    def readable(self):
        # type: () -> bool
        """
        Determine whether this file is readable.

        Parameters:
         None.
        Returns:
         True in all cases.
        """
        if not self._open:
            raise pycdlibexception.PyCdlibInvalidInput('I/O operation on closed file.')
        return True

    def seekable(self):
        # type: () -> bool
        """
        Determine whether this file is seekable.

        Parameters:
         None.
        Returns:
         True in all cases.
        """
        if not self._open:

            raise pycdlibexception.PyCdlibInvalidInput('I/O operation on closed file.')