From d105e5f1c00109b0866c264ce01ed3427a9b4b47 Mon Sep 17 00:00:00 2001 From: David Huggins-Daines Date: Mon, 25 Mar 2024 11:56:25 -0400 Subject: [PATCH] fix: allow other mapping arguments, use on-disk alignments --- .github/workflows/tests.yml | 8 ++++++-- g2p/app.py | 29 ++++++++++++++--------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 54c86cd7..bbabb4cf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,12 +27,16 @@ jobs: run: python -m playwright install --with-deps chromium - name: Launch the API run: | + pip install 'eventlet<=0.35.2' coverage run --parallel-mode \ -m gunicorn --worker-class eventlet -w 1 g2p.app:APP --no-sendfile --bind 127.0.0.1:5000 --daemon + sleep 10 + - name: Run test-studio + run: | + curl http://127.0.0.1:5000/ + coverage run --parallel-mode g2p/tests/test_studio.py - name: Run dev suite run: coverage run --parallel-mode run_tests.py dev - - name: Run test-studio - run: coverage run --parallel-mode g2p/tests/test_studio.py - name: Run generate-mapping shell: bash run: | diff --git a/g2p/app.py b/g2p/app.py index c95b98c4..9355e1f1 100644 --- a/g2p/app.py +++ b/g2p/app.py @@ -145,23 +145,22 @@ def convert(message): mapping["abbreviations"] ) if mapping_args["type"] == "lexicon": - transducer = make_g2p(mapping_args["in_lang"], - mapping_args["out_lang"], - tokenize=False) - transducers.append(transducer) + lexicon = Mapping.find_mapping(mapping_args["in_lang"], + mapping_args["out_lang"]) + mapping_args["alignments"] = lexicon.alignments else: mapping_args["rules"] = mapping["rules"] - try: - mappings_obj = Mapping(**mapping_args) - transducer = Transducer(mappings_obj) - transducers.append(transducer) - except Exception as e: - LOGGER.warning( - "Skipping invalid mapping %s->%s:\n%s", - mapping_args["in_lang"], - mapping_args["out_lang"], - e, - ) + try: + mappings_obj = Mapping(**mapping_args) + transducer = Transducer(mappings_obj) + transducers.append(transducer) + except Exception as e: + LOGGER.warning( + "Skipping invalid mapping %s->%s:\n%s", + mapping_args["in_lang"], + mapping_args["out_lang"], + e, + ) if len(transducers) == 0: emit("conversion response", {"output_string": message["data"]["input_string"]}) return