diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d7365c6 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,102 @@ +[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"]