[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 | app/events/generated )/ ) ''' [tool.ruff] ignore-init-module-imports = true exclude = [".venv", "migrations", "app/events/generated"] [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 ) # 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 "] 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 = "^2.16.0" 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" black = "^22.1.0" djlint = "^1.3.0" pylint = "^2.14.4" [tool.poetry.group.dev.dependencies] ruff = "^0.1.5" pre-commit = "^3.8.0" [build-system] requires = ["poetry>=0.12"] build-backend = "poetry.masonry.api"