[project] name = "human-condition" version = "0.1.0" description = "5,000 years of human writing through NLP, BERTopic, and TurboQuant compression" requires-python = ">=3.12" dependencies = [ "numpy>=1.26", "requests>=2.31", "nltk>=3.9", "sentence-transformers>=3.0", "bertopic>=0.16", "umap-learn>=0.5", "transformers>=4.40", "torch>=2.3", "duckdb>=1.0", "plotly>=5.22", "streamlit>=1.35", "apache-airflow>=2.9", "openlineage-python>=1.20", "dbt-core>=1.8", "dbt-duckdb>=1.8", "pydantic>=2.7", "python-dotenv>=1.0", "praw>=7.7", ] [project.optional-dependencies] dev = [ "types-requests>=2.31", "pytest>=8.2", "pytest-cov>=5.0", "ruff>=0.4", "mypy>=1.10", "httpx>=0.27", ] [build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"] [tool.ruff] target-version = "py312" line-length = 88 src = ["src"] [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP", "B", "SIM"] [tool.mypy] python_version = "3.12" warn_return_any = true warn_unused_configs = true [tool.pytest.ini_options] testpaths = ["tests"] filterwarnings = ["ignore::DeprecationWarning", "ignore::FutureWarning"]