pyproject.toml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. [tool.poetry]
  2. name = "nicegui"
  3. version = "2.5.0-dev"
  4. description = "Create web-based user interfaces with Python. The nice way."
  5. authors = ["Zauberzeug GmbH <info@zauberzeug.com>"]
  6. license = "MIT"
  7. readme = "README.md"
  8. repository = "https://github.com/zauberzeug/nicegui"
  9. keywords = ["gui", "ui", "web", "interface", "live"]
  10. [tool.poetry.dependencies]
  11. python = "^3.8"
  12. typing-extensions = ">=4.0.0"
  13. markdown2 = ">=2.4.7,!=2.4.11"
  14. Pygments = ">=2.15.1,<3.0.0"
  15. uvicorn = {extras = ["standard"], version = ">=0.22.0"}
  16. fastapi = ">=0.109.1"
  17. python-socketio = {extras = ["asyncio-client"], version = ">=5.10.0"} # version min: see https://github.com/zauberzeug/nicegui/issues/1809
  18. vbuild = ">=0.8.2"
  19. watchfiles = ">=0.18.1"
  20. jinja2 = "^3.1.4" # https://github.com/zauberzeug/nicegui/security/dependabot/32
  21. python-multipart = ">=0.0.7"
  22. 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
  23. itsdangerous = "^2.1.2"
  24. aiofiles = ">=23.1.0"
  25. pywebview = { version = "^5.0.1", optional = true }
  26. plotly = { version = "^5.13.0", optional = true }
  27. matplotlib = { version = "^3.5.0", optional = true }
  28. httpx = ">=0.24.0"
  29. nicegui-highcharts = { version = "^2.0.2", optional = true }
  30. ifaddr = ">=0.2.0"
  31. aiohttp = ">=3.10.2" # https://github.com/zauberzeug/nicegui/security/dependabot/36
  32. libsass = { version = "^0.23.0", optional = true }
  33. docutils = ">=0.19.0"
  34. requests = ">=2.32.0" # https://github.com/zauberzeug/nicegui/security/dependabot/33
  35. 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
  36. certifi = ">=2024.07.04" # https://github.com/zauberzeug/nicegui/security/dependabot/35
  37. [tool.poetry.extras]
  38. native = ["pywebview"]
  39. plotly = ["plotly"]
  40. matplotlib = ["matplotlib"]
  41. highcharts = ["nicegui-highcharts"]
  42. sass = ["libsass"]
  43. [tool.poetry.group.dev.dependencies]
  44. autopep8 = ">=1.5.7,<3.0.0"
  45. debugpy = "^1.3.0"
  46. pytest-selenium = "^4.1.0"
  47. pytest-asyncio = ">=0.23.0"
  48. pytest-watcher = "^0.4.2"
  49. pytest = "^8.2.2"
  50. itsdangerous = "^2.1.2" # required by SessionMiddleware (see https://fastapi.tiangolo.com/?h=itsdangerous#optional-dependencies)
  51. pandas = "^2.0.0"
  52. secure = ">=0.3.0"
  53. webdriver-manager = ">=3.8.6,<5.0.0"
  54. numpy = [
  55. {version = "^1.24.0", python = "~3.8"},
  56. {version = ">=1.26.0", python = ">=3.9,<3.13"}
  57. ]
  58. selenium = "^4.11.2"
  59. pyecharts = "^2.0.4"
  60. ruff = ">=0.3.5"
  61. pre-commit = ">=3.5.0"
  62. isort = "^5.11"
  63. [tool.poetry.scripts]
  64. nicegui-pack = "nicegui.scripts.pack:main"
  65. [build-system]
  66. requires = [
  67. "setuptools>=30.3.0,<50",
  68. "poetry-core>=1.0.0"
  69. ]
  70. build-backend = "poetry.core.masonry.api"
  71. [tool.pytest.ini_options]
  72. addopts = "--driver Chrome"
  73. asyncio_mode = "auto"
  74. testpaths = ["tests"]
  75. asyncio_default_fixture_loop_scope = "function"
  76. [tool.mypy]
  77. python_version = "3.8"
  78. [[tool.mypy.overrides]]
  79. module = [
  80. "markdown2",
  81. "matplotlib.*",
  82. "nicegui_highcharts",
  83. "plotly.*",
  84. "pyecharts.*",
  85. "sass",
  86. "socketio.*",
  87. "vbuild",
  88. "webview.*", # can be removed with next pywebview release
  89. ]
  90. ignore_missing_imports = true
  91. [tool.ruff]
  92. indent-width = 4
  93. line-length = 120
  94. [tool.ruff.lint]
  95. # See complete list: https://docs.astral.sh/ruff/rules/
  96. select = [
  97. "I", # isort
  98. "E", # pycodestyle
  99. "W", # pycodestyle
  100. "B", # bugbear
  101. "F", # pyflakes
  102. "UP", # pyupgrade
  103. "RUF", # ruff
  104. "PL", # pylint
  105. ]
  106. fixable = [
  107. "I", # isort
  108. ]
  109. ignore = [
  110. "E501", # line too long
  111. "UP006", # use pipe for union type annotation
  112. "UP007", # use pipe for union type annotation
  113. "PLR0911", # too many return statements
  114. "PLR0912", # too many branches
  115. "PLR0913", # too many arguments
  116. "PLR0915", # too many statements
  117. "PLR2004", # magic value comparison
  118. ]
  119. exclude = [
  120. "website/documentation/content/*",
  121. ]