Source code for simvx.core.assets

"""Asset loading subsystem.

User-facing API::

    from simvx.core.assets import AssetServer

    server = AssetServer.instance()
    handle = server.load("pkg://game/textures/player.png")
    batch  = server.load_folder("pkg://game/textures/")

See :mod:`simvx.core.assets.server` for the orchestrator,
:mod:`simvx.core.assets.handle` for the observable handles, and
:mod:`simvx.core.assets.source` / :mod:`simvx.core.assets.loaders.base`
for extension points.
"""

from .handle import (
    CANCELLED,
    FAILED,
    LOADED,
    LOADING,
    PENDING,
    BatchHandle,
    Handle,
)
from .loaders.base import Loader
from .server import AssetServer
from .source import Source
from .sources import FileSource, HttpSource, MemSource, PkgSource

__all__ = [
    "AssetServer",
    "Handle",
    "BatchHandle",
    "Source",
    "Loader",
    "FileSource",
    "HttpSource",
    "MemSource",
    "PkgSource",
    "PENDING",
    "LOADING",
    "LOADED",
    "FAILED",
    "CANCELLED",
]