Skip to content

Instantly share code, notes, and snippets.

@inky
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inky/10a14ceecb1c41d7c7c8 to your computer and use it in GitHub Desktop.
Save inky/10a14ceecb1c41d7c7c8 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import argparse
import string
import sys
CHARS = ("๐Ÿ‡ฆ", "๐Ÿ‡ง", "๐Ÿ‡จ", "๐Ÿ‡ฉ", "๐Ÿ‡ช", "๐Ÿ‡ซ", "๐Ÿ‡ฌ", "๐Ÿ‡ญ", "๐Ÿ‡ฎ", "๐Ÿ‡ฏ", "๐Ÿ‡ฐ", "๐Ÿ‡ฑ", "๐Ÿ‡ฒ",
"๐Ÿ‡ณ", "๐Ÿ‡ด", "๐Ÿ‡ต", "๐Ÿ‡ถ", "๐Ÿ‡ท", "๐Ÿ‡ธ", "๐Ÿ‡น", "๐Ÿ‡บ", "๐Ÿ‡ป", "๐Ÿ‡ผ", "๐Ÿ‡ฝ", "๐Ÿ‡พ", "๐Ÿ‡ฟ")
OFFSET = ord('A')
def flag(code):
"""
Return the Unicode flag emoji for a two-letter country code.
"""
if len(code) != 2:
raise ValueError('country code must be two letters long')
if not all(c in string.ascii_letters for c in code):
raise ValueError('country code must only contain letters A-Z')
return ''.join(CHARS[ord(c) - OFFSET] for c in code.upper())
def main():
parser = argparse.ArgumentParser()
parser.add_argument('country_code', nargs='*',
help='a two-letter country code (ISO 3166-1)')
parser.add_argument('-s', '--sep', help='separator')
args = parser.parse_args()
if args.country_code:
flags = (flag(code) for code in args.country_code)
else:
parser.print_help()
return 1
sep = ' ' if args.sep is None else args.sep
print(sep.join(flags))
if __name__ == '__main__':
sys.exit(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment