personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at scratch/segment-sense-rd 149 lines 4.1 kB view raw
1[build-system] 2requires = ["setuptools>=61.0", "wheel"] 3build-backend = "setuptools.build_meta" 4 5[project] 6name = "solstone" 7version = "0.1.0" 8description = "Navigate Life Intelligently" 9readme = "README.md" 10requires-python = ">=3.10" 11license = {text = "AGPL-3.0-only"} 12authors = [ 13 {name = "Jer+AI", email = "jeremie.miller@gmail.com"} 14] 15classifiers = [ 16 "Development Status :: 3 - Alpha", 17 "Intended Audience :: Developers", 18 "License :: OSI Approved :: GNU Affero General Public License v3", 19 "Operating System :: POSIX :: Linux", 20 "Operating System :: MacOS :: MacOS X", 21 "Programming Language :: Python :: 3", 22 "Programming Language :: Python :: 3.10", 23 "Programming Language :: Python :: 3.11", 24 "Programming Language :: Python :: 3.12", 25 "Programming Language :: Python :: 3.13", 26 "Topic :: Multimedia :: Sound/Audio :: Analysis", 27 "Topic :: Multimedia :: Graphics :: Capture :: Screen Capture", 28 "Topic :: Scientific/Engineering :: Artificial Intelligence", 29] 30keywords = ["audio", "transcription", "screenshot", "multimodal", "ai", "gemini"] 31 32dependencies = [ 33 # Core dependencies 34 "python-dotenv", 35 "google-genai", 36 "Flask[async]", 37 "flask-sock", 38 "Markdown", 39 "mistune", 40 "python-frontmatter", 41 42 # Natural language time parsing 43 "timefhuman", 44 "Pillow", 45 "numpy", 46 "desktop-notifier", 47 "setproctitle", 48 "av", 49 50 "openai>=1.2.0", 51 "openai-agents>=0.1.0", 52 "anthropic", 53 "genai-prices", 54 "pypdf", 55 "pdf2image", 56 "pytesseract", 57 "icalendar", 58 "blessed>=1.20.0", 59 "psutil", 60 "tzlocal", 61 "python-slugify", 62 "rapidfuzz", 63 "typer", 64 65 # Audio processing 66 "soundfile", 67 "faster-whisper>=1.0.0", 68 "resemblyzer>=0.1.0", 69 "webrtcvad-wheels>=2.0.12", 70 71 # Media processing 72 "opencv-python", 73 74 # Development tools 75 "ruff", 76 "mypy", 77 "pytest", 78 "pytest-asyncio", 79 "pytest-cov", 80 "pytest-timeout", 81 "playwright>=1.40.0", 82 "requests", 83] 84 85[project.scripts] 86sol = "sol:main" 87 88[project.urls] 89Homepage = "https://github.com/solpbc/solstone" 90Repository = "https://github.com/solpbc/solstone" 91Documentation = "https://github.com/solpbc/solstone/blob/main/README.md" 92"Bug Tracker" = "https://github.com/solpbc/solstone/issues" 93 94[tool.setuptools.packages.find] 95include = ["apps*", "think*", "convey*", "observe*", "muse*"] 96 97[tool.setuptools] 98py-modules = ["media", "sol"] 99 100[tool.setuptools.package-data] 101apps = ["*/templates/*.html", "*/muse/*.md"] 102think = ["*.md", "*.json", "templates/*.md"] 103muse = ["*.md", "*.py"] 104observe = ["*.md", "categories/*.md", "transcribe/*.md"] 105convey = [ 106 "templates/*.html", 107 "static/*", 108] 109 110# Development tools configuration 111[tool.ruff] 112target-version = "py310" 113exclude = [".venv", "scratch", "logs", "build", "dist"] 114 115[tool.ruff.lint] 116select = ["F", "E", "W", "I"] 117ignore = ["E501", "E203", "E402"] 118 119[tool.mypy] 120python_version = "3.12" 121warn_return_any = true 122warn_unused_configs = true 123exclude = ["tests", ".venv", "scratch", "logs", "build", "dist"] 124ignore_missing_imports = true 125ignore_errors = true 126 127[tool.uv] 128# resemblyzer -> librosa -> numba: force modern version (old numba only supports Python <3.10) 129constraint-dependencies = ["numba>=0.60"] 130# resemblyzer -> webrtcvad: abandoned (2017), uses pkg_resources removed in setuptools 82. 131# Replace with maintained fork webrtcvad-wheels (same Python module, pkg_resources fix since 2.0.12). 132override-dependencies = ["webrtcvad>=99; python_version < '0'"] 133 134[tool.pytest.ini_options] 135addopts = "--import-mode=importlib" 136testpaths = ["tests", "apps"] 137python_files = ["test_*.py"] 138python_classes = ["Test*"] 139python_functions = ["test_*"] 140markers = [ 141 "integration: marks tests as integration tests (deselect with '-m \"not integration\"')", 142] 143timeout = 5 144filterwarnings = [ 145 # Third-party deprecation warnings (Python 3.14+) 146 "ignore:codecs.open.* is deprecated:DeprecationWarning", 147 "ignore:.*_UnionGenericAlias.* is deprecated:DeprecationWarning", 148 "ignore:.*DefaultEventLoopPolicy.* is deprecated:DeprecationWarning", 149]