annotate scripts/dump_data.py @ 375:369300a7ebd3

Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
author cmlenz
date Mon, 07 Jul 2008 14:49:16 +0000
parents bc22f5aef216
children cd8761c6f1a6
rev   line source
8
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
1 #!/usr/bin/env python
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
2 # -*- coding: utf-8 -*-
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
3 #
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
4 # Copyright (C) 2007 Edgewall Software
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
5 # All rights reserved.
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
6 #
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
7 # This software is licensed as described in the file COPYING, which
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
8 # you should have received as part of this distribution. The terms
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
9 # are also available at http://babel.edgewall.org/wiki/License.
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
10 #
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
11 # This software consists of voluntary contributions made by many
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
12 # individuals. For the exact contribution history, see the revision
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
13 # history and logs, available at http://babel.edgewall.org/log/.
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
14
375
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
15 from optparse import OptionParser
8
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
16 from pprint import pprint
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
17 import sys
9132c9218745 Pull in some supplemental data from the CLDR, for things like the first day of the week.
cmlenz
parents:
diff changeset
18
375
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
19 from babel.localedata import load, LocaleDataDict
33
0740b6d31799 * Import datetime patterns from CLDR.
cmlenz
parents: 8
diff changeset
20
375
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
21
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
22 def main():
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
23 parser = OptionParser(usage='%prog [options] locale [path]')
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
24 parser.add_option('--noinherit', action='store_false', dest='inherit',
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
25 help='do not merge inherited data into locale data')
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
26 parser.add_option('--resolve', action='store_true', dest='resolve',
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
27 help='resolve aliases in locale data')
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
28 parser.set_defaults(inherit=True, resolve=False)
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
29 options, args = parser.parse_args()
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
30 if len(args) not in (1, 2):
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
31 parser.error('incorrect number of arguments')
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
32
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
33 data = load(args[0], merge_inherited=options.inherit)
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
34 if options.resolve:
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
35 data = LocaleDataDict(data)
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
36 if len(args) > 1:
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
37 for key in args[1].split('.'):
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
38 data = data[key]
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
39 pprint(dict(data.items()))
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
40
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
41
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
42 if __name__ == '__main__':
369300a7ebd3 Implement support for aliases in the CLDR data. Closes #68. Also, update to CLDR 1.6, and a much improved `dump_data` script.
cmlenz
parents: 233
diff changeset
43 main()
Copyright (C) 2012-2017 Edgewall Software