frappe/pyproject.toml

146 lines
3.6 KiB
TOML

[project]
name = "frappe"
authors = [
{ name = "Frappe Technologies Pvt Ltd", email = "developers@frappe.io"}
]
description = "Metadata driven, full-stack low code web framework"
requires-python = ">=3.10,<3.13"
readme = "README.md"
dynamic = ["version"]
dependencies = [
# core dependencies
"Babel~=2.13.1",
"Click~=8.1.7",
"filelock~=3.13.1",
"filetype~=1.2.0",
"GitPython~=3.1.34",
"Jinja2~=3.1.2",
"Pillow~=10.3.0",
"PyJWT~=2.8.0",
# We depend on internal attributes,
# do NOT add loose requirements on PyMySQL versions.
"PyMySQL==1.1.0",
"pypdf~=3.17.0",
"PyPika==0.48.9",
"PyQRCode~=1.2.1",
"PyYAML~=6.0.1",
"RestrictedPython~=7.0",
"WeasyPrint==59.0",
"Werkzeug~=3.0.1",
"Whoosh~=2.7.4",
"beautifulsoup4~=4.12.2",
"bleach-allowlist~=1.0.3",
"bleach[css]~=6.0.0",
"chardet~=5.1.0",
"croniter~=2.0.1",
"cryptography~=42.0.0",
"cssutils~=2.9.0",
"email-reply-parser~=0.5.12",
"gunicorn~=22.0.0",
"html5lib~=1.1",
"ipython~=8.15.0",
"ldap3~=2.9",
"markdown2~=2.4.8",
"MarkupSafe>=2.1.0,<3",
"maxminddb-geolite2==2018.703",
"num2words~=0.5.12",
"oauthlib~=3.2.2",
"openpyxl~=3.1.2",
"passlib~=1.7.4",
"pdfkit~=1.0.0",
"phonenumbers==8.13.13",
"premailer~=3.10.0",
"psutil~=5.9.5",
"psycopg2-binary~=2.9.1",
"pyOpenSSL~=24.0.0",
"pydantic~=2.7.0",
"pyotp~=2.8.0",
"python-dateutil~=2.8.2",
"pytz==2023.3",
"rauth~=0.7.3",
"redis~=5.0.1",
"hiredis~=2.2.3",
"setproctitle~=1.3.3",
"requests-oauthlib~=1.3.1",
"requests~=2.31.0",
"rq~=1.15.1",
"rsa>=4.1",
"semantic-version~=2.10.0",
"sentry-sdk~=1.37.1",
"sqlparse~=0.5.0",
"sql_metadata~=2.11.0",
"tenacity~=8.2.2",
"terminaltables~=3.1.10",
"traceback-with-variables~=2.0.4",
"typing_extensions>=4.6.1,<5",
"tomli~=2.0.1",
"uuid-utils~=0.6.1",
"xlrd~=2.0.1",
"zxcvbn~=4.4.28",
"markdownify~=0.11.6",
# integration dependencies
"boto3~=1.28.10",
"dropbox~=11.36.2",
"google-api-python-client~=2.2.0",
"google-auth-oauthlib~=0.4.4",
"google-auth~=1.29.0",
"posthog~=3.0.1",
]
[project.urls]
Homepage = "https://frappeframework.com/"
Repository = "https://github.com/frappe/frappe.git"
"Bug Reports" = "https://github.com/frappe/frappe/issues"
[build-system]
requires = ["flit_core >=3.4,<4"]
build-backend = "flit_core.buildapi"
[tool.bench.dev-dependencies]
coverage = "~=6.5.0"
Faker = "~=18.10.1"
pyngrok = "~=6.0.0"
unittest-xml-reporting = "~=3.2.0"
watchdog = "~=3.0.0"
hypothesis = "~=6.77.0"
responses = "==0.23.1"
freezegun = "~=1.2.2"
[tool.ruff]
line-length = 110
target-version = "py310"
[tool.ruff.lint]
select = [
"F",
"E",
"W",
"I",
"UP",
"B",
"RUF",
]
ignore = [
"B017", # assertRaises(Exception) - should be more specific
"B018", # useless expression, not assigned to anything
"B023", # function doesn't bind loop variable - will have last iteration's value
"B904", # raise inside except without from
"E101", # indentation contains mixed spaces and tabs
"E402", # module level import not at top of file
"E501", # line too long
"E741", # ambiguous variable name
"F401", # "unused" imports
"F403", # can't detect undefined names from * import
"F405", # can't detect undefined names from * import
"F722", # syntax error in forward type annotation
"W191", # indentation contains tabs
"RUF001", # string contains ambiguous unicode character
]
typing-modules = ["frappe.types.DF"]
[tool.ruff.format]
quote-style = "double"
indent-style = "tab"
docstring-code-format = true