[project] name = "open-notebook" version = "0.2.1" description = "An open source implementation of a research assistant, inspired by Google Notebook LM" authors = [ {name = "Luis Novo", email = "lfnovo@gmail.com"} ] readme = "README.md" classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", ] requires-python = ">=3.11,<3.13" dependencies = [ "streamlit>=1.39.0", "pydantic>=2.9.2", "loguru>=0.7.2", "langchain>=0.3.3", "langgraph>=0.2.38", "humanize>=4.11.0", "streamlit-tags>=1.2.8", "streamlit-scrollable-textbox>=0.0.3", "tiktoken>=0.8.0", "streamlit-monaco>=0.1.3", "langgraph-checkpoint-sqlite>=2.0.0", "openai>=1.52.0", "langchain-community>=0.3.3", "langchain-openai>=0.2.3", "langchain-anthropic>=0.2.3", "langchain-ollama>=0.2.0", "langchain-google-vertexai>=2.0.5", "langchain-google-genai>=2.0.1", "tomli>=2.0.2", "google-generativeai>=0.8.3", "langchain-groq>=0.2.1", "groq>=0.12.0", "python-dotenv>=1.0.1", "httpx[socks]>=0.27.0", "sdblpy", "podcastfy", "nest-asyncio>=1.6.0", "content-core>=1.0.0", "ai-prompter>=0.3", ] [tool.setuptools] package-dir = {"open_notebook" = "src/open_notebook"} [project.optional-dependencies] dev = [ "ipykernel>=6.29.5", "ruff>=0.5.5", "mypy>=1.11.1", "types-requests>=2.32.0.20241016", "ipywidgets>=8.1.5", "pre-commit>=4.0.1", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [dependency-groups] dev = [ "pre-commit>=4.1.0", "watchdog>=6.0.0", ] [tool.isort] profile = "black" line_length = 88 [tool.ruff] line-length = 88 [tool.ruff.lint] select = ["E", "F", "I"] ignore = ["E501"] [tool.uv.sources] sdblpy = { git = "https://github.com/lfnovo/surreal-lite-py" } podcastfy = { git = "https://github.com/lfnovo/podcastfy" }