[tool.black] target-version = ['py38'] exclude = 'node_modules' [tool.isort] multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true line_length = 88 src_paths = ["authentik", "tests", "lifecycle"] [tool.coverage.run] source = ["authentik"] relative_files = true omit = [ "*/asgi.py", "manage.py", "*/migrations/*", "*/apps.py", "website/", ] [tool.coverage.report] sort = "Cover" skip_covered = true precision = 2 exclude_lines = [ "pragma: no cover", # Don't complain about missing debug-only code: "def __unicode__", "def __str__", "def __repr__", "if self.debug", "if TYPE_CHECKING", # Don't complain if tests don't hit defensive assertion code: "raise AssertionError", "raise NotImplementedError", # Don't complain if non-runnable code isn't run: "if 0:", "if __name__ == .__main__.:", ] show_missing = true [tool.pylint.master] disable =[ "arguments-differ", "no-self-use", "fixme", "locally-disabled", "too-many-ancestors", "too-few-public-methods", "import-outside-toplevel", "bad-continuation", "signature-differs", "similarities", "cyclic-import", "protected-access", "raise-missing-from",] load-plugins=["pylint_django","pylint.extensions.bad_builtin"] django-settings-module="authentik.root.settings" extension-pkg-whitelist=["lxml","xmlsec"] # Allow constants to be shorter than normal (and lowercase, for settings.py) const-rgx="[a-zA-Z0-9_]{1,40}$" ignored-modules=["django-otp","binascii", "socket", "zlib"] generated-members=["xmlsec.constants.*","xmlsec.tree.*","xmlsec.template.*"] ignore="migrations" max-attributes=12 max-branches=20 [tool.pytest.ini_options] DJANGO_SETTINGS_MODULE = "authentik.root.settings" python_files = ["tests.py", "test_*.py", "*_tests.py"] junit_family = "xunit2" addopts = "-p no:celery --junitxml=unittest.xml"