Some checks failed
Frontend / Unit Tests & Coverage (push) Has been skipped
Regenerate POT file (translatable strings) / Regenerate POT file (develop) (push) Failing after 1m13s
Regenerate POT file (translatable strings) / Regenerate POT file (main-hotfix) (push) Failing after 6s
Server / Tests (frappe ${{ matrix.frappe-branch }}) (push) Has been skipped
Server / Resolve frappe matrix (push) Failing after 1s
Frontend / Lint (push) Failing after 1s
Frontend / Production Build (push) Failing after 1s
Server / Coverage Wrap Up (push) Has been skipped
Frontend / Coverage Wrap Up (push) Has been skipped
86 lines
2.7 KiB
TOML
86 lines
2.7 KiB
TOML
[project]
|
|
name = "crm"
|
|
authors = [
|
|
{ name = "Frappe Technologies Pvt. Ltd.", email = "shariq@frappe.io"}
|
|
]
|
|
description = "Kick-ass Open Source CRM"
|
|
requires-python = ">=3.10"
|
|
readme = "README.md"
|
|
dynamic = ["version"]
|
|
dependencies = [
|
|
# "frappe~=15.0.0" # Installed and managed by bench.
|
|
"twilio==8.5.0",
|
|
"requests>=2.28.0",
|
|
# Public Suffix List lookups for the enrichment crawler's same-site scoping
|
|
# (registrable_domain). Pinned to its bundled PSL snapshot at runtime -- no
|
|
# network fetch (see crawler._tld_extractor).
|
|
"tldextract>=5.0.0",
|
|
# beautifulsoup4 is a hard dependency of frappe -- do not re-declare it here (the
|
|
# enrichment crawler imports `from bs4 import BeautifulSoup` and uses only the
|
|
# stdlib html.parser backend, so no extra dependency is needed).
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["flit_core >=3.4,<4"]
|
|
build-backend = "flit_core.buildapi"
|
|
|
|
# These dependencies are only installed when developer mode is enabled
|
|
[tool.bench.dev-dependencies]
|
|
# package_name = "~=1.1.0"
|
|
|
|
[tool.bench.frappe-dependencies]
|
|
frappe = ">=16.0.0-dev,<=17.0.0-dev"
|
|
|
|
[tool.bench.assets]
|
|
build_dir = "./frontend"
|
|
out_dir = "../crm/public/frontend"
|
|
index_html_path = "../crm/www/crm.html"
|
|
|
|
[tool.ruff]
|
|
line-length = 110
|
|
target-version = "py310"
|
|
exclude = [
|
|
"**/doctype/*/boilerplate/*.py" # boilerplate are template strings, not valid python
|
|
]
|
|
|
|
[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
|
|
"UP030", # Use implicit references for positional format fields (translations)
|
|
"UP031", # Use format specifiers instead of percent format
|
|
"UP032", # Use f-string instead of `format` call (translations)
|
|
]
|
|
typing-modules = ["frappe.types.DF"]
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "tab"
|
|
docstring-code-format = true
|
|
|
|
[project.urls]
|
|
Homepage = "https://frappe.io/crm"
|
|
Repository = "https://github.com/frappe/crm.git"
|
|
"Bug Reports" = "https://github.com/frappe/crm/issues"
|