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

[project]
name = "plua"
version = "1.2.25"
description = "Python project using Lupa to run Lua scripts with async timer functionality"
authors = [{name = "Jan Gabrielsson", email = "jan@gabrielsson.com"}]
license = "MIT"
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
    "lupa>=2.0",
    "aiohttp>=3.8.0",
    "aiomqtt>=2.0.0",  # MQTT client support
    "fastapi>=0.100.0",
    "uvicorn[standard]>=0.23.0",  # Include WebSocket support
    "websockets>=11.0",  # WebSocket library for uvicorn
    "httpx>=0.24.0",  # For FastAPI testing
    "requests>=2.28.0",
    "prompt_toolkit>=3.0.0",  # Enhanced REPL with history and completion
    "rich>=13.0.0",  # Rich text and beautiful formatting for terminal output
]

[project.urls]
Homepage = "https://github.com/jangabrielsson/plua"
Documentation = "https://github.com/jangabrielsson/plua#readme"
Repository = "https://github.com/jangabrielsson/plua"
Changelog = "https://github.com/jangabrielsson/plua/blob/main/CHANGELOG.md"
Issues = "https://github.com/jangabrielsson/plua/issues"

[project.scripts]
plua = "plua.cli:main"

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "pytest-asyncio>=0.21.0",
    "black>=22.0",
    "flake8>=5.0",
]
build = [
    "nuitka>=2.0.0",
    "psutil>=5.8.0",  # Required for some Nuitka operations
]

[tool.setuptools.packages.find]
where = ["src"]
include = ["plua*", "pylib*", "lua*"]

[tool.setuptools.package-dir]
"" = "src"

[tool.setuptools.package-data]
plua = ["static/*"]
lua = ["**/*"]

[tool.black]
line-length = 88
target-version = ['py38']

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
