Coverage for app/venv/lib/python3.14/site-packages/weblate/trans/management/commands/import_projectbackup.py: 0%
20 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
4from __future__ import annotations
6from typing import TYPE_CHECKING
8from weblate.auth.models import User
9from weblate.trans.backups import ProjectBackup
10from weblate.utils.management.base import BaseCommand
12if TYPE_CHECKING:
13 from django.core.management.base import CommandParser
16class Command(BaseCommand):
17 """Command for importing project backup into Weblate."""
19 help = "imports project backup"
21 def add_arguments(self, parser: CommandParser) -> None:
22 super().add_arguments(parser)
23 parser.add_argument("project_name", help="Project name")
24 parser.add_argument("project_slug", help="Project slug")
25 parser.add_argument("username", help="Username doing import")
26 parser.add_argument("filename", help="Path to project backup")
28 def handle(
29 self,
30 project_name: str,
31 project_slug: str,
32 username: str,
33 filename: str,
34 **options,
35 ) -> None:
36 user = User.objects.get(username=username)
37 restore = ProjectBackup(filename)
39 restore.validate()
41 restore.restore(project_name=project_name, project_slug=project_slug, user=user)