Coverage for app/venv/lib/python3.14/site-packages/weblate/utils/models.py: 100%
64 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5# mypy: disable-error-code="var-annotated"
7from __future__ import annotations
9import os
10from typing import ClassVar
12from appconf import AppConf
15class WeblateConf(AppConf):
16 WEBLATE_GPG_IDENTITY = None
17 WEBLATE_GPG_ALGO = "default"
19 RATELIMIT_ATTEMPTS = 5
20 RATELIMIT_WINDOW = 300
21 RATELIMIT_LOCKOUT = 600
23 RATELIMIT_SEARCH_ATTEMPTS = 30
24 RATELIMIT_SEARCH_WINDOW = 60
25 RATELIMIT_SEARCH_LOCKOUT = 60
27 RATELIMIT_COMMENT_ATTEMPTS = 30
28 RATELIMIT_COMMENT_WINDOW = 60
30 RATELIMIT_TRANSLATE_ATTEMPTS = 30
31 RATELIMIT_TRANSLATE_WINDOW = 60
33 RATELIMIT_GLOSSARY_ATTEMPTS = 30
34 RATELIMIT_GLOSSARY_WINDOW = 60
36 RATELIMIT_LANGUAGE_ATTEMPTS = 2
37 RATELIMIT_LANGUAGE_WINDOW = 300
38 RATELIMIT_LANGUAGE_LOCKOUT = 600
40 RATELIMIT_MESSAGE_ATTEMPTS = 2
42 RATELIMIT_TRIAL_ATTEMPTS = 1
43 RATELIMIT_TRIAL_WINDOW = 60
44 RATELIMIT_TRIAL_LOCKOUT = 600
46 RATELIMIT_PROJECT_ATTEMPTS = 5
47 RATELIMIT_PROJECT_WINDOW = 600
48 RATELIMIT_PROJECT_LOCKOUT = 600
50 SENTRY_DSN = None
51 SENTRY_SECURITY = None
52 SENTRY_ENVIRONMENT = "devel"
53 SENTRY_MONITOR_BEAT_TASKS = True
54 SENTRY_TOKEN = None
55 SENTRY_SEND_PII = False
56 SENTRY_PROJECTS: ClassVar[list[str]] = ["weblate"]
57 SENTRY_RELEASES_API_URL = (
58 "https://sentry.io/api/0/organizations/4507304895905792/releases/"
59 )
60 SENTRY_EXTRA_ARGS: ClassVar[dict] = {}
61 SENTRY_TRACES_SAMPLE_RATE = 0
62 SENTRY_PROFILES_SAMPLE_RATE = 0
64 ZAMMAD_URL = None
66 CELERY_TASK_ALWAYS_EAGER = True
67 CELERY_BROKER_URL = "memory://"
69 STATS_LAZY = False
71 DATABASE_BACKUP = "plain"
73 BORG_EXTRA_ARGS = None
75 HIDE_VERSION = "WEBLATE_HIDE_VERSION" in os.environ
77 CSP_SCRIPT_SRC: ClassVar[list[str]] = []
78 CSP_IMG_SRC: ClassVar[list[str]] = []
79 CSP_CONNECT_SRC: ClassVar[list[str]] = []
80 CSP_STYLE_SRC: ClassVar[list[str]] = []
81 CSP_FONT_SRC: ClassVar[list[str]] = []
82 CSP_FORM_SRC: ClassVar[list[str]] = []
84 INTERLEDGER_PAYMENT_POINTERS: ClassVar[list[str]] = []
85 INTERLEDGER_PAYMENT_BUILTIN = True
87 PROJECT_NAME_RESTRICT_RE = None
88 PROJECT_WEB_RESTRICT_RE = None
89 PROJECT_WEB_RESTRICT_HOST: ClassVar[set[str]] = {"localhost"}
90 PROJECT_WEB_RESTRICT_NUMERIC = True
92 LOCALE_FILTER_FILES = True
94 ALLOWED_ASSET_DOMAINS: ClassVar[list[str]] = ["*"]
95 ALLOWED_ASSET_SIZE: ClassVar[int] = 4194304
97 class Meta:
98 prefix = ""