pyproject.toml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 --reload --reload-dir src/rural_dict
  35. --reload-include '**/*.py' --reload-include '**/*.html' --reload-include '**/*.css' --port 5758"""
  36. start = """uvicorn src.rural_dict.__main__:app --no-access-log --proxy-headers
  37. --forwarded-allow-ips '*' --host 0.0.0.0 --port 5758"""
  38. [tool.hatch.version]
  39. path = "src/rural_dict/__init__.py"
  40. [tool.hatch.metadata]
  41. allow-direct-references = true
  42. [tool.hatch.build.targets.wheel]
  43. packages = ["src/rural_dict"]
  44. [tool.hatch.build.targets.sdist]
  45. exclude = ["*.xcf"]
  46. [tool.ruff]
  47. target-version = "py312"
  48. line-length = 99
  49. exclude = [
  50. ".git",
  51. ".venv",
  52. ".idea",
  53. ".tests",
  54. "build",
  55. "dist",
  56. ]
  57. [tool.ruff.lint]
  58. select = [
  59. "E", # pycodestyle errors
  60. "W", # pycodestyle warnings
  61. "F", # pyflakes
  62. "I", # isort
  63. "N", # pep8-naming
  64. "S", # flake8-bandit
  65. "B", # flake8-bugbear
  66. "G", # flake8-logging-format
  67. "C4", # flake8-comprehensions
  68. "UP", # pyupgrade
  69. "PLC", # pylint conventions
  70. "PLE", # pylint errors
  71. "SIM", # flake8-simplify
  72. "RET", # flake8-return
  73. "YTT", # flake8-2020
  74. "RUF", # ruff-specific rules
  75. "TCH", # flake8-type-checking
  76. "PTH", # flake8-use-pathlib
  77. "ASYNC", # flake8-async
  78. ]
  79. [tool.basedpyright]
  80. exclude = [
  81. ".git",
  82. ".venv",
  83. ".idea",
  84. ".tests",
  85. "build",
  86. "dist",
  87. ]
  88. typeCheckingMode = "standard"
  89. pythonPlatform = "All"
  90. pythonVersion = "3.12"
  91. reportMissingImports = true
  92. reportMissingTypeStubs = false