summaryrefslogtreecommitdiff
path: root/dev-python/pytz
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pytz')
-rw-r--r--dev-python/pytz/Manifest4
-rw-r--r--dev-python/pytz/files/pytz-2023.2-system-tzinfo.patch52
-rw-r--r--dev-python/pytz/metadata.xml18
-rw-r--r--dev-python/pytz/pytz-2026.1_p1.ebuild52
-rw-r--r--dev-python/pytz/pytz-2026.2.ebuild52
5 files changed, 178 insertions, 0 deletions
diff --git a/dev-python/pytz/Manifest b/dev-python/pytz/Manifest
new file mode 100644
index 000000000000..ce6163ab05bc
--- /dev/null
+++ b/dev-python/pytz/Manifest
@@ -0,0 +1,4 @@
+DIST pytz-2026.1.post1.tar.gz 321088 BLAKE2B 3ce2028abec2a07c753bdd822cb8c86d043e76322321fb96f8ccba19252f46d78a3bc21a7b63feaf2bf922b4aa97854e763fc352428ada9a9b576ecc9c9d0d0c SHA512 58e9ecf500c8945de73c32263bed54fe80770e948f3ad539670927a61b9d099f1a21d4948c5913b0721183d5a77bbf83b7b148f2d1b3bc659b669c4a8eae63f8
+DIST pytz-2026.1.post1.tar.gz.provenance 9503 BLAKE2B 709cc5bead68d64fcc511e734d945b7120517395b74fdd2d363c945bb67960e18644df8328c9b5a92e9a80f2e6be69d5352c390bc3c2b2087fb882108d7d8094 SHA512 2fb3f3d78a71927fb8971ae60360d97ee6c40cfd665f17ca0a5fffd04ca1cc2b67ac3e64faac7c3288abe826b86b97d7fbfb0565ac489e6c625928ce22ab9d74
+DIST pytz-2026.2.tar.gz 320861 BLAKE2B b05b2e3852595dc2b42d38e3c9604410af5889e4110cb28918874e9fe4a6340bda2bbfb469b8f5832d1cb6adb3ac19cc427d5b1d5361927d3a978c1cdeb134cc SHA512 b980715c2bf344734c7c2b1b83e94297a8a501b76e6e728553d99ddc1726aff4eb972c025e482d7dbbd4f11f706b573b5e7a1c030c315fdf556f7ca524436989
+DIST pytz-2026.2.tar.gz.provenance 9433 BLAKE2B 326250578fc445ebae1443b137243391a17b4d86c1a2ed3735676d89bfecd7626ee582f232901134038cea1ebea79a2e9331d94e655dce474fe165d9deee328a SHA512 655c17ef02c19c46689a2a450b8969b4fe74e01988f3a7e2994b343dadb2b509479dfa0467c5a379060ec52bab7823f5c52912e83e7bf6b9ad19885f1934c7e4
diff --git a/dev-python/pytz/files/pytz-2023.2-system-tzinfo.patch b/dev-python/pytz/files/pytz-2023.2-system-tzinfo.patch
new file mode 100644
index 000000000000..85b639f0e615
--- /dev/null
+++ b/dev-python/pytz/files/pytz-2023.2-system-tzinfo.patch
@@ -0,0 +1,52 @@
+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',
diff --git a/dev-python/pytz/metadata.xml b/dev-python/pytz/metadata.xml
new file mode 100644
index 000000000000..d7b6b0fe68c4
--- /dev/null
+++ b/dev-python/pytz/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <longdescription lang="en">
+ pytz brings the Olson tz database into Python. This library allows
+ accurate and cross platform timezone calculations using Python 2.3
+ or higher. It also solves the issue of ambiguous times at the end of
+ daylight savings, which you can read more about in the Python
+ Library Reference (datetime.tzinfo).
+ Amost all (over 540) of the Olson timezones are supported.
+ </longdescription>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-python/pytz/pytz-2026.1_p1.ebuild b/dev-python/pytz/pytz-2026.1_p1.ebuild
new file mode 100644
index 000000000000..606702db015d
--- /dev/null
+++ b/dev-python/pytz/pytz-2026.1_p1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/stub42/pytz
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="
+ https://pythonhosted.org/pytz/
+ https://github.com/stub42/pytz/
+ https://pypi.org/project/pytz/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ || (
+ >=sys-libs/timezone-data-2023b
+ sys-libs/glibc[vanilla]
+ )
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unbundle timezone-data
+ rm -r pytz/zoneinfo || die
+ # remove hardcoded list of all timezones but leave subjective set
+ # of "common timezones"
+ sed -i -e '/^_all_timezones_unchecked/,/^all_timezones_set/d' pytz/__init__.py || die
+ eapply "${FILESDIR}"/pytz-2023.2-system-tzinfo.patch
+}
+
+python_test() {
+ "${EPYTHON}" pytz/tests/test_tzinfo.py -v ||
+ die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pytz/pytz-2026.2.ebuild b/dev-python/pytz/pytz-2026.2.ebuild
new file mode 100644
index 000000000000..25e025d264d4
--- /dev/null
+++ b/dev-python/pytz/pytz-2026.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/stub42/pytz
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="World timezone definitions for Python"
+HOMEPAGE="
+ https://pythonhosted.org/pytz/
+ https://github.com/stub42/pytz/
+ https://pypi.org/project/pytz/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ || (
+ >=sys-libs/timezone-data-2023b
+ sys-libs/glibc[vanilla]
+ )
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unbundle timezone-data
+ rm -r pytz/zoneinfo || die
+ # remove hardcoded list of all timezones but leave subjective set
+ # of "common timezones"
+ sed -i -e '/^_all_timezones_unchecked/,/^all_timezones_set/d' pytz/__init__.py || die
+ eapply "${FILESDIR}"/pytz-2023.2-system-tzinfo.patch
+}
+
+python_test() {
+ "${EPYTHON}" pytz/tests/test_tzinfo.py -v ||
+ die "Tests fail with ${EPYTHON}"
+}