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 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
from abc import ABC, abstractmethod
from typing import Any, BinaryIO, Optional
from .._pointappender import IPointAppender
from .._pointreader import IPointReader
from .._pointwriter import IPointWriter
from ..header import LasHeader
from .selection import DecompressionSelection
class ILazBackend(ABC):
@abstractmethod
def is_available(self) -> bool:
...
@property
@abstractmethod
def supports_append(self) -> bool:
...
@abstractmethod
def create_appender(self, dest: BinaryIO, header: LasHeader) -> IPointAppender:
...
@abstractmethod
def create_reader(
self,
source: Any,
header: LasHeader,
decompression_selection: Optional[DecompressionSelection] = None,
) -> IPointReader:
...
@abstractmethod
def create_writer(
self,
dest: Any,
header: LasHeader,
) -> IPointWriter:
...
|