Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from string import ascii_uppercase as uppercase
- from unicodedata import lookup
- import argparse
- from iso3166 import countries_by_alpha2 as alpha2
- from iso3166 import countries_by_name as by_name
- # pip install iso3166
- # or use pycountry
- LETTER = 'REGIONAL INDICATOR SYMBOL LETTER {}'
- TRANSLATION = {c: lookup(LETTER.format(c)) for c in uppercase}
- def make_flag(code):
- first, second = code.upper()
- return TRANSLATION[first] + TRANSLATION[second]
- def make_countries_dict():
- return {code : make_flag(code) for code in alpha2.keys()}
- def print_all():
- flags = make_countries_dict()
- print(' '.join(flags.values()))
- if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='This programm prints unicode flag emoticons to your console')
- parser.add_argument('-a', action='store_true', help='print all flags')
- parser.add_argument('-l', action='store_true', help='list all country codes')
- parser.add_argument('--country', action='store', help='Print a flag by given country name')
- parser.add_argument('--alpha2', action='store', help='Print a flag by given alpha2 code')
- args = parser.parse_args()
- if args.a:
- print_all()
- elif args.l:
- for country in by_name.values():
- print(country)
- elif args.alpha2:
- if args.alpha2.upper() not in alpha2:
- print(f'{args.alpha2} does not exist', file=sys.stderr)
- sys.exit(1)
- print(make_flag(args.alpha2.upper()))
- elif args.country:
- country = by_name[args.country.upper()]
- print(make_flag(country.alpha2))
- else:
- parser.print_help()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement