/
githubmirror
/
commcare-hq
Обзор
Документация
Войти
/
githubmirror
/
commcare-hq
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/yaml_static_strings.py
59 строк
1 KB
Jennifer Schweers
Updated app manager
09 апр 2022, 00:58
09 апр 2022, 00:58
b208326
Код
Авторство
О чём код?
import argparse import yaml parser = argparse.ArgumentParser( description=''' Convert a yaml file for static analyzable strings Example: python scripts/yaml_static_strings.py -f corehq/apps/app_manager/static/app_manager/json/commcare-app-settings.yml --fields name description value_names disabled_txt values_txt ''' ) parser.add_argument( '-f', '--file', help='YAML file to parse', required=True, ) parser.add_argument( '--fields', nargs='+', required=True, help='Fields to extract', ) parser.add_argument( '--prefix', nargs='+', required=False, default='gettext_noop', help='Fields to extract', ) def format_string(value, prefix): return "{}('{}'),".format(prefix, value.replace("'", "\\'")) if __name__ == "__main__": args = parser.parse_args() yaml_filename = args.file fields = args.fields prefix = args.prefix output = [] with open(yaml_filename, 'r', encoding='utf-8') as f: doc = yaml.safe_load(f) for entry in doc: for key, value in entry.items(): if key in fields: if not isinstance(value, str): for v in value: output.append(format_string(v, prefix)) else: output.append(format_string(value, prefix)) for value in output: print(value)