pyproject.toml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. [project]
  2. name = "rural-dict"
  3. version = "1.0.0"
  4. description = "Privacy-respecting, NoJS-supporting Urban Dictionary frontend."
  5. license = "AGPL-3.0-or-later"
  6. readme = "README.md"
  7. requires-python = ">=3.12"
  8. authors = [
  9. { name = "Zubarev Grigoriy", email = "thirtysix@thirtysix.pw" },
  10. { name = "vlnst", email = "vlnst@bloat.cat" },
  11. { name = "Skylar Astaroth", email = "cobra@vern.cc" },
  12. { name = "zortazert", email = "zortazert@matthewevan.xyz" },
  13. ]
  14. dependencies = [
  15. "aiohttp~=3.10.3",
  16. "selectolax~=0.3.21",
  17. "fastapi~=0.112.1",
  18. "uvicorn[standard]~=0.30.6",
  19. "jinja2~=3.1.4",
  20. ]
  21. [tool.rye]
  22. virtual = true
  23. managed = true
  24. universal = true
  25. dev-dependencies = [
  26. "basedpyright>=1.16.0",
  27. ]
  28. [tool.rye.scripts]
  29. dev = """uvicorn src.main:app --reload --reload-include 'src/**/*.py'
  30. --reload-include 'templates/**/*.html' --reload-include 'static/**/*.css' --port 5758"""
  31. start = """uvicorn src.main:app --no-access-log --proxy-headers
  32. --forwarded-allow-ips '*' --host 0.0.0.0 --port 5758"""
  33. [tool.ruff]
  34. target-version = "py312"
  35. line-length = 99
  36. exclude = [
  37. ".git",
  38. ".venv",
  39. ".idea",
  40. ".tests",
  41. "build",
  42. "dist",
  43. ]
  44. [tool.ruff.lint]
  45. select = [
  46. "E", # pycodestyle errors
  47. "W", # pycodestyle warnings
  48. "F", # pyflakes
  49. "I", # isort
  50. "N", # pep8-naming
  51. "S", # flake8-bandit
  52. "B", # flake8-bugbear
  53. "G", # flake8-logging-format
  54. "C4", # flake8-comprehensions
  55. "UP", # pyupgrade
  56. "PLC", # pylint conventions
  57. "PLE", # pylint errors
  58. "SIM", # flake8-simplify
  59. "RET", # flake8-return
  60. "YTT", # flake8-2020
  61. "RUF", # ruff-specific rules
  62. "TCH", # flake8-type-checking
  63. "PTH", # flake8-use-pathlib
  64. "ASYNC", # flake8-async
  65. ]
  66. [tool.basedpyright]
  67. exclude = [
  68. ".git",
  69. ".venv",
  70. ".idea",
  71. ".tests",
  72. "build",
  73. "dist",
  74. ]
  75. typeCheckingMode = "standard"
  76. pythonPlatform = "All"
  77. pythonVersion = "3.12"
  78. reportMissingImports = true
  79. reportMissingTypeStubs = false