Use simpler data structures in cldr2qtimezone.py
Use tuples for the fixed data. The numbering of rows in the data tables isn't part of any public API, so we can change it freely; it is thus unnecessary, as we can just enumerate a tuple of the data values to generate sequential indices on the fly. (Updates to the data shall no longer need to renumber in order to insert entries.) Restore ordering of the data tables, and remove wanton spacing from inside parens, in the process. Change-Id: I59956cfb6191fe729300b57070671b7e66bd0379 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
7993cada39
commit
2f19a3053e
@ -89,169 +89,171 @@ class ByteArrayData:
|
|||||||
self.data += lst
|
self.data += lst
|
||||||
return index
|
return index
|
||||||
|
|
||||||
# List of currently known Windows IDs. If script fails on missing ID plase add it here
|
# List of currently known Windows IDs.
|
||||||
# Not public so may be safely changed.
|
# If this script reports missing IDs, please add them here.
|
||||||
# Windows Key : [ Windows Id, Offset Seconds ]
|
# Look up the offset using (google and) timeanddate.com.
|
||||||
windowsIdList = {
|
# Not public so may safely be changed. Please keep in alphabetic order by ID.
|
||||||
1 : [ u'Afghanistan Standard Time', 16200 ],
|
# ( Windows Id, Offset Seconds )
|
||||||
2 : [ u'Alaskan Standard Time', -32400 ],
|
windowsIdList = (
|
||||||
3 : [ u'Arab Standard Time', 10800 ],
|
(u'Afghanistan Standard Time', 16200),
|
||||||
4 : [ u'Arabian Standard Time', 14400 ],
|
(u'Alaskan Standard Time', -32400),
|
||||||
5 : [ u'Arabic Standard Time', 10800 ],
|
(u'Arab Standard Time', 10800),
|
||||||
6 : [ u'Argentina Standard Time', -10800 ],
|
(u'Arabian Standard Time', 14400),
|
||||||
7 : [ u'Atlantic Standard Time', -14400 ],
|
(u'Arabic Standard Time', 10800),
|
||||||
8 : [ u'AUS Central Standard Time', 34200 ],
|
(u'Argentina Standard Time', -10800),
|
||||||
9 : [ u'AUS Eastern Standard Time', 36000 ],
|
(u'Atlantic Standard Time', -14400),
|
||||||
10 : [ u'Azerbaijan Standard Time', 14400 ],
|
(u'AUS Central Standard Time', 34200),
|
||||||
11 : [ u'Azores Standard Time', -3600 ],
|
(u'AUS Eastern Standard Time', 36000),
|
||||||
12 : [ u'Bahia Standard Time', -10800 ],
|
(u'Azerbaijan Standard Time', 14400),
|
||||||
13 : [ u'Bangladesh Standard Time', 21600 ],
|
(u'Azores Standard Time', -3600),
|
||||||
14 : [ u'Belarus Standard Time', 10800 ],
|
(u'Bahia Standard Time', -10800),
|
||||||
15 : [ u'Canada Central Standard Time', -21600 ],
|
(u'Bangladesh Standard Time', 21600),
|
||||||
16 : [ u'Cape Verde Standard Time', -3600 ],
|
(u'Belarus Standard Time', 10800),
|
||||||
17 : [ u'Caucasus Standard Time', 14400 ],
|
(u'Canada Central Standard Time', -21600),
|
||||||
18 : [ u'Cen. Australia Standard Time', 34200 ],
|
(u'Cape Verde Standard Time', -3600),
|
||||||
19 : [ u'Central America Standard Time', -21600 ],
|
(u'Caucasus Standard Time', 14400),
|
||||||
20 : [ u'Central Asia Standard Time', 21600 ],
|
(u'Cen. Australia Standard Time', 34200),
|
||||||
21 : [ u'Central Brazilian Standard Time', -14400 ],
|
(u'Central America Standard Time', -21600),
|
||||||
22 : [ u'Central Europe Standard Time', 3600 ],
|
(u'Central Asia Standard Time', 21600),
|
||||||
23 : [ u'Central European Standard Time', 3600 ],
|
(u'Central Brazilian Standard Time', -14400),
|
||||||
24 : [ u'Central Pacific Standard Time', 39600 ],
|
(u'Central Europe Standard Time', 3600),
|
||||||
25 : [ u'Central Standard Time (Mexico)', -21600 ],
|
(u'Central European Standard Time', 3600),
|
||||||
26 : [ u'Central Standard Time', -21600 ],
|
(u'Central Pacific Standard Time', 39600),
|
||||||
27 : [ u'China Standard Time', 28800 ],
|
(u'Central Standard Time (Mexico)', -21600),
|
||||||
28 : [ u'Dateline Standard Time', -43200 ],
|
(u'Central Standard Time', -21600),
|
||||||
29 : [ u'E. Africa Standard Time', 10800 ],
|
(u'China Standard Time', 28800),
|
||||||
30 : [ u'E. Australia Standard Time', 36000 ],
|
(u'Dateline Standard Time', -43200),
|
||||||
31 : [ u'E. South America Standard Time', -10800 ],
|
(u'E. Africa Standard Time', 10800),
|
||||||
32 : [ u'Eastern Standard Time', -18000 ],
|
(u'E. Australia Standard Time', 36000),
|
||||||
33 : [ u'Eastern Standard Time (Mexico)', -18000 ],
|
(u'E. Europe Standard Time', 7200),
|
||||||
34 : [ u'Egypt Standard Time', 7200 ],
|
(u'E. South America Standard Time', -10800),
|
||||||
35 : [ u'Ekaterinburg Standard Time', 18000 ],
|
(u'Eastern Standard Time', -18000),
|
||||||
36 : [ u'Fiji Standard Time', 43200 ],
|
(u'Eastern Standard Time (Mexico)', -18000),
|
||||||
37 : [ u'FLE Standard Time', 7200 ],
|
(u'Egypt Standard Time', 7200),
|
||||||
38 : [ u'Georgian Standard Time', 14400 ],
|
(u'Ekaterinburg Standard Time', 18000),
|
||||||
39 : [ u'GMT Standard Time', 0 ],
|
(u'Fiji Standard Time', 43200),
|
||||||
40 : [ u'Greenland Standard Time', -10800 ],
|
(u'FLE Standard Time', 7200),
|
||||||
41 : [ u'Greenwich Standard Time', 0 ],
|
(u'Georgian Standard Time', 14400),
|
||||||
42 : [ u'GTB Standard Time', 7200 ],
|
(u'GMT Standard Time', 0),
|
||||||
43 : [ u'Hawaiian Standard Time', -36000 ],
|
(u'Greenland Standard Time', -10800),
|
||||||
44 : [ u'India Standard Time', 19800 ],
|
(u'Greenwich Standard Time', 0),
|
||||||
45 : [ u'Iran Standard Time', 12600 ],
|
(u'GTB Standard Time', 7200),
|
||||||
46 : [ u'Israel Standard Time', 7200 ],
|
(u'Hawaiian Standard Time', -36000),
|
||||||
47 : [ u'Jordan Standard Time', 7200 ],
|
(u'India Standard Time', 19800),
|
||||||
48 : [ u'Kaliningrad Standard Time', 7200 ],
|
(u'Iran Standard Time', 12600),
|
||||||
49 : [ u'Korea Standard Time', 32400 ],
|
(u'Israel Standard Time', 7200),
|
||||||
50 : [ u'Libya Standard Time', 7200 ],
|
(u'Jordan Standard Time', 7200),
|
||||||
51 : [ u'Line Islands Standard Time', 50400 ],
|
(u'Kaliningrad Standard Time', 7200),
|
||||||
52 : [ u'Magadan Standard Time', 36000 ],
|
(u'Korea Standard Time', 32400),
|
||||||
53 : [ u'Mauritius Standard Time', 14400 ],
|
(u'Libya Standard Time', 7200),
|
||||||
54 : [ u'Middle East Standard Time', 7200 ],
|
(u'Line Islands Standard Time', 50400),
|
||||||
55 : [ u'Montevideo Standard Time', -10800 ],
|
(u'Magadan Standard Time', 36000),
|
||||||
56 : [ u'Morocco Standard Time', 0 ],
|
(u'Mauritius Standard Time', 14400),
|
||||||
57 : [ u'Mountain Standard Time (Mexico)', -25200 ],
|
(u'Middle East Standard Time', 7200),
|
||||||
58 : [ u'Mountain Standard Time', -25200 ],
|
(u'Montevideo Standard Time', -10800),
|
||||||
59 : [ u'Myanmar Standard Time', 23400 ],
|
(u'Morocco Standard Time', 0),
|
||||||
60 : [ u'N. Central Asia Standard Time', 21600 ],
|
(u'Mountain Standard Time (Mexico)', -25200),
|
||||||
61 : [ u'Namibia Standard Time', 3600 ],
|
(u'Mountain Standard Time', -25200),
|
||||||
62 : [ u'Nepal Standard Time', 20700 ],
|
(u'Myanmar Standard Time', 23400),
|
||||||
63 : [ u'New Zealand Standard Time', 43200 ],
|
(u'N. Central Asia Standard Time', 21600),
|
||||||
64 : [ u'Newfoundland Standard Time', -12600 ],
|
(u'Namibia Standard Time', 3600),
|
||||||
65 : [ u'North Asia East Standard Time', 28800 ],
|
(u'Nepal Standard Time', 20700),
|
||||||
66 : [ u'North Asia Standard Time', 25200 ],
|
(u'New Zealand Standard Time', 43200),
|
||||||
67 : [ u'Pacific SA Standard Time', -10800 ],
|
(u'Newfoundland Standard Time', -12600),
|
||||||
68 : [ u'E. Europe Standard Time', 7200 ],
|
(u'North Asia East Standard Time', 28800),
|
||||||
69 : [ u'Pacific Standard Time', -28800 ],
|
(u'North Asia Standard Time', 25200),
|
||||||
70 : [ u'Pakistan Standard Time', 18000 ],
|
(u'North Korea Standard Time', 30600),
|
||||||
71 : [ u'Paraguay Standard Time', -14400 ],
|
(u'Pacific SA Standard Time', -10800),
|
||||||
72 : [ u'Romance Standard Time', 3600 ],
|
(u'Pacific Standard Time', -28800),
|
||||||
73 : [ u'Russia Time Zone 3', 14400 ],
|
(u'Pakistan Standard Time', 18000),
|
||||||
74 : [ u'Russia Time Zone 10', 39600 ],
|
(u'Paraguay Standard Time', -14400),
|
||||||
75 : [ u'Russia Time Zone 11', 43200 ],
|
(u'Romance Standard Time', 3600),
|
||||||
76 : [ u'Russian Standard Time', 10800 ],
|
(u'Russia Time Zone 3', 14400),
|
||||||
77 : [ u'SA Eastern Standard Time', -10800 ],
|
(u'Russia Time Zone 10', 39600),
|
||||||
78 : [ u'SA Pacific Standard Time', -18000 ],
|
(u'Russia Time Zone 11', 43200),
|
||||||
79 : [ u'SA Western Standard Time', -14400 ],
|
(u'Russian Standard Time', 10800),
|
||||||
80 : [ u'Samoa Standard Time', 46800 ],
|
(u'SA Eastern Standard Time', -10800),
|
||||||
81 : [ u'SE Asia Standard Time', 25200 ],
|
(u'SA Pacific Standard Time', -18000),
|
||||||
82 : [ u'Singapore Standard Time', 28800 ],
|
(u'SA Western Standard Time', -14400),
|
||||||
83 : [ u'South Africa Standard Time', 7200 ],
|
(u'Samoa Standard Time', 46800),
|
||||||
84 : [ u'Sri Lanka Standard Time', 19800 ],
|
(u'SE Asia Standard Time', 25200),
|
||||||
85 : [ u'Syria Standard Time', 7200 ],
|
(u'Singapore Standard Time', 28800),
|
||||||
86 : [ u'Taipei Standard Time', 28800 ],
|
(u'South Africa Standard Time', 7200),
|
||||||
87 : [ u'Tasmania Standard Time', 36000 ],
|
(u'Sri Lanka Standard Time', 19800),
|
||||||
88 : [ u'Tokyo Standard Time', 32400 ],
|
(u'Syria Standard Time', 7200),
|
||||||
89 : [ u'Tonga Standard Time', 46800 ],
|
(u'Taipei Standard Time', 28800),
|
||||||
90 : [ u'Turkey Standard Time', 7200 ],
|
(u'Tasmania Standard Time', 36000),
|
||||||
91 : [ u'Ulaanbaatar Standard Time', 28800 ],
|
(u'Tokyo Standard Time', 32400),
|
||||||
92 : [ u'US Eastern Standard Time', -18000 ],
|
(u'Tonga Standard Time', 46800),
|
||||||
93 : [ u'US Mountain Standard Time', -25200 ],
|
(u'Turkey Standard Time', 7200),
|
||||||
94 : [ u'UTC-02', -7200 ],
|
(u'Ulaanbaatar Standard Time', 28800),
|
||||||
95 : [ u'UTC-11', -39600 ],
|
(u'US Eastern Standard Time', -18000),
|
||||||
96 : [ u'UTC', 0 ],
|
(u'US Mountain Standard Time', -25200),
|
||||||
97 : [ u'UTC+12', 43200 ],
|
(u'UTC-11', -39600),
|
||||||
98 : [ u'Venezuela Standard Time', -16200 ],
|
(u'UTC-02', -7200),
|
||||||
99 : [ u'Vladivostok Standard Time', 36000 ],
|
(u'UTC', 0),
|
||||||
100: [ u'W. Australia Standard Time', 28800 ],
|
(u'UTC+12', 43200),
|
||||||
101: [ u'W. Central Africa Standard Time', 3600 ],
|
(u'Venezuela Standard Time', -16200),
|
||||||
102: [ u'W. Europe Standard Time', 3600 ],
|
(u'Vladivostok Standard Time', 36000),
|
||||||
103: [ u'West Asia Standard Time', 18000 ],
|
(u'W. Australia Standard Time', 28800),
|
||||||
104: [ u'West Pacific Standard Time', 36000 ],
|
(u'W. Central Africa Standard Time', 3600),
|
||||||
105: [ u'Yakutsk Standard Time', 32400 ],
|
(u'W. Europe Standard Time', 3600),
|
||||||
106: [ u'North Korea Standard Time', 30600 ]
|
(u'West Asia Standard Time', 18000),
|
||||||
}
|
(u'West Pacific Standard Time', 36000),
|
||||||
|
(u'Yakutsk Standard Time', 32400),
|
||||||
|
)
|
||||||
|
|
||||||
def windowsIdToKey(windowsId):
|
def windowsIdToKey(windowsId):
|
||||||
for windowsKey in windowsIdList:
|
for index, pair in enumerate(windowsIdList):
|
||||||
if windowsIdList[windowsKey][0] == windowsId:
|
if pair[0] == windowsId:
|
||||||
return windowsKey
|
return index + 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
# List of standard UTC IDs to use. Not public so may be safely changed.
|
# List of standard UTC IDs to use. Not public so may be safely changed.
|
||||||
# Do not remove ID's as is part of API/behavior guarantee
|
# Do not remove IDs, as each entry is part of the API/behavior guarantee.
|
||||||
# Key : [ UTC Id, Offset Seconds ]
|
# ( UTC Id, Offset Seconds )
|
||||||
utcIdList = {
|
utcIdList = (
|
||||||
0 : [ u'UTC', 0 ], # Goes first so is default
|
(u'UTC', 0), # Goes first so is default
|
||||||
1 : [ u'UTC-14:00', -50400 ],
|
(u'UTC-14:00', -50400),
|
||||||
2 : [ u'UTC-13:00', -46800 ],
|
(u'UTC-13:00', -46800),
|
||||||
3 : [ u'UTC-12:00', -43200 ],
|
(u'UTC-12:00', -43200),
|
||||||
4 : [ u'UTC-11:00', -39600 ],
|
(u'UTC-11:00', -39600),
|
||||||
5 : [ u'UTC-10:00', -36000 ],
|
(u'UTC-10:00', -36000),
|
||||||
6 : [ u'UTC-09:00', -32400 ],
|
(u'UTC-09:00', -32400),
|
||||||
7 : [ u'UTC-08:00', -28800 ],
|
(u'UTC-08:00', -28800),
|
||||||
8 : [ u'UTC-07:00', -25200 ],
|
(u'UTC-07:00', -25200),
|
||||||
9 : [ u'UTC-06:00', -21600 ],
|
(u'UTC-06:00', -21600),
|
||||||
10 : [ u'UTC-05:00', -18000 ],
|
(u'UTC-05:00', -18000),
|
||||||
11 : [ u'UTC-04:30', -16200 ],
|
(u'UTC-04:30', -16200),
|
||||||
12 : [ u'UTC-04:00', -14400 ],
|
(u'UTC-04:00', -14400),
|
||||||
13 : [ u'UTC-03:30', -12600 ],
|
(u'UTC-03:30', -12600),
|
||||||
14 : [ u'UTC-03:00', -10800 ],
|
(u'UTC-03:00', -10800),
|
||||||
15 : [ u'UTC-02:00', -7200 ],
|
(u'UTC-02:00', -7200),
|
||||||
16 : [ u'UTC-01:00', -3600 ],
|
(u'UTC-01:00', -3600),
|
||||||
17 : [ u'UTC-00:00', 0 ],
|
(u'UTC-00:00', 0),
|
||||||
18 : [ u'UTC+00:00', 0 ],
|
(u'UTC+00:00', 0),
|
||||||
19 : [ u'UTC+01:00', 3600 ],
|
(u'UTC+01:00', 3600),
|
||||||
20 : [ u'UTC+02:00', 7200 ],
|
(u'UTC+02:00', 7200),
|
||||||
21 : [ u'UTC+03:00', 10800 ],
|
(u'UTC+03:00', 10800),
|
||||||
22 : [ u'UTC+03:30', 12600 ],
|
(u'UTC+03:30', 12600),
|
||||||
23 : [ u'UTC+04:00', 14400 ],
|
(u'UTC+04:00', 14400),
|
||||||
24 : [ u'UTC+04:30', 16200 ],
|
(u'UTC+04:30', 16200),
|
||||||
25 : [ u'UTC+05:00', 18000 ],
|
(u'UTC+05:00', 18000),
|
||||||
26 : [ u'UTC+05:30', 19800 ],
|
(u'UTC+05:30', 19800),
|
||||||
27 : [ u'UTC+05:45', 20700 ],
|
(u'UTC+05:45', 20700),
|
||||||
28 : [ u'UTC+06:00', 21600 ],
|
(u'UTC+06:00', 21600),
|
||||||
29 : [ u'UTC+06:30', 23400 ],
|
(u'UTC+06:30', 23400),
|
||||||
30 : [ u'UTC+07:00', 25200 ],
|
(u'UTC+07:00', 25200),
|
||||||
31 : [ u'UTC+08:00', 28800 ],
|
(u'UTC+08:00', 28800),
|
||||||
32 : [ u'UTC+09:00', 32400 ],
|
(u'UTC+08:30', 30600),
|
||||||
33 : [ u'UTC+09:30', 34200 ],
|
(u'UTC+09:00', 32400),
|
||||||
34 : [ u'UTC+10:00', 36000 ],
|
(u'UTC+09:30', 34200),
|
||||||
35 : [ u'UTC+11:00', 39600 ],
|
(u'UTC+10:00', 36000),
|
||||||
36 : [ u'UTC+12:00', 43200 ],
|
(u'UTC+11:00', 39600),
|
||||||
37 : [ u'UTC+13:00', 46800 ],
|
(u'UTC+12:00', 43200),
|
||||||
38 : [ u'UTC+14:00', 50400 ],
|
(u'UTC+13:00', 46800),
|
||||||
39 : [ u'UTC+08:30', 30600 ]
|
(u'UTC+14:00', 50400),
|
||||||
}
|
)
|
||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
print "Usage: cldr2qtimezone.py <path to cldr core/common> <path to qtbase>"
|
print "Usage: cldr2qtimezone.py <path to cldr core/common> <path to qtbase>"
|
||||||
@ -370,13 +372,10 @@ print "Done Zone Data"
|
|||||||
# Write Windows ID key table
|
# Write Windows ID key table
|
||||||
newTempFile.write("// Windows ID Key, Windows ID Index, IANA ID Index, UTC Offset\n")
|
newTempFile.write("// Windows ID Key, Windows ID Index, IANA ID Index, UTC Offset\n")
|
||||||
newTempFile.write("static const QWindowsData windowsDataTable[] = {\n")
|
newTempFile.write("static const QWindowsData windowsDataTable[] = {\n")
|
||||||
for windowsKey in windowsIdList:
|
for index, pair in enumerate(windowsIdList):
|
||||||
newTempFile.write(" { %6d,%6d,%6d,%6d }, // %s\n"
|
newTempFile.write(" { %6d,%6d,%6d,%6d }, // %s\n"
|
||||||
% (windowsKey,
|
% (index + 1, windowsIdData.append(pair[0]),
|
||||||
windowsIdData.append(windowsIdList[windowsKey][0]),
|
ianaIdData.append(defaultDict[index + 1]), pair[1], pair[0]))
|
||||||
ianaIdData.append(defaultDict[windowsKey]),
|
|
||||||
windowsIdList[windowsKey][1],
|
|
||||||
windowsIdList[windowsKey][0]))
|
|
||||||
newTempFile.write(" { 0, 0, 0, 0 } // Trailing zeroes\n")
|
newTempFile.write(" { 0, 0, 0, 0 } // Trailing zeroes\n")
|
||||||
newTempFile.write("};\n\n")
|
newTempFile.write("};\n\n")
|
||||||
|
|
||||||
@ -385,12 +384,9 @@ print "Done Windows Data Table"
|
|||||||
# Write UTC ID key table
|
# Write UTC ID key table
|
||||||
newTempFile.write("// IANA ID Index, UTC Offset\n")
|
newTempFile.write("// IANA ID Index, UTC Offset\n")
|
||||||
newTempFile.write("static const QUtcData utcDataTable[] = {\n")
|
newTempFile.write("static const QUtcData utcDataTable[] = {\n")
|
||||||
for index in utcIdList:
|
for pair in utcIdList:
|
||||||
data = utcIdList[index]
|
|
||||||
newTempFile.write(" { %6d,%6d }, // %s\n"
|
newTempFile.write(" { %6d,%6d }, // %s\n"
|
||||||
% (ianaIdData.append(data[0]),
|
% (ianaIdData.append(pair[0]), pair[1], pair[0]))
|
||||||
data[1],
|
|
||||||
data[0]))
|
|
||||||
newTempFile.write(" { 0, 0 } // Trailing zeroes\n")
|
newTempFile.write(" { 0, 0 } // Trailing zeroes\n")
|
||||||
newTempFile.write("};\n\n")
|
newTempFile.write("};\n\n")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user