Source code for dispel.io
"""IO functionality."""
from typing import Any, Optional
from dispel.data.core import Reading
from dispel.providers.registry import READERS, ReaderRegistryT
[docs]
def read(source: Any, registry: Optional[ReaderRegistryT] = None) -> Reading:
    """Read a source into a Reading data model.
    TODO: write documentation
    """
    for reader in (registry or READERS).values():
        if reader["readable"](source):
            return reader["func"](source)
    raise ValueError(f"Provided {source} is not automatically readable")