[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "createsonline"
dynamic = ["version"]
description = "AI-Native Web Framework — Built-in ML, Transformers, Agents, NLP, Dynamic Admin, Auto-Discovery"
readme = "README.md"
requires-python = ">=3.9"
authors = [
    {name = "meahmedh", email = "ahmed@createsonline.com"},
]
maintainers = [
    {name = "meahmedh", email = "ahmed@createsonline.com"},
]
keywords = [
    "web framework",
    "ai framework",
    "artificial intelligence",
    "machine learning",
    "async",
    "api",
    "web development",
    "llm",
    "vector database",
    "smart fields",
    "ai-native"
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Operating System :: OS Independent",
    "Framework :: AsyncIO",
    "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
    "sqlalchemy>=2.0.0,<3.0.0",
    "alembic>=1.12.0,<2.0.0",
    "numpy>=1.24.0,<2.0.0",
    "python-dotenv>=1.0.0,<2.0.0",
    "jinja2>=3.1.0,<4.0.0",
]

[project.urls]
Homepage = "https://github.com/meahmedh/createsonline"
Documentation = "https://docs.createsonline.com"
Repository = "https://github.com/meahmedh/createsonline"
"Bug Tracker" = "https://github.com/meahmedh/createsonline/issues"
Changelog = "https://github.com/meahmedh/createsonline/blob/main/CHANGELOG.md"

[project.scripts]
# Unified CLI (v0.1.64) - No more createsonline-admin!
createsonline = "createsonline.cli.main:run_cli"

[project.optional-dependencies]
# AI EXTERNAL SERVICES - COMING IN FUTURE VERSIONS
# Currently using 100% internal implementations
# Uncomment when external AI service support is ready
# ai = [
#     "openai>=1.0.0",              # OpenAI API integration
#     "anthropic>=0.18.0",          # Anthropic/Claude API integration
#     "pandas>=2.0.0",              # Advanced data processing & Excel support
#     "scikit-learn>=1.3.0",        # Advanced ML algorithms (sklearn fallback)
#     "httpx>=0.25.0",              # Async HTTP client for AI APIs
# ]

dev = [
    "pytest>=7.0.0",
    "pytest-asyncio>=0.21.0",
    "black>=23.0.0",
    "isort>=5.12.0",
    "mypy>=1.0.0",
    "pre-commit>=3.0.0",
]

# ALL EXTRAS - COMING IN FUTURE VERSIONS
# all = [
#     # AI dependencies (future)
#     "openai>=1.0.0",
#     "anthropic>=0.18.0",
#     "pandas>=2.0.0",
#     "scikit-learn>=1.3.0",
#     "httpx>=0.25.0",
#     # Dev dependencies (current)
#     "pytest>=7.0.0",
#     "pytest-asyncio>=0.21.0",
#     "black>=23.0.0",
#     "isort>=5.12.0",
#     "mypy>=1.0.0",
#     "pre-commit>=3.0.0",
# ]

[tool.setuptools]
zip-safe = false
include-package-data = true

[tool.setuptools.dynamic]
version = {file = "VERSION"}

[tool.setuptools.packages.find]
where = ["."]
include = ["createsonline*"]
exclude = ["tests*", "docs*", "scripts*"]

[tool.setuptools.package-data]
createsonline = [
    "templates/*.html",
    "templates/**/*.html",
    "static/*.css",
    "static/*.js",
    "static/**/*",
    "examples/*.py",
    "examples/**/*.py",
    "admin/templates/*.html",
    "admin/static/*.css",
    "admin/static/*.js",
]
