lit_deltalake.readers
[docs]
package
lit_deltalake.readers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | from importlib import import_module
from typing import TYPE_CHECKING, Any
from lit_deltalake.readers.base import DeltaReader, ReaderCapabilities
from lit_deltalake.readers.delta_rs import DeltaRsReader
if TYPE_CHECKING:
from lit_deltalake.readers.sail import SailDeltaReader, start_sail_spark_connect_server
from lit_deltalake.readers.spark import SparkDeltaReader
__all__ = [
"DeltaReader",
"DeltaRsReader",
"ReaderCapabilities",
"SailDeltaReader",
"SparkDeltaReader",
"start_sail_spark_connect_server",
]
def __getattr__(name: str) -> Any:
"""Load optional reader backends only when they are requested."""
if name in {"SparkDeltaReader", "SailDeltaReader", "start_sail_spark_connect_server"}:
module_name = "sail" if name in {"SailDeltaReader", "start_sail_spark_connect_server"} else "spark"
return getattr(import_module(f"{__name__}.{module_name}"), name)
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|