"""Proliferate Python SDK for error tracking.

Basic usage:
    import proliferate

    proliferate.init(api_key="pk_...")

    # Exceptions are automatically captured via sys.excepthook

    # Or capture manually:
    try:
        risky_operation()
    except Exception as e:
        proliferate.capture_exception(e)

With context:
    proliferate.set_user(id="123", email="user@example.com")
    proliferate.set_tag("feature", "checkout")

FastAPI integration:
    from fastapi import FastAPI
    import proliferate

    proliferate.init(api_key="pk_...")

    app = FastAPI()
    app.add_middleware(proliferate.ProliferateMiddleware)
"""

from proliferate.api import (
    capture_exception,
    close,
    configure_scope,
    flush,
    init,
    push_scope,
    set_extra,
    set_tag,
    set_user,
)
from proliferate.integrations.fastapi import ProliferateMiddleware

__all__ = [
    "init",
    "capture_exception",
    "set_user",
    "set_tag",
    "set_extra",
    "push_scope",
    "configure_scope",
    "flush",
    "close",
    "ProliferateMiddleware",
]

__version__ = "0.1.0"
