commit b46f20c96ab3acaa659929f7f24bcc4e5eb173d8 Author: vaydheesh Date: Fri Jun 14 03:06:02 2019 +0000 Implemented changes suggested apertium/utils.py: execute() -> execute_pipeline() Fixed: usage of 'and' for 'lt-proc' & '-w' Added: Proper if-else diff --git a/apertium/analysis/__init__.py b/apertium/analysis/__init__.py index 611d2c8..1e95ff7 100644 --- a/apertium/analysis/__init__.py +++ b/apertium/analysis/__init__.py @@ -4,7 +4,7 @@ from typing import Dict, List from streamparser import LexicalUnit, parse import apertium -from apertium.utils import execute, parse_mode_file, to_alpha3_code +from apertium.utils import execute_pipeline, parse_mode_file, to_alpha3_code class Analyzer: @@ -67,7 +67,7 @@ class Analyzer: deformatter = ['apertium-des{}'.format(formatting), '-n'] if deformatter not in self.analyzer_cmds[self.lang]: self.analyzer_cmds[self.lang].insert(0, deformatter) - result = execute(in_text, self.analyzer_cmds[self.lang]) + result = execute_pipeline(in_text, self.analyzer_cmds[self.lang]) return self._postproc_text(result) diff --git a/apertium/generation/__init__.py b/apertium/generation/__init__.py index 2707ee9..c40a99c 100644 --- a/apertium/generation/__init__.py +++ b/apertium/generation/__init__.py @@ -1,7 +1,7 @@ from typing import Dict, List, Union import apertium -from apertium.utils import execute, parse_mode_file, to_alpha3_code +from apertium.utils import execute_pipeline, parse_mode_file, to_alpha3_code class Generator: @@ -42,7 +42,7 @@ class Generator: if self.lang in apertium.generators: commands = list(self._get_commands()) - result = execute(in_text, commands) + result = execute_pipeline(in_text, commands) return result.rstrip('\x00') else: raise apertium.ModeNotInstalled(self.lang) diff --git a/apertium/lttoolbox.py b/apertium/lttoolbox.py index 1dcd39f..d9c6461 100644 --- a/apertium/lttoolbox.py +++ b/apertium/lttoolbox.py @@ -1,4 +1,3 @@ -import platform import tempfile from typing import ByteString # noqa: F401 diff --git a/apertium/translation/__init__.py b/apertium/translation/__init__.py index 98fbea7..a31ac24 100644 --- a/apertium/translation/__init__.py +++ b/apertium/translation/__init__.py @@ -3,7 +3,7 @@ from subprocess import CalledProcessError, PIPE, Popen from typing import Dict, List, Optional, Tuple, Union import apertium # noqa: E402 -from apertium.utils import execute, parse_mode_file, to_alpha3_code # noqa: E402 +from apertium.utils import execute_pipeline, parse_mode_file, to_alpha3_code # noqa: E402 class Translator: @@ -166,7 +166,7 @@ class Translator: unsafe_deformat, unsafe_reformat = self._get_format(formatting, deformat, reformat) deformater, reformater = self._validate_formatters(unsafe_deformat, unsafe_reformat) deformatted = self._get_deformat(str(deformater), text) - output = execute(deformatted, cmds) + output = execute_pipeline(deformatted, cmds) result = self._get_reformat(str(reformater), output).strip() return result.decode() # type: ignore diff --git a/apertium/utils.py b/apertium/utils.py index ec9c0d1..f9b0a12 100644 --- a/apertium/utils.py +++ b/apertium/utils.py @@ -24,7 +24,7 @@ def to_alpha3_code(code: str) -> str: return iso639_codes_inverse[code] if code in iso639_codes_inverse else code -def execute(inp: str, commands: List[List[str]]) -> str: +def execute_pipeline(inp: str, commands: List[List[str]]) -> str: """ Args: inp (str) @@ -36,17 +36,16 @@ def execute(inp: str, commands: List[List[str]]) -> str: procs = [] end = inp.encode() for i, command in enumerate(commands): - if 'lt-proc' and '-w' in command: + if 'lt-proc' in command and '-w' in command: arg_index = command.index('-w') automorf_path = command[-1] ltp = lttoolbox.LtProc(end.decode(), command[arg_index], automorf_path) end = ltp.execute() - continue - - procs.append( - subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE), - ) - end, _ = procs[i].communicate(end) + else: + procs.append( + subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE), + ) + end, _ = procs[i].communicate(end) return end.decode()