From dfe8e28eff60cdbda5ec8ef5c4c3439899ef5766 Mon Sep 17 00:00:00 2001 From: metasmile <cyrano905@gmail.com> Date: Fri, 27 Nov 2015 12:31:55 +0900 Subject: [PATCH] python's default argument parser is excessively safe.. --- strsync/strsync.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/strsync/strsync.py b/strsync/strsync.py index b089d83..ddaa463 100644 --- a/strsync/strsync.py +++ b/strsync/strsync.py @@ -43,6 +43,7 @@ def main(): __BASE_LANG__ = args['base_lang_name'] __EXCLUDING_LANGS__ = args['excluding_lang_names'] or [] __KEYS_FORCE_TRANSLATE__ = args['force_translate_keys'] + __KEYS_FORCE_TRANSLATE_ALL__ = ('--force-translate-keys' in sys.argv or '-f' in sys.argv) and not __KEYS_FORCE_TRANSLATE__ __KEYS_FOLLOW_BASE__ = args['following_base_keys'] or [] __BASE_RESOUCE_DIR__ = None @@ -169,7 +170,8 @@ def insert_or_translate(target_file, lc): for item in base_content: base_kv[item['key']] = item['value'] - adding_keys = list(((set(base_kv.keys()) - set(target_kv.keys())) | (set(base_kv.keys()) & set(__KEYS_FORCE_TRANSLATE__ or base_kv.keys()))) - set(__KEYS_FOLLOW_BASE__)) + force_adding_keys = base_kv.keys() if __KEYS_FORCE_TRANSLATE_ALL__ else __KEYS_FORCE_TRANSLATE__ + adding_keys = list(((set(base_kv.keys()) - set(target_kv.keys())) | (set(base_kv.keys()) & set(force_adding_keys))) - set(__KEYS_FOLLOW_BASE__)) removing_keys = list(set(target_kv.keys()) - set(base_kv.keys())) existing_keys = list(set(base_kv.keys()) - (set(adding_keys) | set(removing_keys))) updated_keys = []