pyproject.toml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. [project]
  2. name = "rural-dict"
  3. description = "Privacy-respecting, NoJS-supporting Urban Dictionary frontend."
  4. license = "AGPL-3.0-or-later"
  5. readme = "README.md"
  6. requires-python = ">=3.12"
  7. authors = [
  8. { name = "Zubarev Grigoriy", email = "thirtysix@thirtysix.pw" },
  9. { name = "vlnst", email = "vlnst@bloat.cat" },
  10. { name = "Skylar Widulski", email = "cobra@vern.cc" },
  11. { name = "zortazert", email = "zortazert@matthewevan.xyz" },
  12. ]
  13. dependencies = [
  14. "aiohttp~=3.10.3",
  15. "selectolax~=0.3.21",
  16. "fastapi~=0.112.1",
  17. "uvicorn[standard]~=0.30.6",
  18. "jinja2~=3.1.4",
  19. ]
  20. dynamic = ["version"]
  21. [project.urls]
  22. "Source Code" = "https://git.vern.cc/cobra/rural-dict"
  23. "Issue Tracker" = "https://git.vern.cc/cobra/rural-dict/issues"
  24. [build-system]
  25. requires = ["hatchling"]
  26. build-backend = "hatchling.build"
  27. [tool.rye]
  28. managed = true
  29. universal = true
  30. dev-dependencies = [
  31. "basedpyright>=1.16.0",
  32. ]
  33. [tool.rye.scripts]
  34. dev = "uvicorn src.rural_dict.__main__:app --port 5758 --reload --reload-dir src/rural_dict"
  35. [tool.hatch.version]
  36. path = "src/rural_dict/__init__.py"
  37. [tool.hatch.metadata]
  38. allow-direct-references = true
  39. [tool.hatch.build.targets.wheel]
  40. packages = ["src/rural_dict"]
  41. [tool.hatch.build.targets.sdist]
  42. exclude = ["*.xcf"]
  43. [tool.ruff]
  44. target-version = "py312"
  45. line-length = 99
  46. exclude = [
  47. ".git",
  48. ".venv",
  49. ".idea",
  50. ".tests",
  51. "build",
  52. "dist",
  53. ]
  54. [tool.ruff.lint]
  55. select = [
  56. "E", # pycodestyle errors
  57. "W", # pycodestyle warnings
  58. "F", # pyflakes
  59. "I", # isort
  60. "N", # pep8-naming
  61. "S", # flake8-bandit
  62. "B", # flake8-bugbear
  63. "G", # flake8-logging-format
  64. "C4", # flake8-comprehensions
  65. "UP", # pyupgrade
  66. "PLC", # pylint conventions
  67. "PLE", # pylint errors
  68. "SIM", # flake8-simplify
  69. "RET", # flake8-return
  70. "YTT", # flake8-2020
  71. "RUF", # ruff-specific rules
  72. "TCH", # flake8-type-checking
  73. "PTH", # flake8-use-pathlib
  74. "ASYNC", # flake8-async
  75. ]
  76. [tool.basedpyright]
  77. exclude = [
  78. ".git",
  79. ".venv",
  80. ".idea",
  81. ".tests",
  82. "build",
  83. "dist",
  84. ]
  85. typeCheckingMode = "standard"
  86. pythonPlatform = "All"
  87. pythonVersion = "3.12"
  88. reportMissingImports = true
  89. reportMissingTypeStubs = false