Complete Phase 1 foundation: Tasks 1.1 and 1.2
✅ Task 1.1 - Project Foundation Setup: - Repository structure with Python packaging (setup.py, pyproject.toml) - Development dependencies and requirements - Contributing guidelines and MIT license - GitHub workflows for CI/CD (test.yml, release.yml) - Issue and PR templates for community contributions - Comprehensive project documentation ✅ Task 1.2 - Core Client Structure: - wikijs package with proper module organization - Core client class foundation in client.py - Exception hierarchy for error handling - Base model classes and page models - Type checking support (py.typed) - Utility modules and helper functions 📊 Progress: Phase 1 MVP Development now 40% complete 🎯 Next: Task 1.3 - Authentication System implementation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
106
setup.py
Normal file
106
setup.py
Normal file
@@ -0,0 +1,106 @@
|
||||
"""Setup configuration for wikijs-python-sdk."""
|
||||
|
||||
import os
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
# Read version from file
|
||||
def get_version():
|
||||
version_file = os.path.join(os.path.dirname(__file__), "wikijs", "version.py")
|
||||
if os.path.exists(version_file):
|
||||
with open(version_file) as f:
|
||||
for line in f:
|
||||
if line.startswith("__version__"):
|
||||
return line.split("=")[1].strip().strip('"').strip("'")
|
||||
return "0.1.0" # Fallback version
|
||||
|
||||
# Read long description from README
|
||||
def get_long_description():
|
||||
readme_path = os.path.join(os.path.dirname(__file__), "README.md")
|
||||
if os.path.exists(readme_path):
|
||||
with open(readme_path, "r", encoding="utf-8") as fh:
|
||||
return fh.read()
|
||||
return "A professional Python SDK for Wiki.js API integration"
|
||||
|
||||
# Read requirements
|
||||
def get_requirements():
|
||||
req_path = os.path.join(os.path.dirname(__file__), "requirements.txt")
|
||||
if os.path.exists(req_path):
|
||||
with open(req_path) as f:
|
||||
return [
|
||||
line.strip()
|
||||
for line in f
|
||||
if line.strip() and not line.startswith("#")
|
||||
]
|
||||
return ["requests>=2.28.0", "pydantic>=1.10.0"]
|
||||
|
||||
setup(
|
||||
name="wikijs-python-sdk",
|
||||
version=get_version(),
|
||||
author="Wiki.js SDK Contributors",
|
||||
author_email="",
|
||||
description="A professional Python SDK for Wiki.js API integration",
|
||||
long_description=get_long_description(),
|
||||
long_description_content_type="text/markdown",
|
||||
url="https://github.com/yourusername/wikijs-python-sdk",
|
||||
project_urls={
|
||||
"Bug Reports": "https://github.com/yourusername/wikijs-python-sdk/issues",
|
||||
"Source": "https://github.com/yourusername/wikijs-python-sdk",
|
||||
"Documentation": "https://github.com/yourusername/wikijs-python-sdk/docs",
|
||||
},
|
||||
packages=find_packages(exclude=["tests*", "docs*", "examples*"]),
|
||||
classifiers=[
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
|
||||
"Topic :: Documentation",
|
||||
"Typing :: Typed",
|
||||
],
|
||||
python_requires=">=3.8",
|
||||
install_requires=get_requirements(),
|
||||
extras_require={
|
||||
"dev": [
|
||||
"pytest>=7.0.0",
|
||||
"pytest-cov>=4.0.0",
|
||||
"pytest-asyncio>=0.21.0",
|
||||
"black>=22.0.0",
|
||||
"isort>=5.10.0",
|
||||
"flake8>=5.0.0",
|
||||
"mypy>=0.991",
|
||||
"pre-commit>=2.20.0",
|
||||
"bandit[toml]>=1.7.0",
|
||||
"responses>=0.20.0",
|
||||
],
|
||||
"async": [
|
||||
"aiohttp>=3.8.0",
|
||||
],
|
||||
"cli": [
|
||||
"click>=8.0.0",
|
||||
"rich>=12.0.0",
|
||||
],
|
||||
"all": [
|
||||
"aiohttp>=3.8.0",
|
||||
"click>=8.0.0",
|
||||
"rich>=12.0.0",
|
||||
],
|
||||
},
|
||||
entry_points={
|
||||
"console_scripts": [
|
||||
"wikijs=wikijs.cli.main:main [cli]",
|
||||
],
|
||||
},
|
||||
include_package_data=True,
|
||||
package_data={
|
||||
"wikijs": ["py.typed"],
|
||||
},
|
||||
keywords="wiki wikijs api sdk client http rest",
|
||||
zip_safe=False,
|
||||
)
|
||||
Reference in New Issue
Block a user