Skip to content

Commit eef5c6b

Browse files
authored
Merge pull request #433 from sillsdev/upgrade_eflomal
Upgrade eflomal
2 parents b23a307 + a1955a7 commit eef5c6b

File tree

5 files changed

+19
-21
lines changed

5 files changed

+19
-21
lines changed

Dockerfile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ RUN apt-get install --no-install-recommends -y \
4040
git \
4141
python$PYTHON_VERSION \
4242
python3-pip \
43+
python3-dev \
4344
wget \
4445
build-essential \
4546
gdb \
@@ -59,12 +60,8 @@ RUN ln -sfn /usr/bin/python${PYTHON_VERSION} /usr/bin/python3 & \
5960
COPY --from=builder /src/requirements.txt .
6061
RUN pip install --no-cache-dir -r requirements.txt && rm requirements.txt
6162

62-
# Install eflomal
63-
RUN git clone https://github.com/robertostling/eflomal.git
64-
RUN make -C eflomal/src
65-
RUN make -C eflomal/src install
66-
RUN rm -rf eflomal
67-
ENV EFLOMAL_PATH=/usr/local/bin
63+
# Set eflomal path
64+
ENV EFLOMAL_PATH=/usr/local/lib/python3.8/dist-packages/eflomal/bin
6865

6966
# Install fast_align
7067
RUN apt-get update && \

poetry.lock

Lines changed: 6 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ sacremoses = "^0.0.53"
8181
evaluate = "^0.3.0"
8282
python-docx = "^0.8.11"
8383
iso639-lang = "^2.1.0"
84-
eflomal = { version = "^0.1", optional = true }
84+
eflomal = { version = "^2.0.0", optional = true }
8585
accelerate = "^0.23.0"
8686
transformers = "^4.36.2"
8787
optimum = "^1.16.0"

silnlp/alignment/config.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from ..common.environment import SIL_NLP_ENV
99
from ..common.flatcat_stemmer import FlatCatStemmer
1010
from ..common.null_stemmer import NullStemmer
11-
from ..common.packages_utils import is_eflomal_available
1211
from ..common.snowball_stemmer import SnowballStemmer
1312
from ..common.stemmer import Stemmer
1413
from ..common.utils import merge_dict
@@ -24,10 +23,7 @@
2423
Ibm4DotnetMachineAligner,
2524
ParatextDotnetMachineAligner,
2625
)
27-
28-
if is_eflomal_available():
29-
from .eflomal import EflomalAligner
30-
26+
from .eflomal import EflomalAligner
3127
from .fast_align import FastAlign
3228
from .giza_aligner import HmmGizaAligner, Ibm1GizaAligner, Ibm2GizaAligner, Ibm3GizaAligner, Ibm4GizaAligner
3329
from .machine_aligner import (
@@ -67,11 +63,9 @@
6763
"clear3_fa": (ClearAligner, "Clear-3-FA"),
6864
"clear3_hmm": (ClearAligner, "Clear-3-HMM"),
6965
"clab_fast_align": (FastAlign, "clab-FastAlign"),
66+
"eflomal": (EflomalAligner, "Eflomal"),
7067
}
7168

72-
if is_eflomal_available():
73-
ALIGNERS["eflomal"] = (EflomalAligner, "Eflomal")
74-
7569
STEMMERS: Dict[str, Type[Stemmer]] = {
7670
"snowball": SnowballStemmer,
7771
"wordnet": WordNetStemmer,

silnlp/alignment/eflomal.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,26 @@
66
from tempfile import TemporaryDirectory
77
from typing import IO, Iterable
88

9-
from eflomal import read_text, write_text
109
from machine.corpora import AlignedWordPair
1110
from machine.translation import SymmetrizationHeuristic, WordAlignmentMatrix
1211

1312
from ..common.corpus import load_corpus
13+
from ..common.packages_utils import is_eflomal_available
1414
from .aligner import Aligner
1515
from .lexicon import Lexicon
1616
from .tools import execute_atools, execute_eflomal, is_atools_available
1717

18+
if is_eflomal_available():
19+
from eflomal import read_text, write_text
20+
1821
LOGGER = logging.getLogger(__name__)
1922

2023

2124
class EflomalAligner(Aligner):
2225
def __init__(self, model_dir: Path) -> None:
26+
if not is_eflomal_available():
27+
raise RuntimeError("eflomal is not installed.")
28+
2329
super().__init__("eflomal", model_dir)
2430

2531
def train(self, src_file_path: Path, trg_file_path: Path) -> None:

0 commit comments

Comments
 (0)