[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [project] name = "chattolib" version = "0.5.0a2" description = "Async Python client library for the Chatto webchat Connect API" requires-python = ">=3.11" license = "MPL-2.0 AND Apache-2.0" license-files = ["LICENSE", "LICENSES/*.txt"] readme = "README.md" authors = [ { name = "Felix", email = "chatto@f3l1x.it" }, ] keywords = ["chatto", "connect", "connectrpc", "async", "webchat", "client"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Communications :: Chat", "Framework :: AsyncIO", ] dependencies = [ "connectrpc>=0.11", "protobuf>=5.28", "httpx>=0.27", ] [project.urls] Homepage = "https://chat.chatto.run" [project.optional-dependencies] realtime = [ "websockets>=13.0", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.24", "respx>=0.22", "ruff>=0.8", "mypy>=1.13", ] [tool.setuptools.packages.find] where = ["src"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] target-version = "py311" line-length = 100 extend-exclude = ["src/chattolib/_pb"] [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP"] [tool.mypy] python_version = "3.11" strict = true warn_return_any = true warn_unused_configs = true exclude = ["src/chattolib/_pb"] [[tool.mypy.overrides]] module = ["chattolib._pb.*", "websockets.*"] follow_imports = "skip" ignore_missing_imports = true