[project] name = "engine" version = "0.1.0" description = "AI Document Engine" requires-python = ">=3.13" dependencies = [ "flask>=3.0.0", "flask-cors>=4.0.0", "gunicorn>=25.0.3", "openai>=2.20.0", "langchain-core>=1.2.11", "langchain-openai>=1.1.9", "langchain-anthropic>=1.1.9", "platformdirs>=4.5.1", "pypdf>=6.7.0", "pydantic>=2.0.0", "posthog>=7.8.6", "python-dotenv>=1.2.1", "beautifulsoup4>=4.12.0", ] [dependency-groups] dev = [ "pytest>=8.0.0", "pytest-cov>=4.1.0", "ruff>=0.14.10", "pyright>=1.1.408", "datamodel-code-generator[ruff]>=0.27.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src"] exclude = [ "tests", ] [tool.ruff] line-length = 120 target-version = "py313" [tool.ruff.lint] select = [ "E", "F", "I", "N", "W", "RUF100", "UP", ] ignore = [ "E501", # Temporarily disable line length limit until codebase conformat ] [tool.pyright] pythonVersion = "3.13" reportImportCycles = "warning" reportUnnecessaryCast = "warning" reportUnusedImport = "warning" #reportUnknownParameterType = "warning" [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["src"]