132 lines
3.4 KiB
TOML
132 lines
3.4 KiB
TOML
[tool.black]
|
|
target-version = ['py310']
|
|
exclude = '''
|
|
(
|
|
/(
|
|
\.eggs # exclude a few common directories in the
|
|
| \.git # root of the project
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| _build
|
|
| buck-out
|
|
| build
|
|
| dist
|
|
| migrations # migrations/ is generated by alembic
|
|
)/
|
|
)
|
|
'''
|
|
|
|
[tool.ruff]
|
|
ignore-init-module-imports = true
|
|
|
|
[tool.djlint]
|
|
indent = 2
|
|
profile = "jinja"
|
|
blank_line_after_tag = "if,for,include,load,extends,block,endcall"
|
|
|
|
# H006: Images should have a height attribute
|
|
# H013: Images should have an alt attribute
|
|
# H016: Missing title tag in html. | False positive on template
|
|
# H017: Tag should be self closing
|
|
# H019: Replace 'javascript:abc()' with on_ event and real url. (javascript:history.back())
|
|
# H021: Avoid inline styles
|
|
# H025: Tag seems to be orphan (it messes up with indicators on strings such as <email@example.com>)
|
|
# H030: Consider adding a meta description | False positive on template
|
|
# H031: Consider adding meta keywords
|
|
# T003: Endblock should have a name
|
|
# J004: (Jinja) Static urls should follow {{ url_for('static'..) }} pattern
|
|
# J018: (Jinja) Internal links should use the {{ url_for() ... }} pattern. | Some false positives
|
|
# T001: Variables should be wrapped in a single whitespace. | Messes up with comments
|
|
ignore = "H006,H013,H016,H017,H019,H021,H025,H030,H031,T003,J004,J018,T001"
|
|
|
|
[tool.poetry]
|
|
name = "SimpleLogin"
|
|
version = "0.1.0"
|
|
description = "open-source email alias solution"
|
|
authors = ["SimpleLogin <dev@simplelogin.io>"]
|
|
license = "MIT"
|
|
repository = "https://github.com/simple-login/app"
|
|
keywords = ["email", "alias", "privacy", "oauth2", "openid"]
|
|
packages = [
|
|
{ include = "app/" },
|
|
{ include = "migrations/" },
|
|
]
|
|
include = ["templates/*", "templates/**/*", "local_data/*.txt"]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.10"
|
|
flask = "^1.1.2"
|
|
flask_login = "^0.5.0"
|
|
wtforms = "^2.3.3"
|
|
unidecode = "^1.1.1"
|
|
gunicorn = "^20.0.4"
|
|
bcrypt = "^3.2.0"
|
|
python-dotenv = "^0.14.0"
|
|
ipython = "^7.31.1"
|
|
sqlalchemy_utils = "^0.36.8"
|
|
psycopg2-binary = "^2.9.3"
|
|
sentry_sdk = "^1.5.11"
|
|
blinker = "^1.4"
|
|
arrow = "^0.16.0"
|
|
Flask-WTF = "^0.14.3"
|
|
boto3 = "^1.15.9"
|
|
Flask-Migrate = "^2.5.3"
|
|
flask_admin = "^1.5.6"
|
|
flask-cors = "^3.0.9"
|
|
watchtower = "^0.8.0"
|
|
sqlalchemy-utils = "^0.36.8"
|
|
jwcrypto = "^0.8"
|
|
yacron = "^0.11.1"
|
|
flask-debugtoolbar = "^0.11.0"
|
|
requests_oauthlib = "^1.3.0"
|
|
pyopenssl = "^19.1.0"
|
|
aiosmtpd = "^1.2"
|
|
dnspython = "^2.0.0"
|
|
coloredlogs = "^14.0"
|
|
pycryptodome = "^3.9.8"
|
|
phpserialize = "^1.3"
|
|
dkimpy = "^1.0.5"
|
|
pyotp = "^2.4.0"
|
|
flask_profiler = "^1.8.1"
|
|
facebook-sdk = "^3.1.0"
|
|
google-api-python-client = "^1.12.3"
|
|
google-auth-httplib2 = "^0.0.4"
|
|
python-gnupg = "^0.4.6"
|
|
webauthn = "^0.4.7"
|
|
pyspf = "^2.0.14"
|
|
Flask-Limiter = "^1.4"
|
|
memory_profiler = "^0.57.0"
|
|
gevent = "22.10.2"
|
|
email_validator = "^1.1.1"
|
|
PGPy = "0.5.4"
|
|
coinbase-commerce = "^1.0.1"
|
|
requests = "^2.25.1"
|
|
newrelic = "8.8.0"
|
|
flanker = "^0.9.11"
|
|
pyre2 = "^0.3.6"
|
|
tldextract = "^3.1.2"
|
|
flask-debugtoolbar-sqlalchemy = "^0.2.0"
|
|
twilio = "^7.3.2"
|
|
Deprecated = "^1.2.13"
|
|
cryptography = "37.0.1"
|
|
SQLAlchemy = "1.3.24"
|
|
redis = "^4.5.3"
|
|
newrelic-telemetry-sdk = "^0.5.0"
|
|
aiospamc = "0.10"
|
|
|
|
[tool.poetry.dev-dependencies]
|
|
pytest = "^7.0.0"
|
|
pytest-cov = "^3.0.0"
|
|
pre-commit = "^2.17.0"
|
|
black = "^22.1.0"
|
|
djlint = "^1.3.0"
|
|
pylint = "^2.14.4"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
ruff = "^0.1.5"
|
|
|
|
[build-system]
|
|
requires = ["poetry>=0.12"]
|
|
build-backend = "poetry.masonry.api"
|