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

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5# mypy: disable-error-code="var-annotated" 

6 

7from __future__ import annotations 

8 

9import os 

10from typing import ClassVar 

11 

12from appconf import AppConf 

13 

14 

15class WeblateConf(AppConf): 

16 WEBLATE_GPG_IDENTITY = None 

17 WEBLATE_GPG_ALGO = "default" 

18 

19 RATELIMIT_ATTEMPTS = 5 

20 RATELIMIT_WINDOW = 300 

21 RATELIMIT_LOCKOUT = 600 

22 

23 RATELIMIT_SEARCH_ATTEMPTS = 30 

24 RATELIMIT_SEARCH_WINDOW = 60 

25 RATELIMIT_SEARCH_LOCKOUT = 60 

26 

27 RATELIMIT_COMMENT_ATTEMPTS = 30 

28 RATELIMIT_COMMENT_WINDOW = 60 

29 

30 RATELIMIT_TRANSLATE_ATTEMPTS = 30 

31 RATELIMIT_TRANSLATE_WINDOW = 60 

32 

33 RATELIMIT_GLOSSARY_ATTEMPTS = 30 

34 RATELIMIT_GLOSSARY_WINDOW = 60 

35 

36 RATELIMIT_LANGUAGE_ATTEMPTS = 2 

37 RATELIMIT_LANGUAGE_WINDOW = 300 

38 RATELIMIT_LANGUAGE_LOCKOUT = 600 

39 

40 RATELIMIT_MESSAGE_ATTEMPTS = 2 

41 

42 RATELIMIT_TRIAL_ATTEMPTS = 1 

43 RATELIMIT_TRIAL_WINDOW = 60 

44 RATELIMIT_TRIAL_LOCKOUT = 600 

45 

46 RATELIMIT_PROJECT_ATTEMPTS = 5 

47 RATELIMIT_PROJECT_WINDOW = 600 

48 RATELIMIT_PROJECT_LOCKOUT = 600 

49 

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 

63 

64 ZAMMAD_URL = None 

65 

66 CELERY_TASK_ALWAYS_EAGER = True 

67 CELERY_BROKER_URL = "memory://" 

68 

69 STATS_LAZY = False 

70 

71 DATABASE_BACKUP = "plain" 

72 

73 BORG_EXTRA_ARGS = None 

74 

75 HIDE_VERSION = "WEBLATE_HIDE_VERSION" in os.environ 

76 

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]] = [] 

83 

84 INTERLEDGER_PAYMENT_POINTERS: ClassVar[list[str]] = [] 

85 INTERLEDGER_PAYMENT_BUILTIN = True 

86 

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 

91 

92 LOCALE_FILTER_FILES = True 

93 

94 ALLOWED_ASSET_DOMAINS: ClassVar[list[str]] = ["*"] 

95 ALLOWED_ASSET_SIZE: ClassVar[int] = 4194304 

96 

97 class Meta: 

98 prefix = ""