Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-python-iso639 for
openSUSE:Factory checked in at 2026-03-04 21:05:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-iso639 (Old)
and /work/SRC/openSUSE:Factory/.python-python-iso639.new.561 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-iso639"
Wed Mar 4 21:05:30 2026 rev:5 rq:1336188 version:2026.1.31
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python-iso639/python-python-iso639.changes
2025-12-29 15:17:47.653451232 +0100
+++
/work/SRC/openSUSE:Factory/.python-python-iso639.new.561/python-python-iso639.changes
2026-03-04 21:05:33.645284000 +0100
@@ -1,0 +2,7 @@
+Tue Mar 3 19:07:40 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2026.1.31:
+ * Updated the ISO 639 data from SIL to the latest 2026-01-15
+ release.
+
+-------------------------------------------------------------------
Old:
----
python_iso639-2025.11.16.tar.gz
New:
----
python_iso639-2026.1.31.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-iso639.spec ++++++
--- /var/tmp/diff_new_pack.7NbNC0/_old 2026-03-04 21:05:34.329312262 +0100
+++ /var/tmp/diff_new_pack.7NbNC0/_new 2026-03-04 21:05:34.333312428 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-python-iso639
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-python-iso639
-Version: 2025.11.16
+Version: 2026.1.31
Release: 0
Summary: ISO 639 language codes, names, and other associated information
License: Apache-2.0
++++++ python_iso639-2025.11.16.tar.gz -> python_iso639-2026.1.31.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/.circleci/config.yml
new/iso639-2026.1.31/.circleci/config.yml
--- old/iso639-2025.11.16/.circleci/config.yml 2025-11-16 22:45:07.000000000
+0100
+++ new/iso639-2026.1.31/.circleci/config.yml 2026-01-31 16:01:44.000000000
+0100
@@ -9,12 +9,21 @@
parameters:
command-run:
type: string
+ latest-supported-python-version:
+ type: string
+ # Pick the highest Python 3.x version that this package is known to
support
+ default: "3.14"
docker:
- # Pick the highest Python 3.x version that this package is known to
support
- - image: cimg/python:3.14
+ - image: cimg/python:<< parameters.latest-supported-python-version >>
steps:
- checkout
- run:
+ name: Set up uv virtual environment
+ command: |
+ uv python install << parameters.latest-supported-python-version >>
+ uv venv .venv --managed-python --python=python<<
parameters.latest-supported-python-version >>
+ source .venv/bin/activate
+ - run:
command: << parameters.command-run >>
build-python:
@@ -26,22 +35,37 @@
steps:
- checkout
- run:
+ name: Install Python under uv
+ command: |
+ uv python install << parameters.python-version >>
+ - run:
# Test that we can build a source distribution that can correctly
# install from clean slate.
# "python -m build" creates
# dist/<pkg-name>-x.y.z.tar.gz and
dist/<pkg-name>-x.y.z-py3-none-any.whl
- name: Build source distribution and install package from it
+ name: Build source distribution, test installing package from it,
and clean up
+ command: |
+ uv venv .venv --managed-python --python=python<<
parameters.python-version >>
+ source .venv/bin/activate
+ uv pip install --no-progress --upgrade pip setuptools build
+ uv run python -m build
+ uv pip install dist/`ls dist/ | grep .whl`
+ deactivate
+ rm -rf .venv
+ - run:
+ name: Set up uv virtual environment for the test suite
command: |
- pip install ".[dev]" && \
- python -m build && \
- pip install dist/`ls dist/ | grep .whl`
+ uv venv .venv --managed-python --python=python<<
parameters.python-version >>
+ source .venv/bin/activate
+ uv pip install --no-progress -e ".[dev]"
- run:
name: Show installed Python packages
- command: pip list -v
+ command: |
+ uv pip list -v
- run:
name: Run python tests
command: |
- pytest -vv --durations=0 --junitxml=/tmp/testxml/report.xml
+ uv run pytest --junitxml=/tmp/testxml/report.xml --durations=0
- store_test_results:
path: /tmp/testxml/
@@ -57,8 +81,9 @@
shell: bash.exe
command: |
python --version && \
- pip install ".[dev]" && \
- pip list && \
+ python.exe -m pip install --upgrade pip setuptools wheel && \
+ python.exe -m pip install ".[dev]" && \
+ python.exe -m pip list && \
pytest
workflows:
@@ -68,47 +93,47 @@
- pre-build:
name: flake8
command-run: |
- pip install ".[dev]" && \
- flake8 src tests
+ uv pip install --no-progress -e ".[dev]" && \
+ uv run flake8 src tests
- pre-build:
name: black
- command-run: |
- pip install ".[dev]" && \
- black --check src tests
+ command-run: |
+ uv pip install --no-progress -e ".[dev]" && \
+ uv run black --check src tests
- pre-build:
name: mypy
- command-run: |
- pip install ".[dev]" && \
- mypy src
+ command-run: |
+ uv pip install --no-progress -e ".[dev]" && \
+ uv run mypy src
- pre-build:
name: twine
command-run: |
- pip install ".[dev]" && \
- python -m build && \
- twine check dist/`ls dist/ | grep .tar.gz` && \
- twine check dist/`ls dist/ | grep .whl`
- - pre-build:
- name: safety
- # jinja2 v3.1.4 triggers https://data.safetycli.com/v/70612/97c
- command-run: |
- pip install -e . && \
- pip install --upgrade safety && \
- safety --version && \
- pip freeze | safety check --stdin --ignore=70612
+ uv pip install --no-progress -e ".[dev]" && \
+ uv run python -m build && \
+ uv run twine check dist/`ls dist/ | grep .tar.gz` && \
+ uv run twine check dist/`ls dist/ | grep .whl`
- pre-build:
name: bandit
command-run: |
- pip install --upgrade bandit && \
- bandit --version && \
- bandit -r src -x tests
+ uv pip install --no-progress -e "." && \
+ uv pip install --no-progress --upgrade bandit && \
+ uv run bandit --version && \
+ uv run bandit -r src -x tests
+ - pre-build:
+ name: pip-audit
+ command-run: |
+ uv pip install --no-progress -e "." && \
+ uv pip install --no-progress --upgrade pip-audit && \
+ uv run pip-audit --version && \
+ uv run pip-audit --skip-editable
- build-python:
requires:
- flake8
- black
- mypy
- twine
- - safety
- bandit
+ - pip-audit
matrix:
parameters:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
@@ -118,5 +143,5 @@
- black
- mypy
- twine
- - safety
- bandit
+ - pip-audit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/CHANGELOG.md
new/iso639-2026.1.31/CHANGELOG.md
--- old/iso639-2025.11.16/CHANGELOG.md 2025-11-16 22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/CHANGELOG.md 2026-01-31 16:01:44.000000000 +0100
@@ -17,6 +17,11 @@
### Fixed
### Security
+## [2026.1.31]
+
+### Changed
+* Updated the ISO 639 data from SIL to the latest 2026-01-15 release.
+
## [2025.11.16]
### Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/README.md
new/iso639-2026.1.31/README.md
--- old/iso639-2025.11.16/README.md 2025-11-16 22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/README.md 2026-01-31 16:01:44.000000000 +0100
@@ -209,7 +209,7 @@
| `status` | `str` | ✗ | One of {(A)ctive,
(R)etired}, describing the ISO 639-3 code
|
| `name` | `str` | ✗ | Reference
language name in ISO 639-3
|
| `comment` | `str` | ✓ | Comment from ISO
639-3
|
-| `other_names` | `List[Name]` | ✓ | Other print and
inverted names [2]
|
+| `other_names` | `list[Name]` | ✓ | Other print and
inverted names [2]
|
| `macrolanguage` | `str` | ✓ | Macrolanguage
|
| `retire_reason` | `str` | ✓ | Retirement
reason, one of {(C)hange, (D)uplicate, (N)on-existent, (S)plit, (M)erge}
|
| `retire_change_to` | `str` | ✓ | ISO 639-3 code to
which this language can be changed, if retirement reason is one of {(C)hange,
(D)uplicate, (M)erge} |
@@ -268,7 +268,7 @@
```python
>>> import iso639
>>> iso639.DATA_LAST_UPDATED
- datetime.date(2025, 10, 15)
+ datetime.date(2026, 1, 15)
```
* `ALL_LANGUAGES`: The list of all `Language` objects based on the included
language code data
@@ -278,7 +278,7 @@
>>> type(iso639.ALL_LANGUAGES)
<class 'set'>
>>> len(iso639.ALL_LANGUAGES)
- 8311
+ 8313
```
## Links
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/pyproject.toml
new/iso639-2026.1.31/pyproject.toml
--- old/iso639-2025.11.16/pyproject.toml 2025-11-16 22:45:07.000000000
+0100
+++ new/iso639-2026.1.31/pyproject.toml 2026-01-31 16:01:44.000000000 +0100
@@ -4,7 +4,7 @@
[project]
name = "python-iso639"
-version = "2025.11.16"
+version = "2026.1.31"
description = "ISO 639 language codes, names, and other associated information"
readme = "README.md"
requires-python = ">= 3.10"
@@ -34,12 +34,11 @@
[project.optional-dependencies]
dev = [
- "black == 25.11.0",
- "build == 1.3.0",
+ "black == 26.1.0",
+ "build == 1.4.0",
"flake8 == 7.3.0",
- "mypy == 1.18.2",
- "pytest == 9.0.0",
- "requests == 2.32.5",
+ "mypy == 1.19.1",
+ "pytest == 9.0.2",
"twine == 6.2.0",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/src/iso639/__init__.py
new/iso639-2026.1.31/src/iso639/__init__.py
--- old/iso639-2025.11.16/src/iso639/__init__.py 2025-11-16
22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/src/iso639/__init__.py 2026-01-31 16:01:44.000000000
+0100
@@ -3,13 +3,12 @@
from .language import ALL_LANGUAGES, Language, LanguageNotFoundError
-
# __version__ is based on calendar versioning (https://calver.org/).
# __version__ and DATA_LAST_UPDATED are intentionally kept separate.
# While DATA_LAST_UPDATED is strictly the date for the ISO 639-3 data release,
# __version__ can be bumped for changes other than data updates.
__version__ = version("python-iso639")
-DATA_LAST_UPDATED = datetime.date(2025, 10, 15)
+DATA_LAST_UPDATED = datetime.date(2026, 1, 15)
__all__ = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/src/iso639/_data/iso-639-3.tab
new/iso639-2026.1.31/src/iso639/_data/iso-639-3.tab
--- old/iso639-2025.11.16/src/iso639/_data/iso-639-3.tab 2025-11-16
22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/src/iso639/_data/iso-639-3.tab 2026-01-31
16:01:44.000000000 +0100
@@ -850,7 +850,7 @@
boa I L Bora
bob I L Aweer
bod tib bod bo I L Tibetan
-boe I L Mundabli
+boe I L Mundabli-Mufu
bof I L Bolon
bog I L Bamako Sign Language
boh I L Boma
@@ -1751,6 +1751,7 @@
dyd I E Dyugun
dyg I E Villa Viciosa Agta
dyi I L Djimini Senoufo
+dyl I L Bhutanese Sign Language
dym I L Yanda Dom Dogon
dyn I L Dyangadi
dyo I L Jola-Fonyi
@@ -3573,6 +3574,7 @@
ley I L Lemolang
lez lez lez I L Lezghian
lfa I L Lefa
+lfb I L Buu (Cameroon)
lfn I C Lingua Franca Nova
lga I L Lungga
lgb I L Laghu
@@ -3784,7 +3786,7 @@
luf I L Laua
lug lug lug lg I L Ganda
luh I L Leizhou Chinese
-lui lui lui I E Luiseno
+lui lui lui I E Luiseño
luj I L Luna
luk I L Lunanakha
lul I L Olu'bo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/iso639-2025.11.16/src/iso639/_data/iso-639-3_Name_Index.tab
new/iso639-2026.1.31/src/iso639/_data/iso-639-3_Name_Index.tab
--- old/iso639-2025.11.16/src/iso639/_data/iso-639-3_Name_Index.tab
2025-11-16 22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/src/iso639/_data/iso-639-3_Name_Index.tab
2026-01-31 16:01:44.000000000 +0100
@@ -880,7 +880,7 @@
boa Bora Bora
bob Aweer Aweer
bod Tibetan Tibetan
-boe Mundabli Mundabli
+boe Mundabli-Mufu Mundabli-Mufu
bof Bolon Bolon
bog Bamako Sign Language Bamako Sign Language
boh Boma Boma
@@ -1837,6 +1837,7 @@
dyd Dyugun Dyugun
dyg Villa Viciosa Agta Agta, Villa Viciosa
dyi Djimini Senoufo Senoufo, Djimini
+dyl Bhutanese Sign Language Bhutanese Sign Language
dym Yanda Dom Dogon Dogon, Yanda Dom
dyn Dhanggatti Dhanggatti
dyn Dyangadi Dyangadi
@@ -3758,6 +3759,7 @@
ley Lemolang Lemolang
lez Lezghian Lezghian
lfa Lefa Lefa
+lfb Buu (Cameroon) Buu (Cameroon)
lfn Lingua Franca Nova Lingua Franca Nova
lga Lungga Lungga
lgb Laghu Laghu
@@ -3991,7 +3993,7 @@
luf Laua Laua
lug Ganda Ganda
luh Leizhou Chinese Chinese, Leizhou
-lui Luiseno Luiseno
+lui Luiseño Luiseño
luj Luna Luna
luk Lunanakha Lunanakha
lul Olu'bo Olu'bo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/src/iso639/language.py
new/iso639-2026.1.31/src/iso639/language.py
--- old/iso639-2025.11.16/src/iso639/language.py 2025-11-16
22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/src/iso639/language.py 2026-01-31 16:01:44.000000000
+0100
@@ -25,7 +25,6 @@
_COLUMN_TYPE,
)
-
_STRING_CLEANING_FUNCS = [lambda x: x.lower(), lambda x: x.title()]
@@ -33,41 +32,18 @@
pass
-@dataclass(frozen=True)
+@dataclass(frozen=True, slots=True)
class Name:
"""Represents an alternative name of a language."""
- __slots__ = ("print", "inverted")
print: str
inverted: str
-@dataclass(frozen=True)
+@dataclass(frozen=True, slots=True)
class Language:
"""Represents a language in the ISO 639-3 charts."""
- __slots__ = (
- # From the "codes" table
- "part3",
- "part2b",
- "part2t",
- "part1",
- "scope",
- "type",
- "status",
- "name",
- "comment",
- # From the "name_index" table
- "other_names",
- # From the "macrolanguages" table
- "macrolanguage",
- # From the "retirements" table
- "retire_reason",
- "retire_change_to",
- "retire_remedy",
- "retire_date",
- )
-
# From the "codes" table
part3: str
part2b: str | None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/tests/test_language.py
new/iso639-2026.1.31/tests/test_language.py
--- old/iso639-2025.11.16/tests/test_language.py 2025-11-16
22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/tests/test_language.py 2026-01-31 16:01:44.000000000
+0100
@@ -132,7 +132,7 @@
def test_data_last_updated():
- assert DATA_LAST_UPDATED == datetime.date(2025, 10, 15), "Need to update
README.md"
+ assert DATA_LAST_UPDATED == datetime.date(2026, 1, 15), "Need to update
README.md"
def test_all_languages():
@@ -140,7 +140,7 @@
# Defining `len_all_languages` so that when the assertion fails,
# the error message is more informative.
len_all_languages = len(ALL_LANGUAGES)
- assert len_all_languages == 8311, "Need to update README.md"
+ assert len_all_languages == 8313, "Need to update README.md"
lang = list(ALL_LANGUAGES)[0]
assert type(lang) is Language
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/iso639-2025.11.16/tests/test_version_number.py
new/iso639-2026.1.31/tests/test_version_number.py
--- old/iso639-2025.11.16/tests/test_version_number.py 2025-11-16
22:45:07.000000000 +0100
+++ new/iso639-2026.1.31/tests/test_version_number.py 2026-01-31
16:01:44.000000000 +0100
@@ -3,7 +3,6 @@
import iso639
-
_REPO_DIR = os.path.dirname(os.path.dirname(__file__))