pyproject.toml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. [project]
  2. name = "reflex"
  3. version = "0.7.5"
  4. description = "Web apps in pure Python."
  5. license = { text = "Apache-2.0" }
  6. authors = [
  7. { name = "Nikhil Rao", email = "nikhil@reflex.dev" },
  8. { name = "Alek Petuskey", email = "alek@reflex.dev" },
  9. { name = "Masen Furer", email = "masen@reflex.dev" },
  10. { name = "Elijah Ahianyo", email = "elijahahianyo@gmail.com" },
  11. { name = "Thomas Brandeho", email = "thomas@reflex.dev" },
  12. { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
  13. ]
  14. maintainers = [
  15. { name = "Masen Furer", email = "masen@reflex.dev" },
  16. { name = "Thomas Brandeho", email = "thomas@reflex.dev" },
  17. { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
  18. ]
  19. readme = "README.md"
  20. keywords = ["web", "framework"]
  21. requires-python = ">=3.10,<4.0"
  22. dependencies = [
  23. "alembic >=1.11.1,<2.0",
  24. "build >=1.0.3,<2.0",
  25. "charset-normalizer >=3.3.2,<4.0",
  26. "distro >=1.8.0,<2.0; platform_system == 'Linux'",
  27. "fastapi >=0.96.0,!=0.111.0,!=0.111.1",
  28. "granian[reload] >=2.2.0",
  29. "gunicorn >=23.0.0,<24.0.0",
  30. "httpx >=0.25.1,<1.0",
  31. "jinja2 >=3.1.2,<4.0",
  32. "lazy_loader >=0.4",
  33. "packaging >=23.1,<25.0",
  34. "platformdirs >=3.10.0,<5.0",
  35. "psutil >=5.9.4,<8.0",
  36. "pydantic >=1.10.21,<3.0",
  37. "python-engineio !=4.6.0",
  38. "python-multipart >=0.0.5,<0.1",
  39. "python-socketio >=5.7.0,<6.0",
  40. "redis >=4.3.5,<6.0",
  41. "reflex-hosting-cli >=0.1.29",
  42. "rich >=13.0.0,<14.0",
  43. "setuptools >=75.0",
  44. "starlette-admin >=0.11.0,<1.0",
  45. "sqlmodel >=0.0.14,<0.1",
  46. "tomlkit >=0.12.4,<1.0",
  47. "twine >=4.0.0,<7.0",
  48. "typer >=0.15.1,<1.0",
  49. "typing_extensions >=4.6.0",
  50. "uvicorn >=0.20.0",
  51. "wheel >=0.42.0,<1.0",
  52. "wrapt >=1.17.0,<2.0",
  53. ]
  54. classifiers = [
  55. "Development Status :: 4 - Beta",
  56. "License :: OSI Approved :: Apache Software License",
  57. "Programming Language :: Python :: 3",
  58. "Programming Language :: Python :: 3.10",
  59. "Programming Language :: Python :: 3.11",
  60. "Programming Language :: Python :: 3.12",
  61. "Programming Language :: Python :: 3.13",
  62. ]
  63. [project.urls]
  64. homepage = "https://reflex.dev"
  65. repository = "https://github.com/reflex-dev/reflex"
  66. documentation = "https://reflex.dev/docs/getting-started/introduction"
  67. [project.scripts]
  68. reflex = "reflex.reflex:cli"
  69. [build-system]
  70. requires = ["hatchling"]
  71. build-backend = "hatchling.build"
  72. [tool.hatch.build]
  73. include = ["reflex"]
  74. [tool.pyright]
  75. reportIncompatibleMethodOverride = false
  76. [tool.ruff]
  77. target-version = "py310"
  78. output-format = "concise"
  79. lint.isort.split-on-trailing-comma = false
  80. lint.select = [
  81. "ANN001",
  82. "B",
  83. "C4",
  84. "D",
  85. "E",
  86. "ERA",
  87. "F",
  88. "FURB",
  89. "I",
  90. "N",
  91. "PERF",
  92. "PGH",
  93. "PTH",
  94. "RUF",
  95. "SIM",
  96. "T",
  97. "TRY",
  98. "W",
  99. ]
  100. lint.ignore = [
  101. "B008",
  102. "D205",
  103. "E501",
  104. "F403",
  105. "SIM115",
  106. "RUF006",
  107. "RUF008",
  108. "RUF012",
  109. "TRY0",
  110. ]
  111. lint.pydocstyle.convention = "google"
  112. [tool.ruff.lint.per-file-ignores]
  113. "__init__.py" = ["F401"]
  114. "tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
  115. "benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
  116. "reflex/.templates/*.py" = ["D100", "D103", "D104"]
  117. "*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
  118. "pyi_generator.py" = ["N802"]
  119. "reflex/constants/*.py" = ["N"]
  120. "*/blank.py" = ["I001"]
  121. [tool.pytest.ini_options]
  122. filterwarnings = "ignore:fields may not start with an underscore:RuntimeWarning"
  123. asyncio_default_fixture_loop_scope = "function"
  124. asyncio_mode = "auto"
  125. [tool.codespell]
  126. skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock, uv.lock"
  127. ignore-words-list = "te, TreeE"
  128. [dependency-groups]
  129. dev = [
  130. "asynctest >=0.13.0,<1.0",
  131. "darglint >=1.8.1,<2.0",
  132. "dill >=0.3.8",
  133. "libsass >=0.23.0,<1.0",
  134. "numpy >=2.2.3,<3.0",
  135. "pandas >=2.1.1,<3.0",
  136. "pillow >=10.0.0,<12.0",
  137. "playwright >=1.46.0",
  138. "plotly >=5.13.0,<7.0",
  139. "pre-commit >=4.1.0,<5.0",
  140. "psycopg[binary] >=3.2.6,<4.0",
  141. "pyright >=1.1.397,<1.2",
  142. "pytest >=7.1.2,<9.0",
  143. "pytest-asyncio >=0.24.0",
  144. "pytest-benchmark >=4.0.0,<6.0",
  145. "pytest-codspeed >=3.1.2,<4.0.0",
  146. "pytest-cov >=4.0.0,<7.0",
  147. "pytest-mock >=3.10.0,<4.0",
  148. "pytest-playwright >=0.5.1",
  149. "pytest-retry >=1.7.0,<2.0",
  150. "pytest-split >=0.10.0,<1.0",
  151. "python-dotenv >=1,<2",
  152. "ruff >=0.11.2",
  153. "selenium >=4.11.0,<5.0",
  154. "toml >=0.10.2,<1.0",
  155. ]