Flag emoji for Python.
Converts flag emoji to ASCII and other way round.
This is based on http://schinckel.net/2015/10/29/unicode-flags-in-python/ by schinckel
All the flag emoji are actually composed of two unicode letters. These are the 26 regional indicator symbols.
Alone they look like this:
š¦ š§ šØ š© šŖ š« š¬ š š® šÆ š° š± š² š³ š“ šµ š¶ š· šø š¹ šŗ š» š¼ š½ š¾ šæ
If you pair them up according to ISO 3166 some browsers and phones will display a flag.
For example TW is Taiwan: š¹ + š¼ = š¹š¼
So, to encode an ASCII code like :TW:
to š¹š¼, we just need to convert the ASCII T and W to the corresponding regional indicator symbols š¹ and š¼.
To reverse it, we translate the regional indicator symbols back to ASCII letters.
>>> import flag
>>> flag.flag("IL")
'š®š±'
>>> flag.flag("GBENG")
'š“ó §ó ¢ó „ó ®ó §ó æ'
>>> flag.flagize("Flag of Israel :IL:")
'Flag of Israel š®š±'
>>> flag.dflagize("Flag of Israel š®š±")
'Flag of Israel :IL:'
>>> flag.flagize("England :gb-eng: is part of the UK :GB:", subregions=True)
'England š“ó §ó ¢ó „ó ®ó §ó æ is part of the UK š¬š§'
>>> flag.dflagize("England š“ó §ó ¢ó „ó ®ó §ó æ is part of the UK š¬š§", subregions=True)
'England :gb-eng: is part of the UK :GB:'
>>> my_flags = flag.Flag(only_supported=True, allow_subregions=True)
>>> my_flags.flagize("Convert actual flags like :US: but not unsupported ones like :XX:")
'Convert actual flags like šŗšø but not unsupported ones like :XX:'
pip install emoji-country-flag
See: https://pypi.org/project/emoji-country-flag/
Python 3.10 or higher is required for the latest release. The last release for Python 3.7 to 3.9 was v1.3.2. The last release for Python 2.7, 3.4 and 3.5 was v1.2.4.
Documentation at https://flag.readthedocs.io