[project] name = "reflex" version = "0.7.4dev1" description = "Web apps in pure Python." license = { text = "Apache-2.0" } authors = [ { name = "Nikhil Rao", email = "nikhil@reflex.dev" }, { name = "Alek Petuskey", email = "alek@reflex.dev" }, { name = "Masen Furer", email = "masen@reflex.dev" }, { name = "Elijah Ahianyo", email = "elijahahianyo@gmail.com" }, { name = "Thomas Brandeho", email = "thomas@reflex.dev" }, { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" }, ] maintainers = [ { name = "Masen Furer", email = "masen@reflex.dev" }, { name = "Thomas Brandeho", email = "thomas@reflex.dev" }, { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" }, ] readme = "README.md" keywords = ["web", "framework"] requires-python = ">=3.10,<4.0" dependencies = [ "alembic >=1.11.1,<2.0", "build >=1.0.3,<2.0", "charset-normalizer >=3.3.2,<4.0", "distro >=1.8.0,<2.0; platform_system == 'Linux'", "fastapi >=0.96.0,!=0.111.0,!=0.111.1", "gunicorn >=20.1.0,<24.0", "httpx >=0.25.1,<1.0", "jinja2 >=3.1.2,<4.0", "jsonpatch >=1.33,<2.0", "lazy_loader >=0.4", "packaging >=23.1,<25.0", "platformdirs >=3.10.0,<5.0", "psutil >=5.9.4,<8.0", "pydantic >=1.10.21,<3.0", "python-engineio !=4.6.0", "python-multipart >=0.0.5,<0.1", "python-socketio >=5.7.0,<6.0", "redis >=4.3.5,<6.0", "reflex-hosting-cli >=0.1.29", "rich >=13.0.0,<14.0", "setuptools >=75.0", "starlette-admin >=0.11.0,<1.0", "sqlmodel >=0.0.14,<0.1", "tomlkit >=0.12.4,<1.0", "twine >=4.0.0,<7.0", "typer >=0.15.1,<1.0", "typing_extensions >=4.6.0", "uvicorn >=0.20.0", "wheel >=0.42.0,<1.0", "wrapt >=1.17.0,<2.0", ] classifiers = [ "Development Status :: 4 - Beta", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] [project.urls] homepage = "https://reflex.dev" repository = "https://github.com/reflex-dev/reflex" documentation = "https://reflex.dev/docs/getting-started/introduction" [project.scripts] reflex = "reflex.reflex:cli" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build] include = ["reflex"] [tool.pyright] reportIncompatibleMethodOverride = false [tool.ruff] target-version = "py310" output-format = "concise" lint.isort.split-on-trailing-comma = false lint.select = [ "ANN001", "B", "C4", "D", "E", "ERA", "F", "FURB", "I", "N", "PERF", "PGH", "PTH", "RUF", "SIM", "T", "TRY", "W", ] lint.ignore = [ "B008", "D205", "E501", "F403", "SIM115", "RUF006", "RUF008", "RUF012", "TRY0", ] lint.pydocstyle.convention = "google" [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] "tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"] "benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"] "reflex/.templates/*.py" = ["D100", "D103", "D104"] "*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"] "pyi_generator.py" = ["N802"] "reflex/constants/*.py" = ["N"] "*/blank.py" = ["I001"] [tool.pytest.ini_options] filterwarnings = "ignore:fields may not start with an underscore:RuntimeWarning" asyncio_default_fixture_loop_scope = "function" asyncio_mode = "auto" [tool.codespell] skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock, uv.lock" ignore-words-list = "te, TreeE" [dependency-groups] dev = [ "asynctest >=0.13.0,<1.0", "darglint >=1.8.1,<2.0", "dill >=0.3.8", "granian[reload] >= 2.0.0", "numpy >=2.2.3,<3.0", "pandas >=2.1.1,<3.0", "pillow >=10.0.0,<12.0", "playwright >=1.46.0", "plotly >=5.13.0,<6.0", "pre-commit >=4.1.0,<5.0", "psycopg[binary] >=3.2.6,<4.0", "pyright >=1.1.396,<1.2", "pytest >=7.1.2,<9.0", "pytest-asyncio >=0.24.0", "pytest-benchmark >=4.0.0,<6.0", "pytest-codspeed >=3.1.2,<4.0.0", "pytest-cov >=4.0.0,<7.0", "pytest-mock >=3.10.0,<4.0", "pytest-playwright >=0.5.1", "pytest-retry >=1.7.0,<2.0", "pytest-split >=0.10.0,<1.0", "ruff ==0.9.10", "selenium >=4.11.0,<5.0", "toml >=0.10.2,<1.0", ]