| 386 | |
| 387 | |
| 388 | class LocalePrefixPattern: |
| 389 | def __init__(self, prefix_default_language=True): |
| 390 | self.prefix_default_language = prefix_default_language |
| 391 | self.converters = {} |
| 392 | |
| 393 | @property |
| 394 | def regex(self): |
| 395 | # This is only used by reverse() and cached in _reverse_dict. |
| 396 | return re.compile(re.escape(self.language_prefix)) |
| 397 | |
| 398 | @property |
| 399 | def language_prefix(self): |
| 400 | language_code = get_language() or settings.LANGUAGE_CODE |
| 401 | if language_code == settings.LANGUAGE_CODE and not self.prefix_default_language: |
| 402 | return "" |
| 403 | else: |
| 404 | return "%s/" % language_code |
| 405 | |
| 406 | def match(self, path): |
| 407 | language_prefix = self.language_prefix |
| 408 | if path.startswith(language_prefix): |
| 409 | return path.removeprefix(language_prefix), (), {} |
| 410 | return None |
| 411 | |
| 412 | def check(self): |
| 413 | return [] |
| 414 | |
| 415 | def describe(self): |
| 416 | return "'{}'".format(self) |
| 417 | |
| 418 | def __str__(self): |
| 419 | return self.language_prefix |
| 420 | |
| 421 | |
| 422 | class URLPattern: |
no outgoing calls
no test coverage detected
searching dependent graphs…