mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-04-30 16:57:29 -07:00
53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
Inspired by the Fedora patch:
|
|
https://src.fedoraproject.org/rpms/pytz/blob/rawhide/f/pytz-zoneinfo.patch
|
|
|
|
_allzones() is based on code in gen_tzinfo.py in upstream repo.
|
|
|
|
diff --git a/pytz/__init__.py b/pytz/__init__.py
|
|
index f89d0eb..d00f3bb 100644
|
|
--- a/pytz/__init__.py
|
|
+++ b/pytz/__init__.py
|
|
@@ -75,6 +75,21 @@ else: # Python 2.x
|
|
return s.encode('ASCII')
|
|
|
|
|
|
+def _allzones():
|
|
+ for dirpath, dirnames, filenames in os.walk(_PYTZ_TZDATADIR):
|
|
+ for f in filenames:
|
|
+ p = os.path.join(dirpath, f)
|
|
+ with open(p, 'rb') as tzfile:
|
|
+ if tzfile.read(4) == b'TZif':
|
|
+ yield os.path.relpath(p, _PYTZ_TZDATADIR)
|
|
+
|
|
+
|
|
+_PYTZ_TZDATADIR = os.environ.get('PYTZ_TZDATADIR', '/usr/share/zoneinfo')
|
|
+_all_timezones_unchecked = LazyList(x for x in _allzones())
|
|
+all_timezones = _all_timezones_unchecked
|
|
+all_timezones_set = LazySet(all_timezones)
|
|
+
|
|
+
|
|
def open_resource(name):
|
|
"""Open a resource from the zoneinfo subdir for reading.
|
|
|
|
@@ -88,7 +102,7 @@ def open_resource(name):
|
|
for part in name_parts:
|
|
if part == os.path.pardir or os.sep in part:
|
|
raise ValueError('Bad path segment: %r' % part)
|
|
- zoneinfo_dir = os.environ.get('PYTZ_TZDATADIR', None)
|
|
+ zoneinfo_dir = _PYTZ_TZDATADIR
|
|
if zoneinfo_dir is not None:
|
|
filename = os.path.join(zoneinfo_dir, *name_parts)
|
|
else:
|
|
diff --git a/setup.py b/setup.py
|
|
index 24f7f37..b03592c 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -21,7 +21,6 @@ for dirpath, dirnames, filenames in os.walk(os.path.join('pytz', 'zoneinfo')):
|
|
resources.extend([os.path.join(basepath, filename) for filename in filenames])
|
|
package_data = {'pytz': resources}
|
|
|
|
-assert len(resources) > 10, 'zoneinfo files not found!'
|
|
|
|
setup(
|
|
name='pytz',
|