Files
paroles-net-scraper/pyproject.toml
Rene Luria a60f5274b2 feat: Add Ruff linting, pre-commit hooks, and build scripts
- Configure Ruff for linting and formatting with pre-commit hooks
- Add Makefile with convenient commands for development workflow
- Create build and upload scripts for Gitea package registry
- Update README with documentation for new features
- Fix code quality issues identified by Ruff
- Add development dependencies (ruff, pre-commit) to pyproject.toml
- Update Python version requirement to >=3.9
- Add template for Gitea PyPI configuration
- Bump version to 0.3.0
- All tests passing and code properly formatted
2025-08-11 14:49:17 +02:00

105 lines
2.3 KiB
TOML

[project]
name = "paroles-net-scraper"
version = "0.3.0"
description = "A Python package to fetch song lyrics from paroles.net"
authors = [
{name = "Rene Luria", email = "rene@luria.ch"}
]
readme = "README.md"
license = {text = "MIT"}
dependencies = [
"requests>=2.25.1",
"beautifulsoup4>=4.9.3"
]
requires-python = ">=3.9"
[project.optional-dependencies]
test = [
"pytest>=6.0"
]
dev = [
"ruff>=0.12.8",
"pre-commit>=4.3.0"
]
[project.scripts]
paroles-scraper = "paroles_net_scraper.cli:main"
build-and-upload = "scripts.build_and_upload:main"
[project.urls]
Homepage = "https://gitea.parano.ch/herel/paroles-net-scraper"
Repository = "https://gitea.parano.ch/herel/paroles-net-scraper"
[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["."]
include = ["paroles_net_scraper*", "scripts*"]
[tool.setuptools.package-data]
paroles_net_scraper = ["py.typed"]
[tool.ruff]
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
lint.select = ["E", "F", "I", "UP", "B", "SIM", "PL"]
lint.extend-ignore = [
"D203", # one-blank-line-before-class (incompatible with D211)
"D212", # multi-line-summary-first-line (incompatible with D213)
]
# Allow autofix for all enabled rules (when `--fix`) is provided.
lint.fixable = ["ALL"]
lint.unfixable = []
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
# Same as Black.
line-length = 88
# Allow unused variables when underscore-prefixed.
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
# Assume Python 3.7
target-version = "py37"
[tool.ruff.lint.mccabe]
# Unlike Flake8, default to a complexity level of 10.
max-complexity = 10
[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"