pyproject.toml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. [build-system]
  2. requires = ["setuptools>=42", "wheel"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "taipy"
  6. description = "A 360° open-source platform from Python pilots to production-ready web apps."
  7. readme = "package_desc.md"
  8. requires-python = ">=3.9"
  9. license = {text = "Apache License 2.0"}
  10. authors = [{name = "Avaiga", email = "dev@taipy.io"}]
  11. keywords = ["taipy"]
  12. classifiers = [
  13. "Intended Audience :: Developers",
  14. "License :: OSI Approved :: Apache Software License",
  15. "Natural Language :: English",
  16. "Programming Language :: Python :: 3",
  17. "Programming Language :: Python :: 3.9",
  18. "Programming Language :: Python :: 3.10",
  19. "Programming Language :: Python :: 3.11",
  20. "Programming Language :: Python :: 3.12",
  21. ]
  22. dynamic = ["version", "dependencies"]
  23. [project.optional-dependencies]
  24. ngrok = ["pyngrok>=5.1,<6.0"]
  25. image = [
  26. "python-magic>=0.4.24,<0.5",
  27. "python-magic-bin>=0.4.14,<0.5",
  28. ]
  29. rdp = ["rdp>=0.8"]
  30. arrow = ["pyarrow>=17.0.0,<18.0"]
  31. mssql = ["pyodbc>=4"]
  32. [project.scripts]
  33. taipy = "taipy._entrypoint:_entrypoint"
  34. [project.urls]
  35. Homepage = "https://www.taipy.io"
  36. Documentation = "https://docs.taipy.io"
  37. Source = "https://github.com/Avaiga/taipy"
  38. Download = "https://pypi.org/project/taipy/#files"
  39. Tracker = "https://github.com/Avaiga/taipy/issues"
  40. Security = "https://github.com/Avaiga/taipy?tab=security-ov-file#readme"
  41. [tool.ruff]
  42. exclude = [
  43. ".git",
  44. "__pycache__",
  45. "setup.py",
  46. "build",
  47. "dist",
  48. "releases",
  49. ".venv",
  50. ".mypy_cache",
  51. ".pytest_cache",
  52. ".vscode",
  53. ".github",
  54. ]
  55. line-length = 120
  56. indent-width = 4
  57. [tool.ruff.lint]
  58. select = [
  59. "E", # pycodestyle errors
  60. "F", # pyflakes errors
  61. "W", # pycodestyle warnings
  62. "C", # mccabe complexity checker
  63. "B", # bugbear best practices checker
  64. "T", # mypy type errors
  65. "B", # flake8-bugbear best practices checker
  66. "I001", # isort import order
  67. ]
  68. ignore = []
  69. # Allow fix for all enabled rules (when `--fix`) is provided.
  70. fixable = ["ALL"]
  71. unfixable = []
  72. [tool.ruff.lint.per-file-ignores]
  73. "__init__.py" = ["F401", "F403"] # unused import
  74. "_init.py" = ["F401", "F403"] # unused import
  75. "taipy/common/config/stubs/pyi_header.py" = ["F401", "F403"] # unused import
  76. "taipy/templates/*" = ["F401", "F403", "T201"] # unused import, `print` found
  77. "taipy/gui/utils/types.py" = ["B024"] # abstract base class with no abstract methods
  78. [tool.ruff.lint.mccabe]
  79. max-complexity = 18
  80. [tool.ruff.lint.pydocstyle]
  81. convention = "google"
  82. [tool.mypy]
  83. ignore_missing_imports = true
  84. implicit_optional = true
  85. namespace_packages = false
  86. exclude = "(taipy/templates/|tools/|doc/gui/examples/.*/builder.py)"
  87. follow_imports = "skip"
  88. [tool.pyright]
  89. [tool.codespell]
  90. skip = '.git,*.pdf,*.svg,go.sum,package-lock.json,*.css'
  91. check-hidden = true
  92. ignore-regex = '^\s*"image/\S+": ".*|\b(inPort|anId|IST|Opps|Rouge|notifAction)\b'
  93. # some unfortunate names for variables
  94. ignore-words-list = 'ags,selt'