"""Source implementations. Add a new corpus = add a new module here."""

from aborist.sources.grok import GrokExportSource, GrokMediaPostsSource
from aborist.sources.vcs import GitRepoSource, MercurialRepoSource
from aborist.sources.wikipedia import (
    WikipediaCurDump,
    WikipediaOldDump,
    WikipediaSqlDump,
)
from aborist.sources.wikipedia_xml import WikipediaAbstractDump, WikipediaXmlDump

__all__ = [
    "GitRepoSource",
    "GrokExportSource",
    "GrokMediaPostsSource",
    "MercurialRepoSource",
    "WikipediaAbstractDump",
    "WikipediaCurDump",
    "WikipediaOldDump",
    "WikipediaSqlDump",
    "WikipediaXmlDump",
]

# HtmlPageSource has optional deps (selectolax). Surface import errors only
# when callers actually request it.
try:
    from aborist.sources.html_page import HtmlPageSource  # noqa: F401
    __all__.append("HtmlPageSource")
except ImportError:  # pragma: no cover
    pass

# HtmlPageSource has optional deps (httpx + selectolax). Surface import errors
# only when callers actually request it.
try:
    from aborist.sources.html_page import HtmlPageSource  # noqa: F401
    __all__.append("HtmlPageSource")
except ImportError:  # pragma: no cover
    pass
