Source code for uetools.commands.uat.localize

import os
from dataclasses import dataclass
from typing import Optional

from argklass.command import Command

from uetools.core.conf import find_project, uat
from uetools.core.run import popen_with_format
from uetools.core.util import command_builder, deduce_project
from uetools.format.base import Formatter

actions = ["Gather", "Compile", "import", "export"]


[docs] class LocalUAT(Command): """Updates the external localization data using the arguments provided. Attributes ---------- project: str Project name UEProjectRoot: Optional[str] Optional root-path to the project we're gathering for (defaults to CmdEnv.LocalRoot if unset). UEProjectDirectory: str Sub-path to the project we're gathering for (relative to UEProjectRoot) UEProjectName: Optional[str] Optional name of the project we're gathering for (should match its .uproject file, eg QAGame). LocalizationProjectNames: Optional[str] Comma separated list of the projects to gather text from. LocalizationBranch: Optional[str] Optional suffix to use when uploading the new data to the localization provider. LocalizationProvider: Optional[str] Optional localization provide override. LocalizationSteps: Optional[str] Optional comma separated list of localization steps to perform [Download, Gather, Import, Export, Compile, GenerateReports, Upload] (default is all). Only valid for projects using a modular config. IncludePlugins: bool Optional flag to include plugins from within the given UEProjectDirectory as part of the gather. This may optionally specify a comma separated list of the specific plugins to gather (otherwise all plugins will be gathered). ExcludePlugins: Optional[str] Optional comma separated list of plugins to exclude from the gather. IncludePlatforms: bool Optional flag to include platforms from within the given UEProjectDirectory as part of the gather. AdditionalCSCommandletArguments: Optional[str] Optional arguments to pass to the gather process. ParallelGather: bool Run the gather processes for a single batch in parallel rather than sequence. OneSkyProjectGroupName: Optional[str] = None Examples -------- .. code-block:: console uecli uat-local --project GamekitDev --IncludePlugins --ParallelGather --LocalizationSteps Gather --LocalizationProjectNames GamekitDev """ name: str = "localize" # fmt: off
[docs] @dataclass class Arguments: project : str = deduce_project() # Project name UEProjectRoot : Optional[str] = None # Optional root-path to the project we're gathering for (defaults to CmdEnv.LocalRoot if unset). UEProjectDirectory : str = '' # Sub-path to the project we're gathering for (relative to UEProjectRoot). UEProjectName : Optional[str] = None # Optional name of the project we're gathering for (should match its .uproject file, eg QAGame). LocalizationProjectNames : Optional[str] = None # Comma separated list of the projects to gather text from. LocalizationBranch : Optional[str] = None # Optional suffix to use when uploading the new data to the localization provider. LocalizationProvider : Optional[str] = None # Optional localization provide override." LocalizationSteps : Optional[str] = None # Optional comma separated list of localization steps to perform [Download, Gather, Import, Export, Compile, GenerateReports, Upload] (default is all). Only valid for projects using a modular config. IncludePlugins : bool = False # Optional flag to include plugins from within the given UEProjectDirectory as part of the gather. This may optionally specify a comma separated list of the specific plugins to gather (otherwise all plugins will be gathered). ExcludePlugins : Optional[str] = None # Optional comma separated list of plugins to exclude from the gather. IncludePlatforms : bool = False # Optional flag to include platforms from within the given UEProjectDirectory as part of the gather. AdditionalCSCommandletArguments : Optional[str] = None # Optional arguments to pass to the gather process. ParallelGather : bool = False # Run the gather processes for a single batch in parallel rather than sequence. OneSkyProjectGroupName : Optional[str] = None
# fmt: on
[docs] @staticmethod def execute(args): args.project = find_project(args.project) if args.UEProjectRoot is None: args.UEProjectRoot = os.path.dirname(args.project) if args.UEProjectName is None: args.UEProjectName = os.path.basename(args.UEProjectRoot) uat_args = command_builder(args) cmd = [uat()] + ["Localize"] + uat_args + ["-nocompileuat"] print(" ".join(cmd)) fmt = Formatter(24) fmt.print_non_matching = True returncode = popen_with_format(fmt, cmd) fmt.summary() return returncode
COMMANDS = [ LocalUAT, ]