[project] name = "brainapi2" version = "2.19.0.dev0" description = "Version 2.x.x of the BrainAPI memory layer." authors = [ {name = "Christian",email = "alch.infoemail@gmail.com"} ] readme = "README.md" license = { text = "BUSL-1.1" } requires-python = ">=3.11,<4.0.0" dependencies = [ "redis (>=6.4.0,<7.0.0)", "pymongo (>=4.15.3,<5.0.0)", "cpp-chunker (>=0.1.4,<0.2.0)", "neo4j (>=6.0.2,<7.0.0)", "networkx (>=3.0,<4.0.0)", "psycopg2-binary (>=2.9.6,<3.0.0)", "pgvector (>=0.3.0,<1.0.0)", "pylint (>=4.0.1,<5.0.0)", "langchain (>=1.3.16,<2.0.0)", "openai (>=2.5.0,<3.0.0)", "celery (>=5.5.3,<6.0.0)", "kombu[rabbitmq] (>=5.3.0,<6.0.0)", "fastapi (>=0.141.1,<0.142.0)", "langchain-core (>=1.6.0,<2.0.0)", "uvicorn (>=0.52.4,<0.53.0)", "python-dotenv (>=1.2.3,<2.0.0)", "langchain-openai (>=1.6.0,<2.0.0)", "google-genai (>=1.46.0,<2.0.0)", "langchain-google-vertexai (>=3.0.1,<4.0.0)", "pymilvus (>=2.6.2,<3.0.0)", "levenshtein (>=0.27.1,<0.28.0)", "python-multipart (>=0.0.32,<0.1.0)", "pillow (>=12.3.0,<13.0.0)", "tenacity (>=8.2.3,<10.0.0)", "sympy (>=1.12.1,<1.14.0)", "numpy (>=1.26.0,<2.0.0)", "spacy (>=3.0.0,<4.0.0)", "typer (>=0.26.0,<0.27.0)", "spacy_langdetect (>=0.1.2,<0.2.0)", "langid (>=1.1.6,<2.0.0)", "mcp (>=1.28.1,<2.0.0)", "boto3 (>=1.40.19,<2.0.0)", "langchain-aws (>=1.0.0,<2.0.0)", "watchfiles (>=1.2.0,<2.0.0)", "anthropic (>=0.57.1,<0.58.0)", "tiktoken (>=0.12.0,<1.0.0)", ] [project.optional-dependencies] docling-ocr = [ "docling (>=2.121.0,<3.0.0)", "accelerate (>=1.14.0,<2.0.0)", ] local-ml = [ "sentence-transformers (>=6.0.0,<7.0.0)", ] postgresql-backend = [ "psycopg2-binary (>=2.9.6,<3.0.0)", "pgvector (>=0.3.0,<1.0.0)", "networkx (>=3.0,<4.0.0)", ] [tool.poetry] package-mode = false [tool.poetry.dependencies] python = ">=3.11,<4.0.0" redis = ">=6.4.0,<7.0.0" pymongo = ">=4.15.3,<5.0.0" cpp-chunker = ">=0.1.4,<0.2.0" neo4j = ">=6.0.2,<7.0.0" networkx = ">=3.0,<4.0.0" psycopg2-binary = ">=2.9.6,<3.0.0" pgvector = ">=0.3.0,<1.0.0" pylint = ">=4.0.1,<5.0.0" langchain = ">=1.3.16,<2.0.0" openai = ">=2.5.0,<3.0.0" celery = ">=5.5.3,<6.0.0" kombu = {extras = ["rabbitmq"], version = ">=5.3.0,<6.0.0"} fastapi = ">=0.141.1,<0.142.0" langchain-core = ">=1.6.0,<2.0.0" uvicorn = ">=0.52.4,<0.53.0" python-dotenv = ">=1.2.3,<2.0.0" langchain-openai = ">=1.6.0,<2.0.0" google-genai = ">=1.46.0,<2.0.0" langchain-google-vertexai = ">=3.0.1,<4.0.0" pymilvus = ">=2.6.2,<3.0.0" levenshtein = ">=0.27.1,<0.28.0" pillow = ">=12.3.0,<13.0.0" tenacity = ">=8.2.3,<10.0.0" python-multipart = ">=0.0.32,<0.1.0" sympy = ">=1.12.1,<1.14.0" numpy = ">=1.26.0,<2.0.0" spacy = ">=3.0.0,<4.0.0" typer = ">=0.26.0,<0.27.0" spacy_langdetect = ">=0.1.2,<0.2.0" langid = ">=1.1.6,<2.0.0" mcp = ">=1.28.1,<2.0.0" boto3 = ">=1.40.19,<2.0.0" langchain-aws = ">=1.0.0,<2.0.0" watchfiles = ">=1.2.0,<2.0.0" anthropic = ">=0.57.1,<0.58.0" tiktoken = ">=0.12.0,<1.0.0" [tool.poetry.group.docling-ocr] optional = true [tool.poetry.group.docling-ocr.dependencies] docling = ">=2.121.0,<3.0.0" accelerate = ">=1.14.0,<2.0.0" [tool.poetry.group.local-ml] optional = true [tool.poetry.group.local-ml.dependencies] sentence-transformers = ">=6.0.0,<7.0.0" [tool.poetry.group.dev.dependencies] pytest = ">=9.0.3,<10.0.0" lightgbm = ">=4.3.0,<5.0.0" [tool.pylint.messages_control] enable = ["abstract-method"] [tool.poetry.scripts] brainapi = "src.core.plugins.cli:app" [tool.pylint.design] max-args = 10 max-locals = 15 max-returns = 6 max-branches = 12 max-statements = 50 [tool.pylint.basic] good-names = ["i", "j", "k", "ex", "Run", "_", "id", "db", "ai", "llm"] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "integration: marks tests as requiring real external dependencies", ] [build-system] requires = ["poetry-core>=2.0.0,<3.0.0"] build-backend = "poetry.core.masonry.api"