commit 6f83cda09502b0fdbe90646727055a210b9ff69f Author: vivekvardhanadepu Date: Sun May 30 17:55:45 2021 +0530 added support for relative paths diff --git a/check_config.py b/check_config.py index 957517f..5459f5b 100644 --- a/check_config.py +++ b/check_config.py @@ -20,6 +20,22 @@ def check_config(filename='config.toml'): # gives error if not parsed well assert config_toml == dumps(config) + # changing the paths to absolute + if not os.path.isabs(config['CORPUS_SL']): + config['CORPUS_SL'] = os.path.join(os.path.abspath('.'), config['CORPUS_SL']) + + if not os.path.isabs(config['CORPUS_TL']): + config['CORPUS_TL'] = os.path.join(os.path.abspath('.'), config['CORPUS_TL']) + + if not os.path.isabs(config['LEX_TOOLS']): + config['LEX_TOOLS'] = os.path.join(os.path.abspath('.'), config['LEX_TOOLS']) + + if not os.path.isabs(config['FAST_ALIGN']): + config['FAST_ALIGN'] = os.path.join(os.path.abspath('.'), config['FAST_ALIGN']) + + if not os.path.isabs(config['LANG_DATA']): + config['LANG_DATA'] = os.path.join(os.path.abspath('.'), config['LANG_DATA']) + if not os.path.isfile(config['CORPUS_SL']): print("'"+config['CORPUS_SL']+"'(CORPUS_SL)","is not a file, provide a valid"+ \ " file or \nto download, look", corpora_url, '\n') @@ -58,18 +74,18 @@ def check_config(filename='config.toml'): misconfigured = True if not os.path.isdir(config['LANG_DATA']): - print("'"+config['LANG_DATA']+"'(DATA)", "is not a directory, provide a valid "+ \ + print("'"+config['LANG_DATA']+"'(LANG_DATA)", "is not a directory, provide a valid "+ \ "directory or \nto install, follow", langs_url, '\n') misconfigured = True else: sl_tl_autobil = config['SL'] + '-' + config['TL'] + '.autobil.bin' tl_sl_autobil = config['TL'] + '-' + config['SL'] + '.autobil.bin' if sl_tl_autobil not in os.listdir(config['LANG_DATA']): - print("'"+sl_tl_autobil+"'", "is not in", "'"+config['LANG_DATA']+ "'(DATA),", \ + print("'"+sl_tl_autobil+"'", "is not in", "'"+config['LANG_DATA']+ "'(LANG_DATA),", \ "provide a valid directory or \nto install, follow", langs_url, '\n') misconfigured = True if tl_sl_autobil not in os.listdir(config['LANG_DATA']): - print("'"+tl_sl_autobil+"'", "is not in", "'"+config['LANG_DATA']+ "'(DATA),", \ + print("'"+tl_sl_autobil+"'", "is not in", "'"+config['LANG_DATA']+ "'(LANG_DATA),", \ "provide a valid directory or \nto install, follow", langs_url, '\n') misconfigured = True @@ -99,4 +115,4 @@ def check_config(filename='config.toml'): return config if __name__ == '__main__': - parse_config() \ No newline at end of file + check_config() \ No newline at end of file diff --git a/config.toml b/config.toml index 99fbf7b..0d67a99 100644 --- a/config.toml +++ b/config.toml @@ -1,5 +1,4 @@ # configuration for lexical training -# Note: pass absolute paths # corpus name CORPUS = "europarl-v7" @@ -11,16 +10,16 @@ SL = "eng" TL = "spa" # source corpus -CORPUS_SL = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.eng" +CORPUS_SL = "../europarl-v7.eng-spa.eng" # target corpus -CORPUS_TL = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.spa" +CORPUS_TL = "../europarl-v7.eng-spa.spa" # apertium-lex-tools scripts -LEX_TOOLS = "/home/vivek/Documents/FOSS/apertium/apertium-lex-tools/scripts" +LEX_TOOLS = "../../apertium-lex-tools/scripts" # fast align build folder -FAST_ALIGN = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/fast_align/build" +FAST_ALIGN = "../coding_challenges/fast_align/build" # apertium language data -LANG_DATA = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/apertium-eng-spa" +LANG_DATA = "../coding_challenges/apertium-eng-spa" diff --git a/config.toml.example b/config.toml.example index 22158dd..5949a1f 100644 --- a/config.toml.example +++ b/config.toml.example @@ -1,5 +1,4 @@ # configuration for lexical training -# Note: pass absolute paths # corpus name CORPUS = "europarl-v7" diff --git a/tests/check_config_test.log b/tests/check_config_test.log index a9156d8..0654e3c 100644 --- a/tests/check_config_test.log +++ b/tests/check_config_test.log @@ -1,34 +1,34 @@ Test 1 : wrong paths --------------------- -'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.engabc'(CORPUS_SL) is not a file, provide a valid file or +'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../europarl-v7.eng-spa.engabc'(CORPUS_SL) is not a file, provide a valid file or to download, look https://wiki.apertium.org/wiki/Corpora -'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.spaabc'(CORPUS_TL) is not a file, provide a valid file or +'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../europarl-v7.eng-spa.spaabc'(CORPUS_TL) is not a file, provide a valid file or to download, look https://wiki.apertium.org/wiki/Corpora -'/home/vivek/Documents/FOSS/apertium/apertium-lex-tools/scriptsabc'(LEX_TOOLS) is not a directory, provide a valid directory or +'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../../apertium-lex-tools/scriptsabc'(LEX_TOOLS) is not a directory, provide a valid directory or to install, follow https://wiki.apertium.org/wiki/Install_Apertium_core_by_compiling -'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/fast_align/buildabc'(FAST_ALIGN) is not a directory, provide a valid directory or +'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../coding_challenges/fast_align/buildabc'(FAST_ALIGN) is not a directory, provide a valid directory or to install, follow https://github.com/clab/fast_align -'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/apertium-eng-spaabc'(DATA) is not a directory, provide a valid directory or +'/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../coding_challenges/apertium-eng-spaabc'(LANG_DATA) is not a directory, provide a valid directory or to install, follow https://wiki.apertium.org/wiki/List_of_language_pairs Test 1 : wrong paths --------------------- Test 2 : partial/no installations ---------------------------------- -'process-tagger-output' is not in '/home/vivek/Documents/FOSS/apertium/apertium-lex-tools/scripts'(LEX_TOOLS), provide a valid directory or +'process-tagger-output' is not in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../../apertium-lex-tools/scripts'(LEX_TOOLS), provide a valid directory or to install, follow https://wiki.apertium.org/wiki/Install_Apertium_core_by_compiling -fast_align is not present in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/fast_align/build'(FAST_ALIGN), provide a valid directory or +fast_align is not present in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../coding_challenges/fast_align/build'(FAST_ALIGN), provide a valid directory or to install, follow https://github.com/clab/fast_align -'engabc-spa.autobil.bin' is not in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/apertium-eng-spa'(DATA), provide a valid directory or +'engabc-spa.autobil.bin' is not in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../coding_challenges/apertium-eng-spa'(LANG_DATA), provide a valid directory or to install, follow https://wiki.apertium.org/wiki/List_of_language_pairs -'spa-engabc.autobil.bin' is not in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/apertium-eng-spa'(DATA), provide a valid directory or +'spa-engabc.autobil.bin' is not in '/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/tests/../coding_challenges/apertium-eng-spa'(LANG_DATA), provide a valid directory or to install, follow https://wiki.apertium.org/wiki/List_of_language_pairs apertium is either not installed or not added to path, see https://wiki.apertium.org/wiki/Installation diff --git a/tests/check_config_test.py b/tests/check_config_test.py index 979e581..fd44a63 100644 --- a/tests/check_config_test.py +++ b/tests/check_config_test.py @@ -43,12 +43,6 @@ def main(argc, argv): config['SL']+="abc" - if os.path.isfile(os.path.join(config['LEX_TOOLS'], 'process-tagger-output')): - shutil.move(os.path.join(config['LEX_TOOLS'], 'process-tagger-output'), os.path.join(config['LEX_TOOLS'], 'process-tagger-output'+'abc')) - - if os.path.isfile(os.path.join(config['FAST_ALIGN'], 'fast_align')): - shutil.move(os.path.join(config['FAST_ALIGN'], 'fast_align'), os.path.join(config['FAST_ALIGN'], 'fast_align'+'abc')) - for path in os.environ["PATH"].split(os.pathsep): if os.path.isfile(os.path.join(path, 'apertium')): shutil.move(os.path.join(path, 'apertium'), os.path.join(path, 'apertium'+'abc')) @@ -59,6 +53,12 @@ def main(argc, argv): shutil.move(os.path.join(path, 'yasmet'), os.path.join(path, 'yasmet'+'abc')) break + if os.path.isfile(os.path.join(config['LEX_TOOLS'], 'process-tagger-output')): + shutil.move(os.path.join(config['LEX_TOOLS'], 'process-tagger-output'), os.path.join(config['LEX_TOOLS'], 'process-tagger-output'+'abc')) + + if os.path.isfile(os.path.join(config['FAST_ALIGN'], 'fast_align')): + shutil.move(os.path.join(config['FAST_ALIGN'], 'fast_align'), os.path.join(config['FAST_ALIGN'], 'fast_align'+'abc')) + if os.fork() == 0: with open('check_config_test.toml', 'w') as test_file: test_file.write(dumps(config)) diff --git a/tests/check_config_test.toml b/tests/check_config_test.toml index 99fbf7b..0d67a99 100644 --- a/tests/check_config_test.toml +++ b/tests/check_config_test.toml @@ -1,5 +1,4 @@ # configuration for lexical training -# Note: pass absolute paths # corpus name CORPUS = "europarl-v7" @@ -11,16 +10,16 @@ SL = "eng" TL = "spa" # source corpus -CORPUS_SL = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.eng" +CORPUS_SL = "../europarl-v7.eng-spa.eng" # target corpus -CORPUS_TL = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/europarl-v7.eng-spa.spa" +CORPUS_TL = "../europarl-v7.eng-spa.spa" # apertium-lex-tools scripts -LEX_TOOLS = "/home/vivek/Documents/FOSS/apertium/apertium-lex-tools/scripts" +LEX_TOOLS = "../../apertium-lex-tools/scripts" # fast align build folder -FAST_ALIGN = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/fast_align/build" +FAST_ALIGN = "../coding_challenges/fast_align/build" # apertium language data -LANG_DATA = "/home/vivek/Documents/FOSS/apertium/user-friendly-lexical-training/coding_challenges/apertium-eng-spa" +LANG_DATA = "../coding_challenges/apertium-eng-spa"