pyproject_lite.toml•2.59 kB
# Poetry related - Lightweight version without heavy LLM dependencies
[tool.poetry]
name = "MemoryOS-Lite"
version = "0.2.0"
description = "Intelligence Begins with Memory - Lightweight Core"
license = "Apache-2.0"
authors = ["MemTensor <lizy@memtensor.cn>"]
readme = "README.md"
repository = "https://github.com/MemTensor/MemOS"
keywords = ["memory", "memory-management", "memoryOS", "agent"]
packages = [{include = "memos", from = "src"}]
[tool.poetry.dependencies]
python = "^3.10"
# Core storage and memory management
qdrant-client = "^1.14.2"
tenacity = "^9.1.2"
fastapi = {extras = ["all"], version = "^0.115.12"}
sqlalchemy = "^2.0.41"
redis = "^6.2.0"
schedule = "^1.2.2"
# Text processing
markitdown = {extras = ["docx", "pdf", "pptx", "xls", "xlsx"], version = "^0.1.1"}
chonkie = "^1.0.7"
# Remote LLM API support
openai = "^1.77.0"
# Lightweight embedding for local processing
sentence-transformers = "^4.1.0"
# Heavy local dependencies (optional)
ollama = { version = "^0.4.8", optional = true }
transformers = { version = "^4.51.3", optional = true }
accelerate = { version = "^1.7.0", optional = true }
neo4j = { version = "^5.28.1", optional = true }
[tool.poetry.extras]
local-llm = ["ollama", "transformers", "accelerate"]
graph = ["neo4j"]
full = ["ollama", "transformers", "accelerate", "neo4j"]
[tool.poetry.group.dev]
optional = false
[tool.poetry.group.dev.dependencies]
pre-commit = "^4.2.0"
ruff = "^0.11.8"
[tool.poetry.group.test]
optional = false
[tool.poetry.group.test.dependencies]
pytest = "^8.3.5"
pytest-asyncio = "^0.23.5"
[[tool.poetry.source]]
name = "mirrors"
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/"
priority = "supplemental"
# Building related
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
# Testing related
[tool.pytest.ini_options]
asyncio_mode = "auto"
pythonpath = "src"
filterwarnings = [
"ignore::DeprecationWarning:qdrant_client.*",
]
# Linting related
[tool.ruff]
fix = true
line-length = 100
target-version = "py310"
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"ERA", # flake8-eradicate/eradicate
"I", # isort
"N", # pep8-naming
"PIE", # flake8-pie
"PGH", # pygrep
"RUF", # ruff checks
"SIM", # flake8-simplify
"TCH", # flake8-type-checking
"TID", # flake8-tidy-imports
"UP", # pyupgrade
]
ignore = [
"RUF001", # ambiguous-unicode-character-string
"PGH003", # blanket-type-ignore
]
[tool.ruff.lint.isort]
lines-between-types = 1
lines-after-imports = 2