python-iso639 2025.11.16__tar.gz → 2026.4.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/CHANGELOG.md +10 -0
- {python_iso639-2025.11.16/src/python_iso639.egg-info → python_iso639-2026.4.20}/PKG-INFO +25 -13
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/README.md +17 -3
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/pyproject.toml +9 -11
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/__init__.py +1 -2
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3.tab +17 -13
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3_Name_Index.tab +22 -4
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/language.py +2 -26
- {python_iso639-2025.11.16 → python_iso639-2026.4.20/src/python_iso639.egg-info}/PKG-INFO +25 -13
- python_iso639-2026.4.20/src/python_iso639.egg-info/requires.txt +8 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/tests/test_language.py +2 -2
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/tests/test_version_number.py +0 -1
- python_iso639-2025.11.16/src/python_iso639.egg-info/requires.txt +0 -9
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/LICENSE.txt +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/MANIFEST.in +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/setup.cfg +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/__init__.py +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3-macrolanguages.tab +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3_Retirements.tab +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/py.typed +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/SOURCES.txt +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/dependency_links.txt +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/not-zip-safe +0 -0
- {python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/top_level.txt +0 -0
|
@@ -17,6 +17,16 @@ major/minor/micro version numbers like `05` (it'd have to be just `5`).
|
|
|
17
17
|
### Fixed
|
|
18
18
|
### Security
|
|
19
19
|
|
|
20
|
+
## [2026.4.20]
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
* Updated the ISO 639 data from SIL to the latest 2026-04-15 release.
|
|
24
|
+
|
|
25
|
+
## [2026.1.31]
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
* Updated the ISO 639 data from SIL to the latest 2026-01-15 release.
|
|
29
|
+
|
|
20
30
|
## [2025.11.16]
|
|
21
31
|
|
|
22
32
|
### Fixed
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-iso639
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.4.20
|
|
4
4
|
Summary: ISO 639 language codes, names, and other associated information
|
|
5
5
|
Author-email: "Jackson L. Lee" <jacksonlunlee@gmail.com>
|
|
6
|
-
License: Apache
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Source, https://github.com/jacksonllee/iso639
|
|
8
8
|
Keywords: ISO 639,language codes,languages,linguistics
|
|
9
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -11,7 +11,6 @@ Classifier: Intended Audience :: Developers
|
|
|
11
11
|
Classifier: Intended Audience :: Education
|
|
12
12
|
Classifier: Intended Audience :: Information Technology
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -28,13 +27,12 @@ Requires-Python: >=3.10
|
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE.txt
|
|
30
29
|
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: black
|
|
32
|
-
Requires-Dist: build
|
|
33
|
-
Requires-Dist: flake8
|
|
34
|
-
Requires-Dist: mypy
|
|
35
|
-
Requires-Dist: pytest
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: twine==6.2.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black; extra == "dev"
|
|
31
|
+
Requires-Dist: build; extra == "dev"
|
|
32
|
+
Requires-Dist: flake8; extra == "dev"
|
|
33
|
+
Requires-Dist: mypy; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest; extra == "dev"
|
|
35
|
+
Requires-Dist: twine; extra == "dev"
|
|
38
36
|
Dynamic: license-file
|
|
39
37
|
|
|
40
38
|
# python-iso639
|
|
@@ -56,10 +54,24 @@ Current features:
|
|
|
56
54
|
|
|
57
55
|
## Installation
|
|
58
56
|
|
|
57
|
+
Using pip:
|
|
58
|
+
|
|
59
59
|
```bash
|
|
60
60
|
pip install python-iso639
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
Using uv:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uv add python-iso639
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Using conda:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
conda install -c conda-forge python-iso639
|
|
73
|
+
```
|
|
74
|
+
|
|
63
75
|
## Usage
|
|
64
76
|
|
|
65
77
|
`python-iso639` revolves around a `Language` class.
|
|
@@ -248,7 +260,7 @@ A `Language` instance has the following attributes:
|
|
|
248
260
|
| `status` | `str` | ✗ | One of {(A)ctive, (R)etired}, describing the ISO 639-3 code |
|
|
249
261
|
| `name` | `str` | ✗ | Reference language name in ISO 639-3 |
|
|
250
262
|
| `comment` | `str` | ✓ | Comment from ISO 639-3 |
|
|
251
|
-
| `other_names` | `
|
|
263
|
+
| `other_names` | `list[Name]` | ✓ | Other print and inverted names [2] |
|
|
252
264
|
| `macrolanguage` | `str` | ✓ | Macrolanguage |
|
|
253
265
|
| `retire_reason` | `str` | ✓ | Retirement reason, one of {(C)hange, (D)uplicate, (N)on-existent, (S)plit, (M)erge} |
|
|
254
266
|
| `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} |
|
|
@@ -307,7 +319,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
307
319
|
```python
|
|
308
320
|
>>> import iso639
|
|
309
321
|
>>> iso639.DATA_LAST_UPDATED
|
|
310
|
-
datetime.date(
|
|
322
|
+
datetime.date(2026, 4, 15)
|
|
311
323
|
```
|
|
312
324
|
|
|
313
325
|
* `ALL_LANGUAGES`: The list of all `Language` objects based on the included language code data
|
|
@@ -317,7 +329,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
317
329
|
>>> type(iso639.ALL_LANGUAGES)
|
|
318
330
|
<class 'set'>
|
|
319
331
|
>>> len(iso639.ALL_LANGUAGES)
|
|
320
|
-
|
|
332
|
+
8315
|
|
321
333
|
```
|
|
322
334
|
|
|
323
335
|
## Links
|
|
@@ -17,10 +17,24 @@ Current features:
|
|
|
17
17
|
|
|
18
18
|
## Installation
|
|
19
19
|
|
|
20
|
+
Using pip:
|
|
21
|
+
|
|
20
22
|
```bash
|
|
21
23
|
pip install python-iso639
|
|
22
24
|
```
|
|
23
25
|
|
|
26
|
+
Using uv:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv add python-iso639
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Using conda:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
conda install -c conda-forge python-iso639
|
|
36
|
+
```
|
|
37
|
+
|
|
24
38
|
## Usage
|
|
25
39
|
|
|
26
40
|
`python-iso639` revolves around a `Language` class.
|
|
@@ -209,7 +223,7 @@ A `Language` instance has the following attributes:
|
|
|
209
223
|
| `status` | `str` | ✗ | One of {(A)ctive, (R)etired}, describing the ISO 639-3 code |
|
|
210
224
|
| `name` | `str` | ✗ | Reference language name in ISO 639-3 |
|
|
211
225
|
| `comment` | `str` | ✓ | Comment from ISO 639-3 |
|
|
212
|
-
| `other_names` | `
|
|
226
|
+
| `other_names` | `list[Name]` | ✓ | Other print and inverted names [2] |
|
|
213
227
|
| `macrolanguage` | `str` | ✓ | Macrolanguage |
|
|
214
228
|
| `retire_reason` | `str` | ✓ | Retirement reason, one of {(C)hange, (D)uplicate, (N)on-existent, (S)plit, (M)erge} |
|
|
215
229
|
| `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 +282,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
268
282
|
```python
|
|
269
283
|
>>> import iso639
|
|
270
284
|
>>> iso639.DATA_LAST_UPDATED
|
|
271
|
-
datetime.date(
|
|
285
|
+
datetime.date(2026, 4, 15)
|
|
272
286
|
```
|
|
273
287
|
|
|
274
288
|
* `ALL_LANGUAGES`: The list of all `Language` objects based on the included language code data
|
|
@@ -278,7 +292,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
278
292
|
>>> type(iso639.ALL_LANGUAGES)
|
|
279
293
|
<class 'set'>
|
|
280
294
|
>>> len(iso639.ALL_LANGUAGES)
|
|
281
|
-
|
|
295
|
+
8315
|
|
282
296
|
```
|
|
283
297
|
|
|
284
298
|
## Links
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools >=
|
|
2
|
+
requires = ["setuptools >= 77.0.0", "wheel"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-iso639"
|
|
7
|
-
version = "
|
|
7
|
+
version = "2026.4.20"
|
|
8
8
|
description = "ISO 639 language codes, names, and other associated information"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">= 3.10"
|
|
11
|
-
license =
|
|
11
|
+
license = "Apache-2.0"
|
|
12
12
|
authors = [ { name = "Jackson L. Lee", email = "jacksonlunlee@gmail.com" } ]
|
|
13
13
|
keywords = ["ISO 639", "language codes", "languages", "linguistics"]
|
|
14
14
|
classifiers = [
|
|
@@ -17,7 +17,6 @@ classifiers = [
|
|
|
17
17
|
"Intended Audience :: Education",
|
|
18
18
|
"Intended Audience :: Information Technology",
|
|
19
19
|
"Intended Audience :: Science/Research",
|
|
20
|
-
"License :: OSI Approved :: Apache Software License",
|
|
21
20
|
"Operating System :: OS Independent",
|
|
22
21
|
"Programming Language :: Python :: 3",
|
|
23
22
|
"Programming Language :: Python :: 3 :: Only",
|
|
@@ -34,13 +33,12 @@ classifiers = [
|
|
|
34
33
|
|
|
35
34
|
[project.optional-dependencies]
|
|
36
35
|
dev = [
|
|
37
|
-
"black
|
|
38
|
-
"build
|
|
39
|
-
"flake8
|
|
40
|
-
"mypy
|
|
41
|
-
"pytest
|
|
42
|
-
"
|
|
43
|
-
"twine == 6.2.0",
|
|
36
|
+
"black",
|
|
37
|
+
"build",
|
|
38
|
+
"flake8",
|
|
39
|
+
"mypy",
|
|
40
|
+
"pytest",
|
|
41
|
+
"twine",
|
|
44
42
|
]
|
|
45
43
|
|
|
46
44
|
[project.urls]
|
|
@@ -3,13 +3,12 @@ from importlib.metadata import version
|
|
|
3
3
|
|
|
4
4
|
from .language import ALL_LANGUAGES, Language, LanguageNotFoundError
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
# __version__ is based on calendar versioning (https://calver.org/).
|
|
8
7
|
# __version__ and DATA_LAST_UPDATED are intentionally kept separate.
|
|
9
8
|
# While DATA_LAST_UPDATED is strictly the date for the ISO 639-3 data release,
|
|
10
9
|
# __version__ can be bumped for changes other than data updates.
|
|
11
10
|
__version__ = version("python-iso639")
|
|
12
|
-
DATA_LAST_UPDATED = datetime.date(
|
|
11
|
+
DATA_LAST_UPDATED = datetime.date(2026, 4, 15)
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
__all__ = [
|
|
@@ -850,7 +850,7 @@ bnz I L Beezen
|
|
|
850
850
|
boa I L Bora
|
|
851
851
|
bob I L Aweer
|
|
852
852
|
bod tib bod bo I L Tibetan
|
|
853
|
-
boe I L Mundabli
|
|
853
|
+
boe I L Mundabli-Mufu
|
|
854
854
|
bof I L Bolon
|
|
855
855
|
bog I L Bamako Sign Language
|
|
856
856
|
boh I L Boma
|
|
@@ -1532,7 +1532,7 @@ deh I L Dehwari
|
|
|
1532
1532
|
dei I L Demisa
|
|
1533
1533
|
del del del M L Delaware
|
|
1534
1534
|
dem I L Dem
|
|
1535
|
-
den den den M L
|
|
1535
|
+
den den den M L Slavey
|
|
1536
1536
|
dep I E Pidgin Delaware
|
|
1537
1537
|
deq I L Dendi (Central African Republic)
|
|
1538
1538
|
der I L Deori
|
|
@@ -1751,6 +1751,7 @@ dyb I E Dyaberdyaber
|
|
|
1751
1751
|
dyd I E Dyugun
|
|
1752
1752
|
dyg I E Villa Viciosa Agta
|
|
1753
1753
|
dyi I L Djimini Senoufo
|
|
1754
|
+
dyl I L Bhutanese Sign Language
|
|
1754
1755
|
dym I L Yanda Dom Dogon
|
|
1755
1756
|
dyn I L Dyangadi
|
|
1756
1757
|
dyo I L Jola-Fonyi
|
|
@@ -2616,7 +2617,7 @@ imr I L Imroing
|
|
|
2616
2617
|
ims I H Marsian
|
|
2617
2618
|
imt I L Imotong
|
|
2618
2619
|
imy I H Milyan
|
|
2619
|
-
ina ina ina ia I C Interlingua (
|
|
2620
|
+
ina ina ina ia I C Interlingua (IALA)
|
|
2620
2621
|
inb I L Inga
|
|
2621
2622
|
ind ind ind id I L Indonesian
|
|
2622
2623
|
ing I L Degexit'an
|
|
@@ -2661,7 +2662,7 @@ isn I L Isanzu
|
|
|
2661
2662
|
iso I L Isoko
|
|
2662
2663
|
isr I L Israeli Sign Language
|
|
2663
2664
|
ist I L Istriot
|
|
2664
|
-
isu I L Isu
|
|
2665
|
+
isu I L Isu
|
|
2665
2666
|
isv I C Interslavic
|
|
2666
2667
|
ita ita ita it I L Italian
|
|
2667
2668
|
itb I L Binongan Itneg
|
|
@@ -3069,7 +3070,7 @@ kjk I L Highland Konjo
|
|
|
3069
3070
|
kjl I L Western Parbate Kham
|
|
3070
3071
|
kjm I L Kháng
|
|
3071
3072
|
kjn I L Kunjen
|
|
3072
|
-
kjo I L
|
|
3073
|
+
kjo I L Kinnauri Pahari
|
|
3073
3074
|
kjp I L Pwo Eastern Karen
|
|
3074
3075
|
kjq I L Western Keres
|
|
3075
3076
|
kjr I L Kurudu
|
|
@@ -3348,7 +3349,7 @@ kup I L Kunimaipa
|
|
|
3348
3349
|
kuq I L Karipuna
|
|
3349
3350
|
kur kur kur ku M L Kurdish
|
|
3350
3351
|
kus I L Kusaal
|
|
3351
|
-
kut kut kut I L
|
|
3352
|
+
kut kut kut I L Ktunaxa
|
|
3352
3353
|
kuu I L Upper Kuskokwim
|
|
3353
3354
|
kuv I L Kur
|
|
3354
3355
|
kuw I L Kpagua
|
|
@@ -3573,6 +3574,7 @@ lex I L Luang
|
|
|
3573
3574
|
ley I L Lemolang
|
|
3574
3575
|
lez lez lez I L Lezghian
|
|
3575
3576
|
lfa I L Lefa
|
|
3577
|
+
lfb I L Buu (Cameroon)
|
|
3576
3578
|
lfn I C Lingua Franca Nova
|
|
3577
3579
|
lga I L Lungga
|
|
3578
3580
|
lgb I L Laghu
|
|
@@ -3784,7 +3786,7 @@ lue I L Luvale
|
|
|
3784
3786
|
luf I L Laua
|
|
3785
3787
|
lug lug lug lg I L Ganda
|
|
3786
3788
|
luh I L Leizhou Chinese
|
|
3787
|
-
lui lui lui I E
|
|
3789
|
+
lui lui lui I E Luiseño
|
|
3788
3790
|
luj I L Luna
|
|
3789
3791
|
luk I L Lunanakha
|
|
3790
3792
|
lul I L Olu'bo
|
|
@@ -3901,7 +3903,7 @@ mcy I L South Watut
|
|
|
3901
3903
|
mcz I L Mawan
|
|
3902
3904
|
mda I L Mada (Nigeria)
|
|
3903
3905
|
mdb I L Morigi
|
|
3904
|
-
mdc I L
|
|
3906
|
+
mdc I L Soq
|
|
3905
3907
|
mdd I L Mbum
|
|
3906
3908
|
mde I L Maba (Chad)
|
|
3907
3909
|
mdf mdf mdf I L Moksha
|
|
@@ -3922,7 +3924,7 @@ mdu I L Mboko
|
|
|
3922
3924
|
mdv I L Santa Lucía Monteverde Mixtec
|
|
3923
3925
|
mdw I L Mbosi
|
|
3924
3926
|
mdx I L Dizin
|
|
3925
|
-
mdy I L Male
|
|
3927
|
+
mdy I L Male
|
|
3926
3928
|
mdz I L Suruí Do Pará
|
|
3927
3929
|
mea I L Menka
|
|
3928
3930
|
meb I L Ikobi
|
|
@@ -6064,7 +6066,7 @@ sro I L Campidanese Sardinian
|
|
|
6064
6066
|
srp srp srp sr I L Serbian
|
|
6065
6067
|
srq I L Sirionó
|
|
6066
6068
|
srr srr srr I L Serer
|
|
6067
|
-
srs I L
|
|
6069
|
+
srs I L Tsuut'ina
|
|
6068
6070
|
srt I L Sauri
|
|
6069
6071
|
sru I L Suruí
|
|
6070
6072
|
srv I L Southern Sorsoganon
|
|
@@ -6207,7 +6209,7 @@ szl I L Silesian
|
|
|
6207
6209
|
szn I L Sula
|
|
6208
6210
|
szp I L Suabo
|
|
6209
6211
|
szs I L Solomon Islands Sign Language
|
|
6210
|
-
szv I L
|
|
6212
|
+
szv I L Isubu
|
|
6211
6213
|
szw I L Sawai
|
|
6212
6214
|
szy I L Sakizaya
|
|
6213
6215
|
taa I L Lower Tanana
|
|
@@ -6656,6 +6658,7 @@ tuz I L Turka
|
|
|
6656
6658
|
tva I L Vaghua
|
|
6657
6659
|
tvd I L Tsuvadi
|
|
6658
6660
|
tve I L Te'un
|
|
6661
|
+
tvg I E Tugunese
|
|
6659
6662
|
tvi I L Tulai
|
|
6660
6663
|
tvk I L Southeast Ambrym
|
|
6661
6664
|
tvl tvl tvl I L Tuvalu
|
|
@@ -6961,7 +6964,7 @@ vun I L Vunjo
|
|
|
6961
6964
|
vut I L Vute
|
|
6962
6965
|
vwa I L Awa (China)
|
|
6963
6966
|
waa I L Walla Walla
|
|
6964
|
-
wab I L
|
|
6967
|
+
wab I L Yote
|
|
6965
6968
|
wac I E Wasco-Wishram
|
|
6966
6969
|
wad I L Wamesa
|
|
6967
6970
|
wae I L Walser
|
|
@@ -7604,7 +7607,7 @@ ykk I L Yakaikeke
|
|
|
7604
7607
|
ykl I L Khlula
|
|
7605
7608
|
ykm I L Kap
|
|
7606
7609
|
ykn I L Kua-nsi
|
|
7607
|
-
yko I L
|
|
7610
|
+
yko I L Iyasa
|
|
7608
7611
|
ykr I L Yekora
|
|
7609
7612
|
ykt I L Kathu
|
|
7610
7613
|
yku I L Kuamasi
|
|
@@ -7791,6 +7794,7 @@ zha zha zha za M L Zhuang
|
|
|
7791
7794
|
zhb I L Zhaba
|
|
7792
7795
|
zhd I L Dai Zhuang
|
|
7793
7796
|
zhi I L Zhire
|
|
7797
|
+
zhk I L Kurdish Sign Language
|
|
7794
7798
|
zhn I L Nong Zhuang
|
|
7795
7799
|
zho chi zho zh M L Chinese
|
|
7796
7800
|
zhw I L Zhoa
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3_Name_Index.tab
RENAMED
|
@@ -880,7 +880,7 @@ bnz Beezen Beezen
|
|
|
880
880
|
boa Bora Bora
|
|
881
881
|
bob Aweer Aweer
|
|
882
882
|
bod Tibetan Tibetan
|
|
883
|
-
boe Mundabli Mundabli
|
|
883
|
+
boe Mundabli-Mufu Mundabli-Mufu
|
|
884
884
|
bof Bolon Bolon
|
|
885
885
|
bog Bamako Sign Language Bamako Sign Language
|
|
886
886
|
boh Boma Boma
|
|
@@ -1599,7 +1599,7 @@ deh Dehwari Dehwari
|
|
|
1599
1599
|
dei Demisa Demisa
|
|
1600
1600
|
del Delaware Delaware
|
|
1601
1601
|
dem Dem Dem
|
|
1602
|
-
den
|
|
1602
|
+
den Slavey Slavey
|
|
1603
1603
|
dep Pidgin Delaware Delaware, Pidgin
|
|
1604
1604
|
deq Dendi (Central African Republic) Dendi (Central African Republic)
|
|
1605
1605
|
der Deori Deori
|
|
@@ -1837,6 +1837,7 @@ dyb Dyaberdyaber Dyaberdyaber
|
|
|
1837
1837
|
dyd Dyugun Dyugun
|
|
1838
1838
|
dyg Villa Viciosa Agta Agta, Villa Viciosa
|
|
1839
1839
|
dyi Djimini Senoufo Senoufo, Djimini
|
|
1840
|
+
dyl Bhutanese Sign Language Bhutanese Sign Language
|
|
1840
1841
|
dym Yanda Dom Dogon Dogon, Yanda Dom
|
|
1841
1842
|
dyn Dhanggatti Dhanggatti
|
|
1842
1843
|
dyn Dyangadi Dyangadi
|
|
@@ -2759,6 +2760,7 @@ imr Imroing Imroing
|
|
|
2759
2760
|
ims Marsian Marsian
|
|
2760
2761
|
imt Imotong Imotong
|
|
2761
2762
|
imy Milyan Milyan
|
|
2763
|
+
ina Interlingua (IALA) Interlingua (IALA)
|
|
2762
2764
|
ina Interlingua (International Auxiliary Language Association) Interlingua (International Auxiliary Language Association)
|
|
2763
2765
|
inb Inga Inga
|
|
2764
2766
|
ind Indonesian Indonesian
|
|
@@ -2805,6 +2807,7 @@ isn Isanzu Isanzu
|
|
|
2805
2807
|
iso Isoko Isoko
|
|
2806
2808
|
isr Israeli Sign Language Israeli Sign Language
|
|
2807
2809
|
ist Istriot Istriot
|
|
2810
|
+
isu Isu Isu
|
|
2808
2811
|
isu Isu (Menchum Division) Isu (Menchum Division)
|
|
2809
2812
|
isv Interslavic Interslavic
|
|
2810
2813
|
ita Italian Italian
|
|
@@ -3235,7 +3238,7 @@ kjk Highland Konjo Konjo, Highland
|
|
|
3235
3238
|
kjl Western Parbate Kham Kham, Western Parbate
|
|
3236
3239
|
kjm Kháng Kháng
|
|
3237
3240
|
kjn Kunjen Kunjen
|
|
3238
|
-
kjo
|
|
3241
|
+
kjo Kinnauri Pahari Pahari, Kinnauri
|
|
3239
3242
|
kjp Pwo Eastern Karen Karen, Pwo Eastern
|
|
3240
3243
|
kjq Western Keres Keres, Western
|
|
3241
3244
|
kjr Kurudu Kurudu
|
|
@@ -3524,6 +3527,8 @@ kup Kunimaipa Kunimaipa
|
|
|
3524
3527
|
kuq Karipuna Karipuna
|
|
3525
3528
|
kur Kurdish Kurdish
|
|
3526
3529
|
kus Kusaal Kusaal
|
|
3530
|
+
kut Ksanka Ksanka
|
|
3531
|
+
kut Ktunaxa Ktunaxa
|
|
3527
3532
|
kut Kutenai Kutenai
|
|
3528
3533
|
kuu Upper Kuskokwim Kuskokwim, Upper
|
|
3529
3534
|
kuv Kur Kur
|
|
@@ -3758,6 +3763,7 @@ lex Luang Luang
|
|
|
3758
3763
|
ley Lemolang Lemolang
|
|
3759
3764
|
lez Lezghian Lezghian
|
|
3760
3765
|
lfa Lefa Lefa
|
|
3766
|
+
lfb Buu (Cameroon) Buu (Cameroon)
|
|
3761
3767
|
lfn Lingua Franca Nova Lingua Franca Nova
|
|
3762
3768
|
lga Lungga Lungga
|
|
3763
3769
|
lgb Laghu Laghu
|
|
@@ -3991,7 +3997,7 @@ lue Luvale Luvale
|
|
|
3991
3997
|
luf Laua Laua
|
|
3992
3998
|
lug Ganda Ganda
|
|
3993
3999
|
luh Leizhou Chinese Chinese, Leizhou
|
|
3994
|
-
lui
|
|
4000
|
+
lui Luiseño Luiseño
|
|
3995
4001
|
luj Luna Luna
|
|
3996
4002
|
luk Lunanakha Lunanakha
|
|
3997
4003
|
lul Olu'bo Olu'bo
|
|
@@ -4113,6 +4119,7 @@ mcz Mawan Mawan
|
|
|
4113
4119
|
mda Mada (Nigeria) Mada (Nigeria)
|
|
4114
4120
|
mdb Morigi Morigi
|
|
4115
4121
|
mdc Male (Papua New Guinea) Male (Papua New Guinea)
|
|
4122
|
+
mdc Soq Soq
|
|
4116
4123
|
mdd Mbum Mbum
|
|
4117
4124
|
mde Maba (Chad) Maba (Chad)
|
|
4118
4125
|
mdf Moksha Moksha
|
|
@@ -4133,6 +4140,7 @@ mdu Mboko Mboko
|
|
|
4133
4140
|
mdv Santa Lucía Monteverde Mixtec Mixtec, Santa Lucía Monteverde
|
|
4134
4141
|
mdw Mbosi Mbosi
|
|
4135
4142
|
mdx Dizin Dizin
|
|
4143
|
+
mdy Male Male
|
|
4136
4144
|
mdy Male (Ethiopia) Male (Ethiopia)
|
|
4137
4145
|
mdz Suruí Do Pará Suruí Do Pará
|
|
4138
4146
|
mea Menka Menka
|
|
@@ -4397,6 +4405,7 @@ mod Mobilian Mobilian
|
|
|
4397
4405
|
moe Innu Innu
|
|
4398
4406
|
moe Montagnais Montagnais
|
|
4399
4407
|
mog Mongondow Mongondow
|
|
4408
|
+
moh Kanien'kéha Kanien'kéha
|
|
4400
4409
|
moh Mohawk Mohawk
|
|
4401
4410
|
moi Mboi Mboi
|
|
4402
4411
|
moj Monzombo Monzombo
|
|
@@ -5017,6 +5026,7 @@ nog Nogai Nogai
|
|
|
5017
5026
|
noh Nomu Nomu
|
|
5018
5027
|
noi Noiri Noiri
|
|
5019
5028
|
noj Nonuya Nonuya
|
|
5029
|
+
nok Lhéchelesem Lhéchelesem
|
|
5020
5030
|
nok Nooksack Nooksack
|
|
5021
5031
|
nol Nomlaki Nomlaki
|
|
5022
5032
|
non Old Norse Norse, Old
|
|
@@ -6375,6 +6385,7 @@ srp Serbian Serbian
|
|
|
6375
6385
|
srq Sirionó Sirionó
|
|
6376
6386
|
srr Serer Serer
|
|
6377
6387
|
srs Sarsi Sarsi
|
|
6388
|
+
srs Tsuut'ina Tsuut'ina
|
|
6378
6389
|
srt Sauri Sauri
|
|
6379
6390
|
sru Suruí Suruí
|
|
6380
6391
|
srv Southern Sorsoganon Sorsoganon, Southern
|
|
@@ -6522,6 +6533,7 @@ szn Sula Sula
|
|
|
6522
6533
|
szp Suabo Suabo
|
|
6523
6534
|
szs Solomon Islands Sign Language Solomon Islands Sign Language
|
|
6524
6535
|
szv Isu (Fako Division) Isu (Fako Division)
|
|
6536
|
+
szv Isubu Isubu
|
|
6525
6537
|
szw Sawai Sawai
|
|
6526
6538
|
szy Sakizaya Sakizaya
|
|
6527
6539
|
taa Lower Tanana Tanana, Lower
|
|
@@ -6989,6 +7001,9 @@ tuz Turka Turka
|
|
|
6989
7001
|
tva Vaghua Vaghua
|
|
6990
7002
|
tvd Tsuvadi Tsuvadi
|
|
6991
7003
|
tve Te'un Te'un
|
|
7004
|
+
tvg Batavian Portuguese Creole Creole, Batavian Portuguese
|
|
7005
|
+
tvg Mardijker Creole Creole, Mardijker
|
|
7006
|
+
tvg Tugunese Tugunese
|
|
6992
7007
|
tvi Tulai Tulai
|
|
6993
7008
|
tvk Southeast Ambrym Ambrym, Southeast
|
|
6994
7009
|
tvl Tuvalu Tuvalu
|
|
@@ -7310,6 +7325,7 @@ vut Vute Vute
|
|
|
7310
7325
|
vwa Awa (China) Awa (China)
|
|
7311
7326
|
waa Walla Walla Walla Walla
|
|
7312
7327
|
wab Wab Wab
|
|
7328
|
+
wab Yote Yote
|
|
7313
7329
|
wac Wasco-Wishram Wasco-Wishram
|
|
7314
7330
|
wad Wamesa Wamesa
|
|
7315
7331
|
wad Wondama Wondama
|
|
@@ -7981,6 +7997,7 @@ ykk Yakaikeke Yakaikeke
|
|
|
7981
7997
|
ykl Khlula Khlula
|
|
7982
7998
|
ykm Kap Kap
|
|
7983
7999
|
ykn Kua-nsi Kua-nsi
|
|
8000
|
+
yko Iyasa Iyasa
|
|
7984
8001
|
yko Yasa Yasa
|
|
7985
8002
|
ykr Yekora Yekora
|
|
7986
8003
|
ykt Kathu Kathu
|
|
@@ -8177,6 +8194,7 @@ zha Zhuang Zhuang
|
|
|
8177
8194
|
zhb Zhaba Zhaba
|
|
8178
8195
|
zhd Dai Zhuang Zhuang, Dai
|
|
8179
8196
|
zhi Zhire Zhire
|
|
8197
|
+
zhk Kurdish Sign Language Kurdish Sign Language
|
|
8180
8198
|
zhn Nong Zhuang Zhuang, Nong
|
|
8181
8199
|
zho Chinese Chinese
|
|
8182
8200
|
zhw Zhoa Zhoa
|
|
@@ -25,7 +25,6 @@ from ._data import (
|
|
|
25
25
|
_COLUMN_TYPE,
|
|
26
26
|
)
|
|
27
27
|
|
|
28
|
-
|
|
29
28
|
_STRING_CLEANING_FUNCS = [lambda x: x.lower(), lambda x: x.title()]
|
|
30
29
|
|
|
31
30
|
|
|
@@ -33,41 +32,18 @@ class LanguageNotFoundError(Exception):
|
|
|
33
32
|
pass
|
|
34
33
|
|
|
35
34
|
|
|
36
|
-
@dataclass(frozen=True)
|
|
35
|
+
@dataclass(frozen=True, slots=True)
|
|
37
36
|
class Name:
|
|
38
37
|
"""Represents an alternative name of a language."""
|
|
39
38
|
|
|
40
|
-
__slots__ = ("print", "inverted")
|
|
41
39
|
print: str
|
|
42
40
|
inverted: str
|
|
43
41
|
|
|
44
42
|
|
|
45
|
-
@dataclass(frozen=True)
|
|
43
|
+
@dataclass(frozen=True, slots=True)
|
|
46
44
|
class Language:
|
|
47
45
|
"""Represents a language in the ISO 639-3 charts."""
|
|
48
46
|
|
|
49
|
-
__slots__ = (
|
|
50
|
-
# From the "codes" table
|
|
51
|
-
"part3",
|
|
52
|
-
"part2b",
|
|
53
|
-
"part2t",
|
|
54
|
-
"part1",
|
|
55
|
-
"scope",
|
|
56
|
-
"type",
|
|
57
|
-
"status",
|
|
58
|
-
"name",
|
|
59
|
-
"comment",
|
|
60
|
-
# From the "name_index" table
|
|
61
|
-
"other_names",
|
|
62
|
-
# From the "macrolanguages" table
|
|
63
|
-
"macrolanguage",
|
|
64
|
-
# From the "retirements" table
|
|
65
|
-
"retire_reason",
|
|
66
|
-
"retire_change_to",
|
|
67
|
-
"retire_remedy",
|
|
68
|
-
"retire_date",
|
|
69
|
-
)
|
|
70
|
-
|
|
71
47
|
# From the "codes" table
|
|
72
48
|
part3: str
|
|
73
49
|
part2b: str | None
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-iso639
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.4.20
|
|
4
4
|
Summary: ISO 639 language codes, names, and other associated information
|
|
5
5
|
Author-email: "Jackson L. Lee" <jacksonlunlee@gmail.com>
|
|
6
|
-
License: Apache
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Source, https://github.com/jacksonllee/iso639
|
|
8
8
|
Keywords: ISO 639,language codes,languages,linguistics
|
|
9
9
|
Classifier: Development Status :: 5 - Production/Stable
|
|
@@ -11,7 +11,6 @@ Classifier: Intended Audience :: Developers
|
|
|
11
11
|
Classifier: Intended Audience :: Education
|
|
12
12
|
Classifier: Intended Audience :: Information Technology
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -28,13 +27,12 @@ Requires-Python: >=3.10
|
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE.txt
|
|
30
29
|
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: black
|
|
32
|
-
Requires-Dist: build
|
|
33
|
-
Requires-Dist: flake8
|
|
34
|
-
Requires-Dist: mypy
|
|
35
|
-
Requires-Dist: pytest
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: twine==6.2.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black; extra == "dev"
|
|
31
|
+
Requires-Dist: build; extra == "dev"
|
|
32
|
+
Requires-Dist: flake8; extra == "dev"
|
|
33
|
+
Requires-Dist: mypy; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest; extra == "dev"
|
|
35
|
+
Requires-Dist: twine; extra == "dev"
|
|
38
36
|
Dynamic: license-file
|
|
39
37
|
|
|
40
38
|
# python-iso639
|
|
@@ -56,10 +54,24 @@ Current features:
|
|
|
56
54
|
|
|
57
55
|
## Installation
|
|
58
56
|
|
|
57
|
+
Using pip:
|
|
58
|
+
|
|
59
59
|
```bash
|
|
60
60
|
pip install python-iso639
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
Using uv:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uv add python-iso639
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Using conda:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
conda install -c conda-forge python-iso639
|
|
73
|
+
```
|
|
74
|
+
|
|
63
75
|
## Usage
|
|
64
76
|
|
|
65
77
|
`python-iso639` revolves around a `Language` class.
|
|
@@ -248,7 +260,7 @@ A `Language` instance has the following attributes:
|
|
|
248
260
|
| `status` | `str` | ✗ | One of {(A)ctive, (R)etired}, describing the ISO 639-3 code |
|
|
249
261
|
| `name` | `str` | ✗ | Reference language name in ISO 639-3 |
|
|
250
262
|
| `comment` | `str` | ✓ | Comment from ISO 639-3 |
|
|
251
|
-
| `other_names` | `
|
|
263
|
+
| `other_names` | `list[Name]` | ✓ | Other print and inverted names [2] |
|
|
252
264
|
| `macrolanguage` | `str` | ✓ | Macrolanguage |
|
|
253
265
|
| `retire_reason` | `str` | ✓ | Retirement reason, one of {(C)hange, (D)uplicate, (N)on-existent, (S)plit, (M)erge} |
|
|
254
266
|
| `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} |
|
|
@@ -307,7 +319,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
307
319
|
```python
|
|
308
320
|
>>> import iso639
|
|
309
321
|
>>> iso639.DATA_LAST_UPDATED
|
|
310
|
-
datetime.date(
|
|
322
|
+
datetime.date(2026, 4, 15)
|
|
311
323
|
```
|
|
312
324
|
|
|
313
325
|
* `ALL_LANGUAGES`: The list of all `Language` objects based on the included language code data
|
|
@@ -317,7 +329,7 @@ e.g., [`dataclasses.asdict`](https://docs.python.org/3/library/dataclasses.html#
|
|
|
317
329
|
>>> type(iso639.ALL_LANGUAGES)
|
|
318
330
|
<class 'set'>
|
|
319
331
|
>>> len(iso639.ALL_LANGUAGES)
|
|
320
|
-
|
|
332
|
+
8315
|
|
321
333
|
```
|
|
322
334
|
|
|
323
335
|
## Links
|
|
@@ -132,7 +132,7 @@ def test_invalid_inputs():
|
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
def test_data_last_updated():
|
|
135
|
-
assert DATA_LAST_UPDATED == datetime.date(
|
|
135
|
+
assert DATA_LAST_UPDATED == datetime.date(2026, 4, 15), "Need to update README.md"
|
|
136
136
|
|
|
137
137
|
|
|
138
138
|
def test_all_languages():
|
|
@@ -140,7 +140,7 @@ def test_all_languages():
|
|
|
140
140
|
# Defining `len_all_languages` so that when the assertion fails,
|
|
141
141
|
# the error message is more informative.
|
|
142
142
|
len_all_languages = len(ALL_LANGUAGES)
|
|
143
|
-
assert len_all_languages ==
|
|
143
|
+
assert len_all_languages == 8315, "Need to update README.md"
|
|
144
144
|
lang = list(ALL_LANGUAGES)[0]
|
|
145
145
|
assert type(lang) is Language
|
|
146
146
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3-macrolanguages.tab
RENAMED
|
File without changes
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/iso639/_data/iso-639-3_Retirements.tab
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{python_iso639-2025.11.16 → python_iso639-2026.4.20}/src/python_iso639.egg-info/top_level.txt
RENAMED
|
File without changes
|