Files
multitenetsaas/backend/pyproject.toml
AHMET YILMAZ b3fff546e9
Some checks failed
System Monitoring / Health Checks (push) Has been cancelled
System Monitoring / Performance Monitoring (push) Has been cancelled
System Monitoring / Database Monitoring (push) Has been cancelled
System Monitoring / Cache Monitoring (push) Has been cancelled
System Monitoring / Log Monitoring (push) Has been cancelled
System Monitoring / Resource Monitoring (push) Has been cancelled
System Monitoring / Uptime Monitoring (push) Has been cancelled
System Monitoring / Backup Monitoring (push) Has been cancelled
System Monitoring / Security Monitoring (push) Has been cancelled
System Monitoring / Monitoring Dashboard (push) Has been cancelled
System Monitoring / Alerting (push) Has been cancelled
Security Scanning / Dependency Scanning (push) Has been cancelled
Security Scanning / Code Security Scanning (push) Has been cancelled
Security Scanning / Secrets Scanning (push) Has been cancelled
Security Scanning / Container Security Scanning (push) Has been cancelled
Security Scanning / Compliance Checking (push) Has been cancelled
Security Scanning / Security Dashboard (push) Has been cancelled
Security Scanning / Security Remediation (push) Has been cancelled
project initialization
2025-10-05 02:37:33 +08:00

87 lines
1.8 KiB
TOML

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "saas-platform-backend"
version = "1.0.0"
description = "Multi-tenant SaaS platform for Malaysian SMEs"
authors = [
{name = "Development Team", email = "dev@company.com"}
]
dependencies = [
"Django==4.2.0",
"djangorestframework==3.14.0",
"django-tenants==3.5.0",
"django-cors-headers==4.2.0",
"psycopg2-binary==2.9.7",
"redis==4.5.5",
"celery==5.3.1",
"stripe==5.4.0",
"python-dotenv==1.0.0",
"pyjwt==2.8.0",
"bcrypt==4.0.1",
"requests==2.31.0",
"Pillow==10.0.0",
"django-filter==23.2",
"django-extensions==3.2.3",
]
[project.optional-dependencies]
dev = [
"coverage==7.2.7",
"pytest==7.4.0",
"pytest-django==4.5.2",
"factory-boy==3.3.0",
"freezegun==1.2.2",
"ruff==0.0.280",
"black==23.7.0",
"isort==5.12.0",
"mypy==1.4.1",
]
[tool.ruff]
line-length = 88
target-version = "py311"
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"W191", # indentation contains tabs
"B904", # Allow raising exceptions without from e, for HTTPException
]
[tool.ruff.per-file-ignores]
"__init__.py" = ["F401"]
[tool.black]
line-length = 88
target-version = ['py311']
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| build
| dist
)/
'''
[tool.isort]
profile = "black"
multi_line_output = 3
line_length = 88
known_first_party = ["core", "modules"]