Moved bulky data, particularly language names, into a separate language_data package. In situations where the data isn't needed, langcodes becomes a smaller, pure-Python package with no dependencies.
Language codes where the language segment is more than 4 letters no longer parse: Language.get('nonsense') now returns an error.
Added a method for checking the validity of a language code.
Added methods for estimating language population.
Updated to CLDR 38.1, which includes differences in language matching.
Tested on Python 3.6 through 3.9 using tox; no longer tested on Python 3.5.
Changes:
language_data
package. In situations where the data isn't needed,langcodes
becomes a smaller, pure-Python package with no dependencies.