[project] name = "basic-memory" version = "0.2.21" description = "Local-first knowledge management combining Zettelkasten with knowledge graphs" readme = "README.md" requires-python = ">=3.12.1" license = { text = "AGPL-3.0-or-later" } authors = [ { name = "Basic Machines", email = "hello@basic-machines.co" } ] dependencies = [ "sqlalchemy>=2.0.0", "pyyaml>=6.0.1", "typer>=0.9.0", "aiosqlite>=0.20.0", "greenlet>=3.1.1", "pydantic[email,timezone]>=2.10.3", "icecream>=2.1.3", "mcp>=1.2.0", "pydantic-settings>=2.6.1", "loguru>=0.7.3", "pyright>=1.1.390", "markdown-it-py>=3.0.0", "python-frontmatter>=1.1.0", "rich>=13.9.4", "unidecode>=1.3.8", "dateparser>=1.2.0", "watchfiles>=1.0.4", "fastapi[standard]>=0.115.8", "alembic>=1.14.1", "qasync>=0.27.1", ] [project.urls] Homepage = "https://github.com/basicmachines-co/basic-memory" Repository = "https://github.com/basicmachines-co/basic-memory" Documentation = "https://github.com/basicmachines-co/basic-memory#readme" [project.scripts] basic-memory = "basic_memory.cli.main:app" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.pytest.ini_options] pythonpath = ["src", "tests"] addopts = "--cov=basic_memory --cov-report term-missing -ra -q" testpaths = ["tests"] asyncio_mode = "strict" asyncio_default_fixture_loop_scope = "function" [tool.ruff] line-length = 100 target-version = "py312" [tool.uv] dev-dependencies = [ "gevent>=24.11.1", "icecream>=2.1.3", "pytest>=8.3.4", "pytest-cov>=4.1.0", "pytest-mock>=3.12.0", "pytest-asyncio>=0.24.0", "ruff>=0.1.6", "pytest>=8.3.4", "pytest-cov>=4.1.0", "pytest-mock>=3.12.0", "pytest-asyncio>=0.24.0", "ruff>=0.1.6", "cx-freeze>=7.2.10", "pyqt6>=6.8.1", ] [tool.pyright] include = ["src/"] exclude = ["**/__pycache__"] ignore = ["test/"] defineConstant = { DEBUG = true } reportMissingImports = "error" reportMissingTypeStubs = false pythonVersion = "3.12" [tool.semantic_release] version_variable = "src/basic_memory/__init__.py:__version__" version_toml = [ "pyproject.toml:project.version", ] major_on_zero = false branch = "main" changelog_file = "CHANGELOG.md" build_command = "pip install uv && uv build" dist_path = "dist/" upload_to_pypi = true commit_message = "chore(release): {version} [skip ci]" [tool.coverage.run] concurrency = ["thread", "gevent"]