forked from rafen/website
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
121 lines (111 loc) · 3.31 KB
/
pyproject.toml
File metadata and controls
121 lines (111 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
[tool.poetry]
name = "blt"
version = "0.1.0"
description = "A gamified crowd-sourced QA testing and vulnerability disclosure platform for websites, apps, git repositories, and more. Helps coders and security researchers discover organizations, repositories, and projects to test and report to. Includes dozens of AI-powered open-source tools for efficient testing and development."
authors = ["OWASP BLT <you@example.com>"]
license = "AGPLv3"
[tool.poetry.dependencies]
python = ">=3.11.2,<3.14"
python-dotenv = "^1.2.2"
Django = "^5.2.13"
dj-database-url = "^3.1.2"
django-allauth = "^65.14.3"
beautifulsoup4 = "^4.14.3"
django-email-obfuscator = "^0.1.5"
django-gravatar2 = "^1.4.5"
django-import-export = "^4.3.14"
django-annoying = "^0.10.7"
dj-rest-auth = "^7.1.1"
user-agents = "^2.2.0"
whitenoise = "^6.12.0"
pylibmc = "^1.6.1"
psycopg2-binary = "^2.9.10"
protobuf = "^7.34.0"
django-storages = { extras = ["google"], version = "^1.14.6" }
django-timedeltafield = "^0.7.10"
"giturlparse.py" = "^0.0.5"
gunicorn = "^25.1.0"
oauthlib = "^3.2.0"
python-openid = "^2.2.5"
pytz = "^2026.1"
requests = "^2.32.3"
requests-oauthlib = "^1.3.1"
tablib = "^3.8.0"
ua-parser = "^1.0.1"
djangorestframework = "^3.16.0"
cffi = "^1.17.1"
django-mdeditor = "^0.1.20"
django-tz-detect = "^0.4.0"
django-star-ratings = "^0.9.2"
django-environ = "^0.13.0"
django-simple-captcha = "^0.6.2"
django-filter = "^25.2"
pillow = "^12.1.1"
sentry-sdk = "^2.55.0"
bitcash = "^1.0.2"
pydantic = "^2.10.6"
pydantic_core = "^2.18.4"
Markdown = "^3.10"
faiss-cpu = "^1.11.0"
psutil = "^5.9.8"
python-bitcoinrpc = "^1.0"
sendgrid = "^6.11.0"
atproto = "^0.0.64"
django-redis = "^5.4.0"
uvicorn = "^0.41.0"
channels = "^4.2.2"
channels-redis = "^4.2.1"
aiohttp = "^3.12.9"
drf-yasg = "^1.21.15"
slack-bolt = "^1.27.0"
slack-sdk = "^3.41.0"
tld = "0.13.2"
openai = "^2.24.0"
async-timeout = "^4.0.3"
python-dateutil = "^2.9.0.post0"
pyzipper = "^0.3.6"
tweepy = "^4.15.0"
better-profanity = "^0.7.0"
django-bleach = "^3.1.0"
google-genai = "^1.67.0"
pyjwt = {extras = ["crypto"], version = "^2.12.1"}
tblib = "^3.2.2"
opencv-python-headless = "^4.13.0.92"
[tool.poetry.group.dev.dependencies]
black = "^26.3.1"
isort = "^8.0.1"
ruff = "^0.15.6"
pre-commit = "^4.5.0"
selenium = "^4.41.0"
webdriver-manager = "^4.0.2"
chromedriver-autoinstaller = "^0.6.4"
django-debug-toolbar = "^4.4.6"
django-livereload-server = "^0.5.1"
watchfiles = "^1.0.4"
[tool.isort]
known_first_party = ["blt"]
line_length = 120
profile = "black"
[tool.ruff]
line-length = 120
target-version = "py311"
[tool.black]
line-length = 120
target-version = ['py311']
[tool.ruff.lint]
# This is a temporary ignore list to address on a PR per category basis after the initial run.
ignore = ["E402", "E722", "F811", "F821", "F841"]
select = ["E4", "E7", "E9", "F", "T"]
[tool.ruff.lint.extend-per-file-ignores]
# CLI tools and scripts where print is appropriate for user output
"scripts/check_style_tags.py" = ["T201"]
".github/scripts/auto_fix.py" = ["T201"]
# Settings file - print statements used for startup debugging
"blt/settings.py" = ["T201"]
# Migration files - print statements are acceptable in data migrations
"website/migrations/*.py" = ["T201"]
# Test files - commented out print statements for debugging
"website/tests/*.py" = ["T201"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"