A package for determining what version a Unicode codepoint was added to the standard
Project description
unicode_age
A package for determining what version a Unicode codepoint was added to the standard
This package's version X.Y.Z
tracks Unicode version X.Y
, with Z
reserved as
a release counter for updates unrelated to the Unicode version.
Example usage
>>> import unicode_age
>>> codept = ord("\N{SNAKE}") # added in Unicode 6.0
>>> print(unicode_age.version(codept))
(6, 0)
Rationale
Before writing this module, I was parsing DerivedAge.txt
into a list[int | None]
,
but this approach consumes an atrocious amount of memory (10 MB) for
what it is. Using the representation here consumes three orders of magnitude
less memory (~30 KB), and it was kinda fun to write besides :)
Updating
The script makeunicode_age.py
consumes
DerivedAge.txt
and
produces the header file that holds the backing data for this module and fills
in the number of spans in the Cython template. To make a build for another
version of the Unicode Character Database, you should be able to replace
DerivedAge.txt
and re-run this script.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for unicode_age-15.0.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea36ca6bed9fb8414a78e6937365884c188c5f4dcb80b24366c46c94169e3dd3 |
|
MD5 | 609e92eff3f29a4742c1e629ed9a3733 |
|
BLAKE2b-256 | 3b94610960604a2b8321cce3e6ccfa2be229c9541821d7e9184c7822cc509ccf |
Hashes for unicode_age-15.0.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76a951129fed7172bead9a54ccee376fe8a3088b312bd345dd5daa9c6127a4e5 |
|
MD5 | a8a75018dc7732190b2581791ac059b8 |
|
BLAKE2b-256 | 419aadc5176d3f14988145ac49d24b8d41bbad5b5e2cebcf0b6b220ded1c1b0b |
Hashes for unicode_age-15.0.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07523da77ec5de1372839c7a2813ff15b15c90a40f41c360fadeadaa83268dba |
|
MD5 | 3c1f755ecbab5a806afbdbb5ce9c9f65 |
|
BLAKE2b-256 | ea3825c0a5661734971ce2d3138fdffd841437b7d9226ea6d96be4ae9a1fd2c9 |
Hashes for unicode_age-15.0.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f7c070be94a97daa72309d30c5e73db0b4c09d6fe0e405089e7dcceb7e1468 |
|
MD5 | b7dce2e6a12563418d077aaa6433cd17 |
|
BLAKE2b-256 | 752e21dcd68f15396b4cb5f6270a14436b235959ecb38785bd12d9a0a9a01948 |
Hashes for unicode_age-15.0.0-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a719c673d8feaadbefb3b0ada8e551d77a6f57522b62521770789113249993a2 |
|
MD5 | e29180c69be14e7b0456a296d277e241 |
|
BLAKE2b-256 | 67fed6dcb8529a1a95660e3bc10667c54fbb4033c594aef9205002cfd14151b3 |
Hashes for unicode_age-15.0.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcf1e9127ffce6ab82cbcb028d411411c0f66825a51306320d38f8ff7336d863 |
|
MD5 | 13a4105b5b044df1a02276f00d0b183b |
|
BLAKE2b-256 | 7d3e75819830e47ec8bd9c3fbd667c8056507fc4c205235703557a3a0cfa06c1 |
Hashes for unicode_age-15.0.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28dba058fbe05f071963efa681f4ddcd22531e89633f52743ba2af241e2c32a2 |
|
MD5 | 37bedf76ec04f8234dba7b5f3290d5ab |
|
BLAKE2b-256 | 70f18d4e45021c915cb4e24dc8b6e5e2fc99cee088db4d8cbb8247ac8af74412 |
Hashes for unicode_age-15.0.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6824f20427957a5733fdfc87ee392255e7841f33fadb104614363579d930174b |
|
MD5 | 17e62f1ff22d11c9d50d9ef033b7c811 |
|
BLAKE2b-256 | 3103c89baf4e0f2f42003782bb3fe81e7d71470339b69f004bf9a0bfad43b1bd |
Hashes for unicode_age-15.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 846da1c0de40aae9103be23aff74854aecae93ed509054e9536069553ee69e72 |
|
MD5 | 621ac9483fb2fe2a53248a3602bbac95 |
|
BLAKE2b-256 | 6148e9a50809e0175a5528c365549a855d367448153a6e13c441a7346c2a74ba |
Hashes for unicode_age-15.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f08b85cbe0998805cd2d99ad0bab079a5c808c9200aa02336a2e406050fe61b |
|
MD5 | b8fc3795ce5545f593405686c7cefcc5 |
|
BLAKE2b-256 | 75643fe2b575817d3ab87cd5d8fb569e2436416db73b805bd0389167683c2baa |
Hashes for unicode_age-15.0.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c36a58cf7067bf858e5433606f9912168e64a768005670fdc0ce717c1a7204e |
|
MD5 | 79514b5fba2655aab6b1ee7b301362c5 |
|
BLAKE2b-256 | 207fd32c8a5680ab7ac837952c4c6ab25ef667dea3a48dd31dae5331992c4043 |
Hashes for unicode_age-15.0.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3afef16e7713ee2cb4d45880d36357b420521e6d1d22ab6b36efb1a4f0c69b6 |
|
MD5 | e8c5f4c3d68353dc7ebf5e48715bf43f |
|
BLAKE2b-256 | 06a2850d2f7f1d90586ca7bd2c79dbc123a7202b15616fb39bae01b7aa327b86 |
Hashes for unicode_age-15.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bcc2cb76467a5d685c07d8ead0cd398f3010f4d84f882ca748de00185aaec73 |
|
MD5 | 65322b49ff76929f00985e414d2f3d5a |
|
BLAKE2b-256 | 98e40955ea6fa5962351433094937f187a28b821bb74fe770c0b7f05dbaaa384 |
Hashes for unicode_age-15.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ca4659d8f23554456acf2f2b8bed429aa02e37c47119c1134ef215f9f1166fc |
|
MD5 | 4233218749dd3068cc108cbe238e40a9 |
|
BLAKE2b-256 | 4dccdb7a8d57b262a57ef4e296818c27a0d891f1c1f7c4430107153e0d3212d3 |
Hashes for unicode_age-15.0.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84bc72786992a4b783764a8f8c0b3e24d456d888b05db37c455ebd56e52ec717 |
|
MD5 | adc5c8ba04b2e11febcd0cfac1cc8aa8 |
|
BLAKE2b-256 | 67a34adea0c07d154a556b570f2a8594dc2b1df5600530310aabbc06a4ece46b |
Hashes for unicode_age-15.0.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64f2f94f5af25f5863cd5acb0dedcb7b69a4b45a17004feac3777096c939dd86 |
|
MD5 | 2fb8804f39671d03a6b4446bc263d7d8 |
|
BLAKE2b-256 | 147677a97795fe52d07a54db3c983077416a40865922d2f1dbdab9a84f53ac2f |
Hashes for unicode_age-15.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06baa8162f0faf7e275f81f3594ab3291c7a85b9c1354b13d4c19ba694f6439c |
|
MD5 | 01a93666f5a86c79f208fc6fbc7641f6 |
|
BLAKE2b-256 | ad6062b6c25425be0e09fb298e8cfd85e9fa0791cbbe071d8aa2293994b509e0 |
Hashes for unicode_age-15.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 893e00556cb51ac4c3be86f90631155b42393cc5f9acba64d14efa7061c0abd1 |
|
MD5 | 6f7d23473d5a23386fe73541b91dc69f |
|
BLAKE2b-256 | cdac57d3117dad38748abf89e91d46ad1c7fbeec65bfce0b3266a79ebacda9c0 |
Hashes for unicode_age-15.0.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa9723cbb2e3e02427f1c49cec438dc8f6192a31b4d8e3842aa952e1c4836d3e |
|
MD5 | 3133af3ae56388aba03fd8fe3748aef5 |
|
BLAKE2b-256 | ccddd928bcce80c04fcb34ec64091d01c2c20151f8276f8ed6b12869acbdab90 |
Hashes for unicode_age-15.0.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e490df8f5782223ab2543cf3e8e9e6bdf9c72a0fe95f806cea5eec7cfa20e75 |
|
MD5 | ffae9bb61417f265fc919d68e2307d5e |
|
BLAKE2b-256 | 6353654833d3feca53e2bcf3a3c72ca0217b6994479a7456b5adcb8785775864 |
Hashes for unicode_age-15.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00f057b78ddc36767d90fbb355a31d897669c937b7bd9ed39be8a0b7ea3ac732 |
|
MD5 | 9b1ebe3a32675e68a5a2e5761a8db3dc |
|
BLAKE2b-256 | cbc4a3c117ba7354ec04f1f067444dc35a9ff00098165667c36fb5f79f7df552 |
Hashes for unicode_age-15.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b268920c8f895bbb663f0de0b89e9b5755724ac03007a112332ff2c26e9c3cd |
|
MD5 | 9ba326129dd66de42e23cd7629fcd6bc |
|
BLAKE2b-256 | c07b391452b543025c6804d01ba6aea634baf984961df22b91309fcae631c338 |
Hashes for unicode_age-15.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2147f690435fde931f115c48755cd70ff3bc343ec36c576b439c28aefae0426 |
|
MD5 | 9b7f4ae246bb9170e053715fbd8eb00c |
|
BLAKE2b-256 | d574abc62237e7cbac724fab5ebacc51eda879d43f3a6f9c882d3ede46d51c1d |
Hashes for unicode_age-15.0.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 313a31b51de6c0ad3b008d62a00bc549a30df494a8d23a3bad23e4295a00b1e2 |
|
MD5 | 12061427394c1333faef21b60675dab6 |
|
BLAKE2b-256 | a6c6d1c9f41364c80a811d49254231a8306f5dd90eaa5086e3c893f19d6055dd |
Hashes for unicode_age-15.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0a2c89f73f783e7b7154f3ad219a2fdd5f598fce2d4daab33c28974c548c2b9 |
|
MD5 | 29da2132dfac1492c98bdebd459c7494 |
|
BLAKE2b-256 | 4f1329fcbd76bef2f1ec685e3ca0dfead642e8a9243ea769f1d8d2239f289501 |
Hashes for unicode_age-15.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e1124355e9251145b12c5097367a3d7f7b4681940171a9d130bdb90e18f3ddf |
|
MD5 | 62709a3140a6328eb88feef7a8fc2144 |
|
BLAKE2b-256 | 07829683afde58f585b38d466762ecc322be3a15be8f04c326540580a0a038d0 |