[build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [project] name = "email-sorter" version = "1.0.0" description = "Hybrid ML/LLM Email Classification System" readme = "README.md" requires-python = ">=3.8" license = {text = "MIT"} authors = [ {name = "Your Name", email = "your.email@example.com"} ] keywords = ["email", "classification", "machine-learning", "llm", "nlp"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] dependencies = [ "python-dotenv>=1.0.0", "pyyaml>=6.0", "pydantic>=2.0.0", "google-api-python-client>=2.100.0", "google-auth-httplib2>=0.1.1", "google-auth-oauthlib>=1.1.0", "msal>=1.24.0", "imapclient>=2.3.1", "scikit-learn>=1.3.0", "lightgbm>=4.0.0", "pandas>=2.0.0", "numpy>=1.24.0", "sentence-transformers>=2.2.0", "ollama>=0.1.0", "openai>=1.0.0", "nltk>=3.8", "beautifulsoup4>=4.12.0", "lxml>=4.9.0", "PyPDF2>=3.0.0", "python-docx>=0.8.11", "openpyxl>=3.0.10", "click>=8.1.0", "rich>=13.0.0", "tqdm>=4.66.0", "joblib>=1.3.0", "tenacity>=8.2.0", ] [project.optional-dependencies] dev = [ "pytest>=7.4.0", "pytest-cov>=4.1.0", "pytest-mock>=3.11.0", "black>=23.0.0", "isort>=5.12.0", "flake8>=6.0.0", ] gmail = [ "google-api-python-client>=2.100.0", "google-auth-oauthlib>=1.1.0", ] ollama = [ "ollama>=0.1.0", ] openai = [ "openai>=1.0.0", ] [project.urls] Homepage = "https://github.com/yourusername/email-sorter" Documentation = "https://github.com/yourusername/email-sorter" Repository = "https://github.com/yourusername/email-sorter" Issues = "https://github.com/yourusername/email-sorter/issues" [project.scripts] email-sorter = "src.cli:cli" [tool.black] line-length = 100 target-version = ['py38', 'py39', 'py310', 'py311'] [tool.isort] profile = "black" line_length = 100 [tool.pytest.ini_options] minversion = "7.0" addopts = "-v --tb=short" testpaths = ["tests"] python_files = ["test_*.py"]