diff --git a/pyproject.toml b/pyproject.toml index 85a7559..e7082f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,172 +1,172 @@ -[build-system] -requires = ["setuptools", "wheel"] -build-backend = "setuptools.build_meta" - -[project] -name = "fenn" -version = "0.2.4" -description = "Friendly Environment for Neural Networks (fenn) is a simple framework that automates ML/DL workflows by providing prebuilt trainers, templates, logging, configuration management, and much more." - -authors = [ - { name="Alessio Russo", email="alessio.russo@pyfenn.org" }, -] - -readme = "README.md" - -classifiers = [ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Intended Audience :: Science/Research", - "Topic :: Scientific/Engineering :: Artificial Intelligence", - "Topic :: Scientific/Engineering :: Information Analysis", - "License :: OSI Approved :: MIT License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: 3.14", - "Operating System :: OS Independent", -] - -dependencies = [ - "PyYAML>=6.0.3", - "wandb>=0.23.0", - "numpy>=2.4.4", - "pandas>=2.3.3", - "matplotlib>=3.10.7", - "scikit-learn>=1.7.2", - "colorama>=0.4.6", - "requests>=2.32.5", - "resend>=2.0.0", - "rich~=13.0.0", - "flask~=3.0.2", - "flask-wtf>=1.2.0", - "python-dotenv>=1.2.2", - "faker>=40.8.0", - "torchvision>=0.25.0", - "whenever>=0.10.3", -] - -requires-python = ">=3.11" - -[dependency-groups] - -ci = [ - "uv==0.11.19", - "nox==2026.4.10", -] - -vision = [ - "Pillow>=10.0.0", - "torch>=2.9.1", - "torchvision>=0.24.1" -] - -torch = [ - "torch>=2.9.1" -] - -test = [ - "pytest>=8.0.0", - "pytest-cov>=7.0.0", - "requests-mock>=1.11.0", - "numpy>=2.4.4", - "colorama>=0.4.6", - "PyYAML>=6.0.3", - "python-dotenv>=1.2.2", - "pydantic>=2.13.0", - "rich~=13.0.0", - "resend>=2.0.0", - "scikit-learn>=1.7.2", - "Faker>=25.0.0", - "flask~=3.0.2", - "flask-wtf>=1.2.0", - "peft ~= 0.18.0", - { include-group = "vision" }, - { include-group = "ci" }, -] - -pre-commit = [ - "pre-commit>=4.5.1", - "ruff>=0.15.6", - "typos==1.47.0", - "ty>=0.0.44", -] - -transformers = [ - "peft ~= 0.18.0", - "transformers ~= 4.57.3" -] - -llms = [ - "openai>=1.0.0", - "httpx>=0.27.0", - "beautifulsoup4>=4.12.0", - "pydantic>=2.0.0" -] - -rag-pdf = ["pypdf>=4.0.0"] -rag-docx = ["python-docx>=1.0.0"] -rag-faiss = ["faiss-cpu>=1.7.0", "sentence-transformers>=2.0.0"] -rag-web = ["wikipedia>=1.4.0", "youtube-transcript-api>=0.6.0"] - -rag-all = [ - "pypdf>=4.0.0", - "python-docx>=1.0.0", - "faiss-cpu>=1.7.0", - "sentence-transformers>=2.0.0", - "wikipedia>=1.4.0", - "youtube-transcript-api>=0.6.0", -] - -dev = [ - { include-group = "ci" }, - { include-group = "test" }, - { include-group = "pre-commit" }, -] - -[tool.setuptools.packages.find] -where = ["."] - -[tool.setuptools.package-data] -"fenn.dashboard" = ["templates/*.html", "static/*", "static/images/*"] - -[project.scripts] -fenn = "fenn.cli:main" - -[project.urls] -"Homepage" = "https://pyfenn.org" -"Documentation" = "https://pyfenn.org" -"Source Code" = "https://github.com/blkdmr/fenn" -"Bug Tracker" = "https://github.com/blkdmr/fenn/issues" - -[tool.pytest.ini_options] -testpaths = ["tests"] -norecursedirs = ["tests", "venv", ".venv", "__pycache__", "*.egg"] - -[tool.ruff.lint] -select = ["E4", "E7", "E9", "F", "I", "Q"] -exclude = ["fenn/experimental/*"] - -[tool.ruff] -include = ["pyproject.toml", "fenn/**/*.py"] - -[tool.typos.files] -extend-exclude = [ - "uv.lock", - "experimental/" -] - -[tool.typos.default.extend-words] -certifi = "certifi" - -[tool.ty.src] -exclude = [ - "tests/**", - "fenn/agents/**", -] - -[tool.ty.rules] +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "fenn" +version = "0.2.4" +description = "Friendly Environment for Neural Networks (fenn) is a simple framework that automates ML/DL workflows by providing prebuilt trainers, templates, logging, configuration management, and much more." + +authors = [ + { name="Alessio Russo", email="alessio.russo@pyfenn.org" }, +] + +readme = "README.md" + +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Scientific/Engineering :: Information Analysis", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Operating System :: OS Independent", +] + +dependencies = [ + "PyYAML>=6.0.3", + "wandb>=0.23.0", + "numpy>=2.4.4", + "pandas>=2.3.3", + "matplotlib>=3.10.7", + "scikit-learn>=1.7.2", + "colorama>=0.4.6", + "requests>=2.32.5", + "resend>=2.0.0", + "rich~=13.0.0", + "flask~=3.0.2", + "flask-wtf>=1.2.0", + "python-dotenv>=1.2.2", + "faker>=40.8.0", + "torchvision>=0.25.0", + "whenever>=0.10.3", +] + +requires-python = ">=3.11" + +[dependency-groups] + +ci = [ + "uv==0.11.19", + "nox==2026.4.10", +] + +vision = [ + "Pillow>=10.0.0", + "torch>=2.9.1", + "torchvision>=0.24.1" +] + +torch = [ + "torch>=2.9.1" +] + +test = [ + "pytest>=8.0.0", + "pytest-cov>=7.0.0", + "requests-mock>=1.11.0", + "numpy>=2.4.4", + "colorama>=0.4.6", + "PyYAML>=6.0.3", + "python-dotenv>=1.2.2", + "pydantic>=2.13.0", + "rich~=13.0.0", + "resend>=2.0.0", + "scikit-learn>=1.7.2", + "Faker>=25.0.0", + "flask~=3.0.2", + "flask-wtf>=1.2.0", + "peft ~= 0.18.0", + { include-group = "vision" }, + { include-group = "ci" }, +] + +pre-commit = [ + "pre-commit>=4.5.1", + "ruff>=0.15.6", + "typos==1.47.0", + "ty>=0.0.44", +] + +transformers = [ + "peft ~= 0.18.0", + "transformers ~= 4.57.3" +] + +llms = [ + "openai>=1.0.0", + "httpx>=0.27.0", + "beautifulsoup4>=4.12.0", + "pydantic>=2.0.0" +] + +rag-pdf = ["pypdf>=4.0.0"] +rag-docx = ["python-docx>=1.0.0"] +rag-faiss = ["faiss-cpu>=1.7.0", "sentence-transformers>=2.0.0"] +rag-web = ["wikipedia>=1.4.0", "youtube-transcript-api>=0.6.0"] + +rag-all = [ + "pypdf>=4.0.0", + "python-docx>=1.0.0", + "faiss-cpu>=1.7.0", + "sentence-transformers>=2.0.0", + "wikipedia>=1.4.0", + "youtube-transcript-api>=0.6.0", +] + +dev = [ + { include-group = "ci" }, + { include-group = "test" }, + { include-group = "pre-commit" }, +] + +[tool.setuptools.packages.find] +where = ["."] + +[tool.setuptools.package-data] +"fenn.dashboard" = ["templates/*.html", "static/*", "static/images/*"] + +[project.scripts] +fenn = "fenn.cli:main" + +[project.urls] +"Homepage" = "https://pyfenn.org" +"Documentation" = "https://pyfenn.org" +"Source Code" = "https://github.com/pyfenn/fenn" +"Bug Tracker" = "https://github.com/pyfenn/fenn/issues" + +[tool.pytest.ini_options] +testpaths = ["tests"] +norecursedirs = ["tests", "venv", ".venv", "__pycache__", "*.egg"] + +[tool.ruff.lint] +select = ["E4", "E7", "E9", "F", "I", "Q"] +exclude = ["fenn/experimental/*"] + +[tool.ruff] +include = ["pyproject.toml", "fenn/**/*.py"] + +[tool.typos.files] +extend-exclude = [ + "uv.lock", + "experimental/" +] + +[tool.typos.default.extend-words] +certifi = "certifi" + +[tool.ty.src] +exclude = [ + "tests/**", + "fenn/agents/**", +] + +[tool.ty.rules] unused-ignore-comment = "ignore" \ No newline at end of file