# Copyright 2026 The Gitea Authors. All rights reserved.
# SPDX-License-Identifier: MIT

"""
Gitea Python SDK

A Python client library for the Gitea API with chunked upload support.

Example usage:

    from gitea import GiteaClient

    client = GiteaClient("https://gitea.example.com", token="your_token")

    # Get current user
    user = client.get_current_user()
    print(f"Logged in as {user.login}")

    # Upload a release asset with progress
    with open("app.tar.gz", "rb") as f:
        result = client.upload_release_asset(
            owner="myorg",
            repo="myrepo",
            release_id=123,
            file=f,
            filename="app.tar.gz",
            progress_callback=lambda p: print(f"{p.percent:.1f}%")
        )
    print(f"Uploaded: {result.download_url}")
"""

from .client import GiteaClient
from .models import User, Repository, Release, Attachment, UploadSession, UploadResult, Progress
from .exceptions import GiteaError, APIError, AuthenticationError, NotFoundError, ValidationError

__version__ = "1.0.0"
__all__ = [
    "GiteaClient",
    "User",
    "Repository",
    "Release",
    "Attachment",
    "UploadSession",
    "UploadResult",
    "Progress",
    "GiteaError",
    "APIError",
    "AuthenticationError",
    "NotFoundError",
    "ValidationError",
]
