#! /usr/bin/env python
# -*- coding: utf-8 -*-
from setuptools import setup

setup(
    name='craftpilot',
    author='GenesisGroup',
    version='0.0.1',
    license='MIT',

    description='CraftPilot Python SDK — Dson plugin framework and Houdini HAPI wrapper for AI-assisted content creation',
    long_description='''# craftpilot

**craftpilot** is the Python SDK for the CraftPilot AI-assisted content creation platform.
It provides the core framework and toolsets for building Dson plugins and integrating with Houdini Engine.

## Modules

| Module | Description |
|---|---|
| `craftpilot.common` | General-purpose utility library: path handling, logging, file operations |
| `craftpilot.pyhapi` | Houdini Engine API (HAPI) Python wrapper: node management, geometry I/O, cook control |
| `craftpilot.pypapi` | Dson plugin framework: `DsonBase`, `DsonMeta`, `Dispatcher`, `DsonPool`, field types, CLI |
| `craftpilot.pypapi.mcp` | MCP tool development public API: `MCPToolBase`, `expose_as_mcp` |
| `craftpilot.pypapi.testing` | Testing framework for external Dson plugin developers |
| `craftpilot.pypapi.pantry` | Pre-built Dson configuration templates (`.yaml`) |

## Installation

```bash
pip install craftpilot
```

## Quick Start

```python
from craftpilot.pypapi.dson import DsonBase
from craftpilot.pypapi.dson_field import String, Float3

class MyPlugin(DsonBase):
    name = String(default="my_plugin")
    position = Float3(default=(0.0, 0.0, 0.0))
```

## Documentation

Full documentation is available at:
https://craftpilot.notion.site/
''',
    long_description_content_type='text/markdown',
    author_email='cheneyshen@tencent.com',
    url='https://craftpilot.notion.site/',

    include_package_data=True,

    # PythonPackage/craftpilot/ is the package root (contains __init__.py).
    # We explicitly list all public sub-packages to avoid accidentally including
    # private or maintainer-only modules (e.g. tools/).
    packages=[
        'craftpilot',
        'craftpilot.common',
        'craftpilot.pyhapi',
        'craftpilot.pyhapi.compat',
        'craftpilot.pypapi',
        'craftpilot.pypapi.mcp',
        'craftpilot.pypapi.pantry',
    ],
    package_dir={
        'craftpilot': 'craftpilot',                         # PythonPackage/craftpilot/ is the package root
        'craftpilot.common': 'craftpilot/common',
        'craftpilot.pyhapi': 'craftpilot/pyhapi',
        'craftpilot.pyhapi.compat': 'craftpilot/pyhapi/compat',
        'craftpilot.pypapi': 'craftpilot/pypapi',
        'craftpilot.pypapi.mcp': 'craftpilot/pypapi/mcp',
        'craftpilot.pypapi.pantry': 'craftpilot/pypapi/pantry',
    },

    package_data={
        'craftpilot.pypapi.pantry': ['*.yaml', '*.py'],
    },

    entry_points={
        'console_scripts': [
            'craftpilot = craftpilot.pypapi.__main__:entry'
        ]
    },
    install_requires=[
        "numpy",
        "pillow",
        "requests",
        "pyyaml",
        "importlib_resources"
    ],

    classifiers=[
        #   3 - Alpha
        #   4 - Beta
        #   5 - Production/Stable
        'Development Status :: 5 - Production/Stable',

        'Intended Audience :: Developers',

        'License :: OSI Approved :: MIT License',

        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
        'Programming Language :: Python :: 3.10',

        'Topic :: Software Development :: Libraries :: Python Modules',
        'Topic :: Games/Entertainment',
        'Topic :: Multimedia :: Graphics :: 3D Modeling',
    ],

    python_requires=">=3.6",
    zip_safe=True,
)