Coverage for app/venv/lib/python3.14/site-packages/weblate/utils/urls.py: 96%
24 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
5from django.urls import register_converter
6from django.urls.converters import PathConverter, StringConverter
8from weblate.trans.defines import CATEGORY_DEPTH
10URL_DEPTH = CATEGORY_DEPTH + 3
13class WeblateSlugConverter(StringConverter):
14 regex = "[^/]+"
17class GitPathConverter(StringConverter):
18 regex = "(info/|git-upload-pack)[a-z0-9_/-]*"
21class WordConverter(StringConverter):
22 regex = "[^/-]+"
25class WidgetExtensionConverter(StringConverter):
26 regex = "(png|svg)"
29class ObjectPathConverter(PathConverter):
30 regex = f"[^/]+(/[^/]+){{0,{URL_DEPTH}}}"
32 def to_python(self, value):
33 return value.split("/")
35 def to_url(self, value):
36 return "/".join(value)
39def register_weblate_converters() -> None:
40 register_converter(WeblateSlugConverter, "name")
41 register_converter(GitPathConverter, "git_path")
42 register_converter(WordConverter, "word")
43 register_converter(WidgetExtensionConverter, "extension")
44 register_converter(ObjectPathConverter, "object_path")