✅ Implemented comprehensive authentication system: - Abstract AuthHandler base class with pluggable architecture - APIKeyAuth for API key authentication (string auto-conversion) - JWTAuth for JWT token authentication with expiration handling - NoAuth for testing and public instances - Full integration with WikiJSClient for automatic header management 🔧 Fixed packaging issues: - Updated pyproject.toml with required project metadata fields - Fixed utility function exports in utils/__init__.py - Package now installs correctly in virtual environments 🧪 Validated with comprehensive tests: - All authentication methods working correctly - Proper error handling for invalid credentials - Type validation and security features 📊 Progress: Phase 1 MVP Development now 60% complete 🎯 Next: Task 1.4 - Pages API implementation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
"""Wiki.js Python SDK - Professional SDK for Wiki.js API integration.
|
|
|
|
This package provides a comprehensive Python SDK for interacting with Wiki.js
|
|
instances, including support for pages, users, groups, and system management.
|
|
|
|
Example:
|
|
Basic usage:
|
|
|
|
>>> from wikijs import WikiJSClient
|
|
>>> client = WikiJSClient('https://wiki.example.com', auth='your-api-key')
|
|
>>> # API endpoints will be available as development progresses
|
|
|
|
Features:
|
|
- Type-safe data models with validation
|
|
- Comprehensive error handling
|
|
- Automatic retry logic with exponential backoff
|
|
- Professional logging and debugging support
|
|
- Context manager support for resource cleanup
|
|
"""
|
|
|
|
from .auth import AuthHandler, NoAuth, APIKeyAuth, JWTAuth
|
|
from .client import WikiJSClient
|
|
from .exceptions import (
|
|
WikiJSException,
|
|
APIError,
|
|
AuthenticationError,
|
|
ConfigurationError,
|
|
ValidationError,
|
|
ClientError,
|
|
ServerError,
|
|
NotFoundError,
|
|
PermissionError,
|
|
RateLimitError,
|
|
ConnectionError,
|
|
TimeoutError,
|
|
)
|
|
from .models import BaseModel, Page, PageCreate, PageUpdate
|
|
from .version import __version__, __version_info__
|
|
|
|
# Public API
|
|
__all__ = [
|
|
# Main client
|
|
"WikiJSClient",
|
|
|
|
# Authentication
|
|
"AuthHandler",
|
|
"NoAuth",
|
|
"APIKeyAuth",
|
|
"JWTAuth",
|
|
|
|
# Data models
|
|
"BaseModel",
|
|
"Page",
|
|
"PageCreate",
|
|
"PageUpdate",
|
|
|
|
# Exceptions
|
|
"WikiJSException",
|
|
"APIError",
|
|
"AuthenticationError",
|
|
"ConfigurationError",
|
|
"ValidationError",
|
|
"ClientError",
|
|
"ServerError",
|
|
"NotFoundError",
|
|
"PermissionError",
|
|
"RateLimitError",
|
|
"ConnectionError",
|
|
"TimeoutError",
|
|
|
|
# Version info
|
|
"__version__",
|
|
"__version_info__",
|
|
]
|
|
|
|
# Package metadata
|
|
__author__ = "Wiki.js SDK Contributors"
|
|
__email__ = ""
|
|
__license__ = "MIT"
|
|
__description__ = "Professional Python SDK for Wiki.js API integration"
|
|
__url__ = "https://github.com/yourusername/wikijs-python-sdk"
|
|
|
|
# For type checking
|
|
__all__ += ["__author__", "__email__", "__license__", "__description__", "__url__"] |