[project] name = "SimpleLogin" version = "0.1.0" description = "SimpleLogin partner API" authors = [ {name="SimpleLogin", email="dev@simplelogin.io"}] license = "MIT" repository = "https://github.com/simple-login/app" keywords = ["email", "alias", "privacy", "oauth2", "openid"] requires-python = "~=3.10" dependencies = [ "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.19", "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", "MarkupSafe~=1.1.1", "cryptography ~= 37.0.1", "SQLAlchemy ~= 1.3.24", "redis~=5.0.0", "newrelic-telemetry-sdk ~= 0.5.0", "aiospamc == 0.10", ] [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.rye] 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", "ruff ~= 0.1.5", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.sdist] include = ["templates", "local_data", "app", "migrations"] [tool.hatch.build.targets.wheel] packages = ["app", "migrations", "templates", "local_data" ]