[project] name = "rio-ui" description = "Build modern Websites and Apps just with Python" dynamic = ["version"] authors = [ { name = "Jakob Pinterits", email = "jakob.pinterits@gmail.com" }, { name = "Paul Pinterits", email = "rawing7@gmail.com" }, ] dependencies = [ "crawlerdetect>=0.1.7,<0.4", "fastapi>=0.110,<0.129", "gitignore-parser>=0.1.11,<0.2", "identity-containers>=1.0.2,<2.0", "imy[docstrings,deprecations]>=0.7.1,<0.8", "introspection>=1.11.1,<2.0", "isort>=5.13,<8.0", "langcodes>=3.4,<4.0", "multipart>=1.2,<2.0", "narwhals>=1.13,<3.0", "ordered-set>=4.1,<5.0", "path-imports>=1.1.2,<2.0", "pillow>=10.2,<13.0", "platformdirs>=4.3,<5.0", "pytz>=2024.1", "rapidfuzz>=3.12.2,<4.0", "revel>=0.9.2post1,<0.10", "timer-dict>=1.0,<2.0", "tomlkit>=0.12,<0.14", "typing-extensions>=4.5,<5.0", "unicall>=0.2post0,<0.3", "uniserde>=0.4.1,<0.5", "uvicorn[standard]>=0.29.0,<0.41", "watchfiles>=0.21,<2.0", "yarl>=1.9,<2.0", "cssutils>=2.11.1,<3.0", ] requires-python = ">= 3.10" readme = "README.md" license.file = "LICENSE.txt" keywords = [ "web-development", "web-framework", "framework", "functional", "type-safe", "typing", "typed", "react", "web", "app", "user-interface", "web-app", "local-app", "modern", "rio", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Python Modules", ] [project.optional-dependencies] window = [ "aiofiles>=24.1,<26.0", "copykitten>=1.2,<3.0", "pywebview[pyside6]>=6.0,<7.0", # Workaround for https://github.com/rio-labs/rio/issues/235 'PySide6<=6.7.3; python_version < "3.13"', ] [project.urls] homepage = "https://rio.dev" repository = "https://github.com/rio-labs/rio" documentation = "https://rio.dev/docs" [project.scripts] rio = "rio.__main__:main" [build-system] requires = ["hatchling==1.28.0", "hatch-build-scripts==1.0.0"] build-backend = "hatchling.build" [dependency-groups] dev = [ "alt-pytest-asyncio==0.7.2", "asyncio-atexit>=1.0.1,<2.0", "coverage>=7.2,<8.0", "hatch>=1.11.1,<2.0", "matplotlib>=3.8,<4.0", "pandas>=2.2,<3.0", "playwright>=1.44,<1.58", "plotly>=5.22,<7.0", "polars>=0.20,<1.37", "pyarrow>=11.0.0", "pre-commit>=3.1,<5.0", "pyfakefs>=5.7.3,<7.0", "pytest-cov>=5.0,<8.0", "pytest>=8.2.1,<10.0", "ruff>=0.9.9,<0.15", ] [tool.hatch.version] path = "rio/__init__.py" [tool.hatch.build.targets.wheel] packages = ["rio"] [[tool.hatch.build.hooks.build-scripts.scripts]] commands = ["npm install", "npm run build"] # I don't understand how `out_dir` and `artifacts` work. I'd like to get rid of # the `out_dir` and write `rio/frontend files`, but for some reason that doesn't # work. out_dir = "rio" artifacts = ["frontend files/**/*"] clean_artifacts = false [tool.ruff] line-length = 80 [tool.pytest.ini_options] default_async_timeout = 20 filterwarnings = ["ignore::rio.warnings.RioPotentialMistakeWarning"]