io
Base FileIO classes for implementing reading and writing table files.
The FileIO abstraction includes a subset of full filesystem implementations. Specifically, Iceberg needs to read or write a file at a given location (as a seekable stream), as well as check if a file exists. An implementation of the FileIO abstract base class is responsible for returning an InputFile instance, an OutputFile instance, and deleting a file given its location.
            FileIO
¶
    
              Bases: ABC
A base class for FileIO implementations.
Source code in pyiceberg/io/__init__.py
                
            delete(location)
  
      abstractmethod
  
¶
    Delete the file at the given path.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| location | Union[str, InputFile, OutputFile] | A URI or a path to a local file--if an InputFile instance or an OutputFile instance is provided, the location attribute for that instance is used as the URI to delete. | required | 
Raises:
| Type | Description | 
|---|---|
| PermissionError | If the file at location cannot be accessed due to a permission error. | 
| FileNotFoundError | When the file at the provided location does not exist. | 
Source code in pyiceberg/io/__init__.py
              
            new_input(location)
  
      abstractmethod
  
¶
    Get an InputFile instance to read bytes from the file at the given location.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| location | str | A URI or a path to a local file. | required | 
            new_output(location)
  
      abstractmethod
  
¶
    Get an OutputFile instance to write bytes to the file at the given location.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| location | str | A URI or a path to a local file. | required | 
            InputFile
¶
    
              Bases: ABC
A base class for InputFile implementations.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| location | str | A URI or a path to a local file. | required | 
Attributes:
| Name | Type | Description | 
|---|---|---|
| location | str | The URI or path to a local file for an InputFile instance. | 
| exists | bool | Whether the file exists or not. | 
Source code in pyiceberg/io/__init__.py
                
            location
  
      property
  
¶
    The fully-qualified location of the input file.
            __len__()
  
      abstractmethod
  
¶
    
            exists()
  
      abstractmethod
  
¶
    Check whether the location exists.
Raises:
| Type | Description | 
|---|---|
| PermissionError | If the file at self.location cannot be accessed due to a permission error. | 
            open(seekable=True)
  
      abstractmethod
  
¶
    Return an object that matches the InputStream protocol.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| seekable | bool | If the stream should support seek, or if it is consumed sequential. | True | 
Returns:
| Name | Type | Description | 
|---|---|---|
| InputStream | InputStream | An object that matches the InputStream protocol. | 
Raises:
| Type | Description | 
|---|---|
| PermissionError | If the file at self.location cannot be accessed due to a permission error. | 
| FileNotFoundError | If the file at self.location does not exist. | 
Source code in pyiceberg/io/__init__.py
              
            InputStream
¶
    
              Bases: Protocol
A protocol for the file-like object returned by InputFile.open(...).
This outlines the minimally required methods for a seekable input stream returned from an InputFile
implementation's open(...) method. These methods are a subset of IOBase/RawIOBase.
Source code in pyiceberg/io/__init__.py
                
            OutputFile
¶
    
              Bases: ABC
A base class for OutputFile implementations.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| location | str | A URI or a path to a local file. | required | 
Attributes:
| Name | Type | Description | 
|---|---|---|
| location | str | The URI or path to a local file for an OutputFile instance. | 
| exists | bool | Whether the file exists or not. | 
Source code in pyiceberg/io/__init__.py
                
            location
  
      property
  
¶
    The fully-qualified location of the output file.
            __len__()
  
      abstractmethod
  
¶
    
            create(overwrite=False)
  
      abstractmethod
  
¶
    Return an object that matches the OutputStream protocol.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| overwrite | bool | If the file already exists at  | False | 
Returns:
| Name | Type | Description | 
|---|---|---|
| OutputStream | OutputStream | An object that matches the OutputStream protocol. | 
Raises:
| Type | Description | 
|---|---|
| PermissionError | If the file at self.location cannot be accessed due to a permission error. | 
| FileExistsError | If the file at self.location already exists and  | 
Source code in pyiceberg/io/__init__.py
              
            exists()
  
      abstractmethod
  
¶
    Check whether the location exists.
Raises:
| Type | Description | 
|---|---|
| PermissionError | If the file at self.location cannot be accessed due to a permission error. | 
            OutputStream
¶
    
              Bases: Protocol
A protocol for the file-like object returned by OutputFile.create(...).
This outlines the minimally required methods for a writable output stream returned from an OutputFile
implementation's create(...) method. These methods are a subset of IOBase/RawIOBase.