annotate bio/flags.py @ 861:e4f8d87c3d30

Configure Markdown logger to reduce noise in logs. Markdown is logging at the INFO level whenever it loads an extension. This looks like it has been fixed in master at GitHub. But until then we will explicitly configure the MARKDOWN logger to log at WARNING or higher.
author Brian Neal <bgneal@gmail.com>
date Mon, 01 Dec 2014 18:36:27 -0600
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]))