mirror of
https://github.com/leon-ai/leon.git
synced 2024-12-26 18:23:00 +03:00
feat(tcp server): add support for time zone and more city/country data
This commit is contained in:
parent
c0deafcd69
commit
45b177d0fb
@ -10,7 +10,7 @@ python_version = "3.9.10"
|
||||
setuptools = "*"
|
||||
wheel = "*"
|
||||
cx-freeze = "==6.11.1"
|
||||
spacy = "==3.4.0"
|
||||
spacy = "==3.5.4"
|
||||
torch = "==1.12.1"
|
||||
python-dotenv = "==0.19.2"
|
||||
geonamescache = "==1.3.0"
|
||||
geonamescache = "==1.6.0"
|
||||
|
@ -1,7 +1,10 @@
|
||||
from sys import argv
|
||||
import os
|
||||
import spacy
|
||||
import geonamescache
|
||||
|
||||
from typing import Union, TypedDict
|
||||
|
||||
lang = argv[1] or 'en'
|
||||
spacy_nlp = None
|
||||
spacy_model_mapping = {
|
||||
@ -30,20 +33,36 @@ countries = gc.get_countries()
|
||||
cities = gc.get_cities()
|
||||
|
||||
|
||||
def gen_dict_extract(var, key):
|
||||
if isinstance(var, dict):
|
||||
for k, v in var.items():
|
||||
if k == key:
|
||||
yield v
|
||||
if isinstance(v, (dict, list)):
|
||||
yield from gen_dict_extract(v, key)
|
||||
elif isinstance(var, list):
|
||||
for d in var:
|
||||
yield from gen_dict_extract(d, key)
|
||||
class TimeZone(TypedDict):
|
||||
country_code: str
|
||||
id: str
|
||||
coordinated_universal_time_offset: float
|
||||
daylight_saving_time_offset: float
|
||||
|
||||
|
||||
countries = [*gen_dict_extract(countries, 'name')]
|
||||
cities = [*gen_dict_extract(cities, 'name')]
|
||||
# Extracted from: <https://download.geonames.org/export/dump/timeZones.txt>
|
||||
time_zones_path = os.path.join(os.path.dirname(__file__), 'time_zones.txt')
|
||||
|
||||
time_zones: list[list[str]] = []
|
||||
with open(time_zones_path, 'r') as file:
|
||||
lines = file.read().splitlines()
|
||||
for line in lines:
|
||||
time_zones.append(line.rstrip().split('\t'))
|
||||
|
||||
|
||||
def get_time_zone_data(time_zone_id: str) -> Union[TimeZone, None]:
|
||||
time_zone_data: Union[TimeZone, None] = None
|
||||
for time_zone in time_zones:
|
||||
if time_zone[1] == time_zone_id:
|
||||
time_zone_data = {
|
||||
'country_code': time_zone[0],
|
||||
'id': time_zone[1],
|
||||
'coordinated_universal_time_offset': float(time_zone[2]),
|
||||
'daylight_saving_time_offset': float(time_zone[3])
|
||||
}
|
||||
break
|
||||
return time_zone_data
|
||||
|
||||
|
||||
"""
|
||||
Functions called from TCPServer class
|
||||
@ -68,11 +87,23 @@ def extract_spacy_entities(utterance):
|
||||
for ent in doc.ents:
|
||||
if ent.label_ in spacy_model_mapping[lang]['entity_mapping']:
|
||||
entity = spacy_model_mapping[lang]['entity_mapping'][ent.label_]
|
||||
resolution = {
|
||||
'value': ent.text
|
||||
}
|
||||
|
||||
if entity == 'location':
|
||||
if ent.text.casefold() in (country.casefold() for country in countries):
|
||||
entity += ':country'
|
||||
elif ent.text.casefold() in (city.casefold() for city in cities):
|
||||
entity += ':city'
|
||||
for country in countries:
|
||||
if countries[country]['name'].casefold() == ent.text.casefold():
|
||||
entity += ':country'
|
||||
resolution['data'] = countries[country]
|
||||
break
|
||||
|
||||
for city in cities:
|
||||
if cities[city]['name'].casefold() == ent.text.casefold():
|
||||
entity += ':city'
|
||||
resolution['data'] = cities[city]
|
||||
resolution['data']['time_zone'] = get_time_zone_data(cities[city]['timezone'])
|
||||
break
|
||||
|
||||
entities.append({
|
||||
'start': ent.start_char,
|
||||
@ -81,9 +112,7 @@ def extract_spacy_entities(utterance):
|
||||
'sourceText': ent.text,
|
||||
'utteranceText': ent.text,
|
||||
'entity': entity,
|
||||
'resolution': {
|
||||
'value': ent.text
|
||||
}
|
||||
'resolution': resolution
|
||||
})
|
||||
|
||||
return entities
|
||||
|
33
tcp_server/src/lib/time_zones.py
Normal file
33
tcp_server/src/lib/time_zones.py
Normal file
@ -0,0 +1,33 @@
|
||||
import os
|
||||
from typing import Union, TypedDict
|
||||
|
||||
|
||||
class TimeZone(TypedDict):
|
||||
country_code: str
|
||||
id: str
|
||||
coordinated_universal_time_offset: float
|
||||
daylight_saving_time_offset: float
|
||||
|
||||
|
||||
# Extracted from: <https://download.geonames.org/export/dump/timeZones.txt>
|
||||
time_zones_path = os.path.join(os.path.dirname(__file__), 'time_zones.txt')
|
||||
|
||||
time_zones: list[list[str]] = []
|
||||
with open(time_zones_path, 'r') as file:
|
||||
lines = file.read().splitlines()
|
||||
for line in lines:
|
||||
time_zones.append(line.rstrip().split('\t'))
|
||||
|
||||
|
||||
def get_time_zone_data(time_zone_id: str) -> Union[TimeZone, None]:
|
||||
time_zone_data: Union[TimeZone, None] = None
|
||||
for time_zone in time_zones:
|
||||
if time_zone[1] == time_zone_id:
|
||||
time_zone_data = {
|
||||
'country_code': time_zone[0],
|
||||
'id': time_zone[1],
|
||||
'coordinated_universal_time_offset': float(time_zone[2]),
|
||||
'daylight_saving_time_offset': float(time_zone[3])
|
||||
}
|
||||
break
|
||||
return time_zone_data
|
420
tcp_server/src/lib/time_zones.txt
Normal file
420
tcp_server/src/lib/time_zones.txt
Normal file
@ -0,0 +1,420 @@
|
||||
CountryCode TimeZoneId GMT offset 1. Jan 2023 DST offset 1. Jul 2023 rawOffset (independant of DST)
|
||||
CI Africa/Abidjan 0.0 0.0 0.0
|
||||
GH Africa/Accra 0.0 0.0 0.0
|
||||
ET Africa/Addis_Ababa 3.0 3.0 3.0
|
||||
DZ Africa/Algiers 1.0 1.0 1.0
|
||||
ER Africa/Asmara 3.0 3.0 3.0
|
||||
ML Africa/Bamako 0.0 0.0 0.0
|
||||
CF Africa/Bangui 1.0 1.0 1.0
|
||||
GM Africa/Banjul 0.0 0.0 0.0
|
||||
GW Africa/Bissau 0.0 0.0 0.0
|
||||
MW Africa/Blantyre 2.0 2.0 2.0
|
||||
CG Africa/Brazzaville 1.0 1.0 1.0
|
||||
BI Africa/Bujumbura 2.0 2.0 2.0
|
||||
EG Africa/Cairo 2.0 3.0 2.0
|
||||
MA Africa/Casablanca 1.0 1.0 0.0
|
||||
ES Africa/Ceuta 1.0 2.0 1.0
|
||||
GN Africa/Conakry 0.0 0.0 0.0
|
||||
SN Africa/Dakar 0.0 0.0 0.0
|
||||
TZ Africa/Dar_es_Salaam 3.0 3.0 3.0
|
||||
DJ Africa/Djibouti 3.0 3.0 3.0
|
||||
CM Africa/Douala 1.0 1.0 1.0
|
||||
EH Africa/El_Aaiun 1.0 1.0 0.0
|
||||
SL Africa/Freetown 0.0 0.0 0.0
|
||||
BW Africa/Gaborone 2.0 2.0 2.0
|
||||
ZW Africa/Harare 2.0 2.0 2.0
|
||||
ZA Africa/Johannesburg 2.0 2.0 2.0
|
||||
SS Africa/Juba 2.0 2.0 2.0
|
||||
UG Africa/Kampala 3.0 3.0 3.0
|
||||
SD Africa/Khartoum 2.0 2.0 2.0
|
||||
RW Africa/Kigali 2.0 2.0 2.0
|
||||
CD Africa/Kinshasa 1.0 1.0 1.0
|
||||
NG Africa/Lagos 1.0 1.0 1.0
|
||||
GA Africa/Libreville 1.0 1.0 1.0
|
||||
TG Africa/Lome 0.0 0.0 0.0
|
||||
AO Africa/Luanda 1.0 1.0 1.0
|
||||
CD Africa/Lubumbashi 2.0 2.0 2.0
|
||||
ZM Africa/Lusaka 2.0 2.0 2.0
|
||||
GQ Africa/Malabo 1.0 1.0 1.0
|
||||
MZ Africa/Maputo 2.0 2.0 2.0
|
||||
LS Africa/Maseru 2.0 2.0 2.0
|
||||
SZ Africa/Mbabane 2.0 2.0 2.0
|
||||
SO Africa/Mogadishu 3.0 3.0 3.0
|
||||
LR Africa/Monrovia 0.0 0.0 0.0
|
||||
KE Africa/Nairobi 3.0 3.0 3.0
|
||||
TD Africa/Ndjamena 1.0 1.0 1.0
|
||||
NE Africa/Niamey 1.0 1.0 1.0
|
||||
MR Africa/Nouakchott 0.0 0.0 0.0
|
||||
BF Africa/Ouagadougou 0.0 0.0 0.0
|
||||
BJ Africa/Porto-Novo 1.0 1.0 1.0
|
||||
ST Africa/Sao_Tome 0.0 0.0 0.0
|
||||
LY Africa/Tripoli 2.0 2.0 2.0
|
||||
TN Africa/Tunis 1.0 1.0 1.0
|
||||
NA Africa/Windhoek 2.0 2.0 1.0
|
||||
US America/Adak -10.0 -9.0 -10.0
|
||||
US America/Anchorage -9.0 -8.0 -9.0
|
||||
AI America/Anguilla -4.0 -4.0 -4.0
|
||||
AG America/Antigua -4.0 -4.0 -4.0
|
||||
BR America/Araguaina -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Buenos_Aires -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Catamarca -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Cordoba -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Jujuy -3.0 -3.0 -3.0
|
||||
AR America/Argentina/La_Rioja -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Mendoza -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Rio_Gallegos -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Salta -3.0 -3.0 -3.0
|
||||
AR America/Argentina/San_Juan -3.0 -3.0 -3.0
|
||||
AR America/Argentina/San_Luis -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Tucuman -3.0 -3.0 -3.0
|
||||
AR America/Argentina/Ushuaia -3.0 -3.0 -3.0
|
||||
AW America/Aruba -4.0 -4.0 -4.0
|
||||
PY America/Asuncion -3.0 -4.0 -4.0
|
||||
CA America/Atikokan -5.0 -5.0 -5.0
|
||||
BR America/Bahia -3.0 -3.0 -3.0
|
||||
MX America/Bahia_Banderas -6.0 -6.0 -6.0
|
||||
BB America/Barbados -4.0 -4.0 -4.0
|
||||
BR America/Belem -3.0 -3.0 -3.0
|
||||
BZ America/Belize -6.0 -6.0 -6.0
|
||||
CA America/Blanc-Sablon -4.0 -4.0 -4.0
|
||||
BR America/Boa_Vista -4.0 -4.0 -4.0
|
||||
CO America/Bogota -5.0 -5.0 -5.0
|
||||
US America/Boise -7.0 -6.0 -7.0
|
||||
CA America/Cambridge_Bay -7.0 -6.0 -7.0
|
||||
BR America/Campo_Grande -4.0 -4.0 -4.0
|
||||
MX America/Cancun -5.0 -5.0 -5.0
|
||||
VE America/Caracas -4.0 -4.0 -4.0
|
||||
GF America/Cayenne -3.0 -3.0 -3.0
|
||||
KY America/Cayman -5.0 -5.0 -5.0
|
||||
US America/Chicago -6.0 -5.0 -6.0
|
||||
MX America/Chihuahua -6.0 -6.0 -6.0
|
||||
MX America/Ciudad_Juarez -7.0 -6.0 -7.0
|
||||
CR America/Costa_Rica -6.0 -6.0 -6.0
|
||||
CA America/Creston -7.0 -7.0 -7.0
|
||||
BR America/Cuiaba -4.0 -4.0 -4.0
|
||||
CW America/Curacao -4.0 -4.0 -4.0
|
||||
GL America/Danmarkshavn 0.0 0.0 0.0
|
||||
CA America/Dawson -7.0 -7.0 -7.0
|
||||
CA America/Dawson_Creek -7.0 -7.0 -7.0
|
||||
US America/Denver -7.0 -6.0 -7.0
|
||||
US America/Detroit -5.0 -4.0 -5.0
|
||||
DM America/Dominica -4.0 -4.0 -4.0
|
||||
CA America/Edmonton -7.0 -6.0 -7.0
|
||||
BR America/Eirunepe -5.0 -5.0 -5.0
|
||||
SV America/El_Salvador -6.0 -6.0 -6.0
|
||||
CA America/Fort_Nelson -7.0 -7.0 -7.0
|
||||
BR America/Fortaleza -3.0 -3.0 -3.0
|
||||
CA America/Glace_Bay -4.0 -3.0 -4.0
|
||||
CA America/Goose_Bay -4.0 -3.0 -4.0
|
||||
TC America/Grand_Turk -5.0 -4.0 -5.0
|
||||
GD America/Grenada -4.0 -4.0 -4.0
|
||||
GP America/Guadeloupe -4.0 -4.0 -4.0
|
||||
GT America/Guatemala -6.0 -6.0 -6.0
|
||||
EC America/Guayaquil -5.0 -5.0 -5.0
|
||||
GY America/Guyana -4.0 -4.0 -4.0
|
||||
CA America/Halifax -4.0 -3.0 -4.0
|
||||
CU America/Havana -5.0 -4.0 -5.0
|
||||
MX America/Hermosillo -7.0 -7.0 -7.0
|
||||
US America/Indiana/Indianapolis -5.0 -4.0 -5.0
|
||||
US America/Indiana/Knox -6.0 -5.0 -6.0
|
||||
US America/Indiana/Marengo -5.0 -4.0 -5.0
|
||||
US America/Indiana/Petersburg -5.0 -4.0 -5.0
|
||||
US America/Indiana/Tell_City -6.0 -5.0 -6.0
|
||||
US America/Indiana/Vevay -5.0 -4.0 -5.0
|
||||
US America/Indiana/Vincennes -5.0 -4.0 -5.0
|
||||
US America/Indiana/Winamac -5.0 -4.0 -5.0
|
||||
CA America/Inuvik -7.0 -6.0 -7.0
|
||||
CA America/Iqaluit -5.0 -4.0 -5.0
|
||||
JM America/Jamaica -5.0 -5.0 -5.0
|
||||
US America/Juneau -9.0 -8.0 -9.0
|
||||
US America/Kentucky/Louisville -5.0 -4.0 -5.0
|
||||
US America/Kentucky/Monticello -5.0 -4.0 -5.0
|
||||
BQ America/Kralendijk -4.0 -4.0 -4.0
|
||||
BO America/La_Paz -4.0 -4.0 -4.0
|
||||
PE America/Lima -5.0 -5.0 -5.0
|
||||
US America/Los_Angeles -8.0 -7.0 -8.0
|
||||
SX America/Lower_Princes -4.0 -4.0 -4.0
|
||||
BR America/Maceio -3.0 -3.0 -3.0
|
||||
NI America/Managua -6.0 -6.0 -6.0
|
||||
BR America/Manaus -4.0 -4.0 -4.0
|
||||
MF America/Marigot -4.0 -4.0 -4.0
|
||||
MQ America/Martinique -4.0 -4.0 -4.0
|
||||
MX America/Matamoros -6.0 -5.0 -6.0
|
||||
MX America/Mazatlan -7.0 -7.0 -7.0
|
||||
US America/Menominee -6.0 -5.0 -6.0
|
||||
MX America/Merida -6.0 -6.0 -6.0
|
||||
US America/Metlakatla -9.0 -8.0 -9.0
|
||||
MX America/Mexico_City -6.0 -6.0 -6.0
|
||||
PM America/Miquelon -3.0 -2.0 -3.0
|
||||
CA America/Moncton -4.0 -3.0 -4.0
|
||||
MX America/Monterrey -6.0 -6.0 -6.0
|
||||
UY America/Montevideo -3.0 -3.0 -3.0
|
||||
MS America/Montserrat -4.0 -4.0 -4.0
|
||||
BS America/Nassau -5.0 -4.0 -5.0
|
||||
US America/New_York -5.0 -4.0 -5.0
|
||||
US America/Nome -9.0 -8.0 -9.0
|
||||
BR America/Noronha -2.0 -2.0 -2.0
|
||||
US America/North_Dakota/Beulah -6.0 -5.0 -6.0
|
||||
US America/North_Dakota/Center -6.0 -5.0 -6.0
|
||||
US America/North_Dakota/New_Salem -6.0 -5.0 -6.0
|
||||
GL America/Nuuk -3.0 -2.0 -3.0
|
||||
MX America/Ojinaga -6.0 -5.0 -6.0
|
||||
PA America/Panama -5.0 -5.0 -5.0
|
||||
SR America/Paramaribo -3.0 -3.0 -3.0
|
||||
US America/Phoenix -7.0 -7.0 -7.0
|
||||
HT America/Port-au-Prince -5.0 -4.0 -5.0
|
||||
TT America/Port_of_Spain -4.0 -4.0 -4.0
|
||||
BR America/Porto_Velho -4.0 -4.0 -4.0
|
||||
PR America/Puerto_Rico -4.0 -4.0 -4.0
|
||||
CL America/Punta_Arenas -3.0 -3.0 -3.0
|
||||
CA America/Rankin_Inlet -6.0 -5.0 -6.0
|
||||
BR America/Recife -3.0 -3.0 -3.0
|
||||
CA America/Regina -6.0 -6.0 -6.0
|
||||
CA America/Resolute -6.0 -5.0 -6.0
|
||||
BR America/Rio_Branco -5.0 -5.0 -5.0
|
||||
BR America/Santarem -3.0 -3.0 -3.0
|
||||
CL America/Santiago -3.0 -4.0 -4.0
|
||||
DO America/Santo_Domingo -4.0 -4.0 -4.0
|
||||
BR America/Sao_Paulo -3.0 -3.0 -3.0
|
||||
GL America/Scoresbysund -1.0 0.0 -1.0
|
||||
US America/Sitka -9.0 -8.0 -9.0
|
||||
BL America/St_Barthelemy -4.0 -4.0 -4.0
|
||||
CA America/St_Johns -3.5 -2.5 -3.5
|
||||
KN America/St_Kitts -4.0 -4.0 -4.0
|
||||
LC America/St_Lucia -4.0 -4.0 -4.0
|
||||
VI America/St_Thomas -4.0 -4.0 -4.0
|
||||
VC America/St_Vincent -4.0 -4.0 -4.0
|
||||
CA America/Swift_Current -6.0 -6.0 -6.0
|
||||
HN America/Tegucigalpa -6.0 -6.0 -6.0
|
||||
GL America/Thule -4.0 -3.0 -4.0
|
||||
MX America/Tijuana -8.0 -7.0 -8.0
|
||||
CA America/Toronto -5.0 -4.0 -5.0
|
||||
VG America/Tortola -4.0 -4.0 -4.0
|
||||
CA America/Vancouver -8.0 -7.0 -8.0
|
||||
CA America/Whitehorse -7.0 -7.0 -7.0
|
||||
CA America/Winnipeg -6.0 -5.0 -6.0
|
||||
US America/Yakutat -9.0 -8.0 -9.0
|
||||
CA America/Yellowknife -7.0 -6.0 -7.0
|
||||
AQ Antarctica/Casey 11.0 11.0 11.0
|
||||
AQ Antarctica/Davis 7.0 7.0 7.0
|
||||
AQ Antarctica/DumontDUrville 10.0 10.0 10.0
|
||||
AU Antarctica/Macquarie 11.0 10.0 10.0
|
||||
AQ Antarctica/Mawson 5.0 5.0 5.0
|
||||
AQ Antarctica/McMurdo 13.0 12.0 12.0
|
||||
AQ Antarctica/Palmer -3.0 -3.0 -3.0
|
||||
AQ Antarctica/Rothera -3.0 -3.0 -3.0
|
||||
AQ Antarctica/Syowa 3.0 3.0 3.0
|
||||
AQ Antarctica/Troll 0.0 2.0 0.0
|
||||
AQ Antarctica/Vostok 6.0 6.0 6.0
|
||||
SJ Arctic/Longyearbyen 1.0 2.0 1.0
|
||||
YE Asia/Aden 3.0 3.0 3.0
|
||||
KZ Asia/Almaty 6.0 6.0 6.0
|
||||
JO Asia/Amman 3.0 3.0 3.0
|
||||
RU Asia/Anadyr 12.0 12.0 12.0
|
||||
KZ Asia/Aqtau 5.0 5.0 5.0
|
||||
KZ Asia/Aqtobe 5.0 5.0 5.0
|
||||
TM Asia/Ashgabat 5.0 5.0 5.0
|
||||
KZ Asia/Atyrau 5.0 5.0 5.0
|
||||
IQ Asia/Baghdad 3.0 3.0 3.0
|
||||
BH Asia/Bahrain 3.0 3.0 3.0
|
||||
AZ Asia/Baku 4.0 4.0 4.0
|
||||
TH Asia/Bangkok 7.0 7.0 7.0
|
||||
RU Asia/Barnaul 7.0 7.0 7.0
|
||||
LB Asia/Beirut 2.0 3.0 2.0
|
||||
KG Asia/Bishkek 6.0 6.0 6.0
|
||||
BN Asia/Brunei 8.0 8.0 8.0
|
||||
RU Asia/Chita 9.0 9.0 9.0
|
||||
MN Asia/Choibalsan 8.0 8.0 8.0
|
||||
LK Asia/Colombo 5.5 5.5 5.5
|
||||
SY Asia/Damascus 3.0 3.0 3.0
|
||||
BD Asia/Dhaka 6.0 6.0 6.0
|
||||
TL Asia/Dili 9.0 9.0 9.0
|
||||
AE Asia/Dubai 4.0 4.0 4.0
|
||||
TJ Asia/Dushanbe 5.0 5.0 5.0
|
||||
CY Asia/Famagusta 2.0 3.0 2.0
|
||||
PS Asia/Gaza 2.0 3.0 2.0
|
||||
PS Asia/Hebron 2.0 3.0 2.0
|
||||
VN Asia/Ho_Chi_Minh 7.0 7.0 7.0
|
||||
HK Asia/Hong_Kong 8.0 8.0 8.0
|
||||
MN Asia/Hovd 7.0 7.0 7.0
|
||||
RU Asia/Irkutsk 8.0 8.0 8.0
|
||||
ID Asia/Jakarta 7.0 7.0 7.0
|
||||
ID Asia/Jayapura 9.0 9.0 9.0
|
||||
IL Asia/Jerusalem 2.0 3.0 2.0
|
||||
AF Asia/Kabul 4.5 4.5 4.5
|
||||
RU Asia/Kamchatka 12.0 12.0 12.0
|
||||
PK Asia/Karachi 5.0 5.0 5.0
|
||||
NP Asia/Kathmandu 5.75 5.75 5.75
|
||||
RU Asia/Khandyga 9.0 9.0 9.0
|
||||
IN Asia/Kolkata 5.5 5.5 5.5
|
||||
RU Asia/Krasnoyarsk 7.0 7.0 7.0
|
||||
MY Asia/Kuala_Lumpur 8.0 8.0 8.0
|
||||
MY Asia/Kuching 8.0 8.0 8.0
|
||||
KW Asia/Kuwait 3.0 3.0 3.0
|
||||
MO Asia/Macau 8.0 8.0 8.0
|
||||
RU Asia/Magadan 11.0 11.0 11.0
|
||||
ID Asia/Makassar 8.0 8.0 8.0
|
||||
PH Asia/Manila 8.0 8.0 8.0
|
||||
OM Asia/Muscat 4.0 4.0 4.0
|
||||
CY Asia/Nicosia 2.0 3.0 2.0
|
||||
RU Asia/Novokuznetsk 7.0 7.0 7.0
|
||||
RU Asia/Novosibirsk 7.0 7.0 7.0
|
||||
RU Asia/Omsk 6.0 6.0 6.0
|
||||
KZ Asia/Oral 5.0 5.0 5.0
|
||||
KH Asia/Phnom_Penh 7.0 7.0 7.0
|
||||
ID Asia/Pontianak 7.0 7.0 7.0
|
||||
KP Asia/Pyongyang 9.0 9.0 9.0
|
||||
QA Asia/Qatar 3.0 3.0 3.0
|
||||
KZ Asia/Qostanay 6.0 6.0 6.0
|
||||
KZ Asia/Qyzylorda 5.0 5.0 5.0
|
||||
SA Asia/Riyadh 3.0 3.0 3.0
|
||||
RU Asia/Sakhalin 11.0 11.0 11.0
|
||||
UZ Asia/Samarkand 5.0 5.0 5.0
|
||||
KR Asia/Seoul 9.0 9.0 9.0
|
||||
CN Asia/Shanghai 8.0 8.0 8.0
|
||||
SG Asia/Singapore 8.0 8.0 8.0
|
||||
RU Asia/Srednekolymsk 11.0 11.0 11.0
|
||||
TW Asia/Taipei 8.0 8.0 8.0
|
||||
UZ Asia/Tashkent 5.0 5.0 5.0
|
||||
GE Asia/Tbilisi 4.0 4.0 4.0
|
||||
IR Asia/Tehran 3.5 3.5 3.5
|
||||
BT Asia/Thimphu 6.0 6.0 6.0
|
||||
JP Asia/Tokyo 9.0 9.0 9.0
|
||||
RU Asia/Tomsk 7.0 7.0 7.0
|
||||
MN Asia/Ulaanbaatar 8.0 8.0 8.0
|
||||
CN Asia/Urumqi 6.0 6.0 6.0
|
||||
RU Asia/Ust-Nera 10.0 10.0 10.0
|
||||
LA Asia/Vientiane 7.0 7.0 7.0
|
||||
RU Asia/Vladivostok 10.0 10.0 10.0
|
||||
RU Asia/Yakutsk 9.0 9.0 9.0
|
||||
MM Asia/Yangon 6.5 6.5 6.5
|
||||
RU Asia/Yekaterinburg 5.0 5.0 5.0
|
||||
AM Asia/Yerevan 4.0 4.0 4.0
|
||||
PT Atlantic/Azores -1.0 0.0 -1.0
|
||||
BM Atlantic/Bermuda -4.0 -3.0 -4.0
|
||||
ES Atlantic/Canary 0.0 1.0 0.0
|
||||
CV Atlantic/Cape_Verde -1.0 -1.0 -1.0
|
||||
FO Atlantic/Faroe 0.0 1.0 0.0
|
||||
PT Atlantic/Madeira 0.0 1.0 0.0
|
||||
IS Atlantic/Reykjavik 0.0 0.0 0.0
|
||||
GS Atlantic/South_Georgia -2.0 -2.0 -2.0
|
||||
SH Atlantic/St_Helena 0.0 0.0 0.0
|
||||
FK Atlantic/Stanley -3.0 -3.0 -3.0
|
||||
AU Australia/Adelaide 10.5 9.5 9.5
|
||||
AU Australia/Brisbane 10.0 10.0 10.0
|
||||
AU Australia/Broken_Hill 10.5 9.5 9.5
|
||||
AU Australia/Darwin 9.5 9.5 9.5
|
||||
AU Australia/Eucla 8.75 8.75 8.75
|
||||
AU Australia/Hobart 11.0 10.0 10.0
|
||||
AU Australia/Lindeman 10.0 10.0 10.0
|
||||
AU Australia/Lord_Howe 11.0 10.5 10.5
|
||||
AU Australia/Melbourne 11.0 10.0 10.0
|
||||
AU Australia/Perth 8.0 8.0 8.0
|
||||
AU Australia/Sydney 11.0 10.0 10.0
|
||||
NL Europe/Amsterdam 1.0 2.0 1.0
|
||||
AD Europe/Andorra 1.0 2.0 1.0
|
||||
RU Europe/Astrakhan 4.0 4.0 4.0
|
||||
GR Europe/Athens 2.0 3.0 2.0
|
||||
RS Europe/Belgrade 1.0 2.0 1.0
|
||||
DE Europe/Berlin 1.0 2.0 1.0
|
||||
SK Europe/Bratislava 1.0 2.0 1.0
|
||||
BE Europe/Brussels 1.0 2.0 1.0
|
||||
RO Europe/Bucharest 2.0 3.0 2.0
|
||||
HU Europe/Budapest 1.0 2.0 1.0
|
||||
DE Europe/Busingen 1.0 2.0 1.0
|
||||
MD Europe/Chisinau 2.0 3.0 2.0
|
||||
DK Europe/Copenhagen 1.0 2.0 1.0
|
||||
IE Europe/Dublin 0.0 1.0 0.0
|
||||
GI Europe/Gibraltar 1.0 2.0 1.0
|
||||
GG Europe/Guernsey 0.0 1.0 0.0
|
||||
FI Europe/Helsinki 2.0 3.0 2.0
|
||||
IM Europe/Isle_of_Man 0.0 1.0 0.0
|
||||
TR Europe/Istanbul 3.0 3.0 3.0
|
||||
JE Europe/Jersey 0.0 1.0 0.0
|
||||
RU Europe/Kaliningrad 2.0 2.0 2.0
|
||||
RU Europe/Kirov 3.0 3.0 3.0
|
||||
UA Europe/Kyiv 2.0 3.0 2.0
|
||||
PT Europe/Lisbon 0.0 1.0 0.0
|
||||
SI Europe/Ljubljana 1.0 2.0 1.0
|
||||
GB Europe/London 0.0 1.0 0.0
|
||||
LU Europe/Luxembourg 1.0 2.0 1.0
|
||||
ES Europe/Madrid 1.0 2.0 1.0
|
||||
MT Europe/Malta 1.0 2.0 1.0
|
||||
AX Europe/Mariehamn 2.0 3.0 2.0
|
||||
BY Europe/Minsk 3.0 3.0 3.0
|
||||
MC Europe/Monaco 1.0 2.0 1.0
|
||||
RU Europe/Moscow 3.0 3.0 3.0
|
||||
NO Europe/Oslo 1.0 2.0 1.0
|
||||
FR Europe/Paris 1.0 2.0 1.0
|
||||
ME Europe/Podgorica 1.0 2.0 1.0
|
||||
CZ Europe/Prague 1.0 2.0 1.0
|
||||
LV Europe/Riga 2.0 3.0 2.0
|
||||
IT Europe/Rome 1.0 2.0 1.0
|
||||
RU Europe/Samara 4.0 4.0 4.0
|
||||
SM Europe/San_Marino 1.0 2.0 1.0
|
||||
BA Europe/Sarajevo 1.0 2.0 1.0
|
||||
RU Europe/Saratov 4.0 4.0 4.0
|
||||
UA Europe/Simferopol 3.0 3.0 3.0
|
||||
MK Europe/Skopje 1.0 2.0 1.0
|
||||
BG Europe/Sofia 2.0 3.0 2.0
|
||||
SE Europe/Stockholm 1.0 2.0 1.0
|
||||
EE Europe/Tallinn 2.0 3.0 2.0
|
||||
AL Europe/Tirane 1.0 2.0 1.0
|
||||
RU Europe/Ulyanovsk 4.0 4.0 4.0
|
||||
LI Europe/Vaduz 1.0 2.0 1.0
|
||||
VA Europe/Vatican 1.0 2.0 1.0
|
||||
AT Europe/Vienna 1.0 2.0 1.0
|
||||
LT Europe/Vilnius 2.0 3.0 2.0
|
||||
RU Europe/Volgograd 3.0 3.0 3.0
|
||||
PL Europe/Warsaw 1.0 2.0 1.0
|
||||
HR Europe/Zagreb 1.0 2.0 1.0
|
||||
CH Europe/Zurich 1.0 2.0 1.0
|
||||
MG Indian/Antananarivo 3.0 3.0 3.0
|
||||
IO Indian/Chagos 6.0 6.0 6.0
|
||||
CX Indian/Christmas 7.0 7.0 7.0
|
||||
CC Indian/Cocos 6.5 6.5 6.5
|
||||
KM Indian/Comoro 3.0 3.0 3.0
|
||||
TF Indian/Kerguelen 5.0 5.0 5.0
|
||||
SC Indian/Mahe 4.0 4.0 4.0
|
||||
MV Indian/Maldives 5.0 5.0 5.0
|
||||
MU Indian/Mauritius 4.0 4.0 4.0
|
||||
YT Indian/Mayotte 3.0 3.0 3.0
|
||||
RE Indian/Reunion 4.0 4.0 4.0
|
||||
WS Pacific/Apia 13.0 13.0 13.0
|
||||
NZ Pacific/Auckland 13.0 12.0 12.0
|
||||
PG Pacific/Bougainville 11.0 11.0 11.0
|
||||
NZ Pacific/Chatham 13.75 12.75 12.75
|
||||
FM Pacific/Chuuk 10.0 10.0 10.0
|
||||
CL Pacific/Easter -5.0 -6.0 -6.0
|
||||
VU Pacific/Efate 11.0 11.0 11.0
|
||||
TK Pacific/Fakaofo 13.0 13.0 13.0
|
||||
FJ Pacific/Fiji 12.0 12.0 12.0
|
||||
TV Pacific/Funafuti 12.0 12.0 12.0
|
||||
EC Pacific/Galapagos -6.0 -6.0 -6.0
|
||||
PF Pacific/Gambier -9.0 -9.0 -9.0
|
||||
SB Pacific/Guadalcanal 11.0 11.0 11.0
|
||||
GU Pacific/Guam 10.0 10.0 10.0
|
||||
US Pacific/Honolulu -10.0 -10.0 -10.0
|
||||
KI Pacific/Kanton 13.0 13.0 13.0
|
||||
KI Pacific/Kiritimati 14.0 14.0 14.0
|
||||
FM Pacific/Kosrae 11.0 11.0 11.0
|
||||
MH Pacific/Kwajalein 12.0 12.0 12.0
|
||||
MH Pacific/Majuro 12.0 12.0 12.0
|
||||
PF Pacific/Marquesas -9.5 -9.5 -9.5
|
||||
UM Pacific/Midway -11.0 -11.0 -11.0
|
||||
NR Pacific/Nauru 12.0 12.0 12.0
|
||||
NU Pacific/Niue -11.0 -11.0 -11.0
|
||||
NF Pacific/Norfolk 12.0 11.0 11.0
|
||||
NC Pacific/Noumea 11.0 11.0 11.0
|
||||
AS Pacific/Pago_Pago -11.0 -11.0 -11.0
|
||||
PW Pacific/Palau 9.0 9.0 9.0
|
||||
PN Pacific/Pitcairn -8.0 -8.0 -8.0
|
||||
FM Pacific/Pohnpei 11.0 11.0 11.0
|
||||
PG Pacific/Port_Moresby 10.0 10.0 10.0
|
||||
CK Pacific/Rarotonga -10.0 -10.0 -10.0
|
||||
MP Pacific/Saipan 10.0 10.0 10.0
|
||||
PF Pacific/Tahiti -10.0 -10.0 -10.0
|
||||
KI Pacific/Tarawa 12.0 12.0 12.0
|
||||
TO Pacific/Tongatapu 13.0 13.0 13.0
|
||||
UM Pacific/Wake 12.0 12.0 12.0
|
||||
WF Pacific/Wallis 12.0 12.0 12.0
|
@ -15,6 +15,9 @@ options = {
|
||||
'srsly.msgpack.util',
|
||||
'blis',
|
||||
'cymem'
|
||||
],
|
||||
'include_files': [
|
||||
'lib/time_zones.txt'
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user