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: str
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: str
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.