Create the sole project configuration file declaring the package name, Python version constraint, core dependencies, optional adapter extras, and development tooling.
Requirements
- Create
pyproject.toml at the project root
- Package name:
context-library; Python package directory: src/context_library
- Minimum Python version: 3.10
- Core (mandatory) dependencies:
lancedb>=0.29
sentence-transformers>=5.0
mistune>=3.0
pydantic>=2.0
- Optional dependency groups:
[gmail]: google-api-python-client, google-auth-oauthlib
[spotify]: spotipy
[todoist]: todoist-api-python
[dev]: ruff, mypy, pytest
- No
setup.py, setup.cfg, or requirements.txt may exist
Design Guidance
- Use
hatchling as the build backend (natively supports src/ layout with minimal config)
- Full file content:
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "context-library"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
"lancedb>=0.29",
"sentence-transformers>=5.0",
"mistune>=3.0",
"pydantic>=2.0",
]
[project.optional-dependencies]
gmail = ["google-api-python-client", "google-auth-oauthlib"]
spotify = ["spotipy"]
todoist = ["todoist-api-python"]
dev = ["ruff", "mypy", "pytest"]
[tool.hatch.build.targets.wheel]
packages = ["src/context_library"]
- No ORM, no async framework, no DI container dependencies are included — the architecture explicitly forbids these
sqlite3 is not listed because it is part of the Python standard library
- The
sentence-transformers package provides the local embedding model (default: all-MiniLM-L6-v2, 384-dimensional vectors) used by the Embedder component
Acceptance Criteria
Dependencies
Phase 2
Parent Issue
Part of #1
Discussion
This work is detailed in discussion 2
Create the sole project configuration file declaring the package name, Python version constraint, core dependencies, optional adapter extras, and development tooling.
Requirements
pyproject.tomlat the project rootcontext-library; Python package directory:src/context_librarylancedb>=0.29sentence-transformers>=5.0mistune>=3.0pydantic>=2.0[gmail]:google-api-python-client,google-auth-oauthlib[spotify]:spotipy[todoist]:todoist-api-python[dev]:ruff,mypy,pytestsetup.py,setup.cfg, orrequirements.txtmay existDesign Guidance
hatchlingas the build backend (natively supportssrc/layout with minimal config)sqlite3is not listed because it is part of the Python standard librarysentence-transformerspackage provides the local embedding model (default:all-MiniLM-L6-v2, 384-dimensional vectors) used by theEmbeddercomponentAcceptance Criteria
pyproject.tomlexists at the project rootpip install -e .succeeds in a fresh Python 3.10+ virtual environment and installslancedb,sentence-transformers,mistune, andpydanticpython -c 'import context_library'succeeds without errorpip install -e ".[gmail]"additionally installsgoogle-api-python-clientandgoogle-auth-oauthlibpip install -e ".[spotify]"additionally installsspotipypip install -e ".[todoist]"additionally installstodoist-api-pythonpip install -e ".[dev]"makesruff,mypy, andpytestavailable on the pathsetup.py,setup.cfg, orrequirements.txtexists in the repositoryDependencies
Phase 2
Parent Issue
Part of #1
Discussion
This work is detailed in discussion 2