pyproject.toml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. [build-system]
  2. requires = ["setuptools>=61.0", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "boilerplates"
  6. version = "0.1.0"
  7. description = "CLI tool for managing infrastructure boilerplates"
  8. readme = "README.md"
  9. requires-python = ">=3.9"
  10. license = "MIT"
  11. authors = [ {name = "Christian Lempa"} ]
  12. keywords = ["boilerplates", "cli", "infrastructure"]
  13. classifiers = [
  14. "Programming Language :: Python :: 3",
  15. "Operating System :: OS Independent",
  16. ]
  17. dependencies = [
  18. "typer[all]>=0.9.0",
  19. "rich>=13.0.0",
  20. "PyYAML>=6.0",
  21. "python-frontmatter>=1.0.0",
  22. "Jinja2>=3.0",
  23. ]
  24. [project.scripts]
  25. boilerplates = "cli.__main__:run"
  26. [tool.setuptools.packages.find]
  27. include = ["cli*"]
  28. exclude = ["tests*", "scripts*"]
  29. [tool.ruff]
  30. # PEP 8 compliant line length (88 is Black's default, good balance)
  31. line-length = 88
  32. # Python 3.9+ as minimum version
  33. target-version = "py39"
  34. # Exclude common directories
  35. exclude = [
  36. ".git",
  37. "__pycache__",
  38. ".venv",
  39. "venv",
  40. "build",
  41. "dist",
  42. "*.egg-info",
  43. ]
  44. [tool.ruff.lint]
  45. # Enable rule categories
  46. select = [
  47. "E", # pycodestyle errors
  48. "W", # pycodestyle warnings
  49. "F", # pyflakes
  50. "I", # isort (import sorting)
  51. "N", # pep8-naming
  52. "UP", # pyupgrade
  53. "B", # flake8-bugbear
  54. "C4", # flake8-comprehensions
  55. "PL", # pylint
  56. "SIM", # flake8-simplify
  57. "RUF", # ruff-specific rules
  58. ]
  59. # Disable specific rules
  60. ignore = [
  61. "E501", # Line too long (handled by formatter)
  62. "PLR0913", # Too many arguments
  63. ]
  64. # Allow auto-fixing for these rules
  65. fixable = ["ALL"]
  66. unfixable = []
  67. [tool.ruff.format]
  68. # Use PEP 8 standard: 4 spaces for indentation
  69. indent-style = "space"
  70. # Use double quotes (consistent with Python conventions)
  71. quote-style = "double"
  72. # Unix line endings
  73. line-ending = "lf"