Skip to content

Client

omniread.csv.client

Summary

CSV client abstractions for OmniRead.

This module defines the client layer responsible for retrieving raw comma-separated-value document bytes from a concrete backing store.

Clients provide low-level access to csv binaries and are intentionally decoupled from scraping and parsing logic. They do not perform validation, interpretation, or content extraction.

Typical backing stores include:

  • Local filesystems
  • Object storage (S3, GCS, etc.)
  • Network file systems

Classes

BaseCsvClient

Bases: ABC

Abstract client responsible for retrieving csv bytes.

Retrieves bytes from a specific backing store (filesystem, S3, FTP, etc.).

Notes

Responsibilities:

1
2
3
4
- Implementations must accept a source identifier appropriate to
  the backing store.
- Return the full csv binary payload.
- Raise retrieval-specific errors on failure.
Functions
fetch abstractmethod
fetch(source: Any) -> bytes

Fetch raw csv bytes from the given source.

Parameters:

Name Type Description Default
source Any

Identifier of the csv location, such as a file path, object storage key, or remote reference.

required

Returns:

Name Type Description
bytes bytes

Raw csv bytes.

Raises:

Type Description
Exception

Retrieval-specific errors defined by the implementation.

FileSystemCsvClient

Bases: BaseCsvClient

CSV client that reads from the local filesystem.

Notes

Guarantees:

1
2
- This client reads csv files directly from the disk and
  returns their raw binary contents.
Functions
fetch
fetch(path: Path) -> bytes

Read a csv file from the local filesystem.

Parameters:

Name Type Description Default
path Path

Filesystem path to the csv file.

required

Returns:

Name Type Description
bytes bytes

Raw csv bytes.

Raises:

Type Description
FileNotFoundError

If the path does not exist.

ValueError

If the path exists but is not a file.