[project] name = "pstuts_rag" version = "2025.05.12" description = "Agentic RAG system for PsTuts dataset" readme = "README.md" requires-python = ">=3.11" dependencies = [ # Core RAG and LLM dependencies "langchain>=0.3.25", "langchain-core>=0.3.59", "langchain-community>=0.3.23", "langchain-experimental>=0.3.4", "langchain-openai", "langchain-qdrant>=0.2.0", "langgraph>=0.4.8", "qdrant-client>=1.8.0", # API integration "chainlit", "requests>=2.31.0", "python-dotenv>=0.9.9", # Utilities "nest-asyncio>=1.5.6", "aiofiles>=23.1.0", # Jupyter/notebook dependencies "ipykernel>=6.29.5", "ipywidgets>=8.1.7", "jupyter>=1.1.1", "jupyter-contrib-nbextensions>=0.7.0", "sentence-transformers>=3.4.1", "transformers[torch]>=4.48.3", "pyarrow>=19.0.0", "datasets>=3.6.0", "ragas>=0.2.15", "bidict>=0.23.1", "wandb>=0.19.11", "langchain-huggingface>=0.2.0", "websockets>=14.2", # Added missing direct dependencies "pandas>=2.0.0", "torch>=2.0.0", "scikit-learn>=1.0.0", "tqdm>=4.65.0", "scipy>=1.10.0", "langsmith>=0.0.50", "google>=3.0.0", "numpy>=2.2.2", "tavily-python>=0.7.2", "logging>=0.4.9.6", "langchain-ollama>=0.3.2", "simsimd>=6.2.1", "langgraph-cli[inmem]>=0.1.55", "langchain-tavily>=0.2.0", "beautifulsoup4>=4.13.4", "pathvalidate>=3.2.3", "pydantic-settings>=2.9.1", ] authors = [{ name = "Marko Budisic", email = "mbudisic@gmail.com" }] license = "MIT" [build-system] requires = ["hatchling >= 1.26"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["pstuts_rag/pstuts_rag"] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "black>=22.0.0", "mypy>=0.900", "pylint-venv>=3.0.4", "ipdb>=0.13.13", "deptry>=0.23.0", "ruff" ] web = [ "fastapi>=0.115.3,<0.116", "uvicorn>=0.25.0,<0.27.0", "python-multipart>=0.0.18,<0.0.19", "websockets==14.2", "httpx==0.27.0", ] [tool.ruff] line-length = 79 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "TD"] fixable = ["I", "E", "F", "W", "B"] [tool.ruff.lint.isort] known-first-party = ["pstuts_rag"] [tool.black] line-length = 79 target-version = ["py311"] [tool.mypy] ignore_errors = true [tool.flake8] application-import-names = "pstuts_rag" extend-ignore = "E203,W503" [tool.pylint.MASTER] load-plugins = "pylint_venv" # optional but handy source-roots = "pstuts_rag" extension-pkg-allow-list = "numpy, torch" # compiled deps that astroid cannot parse [tool.pylint.TYPECHECK] ignored-modules = "pkg_resources" # suppress noisy vendored imports [tool.deptry.per_rule_ignores] DEP002 = [ # Jupyter packages "ipykernel", "ipywidgets", "jupyter", "jupyter-contrib-nbextensions", # Development packages "pytest", "black", "flake8", "mypy", "isort", "pylint-venv", "ipdb", "deptry", # Web packages "fastapi", "uvicorn", "python-multipart", "websockets", "httpx", # Other packages "numpy", "tavily-python", # Added unused dependencies "transformers", "pyarrow", "google-api-python-client", ] DEP003 = [ "huggingface_hub", "setuptools", ]