d2003a000523e6c42a2e458c7c8d0a9c400f5105
Implementation: - Asset data models (wikijs/models/asset.py) - Asset, AssetFolder models - AssetUpload, AssetRename, AssetMove models - FolderCreate model - File size helpers (size_mb, size_kb) - Field validation and normalization - Sync AssetsEndpoint (wikijs/endpoints/assets.py) - list(folder_id, kind) - List assets with filtering - get(asset_id) - Get single asset - rename(asset_id, new_filename) - Rename asset - move(asset_id, folder_id) - Move asset between folders - delete(asset_id) - Delete asset - list_folders() - List all folders - create_folder(slug, name) - Create new folder - delete_folder(folder_id) - Delete folder - Note: upload/download require multipart support (future enhancement) - Async AsyncAssetsEndpoint (wikijs/aio/endpoints/assets.py) - Complete async implementation - Identical interface to sync version - All asset and folder management operations - Integration with clients - WikiJSClient.assets - AsyncWikiJSClient.assets GraphQL operations for asset and folder management. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Wiki.js Python SDK
A professional Python SDK for Wiki.js API integration.
🎉 Status: Phase 1 MVP Complete! Ready for production use
Current Version: v0.1.0 with complete Wiki.js Pages API integration Next Milestone: v0.2.0 with Users, Groups, and Assets API support
🚀 Quick Start
Installation
# Install directly from Gitea
pip install git+https://gitea.hotserv.cloud/lmiranda/wikijs-sdk-python.git
# Or clone and install locally
git clone https://gitea.hotserv.cloud/lmiranda/wikijs-sdk-python.git
cd wikijs-python-sdk
pip install -e .
Basic Usage
from wikijs import WikiJSClient
# Initialize client
client = WikiJSClient('https://wiki.example.com', auth='your-api-key')
# List pages
pages = client.pages.list()
# Get a specific page
page = client.pages.get(123)
# Create a new page
from wikijs.models import PageCreate
new_page = client.pages.create(PageCreate(
title="Getting Started",
path="getting-started",
content="# Welcome\n\nThis is your first page!"
))
🎯 Current Development Status
Phase 1: MVP Development ✅ COMPLETE
- ✅ Complete: Professional-grade Wiki.js Python SDK
- 🎯 Goal: Basic Wiki.js integration with Pages API
- 📦 Deliverable: Installable package with core functionality
| Component | Status | Description |
|---|---|---|
| Project Setup | ✅ Complete | Repository structure, packaging, CI/CD |
| Core Client | ✅ Complete | HTTP client with authentication and retry logic |
| Pages API | ✅ Complete | Full CRUD operations for wiki pages |
| Testing | ✅ Complete | 87%+ test coverage with comprehensive test suite |
| Documentation | ✅ Complete | Complete API reference, user guide, and examples |
Planned Features
- v0.2.0: Complete API coverage (Users, Groups, Assets)
- v0.3.0: Production features (retry logic, caching, monitoring)
- v1.0.0: Enterprise features (async support, plugins, advanced CLI)
📚 Documentation
For Users
- Quick Start: Basic setup and usage
- API Reference: Complete SDK documentation
- User Guide: Comprehensive usage guide with examples
- Examples: Real-world usage examples and code samples
For Contributors
- Contributing Guide: How to contribute to the project
- Development Guide: Setup and development workflow
- Changelog: Version history and changes
For Maintainers
- Architecture: Technical design and patterns
- Development Plan: Complete roadmap and milestones
- Development Notes: Development workflow and coordination
🤝 Contributing
We welcome contributions! This project showcases systematic development with professional standards.
Getting Started:
- Check our Development Plan for current priorities
- Review the Architecture for technical context
- See Development Notes for development workflow
- Start with issues labeled
good first issue(Coming soon)
Community:
- 💬 GitHub Discussions: Questions and community chat (Coming soon)
- 🐛 GitHub Issues: Bug reports and feature requests (Coming soon)
🛠️ Development Setup
Prerequisites
- Python 3.8+
- Git
- Wiki.js instance for testing
Local Development
# Clone and setup
git clone https://gitea.hotserv.cloud/lmiranda/wikijs-sdk-python.git
cd wikijs-python-sdk
pip install -e ".[dev]"
# Run tests
pytest
# Run quality checks
pre-commit run --all-files
🏆 Project Features
Current (MVP Complete)
- ✅ Synchronous HTTP client with connection pooling and retry logic
- ✅ Multiple authentication methods (API key, JWT, custom)
- ✅ Complete Pages API with CRUD operations, search, and filtering
- ✅ Comprehensive error handling with specific exception types
- ✅ Type-safe models with validation using Pydantic
- ✅ Extensive test coverage (87%+) with robust test suite
- ✅ Complete documentation with API reference and user guide
- ✅ Practical examples and code samples
Planned Enhancements
- ⚡ Async/await support
- 💾 Intelligent caching
- 🔄 Retry logic with backoff
- 💻 CLI tools
- 🔧 Plugin system
- 🛡️ Advanced security features
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Wiki.js: The excellent knowledge management platform this SDK supports
- leomiranda: Developer who created this SDK
- Python Community: For exceptional tools and development standards
Ready to contribute? Check out our development documentation or explore the development workflow to see how this project is built!
Languages
Python
100%