MCPcopy Create free account
hub / github.com/dateutil/dateutil / main

Function main

updatezinfo.py:24–60  ·  view source on GitHub ↗
(metadata_file)

Source from the content-addressed store, hash-verified

22
23
24def main(metadata_file):
25 with io.open(metadata_file, 'r') as f:
26 metadata = json.load(f)
27
28 releases_urls = metadata['releases_url']
29 if metadata['metadata_version'] < 2.0:
30 # In later versions the releases URL is a mirror URL
31 releases_urls = [releases_urls]
32
33 if not os.path.isfile(metadata['tzdata_file']):
34
35 for ii, releases_url in enumerate(releases_urls):
36 print("Downloading tz file from mirror {ii}".format(ii=ii))
37 try:
38 request.urlretrieve(os.path.join(releases_url,
39 metadata['tzdata_file']),
40 metadata['tzdata_file'])
41 except urllib_error.URLError as e:
42 print("Download failed, trying next mirror.")
43 last_error = e
44 continue
45
46 last_error = None
47 break
48
49 if last_error is not None:
50 raise last_error
51
52 with open(metadata['tzdata_file'], 'rb') as tzfile:
53 sha_hasher = hashlib.sha512()
54 sha_hasher.update(tzfile.read())
55 sha_512_file = sha_hasher.hexdigest()
56 assert metadata['tzdata_file_sha512'] == sha_512_file, "SHA failed for"
57 print("Updating timezone information...")
58 rebuild.rebuild(metadata['tzdata_file'], zonegroups=metadata['zonegroups'],
59 metadata=metadata)
60 print("Done.")
61
62
63if __name__ == "__main__":

Callers 1

updatezinfo.pyFile · 0.85

Calls 2

readMethod · 0.80
rebuildMethod · 0.80

Tested by

no test coverage detected