Initial release with comprehensive API coverage: ## Features - Complete async API client for Kwork.ru (45+ endpoints) - Pydantic models for all API responses - Two-step authentication (session cookies + web_auth_token) - Comprehensive error handling (7 custom exception types) ## API Groups - CatalogAPI, ProjectsAPI, UserAPI - ReferenceAPI, NotificationsAPI, OtherAPI ## Quality - 92% test coverage (46 unit tests) - 100% docstring coverage - MkDocs documentation with mkdocstrings - UV package manager support ## CI/CD - Gitea Actions workflows (PR checks + release) - Semantic release for automatic versioning - Coverage threshold 90% - Test artifacts and reports
45 lines
918 B
Python
45 lines
918 B
Python
"""
|
|
Kwork.ru API Client
|
|
|
|
Unofficial Python client for Kwork.ru API.
|
|
|
|
Example:
|
|
from kwork_api import KworkClient
|
|
|
|
# Login with credentials
|
|
client = await KworkClient.login("username", "password")
|
|
|
|
# Or restore from token
|
|
client = KworkClient(token="your_web_auth_token")
|
|
|
|
# Get catalog
|
|
catalog = await client.catalog.get_list(page=1)
|
|
"""
|
|
|
|
from .client import KworkClient
|
|
from .errors import KworkError, KworkAuthError, KworkApiError
|
|
from .models import (
|
|
ValidationResponse,
|
|
ValidationIssue,
|
|
Kwork,
|
|
KworkDetails,
|
|
Project,
|
|
CatalogResponse,
|
|
ProjectsResponse,
|
|
)
|
|
|
|
__version__ = "0.1.0" # Updated by semantic-release
|
|
__all__ = [
|
|
"KworkClient",
|
|
"KworkError",
|
|
"KworkAuthError",
|
|
"KworkApiError",
|
|
"ValidationResponse",
|
|
"ValidationIssue",
|
|
"Kwork",
|
|
"KworkDetails",
|
|
"Project",
|
|
"CatalogResponse",
|
|
"ProjectsResponse",
|
|
]
|