[tool.poetry] name = "nicegui" version = "2.0.0-dev" description = "Create web-based user interfaces with Python. The nice way." authors = ["Zauberzeug GmbH "] license = "MIT" readme = "README.md" repository = "https://github.com/zauberzeug/nicegui" keywords = ["gui", "ui", "web", "interface", "live"] [tool.poetry.dependencies] python = "^3.8" typing-extensions = ">=4.0.0" markdown2 = ">=2.4.7,!=2.4.11" Pygments = ">=2.15.1,<3.0.0" uvicorn = {extras = ["standard"], version = ">=0.22.0"} fastapi = ">=0.109.1" python-socketio = {extras = ["asyncio-client"], version = ">=5.10.0"} # version min: see https://github.com/zauberzeug/nicegui/issues/1809 vbuild = ">=0.8.2" watchfiles = ">=0.18.1" jinja2 = "^3.1.4" # https://github.com/zauberzeug/nicegui/security/dependabot/32 python-multipart = ">=0.0.7" orjson = {version = ">=3.9.15", markers = "platform_machine != 'i386' and platform_machine != 'i686'"} # https://github.com/zauberzeug/nicegui/security/dependabot/29, orjson does not support 32bit itsdangerous = "^2.1.2" aiofiles = ">=23.1.0" pywebview = { version = "^5.0.1", optional = true } plotly = { version = "^5.13.0", optional = true } matplotlib = { version = "^3.5.0", optional = true } httpx = ">=0.24.0" nicegui-highcharts = { version = "^2.0.2", optional = true } ifaddr = ">=0.2.0" aiohttp = ">=3.10.2" # https://github.com/zauberzeug/nicegui/security/dependabot/36 libsass = { version = "^0.23.0", optional = true } docutils = ">=0.19.0" requests = ">=2.32.0" # https://github.com/zauberzeug/nicegui/security/dependabot/33 urllib3 = ">=1.26.18,!=2.0.0,!=2.0.1,!=2.0.2,!=2.0.3,!=2.0.4,!=2.0.5,!=2.0.6,!=2.0.7,!=2.1.0,!=2.2.0,!=2.2.1" # https://github.com/zauberzeug/nicegui/security/dependabot/34 certifi = ">=2024.07.04" # https://github.com/zauberzeug/nicegui/security/dependabot/35 [tool.poetry.extras] native = ["pywebview"] plotly = ["plotly"] matplotlib = ["matplotlib"] highcharts = ["nicegui-highcharts"] sass = ["libsass"] [tool.poetry.group.dev.dependencies] autopep8 = ">=1.5.7,<3.0.0" debugpy = "^1.3.0" pytest-selenium = "^4.1.0" pytest-asyncio = ">=0.23.0" pytest-watcher = "^0.4.2" pytest = "^8.2.2" itsdangerous = "^2.1.2" # required by SessionMiddleware (see https://fastapi.tiangolo.com/?h=itsdangerous#optional-dependencies) pandas = "^2.0.0" secure = ">=0.3.0" webdriver-manager = ">=3.8.6,<5.0.0" numpy = [ {version = "^1.24.0", python = "~3.8"}, {version = "^1.26.0", python = ">=3.9,<3.13"} ] selenium = "^4.11.2" pyecharts = "^2.0.4" ruff = ">=0.3.5" pre-commit = ">=3.5.0" isort = "^5.11" [tool.poetry.scripts] nicegui-pack = "nicegui.scripts.pack:main" [build-system] requires = [ "setuptools>=30.3.0,<50", "poetry-core>=1.0.0" ] build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] addopts = "--driver Chrome" asyncio_mode = "auto" testpaths = ["tests"] [tool.mypy] python_version = "3.8" [[tool.mypy.overrides]] module = [ "markdown2", "matplotlib.*", "nicegui_highcharts", "plotly.*", "pyecharts.*", "sass", "socketio.*", "vbuild", "webview.*", # can be removed with next pywebview release ] ignore_missing_imports = true [tool.ruff] indent-width = 4 line-length = 120 [tool.ruff.lint] # See complete list: https://docs.astral.sh/ruff/rules/ select = [ "I", # isort "E", # pycodestyle "W", # pycodestyle "B", # bugbear "F", # pyflakes "UP", # pyupgrade "RUF", # ruff "PL", # pylint ] fixable = [ "I", # isort ] ignore = [ "E501", # line too long "UP006", # use pipe for union type annotation "UP007", # use pipe for union type annotation "PLR0911", # too many return statements "PLR0912", # too many branches "PLR0913", # too many arguments "PLR0915", # too many statements "PLR2004", # magic value comparison ] exclude = [ "website/documentation/content/*", ]