From 37d8fcc0857d70b245aefbfcdb57914e4403c3d8 Mon Sep 17 00:00:00 2001 From: Sami Virpioja Date: Wed, 28 Jan 2026 14:41:54 +0200 Subject: [PATCH 1/5] Run Github tests with multiple Python versions --- .github/workflows/python-test.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-test.yaml b/.github/workflows/python-test.yaml index 9c80bd2..2242773 100644 --- a/.github/workflows/python-test.yaml +++ b/.github/workflows/python-test.yaml @@ -13,14 +13,19 @@ jobs: run: working-directory: opustools_pkg - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - - name: Set up Python + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: - python-version: '3.x' + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip From f267d9c490b5a4918ba6a3c7679fe698bc77535c Mon Sep 17 00:00:00 2001 From: Sami Virpioja Date: Wed, 28 Jan 2026 14:45:50 +0200 Subject: [PATCH 2/5] fix OPUS API url --- opustools_pkg/opustools/opus_get.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/opustools_pkg/opustools/opus_get.py b/opustools_pkg/opustools/opus_get.py index b259a06..9e8ee7b 100644 --- a/opustools_pkg/opustools/opus_get.py +++ b/opustools_pkg/opustools/opus_get.py @@ -49,7 +49,7 @@ def __init__(self, source=None, target=None, directory=None, self.fromto = [source, target] self.fromto.sort() - self.url = 'http://opus.nlpl.eu/opusapi/?' + self.url = 'https://opus.nlpl.eu/opusapi' #self.url = 'http://127.0.0.1:5000/?' urlparts = [(source, 'source'), (target, 'target'), @@ -61,9 +61,9 @@ def __init__(self, source=None, target=None, directory=None, if a[0]: self.parameters[a[1]] = a[0] if a[0] == ' ': - self.url += a[1] + '=&' + self.url += '?' + a[1] + '=&' else: - self.url += a[1] + '=' + a[0] + '&' + self.url += '?' + a[1] + '=' + a[0] + '&' if not os.path.exists(download_dir): os.makedirs(download_dir) @@ -163,7 +163,7 @@ def download(self, corpora, total_size): reporthook=self.progress_status) print('') except urllib.error.URLError as e: - print('Unable to retrieve the data.') + print(f'Unable to retrieve the data from {self.url}: {e}') return def get_file_info_output(self, c): @@ -193,24 +193,23 @@ def get_files(self): if self.local_db: languages = self.dbo.run_languages_query(self.parameters) else: - languages = self.get_response(self.url+'languages=True')['languages'] + languages = self.get_response(self.url + '?languages=True')['languages'] print(', '.join([str(l) for l in languages])) return elif self.list_corpora: if self.local_db: corpus_list = self.dbo.run_corpora_query(self.parameters) else: - corpus_list = self.get_response(self.url+'corpora=True')['corpora'] + corpus_list = self.get_response(self.url + '?corpora=True')['corpora'] print(', '.join([str(c) for c in corpus_list])) return else: corpora, total_size = self.get_corpora_data() except urllib.error.URLError as e: - print('Unable to retrieve the data.') + print(f'Unable to retrieve the data from {self.url}: {e}') return if not self.list_resources: self.download(corpora, total_size) else: self.print_files(corpora, total_size) - From 8b18fecde1b8adf6ffbcb6aa46e03ac8c3da6ce5 Mon Sep 17 00:00:00 2001 From: Sami Virpioja Date: Wed, 28 Jan 2026 14:56:26 +0200 Subject: [PATCH 3/5] fix appending parameters to URL --- opustools_pkg/opustools/opus_get.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opustools_pkg/opustools/opus_get.py b/opustools_pkg/opustools/opus_get.py index 9e8ee7b..dcde160 100644 --- a/opustools_pkg/opustools/opus_get.py +++ b/opustools_pkg/opustools/opus_get.py @@ -57,13 +57,15 @@ def __init__(self, source=None, target=None, directory=None, (preprocess, 'preprocessing')] self.parameters = {} + url_parameters = '' for a in urlparts: if a[0]: self.parameters[a[1]] = a[0] if a[0] == ' ': - self.url += '?' + a[1] + '=&' + url_parameters += a[1] + '=&' else: - self.url += '?' + a[1] + '=' + a[0] + '&' + url_parameters += a[1] + '=' + a[0] + '&' + self.url += '?' + url_parameters if not os.path.exists(download_dir): os.makedirs(download_dir) @@ -123,6 +125,7 @@ def get_corpora_data(self): data = self.get_response(self.url) corpora = data['corpora'] + print(corpora) ret_corpora = [] for c in corpora: filename = self.make_file_name(c) From f595573354410b58610b8b18d9b93ea07722c7e0 Mon Sep 17 00:00:00 2001 From: Sami Virpioja Date: Wed, 28 Jan 2026 15:00:38 +0200 Subject: [PATCH 4/5] run Github tests for pull requests on master and develop --- .github/workflows/python-test.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/python-test.yaml b/.github/workflows/python-test.yaml index 2242773..1f9c539 100644 --- a/.github/workflows/python-test.yaml +++ b/.github/workflows/python-test.yaml @@ -3,6 +3,10 @@ name: Upload Python Package on: push: branches: [develop] + pull_request: + branches: + - master + - develop permissions: contents: read From 5b6a2c43f21601d26d2b640874530553d28fe038 Mon Sep 17 00:00:00 2001 From: Sami Virpioja Date: Wed, 28 Jan 2026 15:09:40 +0200 Subject: [PATCH 5/5] remove debug print and fix tests --- opustools_pkg/opustools/opus_get.py | 1 - opustools_pkg/tests/test_opus_get.py | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/opustools_pkg/opustools/opus_get.py b/opustools_pkg/opustools/opus_get.py index dcde160..6b3b8d6 100644 --- a/opustools_pkg/opustools/opus_get.py +++ b/opustools_pkg/opustools/opus_get.py @@ -125,7 +125,6 @@ def get_corpora_data(self): data = self.get_response(self.url) corpora = data['corpora'] - print(corpora) ret_corpora = [] for c in corpora: filename = self.make_file_name(c) diff --git a/opustools_pkg/tests/test_opus_get.py b/opustools_pkg/tests/test_opus_get.py index d627ab8..72c5657 100644 --- a/opustools_pkg/tests/test_opus_get.py +++ b/opustools_pkg/tests/test_opus_get.py @@ -40,7 +40,7 @@ def test_get_files_invalid_url(self): opg.get_files() sys.stdout = old_stdout - self.assertEqual(printout.getvalue(), 'Unable to retrieve the data.\n') + self.assertIn('Unable to retrieve the data', printout.getvalue()) @mock.patch('opustools.opus_get.input', create=True) def test_download_invalid_url(self, mocked_input): @@ -55,7 +55,7 @@ def test_download_invalid_url(self, mocked_input): opg.download(corpora, total_size) sys.stdout = old_stdout - self.assertEqual(printout.getvalue(), 'Unable to retrieve the data.\n') + self.assertIn('Unable to retrieve the data', printout.getvalue()) @mock.patch('opustools.opus_get.input', create=True) def test_dont_list_files_that_are_already_in_path(self, mocked_input): @@ -136,4 +136,3 @@ def test_indonesian(self): if __name__ == '__main__': unittest.main() -