[project] | |
name = "flowerfy" | |
version = "0.1.0" | |
description = "Add your description here" | |
readme = "README.md" | |
requires-python = ">=3.9" | |
dependencies = [ | |
"accelerate>=1.10.1", | |
"diffusers>=0.35.1", | |
"gradio>=4.25.0,<4.30.0", | |
"pillow>=8.0,<12.0", | |
"python-dotenv>=1.0.0", | |
"scikit-learn>=1.3.0,<1.6", | |
"torch>=2.8.0", | |
"torchvision>=0.23.0", | |
"transformers[torch]>=4.55.4", | |
] | |
[dependency-groups] | |
dev = [ | |
"mypy>=1.17.1", | |
"pre-commit>=4.3.0", | |
"ruff>=0.12.10", | |
] | |
[tool.ruff] | |
# Modern Python standards for 2025 | |
target-version = "py313" | |
line-length = 88 | |
indent-width = 4 | |
[tool.ruff.lint] | |
# Enable modern Python linting rules | |
select = [ | |
"E", # pycodestyle errors | |
"W", # pycodestyle warnings | |
"F", # pyflakes | |
"UP", # pyupgrade (modernize Python code) | |
"B", # flake8-bugbear | |
"SIM", # flake8-simplify | |
"I", # isort (import sorting) | |
"N", # pep8-naming | |
"C4", # flake8-comprehensions | |
"PT", # flake8-pytest-style | |
"RUF", # Ruff-specific rules | |
] | |
ignore = [ | |
"E501", # line too long (handled by formatter) | |
"B008", # do not perform function call in argument defaults | |
"PT011", # pytest.raises without match parameter | |
] | |
[tool.ruff.format] | |
# Use double quotes for strings | |
quote-style = "double" | |
# Use 4 spaces for indentation | |
indent-style = "space" | |
# Respect magic trailing comma | |
skip-magic-trailing-comma = false | |
# Auto-detect line ending | |
line-ending = "auto" | |
[tool.ruff.lint.isort] | |
# Import sorting configuration | |
force-single-line = false | |
force-sort-within-sections = false | |
split-on-trailing-comma = true | |
[tool.mypy] | |
# Type checking configuration | |
python_version = "3.13" | |
warn_return_any = true | |
warn_unused_configs = true | |
disallow_untyped_defs = false # Gradual typing adoption | |
ignore_missing_imports = true | |