Claude c18d00cd47 build: Add PyPI package deployment support
Complete package deployment configuration for PyPI publishing:

- Add MANIFEST.in to control package distribution
  - Include LICENSE, README, requirements files
  - Include docs/ and examples/ directories
  - Include type stub marker (py.typed)
  - Exclude test files and development artifacts

- Fix dependency specification
  - Add pydantic[email] for email validation support
  - Required for User model EmailStr fields
  - Update both requirements.txt and pyproject.toml

- Create comprehensive deployment documentation
  - docs/deployment.md - Complete PyPI publishing guide
    - Pre-deployment checklist
    - Build and test procedures
    - PyPI upload instructions
    - Troubleshooting guide
    - CI/CD automation examples
  - DEPLOYMENT_READY.md - Deployment status summary
    - What's included in distributions
    - Verification test results
    - Quick deployment steps
    - PyPI vs Gitea comparison

Package is now 100% ready for PyPI deployment:
 Builds successfully (sdist + wheel)
 Installs correctly with all dependencies
 Imports work without errors
 All files properly included
 Complete documentation provided

Testing:
- Successfully built wikijs_python_sdk-0.1.0.tar.gz (134 KB)
- Successfully built wikijs_python_sdk-0.1.0-py3-none-any.whl (66 KB)
- Verified installation and imports work correctly
- All dependencies resolve properly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 20:13:51 +00:00
2025-07-31 23:11:30 -04:00
2025-07-31 22:32:51 -04:00
2025-07-31 23:11:30 -04:00
2025-07-31 22:22:37 -04:00

Wiki.js Python SDK

License: MIT Python Support Wiki.js Support Repository Issues

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/py-wikijs.git

# Or clone and install locally
git clone https://gitea.hotserv.cloud/lmiranda/py-wikijs.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!"
))

📋 Requirements

System Requirements

  • Python: 3.8 or higher
  • Wiki.js: 2.2 or higher (tested with 2.5.x series)
  • API Access: Valid API key with appropriate permissions

Compatibility Notes

Supported: This SDK is designed for Wiki.js 2.x (versions 2.2 through 2.5.308+) ⚠️ Not Supported: Wiki.js 3.x (alpha) uses a different API schema and is not yet supported

For detailed compatibility information, see docs/compatibility.md.


🎯 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

For Contributors

For Maintainers


🤝 Contributing

We welcome contributions! This project showcases systematic development with professional standards.

Getting Started:

  1. Check our Development Plan for current priorities
  2. Review the Architecture for technical context
  3. See Development Notes for development workflow
  4. 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

See Requirements for system and Wiki.js version requirements.

Additional development tools:

  • Git
  • Wiki.js 2.x instance for testing (2.2 or higher)

Local Development

# Clone and setup
git clone https://gitea.hotserv.cloud/lmiranda/py-wikijs.git
cd wikijs-python-sdk
pip install -e ".[dev]"

# Run tests
pytest

# Run quality checks
pre-commit run --all-files

🏆 Project Features

Current Features

  • Core SDK: Synchronous HTTP client with connection pooling and retry logic
  • Authentication: Multiple methods (API key, JWT, custom)
  • Complete API Coverage: Pages, Users, Groups, and Assets APIs
  • Async Support: Full async/await implementation with aiohttp
  • Intelligent Caching: LRU cache with TTL support for performance
  • Batch Operations: Efficient create_many, update_many, delete_many methods
  • Auto-Pagination: iter_all() methods for seamless pagination
  • Error Handling: Comprehensive exception hierarchy with specific error types
  • Type Safety: Pydantic models with full validation
  • Testing: 87%+ test coverage with 270+ tests
  • Documentation: Complete API reference, user guide, and examples

Planned Enhancements

  • 💻 Advanced CLI tools with interactive mode
  • 🔧 Plugin system for extensibility
  • 🛡️ Enhanced security features and audit logging
  • 🔄 Circuit breaker for fault tolerance
  • 📊 Performance monitoring and metrics

📄 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!

Description
A professional Python SDK for Wiki.js API integration.
Readme MIT 450 KiB
Languages
Python 100%