Mercurial > public > sg101
annotate bio/flags.py @ 989:2908859c2fe4
Smilies now use relative links.
This is for upcoming switch to SSL. Currently we do not need absolute URLs for
smilies. If this changes we can add it later.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Thu, 29 Oct 2015 20:54:34 -0500 |
parents | 89b240fe9297 |
children |
rev | line source |
---|---|
bgneal@609 | 1 """ |
bgneal@609 | 2 This module contains country flag data & functions. |
bgneal@609 | 3 |
bgneal@609 | 4 """ |
bgneal@679 | 5 import json |
bgneal@609 | 6 import os.path |
bgneal@609 | 7 import locale |
bgneal@609 | 8 import logging |
bgneal@609 | 9 |
bgneal@609 | 10 |
bgneal@609 | 11 # Read flag data from external JSON file: |
bgneal@609 | 12 |
bgneal@609 | 13 FLAG_DATA = {} |
bgneal@609 | 14 |
bgneal@609 | 15 datafile = os.path.join(os.path.split(__file__)[0], 'flag_data.json') |
bgneal@609 | 16 |
bgneal@609 | 17 try: |
bgneal@609 | 18 with open(datafile, 'r') as fp: |
bgneal@609 | 19 FLAG_DATA = json.load(fp, encoding='utf-8') |
bgneal@609 | 20 except IOError: |
bgneal@609 | 21 FLAG_DATA = {} |
bgneal@609 | 22 logging.error("Could not load flag_data.json") |
bgneal@609 | 23 |
bgneal@609 | 24 # Build a choices list for use with Django models, etc. |
bgneal@609 | 25 # The locale is set in order to sort the place names correctly: |
bgneal@609 | 26 |
bgneal@609 | 27 locale.setlocale(locale.LC_ALL, '') |
bgneal@609 | 28 |
bgneal@609 | 29 FLAG_CHOICES = sorted(FLAG_DATA.items(), |
bgneal@609 | 30 cmp=lambda lhs, rhs: locale.strcoll(lhs[1], rhs[1])) |