aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2025-02-05 11:12:32 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2025-02-05 11:30:30 +0300
commit409081f7caab0fd90da025db03f20c596905c1f9 (patch)
treea8b32fd5082d1277e0b727ffbd2604cad4b6abf7 /contrib/python
parent64dbe3e5f2c96d6cf15ada015fb6ee64d12c02ff (diff)
downloadydb-409081f7caab0fd90da025db03f20c596905c1f9.tar.gz
Intermediate changes
commit_hash:6c65b2ed290900c658e42d7818d9bd50d568a8ba
Diffstat (limited to 'contrib/python')
-rw-r--r--contrib/python/cachetools/py3/.dist-info/METADATA5
-rw-r--r--contrib/python/cachetools/py3/cachetools/__init__.py2
-rw-r--r--contrib/python/cachetools/py3/ya.make2
-rw-r--r--contrib/python/fonttools/.dist-info/METADATA25
-rw-r--r--contrib/python/fonttools/fontTools/__init__.py2
-rw-r--r--contrib/python/fonttools/fontTools/feaLib/ast.py4
-rw-r--r--contrib/python/fonttools/fontTools/misc/bezierTools.py9
-rw-r--r--contrib/python/fonttools/fontTools/misc/transform.py28
-rw-r--r--contrib/python/fonttools/fontTools/pens/statisticsPen.py5
-rw-r--r--contrib/python/fonttools/fontTools/ttLib/tables/_n_a_m_e.py18
-rw-r--r--contrib/python/fonttools/ya.make2
-rw-r--r--contrib/python/tzdata/.dist-info/METADATA4
-rw-r--r--contrib/python/tzdata/tzdata/__init__.py4
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/America/Asuncionbin884 -> 1085 bytes
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/Asia/Manilabin238 -> 274 bytes
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/leapseconds8
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/tzdata.zi35
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/zone.tab2
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/zone1970.tab6
-rw-r--r--contrib/python/tzdata/tzdata/zoneinfo/zonenow.tab9
-rw-r--r--contrib/python/tzdata/ya.make2
21 files changed, 97 insertions, 75 deletions
diff --git a/contrib/python/cachetools/py3/.dist-info/METADATA b/contrib/python/cachetools/py3/.dist-info/METADATA
index b3ff29d899..386951ecb8 100644
--- a/contrib/python/cachetools/py3/.dist-info/METADATA
+++ b/contrib/python/cachetools/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.2
Name: cachetools
-Version: 5.5.0
+Version: 5.5.1
Summary: Extensible memoizing collections and decorators
Home-page: https://github.com/tkem/cachetools/
Author: Thomas Kemmer
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
License-File: LICENSE
diff --git a/contrib/python/cachetools/py3/cachetools/__init__.py b/contrib/python/cachetools/py3/cachetools/__init__.py
index 2d2e2cf4ae..ad30175861 100644
--- a/contrib/python/cachetools/py3/cachetools/__init__.py
+++ b/contrib/python/cachetools/py3/cachetools/__init__.py
@@ -13,7 +13,7 @@ __all__ = (
"cachedmethod",
)
-__version__ = "5.5.0"
+__version__ = "5.5.1"
import collections
import collections.abc
diff --git a/contrib/python/cachetools/py3/ya.make b/contrib/python/cachetools/py3/ya.make
index 16c48a0f31..1581ce124b 100644
--- a/contrib/python/cachetools/py3/ya.make
+++ b/contrib/python/cachetools/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(5.5.0)
+VERSION(5.5.1)
LICENSE(MIT)
diff --git a/contrib/python/fonttools/.dist-info/METADATA b/contrib/python/fonttools/.dist-info/METADATA
index ca6f7ccb08..931191c289 100644
--- a/contrib/python/fonttools/.dist-info/METADATA
+++ b/contrib/python/fonttools/.dist-info/METADATA
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.2
Name: fonttools
-Version: 4.55.3
+Version: 4.55.4
Summary: Tools to manipulate font files
Home-page: http://github.com/fonttools/fonttools
Author: Just van Rossum
@@ -72,6 +72,18 @@ Requires-Dist: sympy; extra == "all"
Requires-Dist: xattr; sys_platform == "darwin" and extra == "all"
Requires-Dist: skia-pathops>=0.5.0; extra == "all"
Requires-Dist: uharfbuzz>=0.23.0; extra == "all"
+Dynamic: author
+Dynamic: author-email
+Dynamic: classifier
+Dynamic: description
+Dynamic: home-page
+Dynamic: license
+Dynamic: maintainer
+Dynamic: maintainer-email
+Dynamic: platform
+Dynamic: provides-extra
+Dynamic: requires-python
+Dynamic: summary
|CI Build Status| |Coverage Status| |PyPI| |Gitter Chat|
@@ -377,9 +389,15 @@ Have fun!
Changelog
~~~~~~~~~
-4.55.3 (released 2024-12-10)
+4.55.4 (released 2025-01-21)
----------------------------
+- [bezierTools] Fixed ``splitCubicAtT`` sometimes not returning identical start/end points as result of numerical precision (#3742, #3743).
+- [feaLib/ast] Fixed docstring of ``AlternateSubstStatement`` (#3735).
+- [transform] Typing fixes (#3734).
+
+4.55.3 (released 2024-12-10)
+----------------------------
- [Docs] fill out ttLib table section [#3716]
- [feaLib] More efficient inline format 4 lookups [#3726]
@@ -403,7 +421,6 @@ Changelog
4.55.0 (released 2024-11-14)
----------------------------
-
- [cffLib.specializer] Adjust stack use calculation (#3689)
- [varLib] Lets not add mac names if the rest of name doesn't have them (#3688)
- [ttLib.reorderGlyphs] Update CFF table charstrings and charset (#3682)
diff --git a/contrib/python/fonttools/fontTools/__init__.py b/contrib/python/fonttools/fontTools/__init__.py
index 0af1b7a5ec..d1af15d948 100644
--- a/contrib/python/fonttools/fontTools/__init__.py
+++ b/contrib/python/fonttools/fontTools/__init__.py
@@ -3,6 +3,6 @@ from fontTools.misc.loggingTools import configLogger
log = logging.getLogger(__name__)
-version = __version__ = "4.55.3"
+version = __version__ = "4.55.4"
__all__ = ["version", "log", "configLogger"]
diff --git a/contrib/python/fonttools/fontTools/feaLib/ast.py b/contrib/python/fonttools/fontTools/feaLib/ast.py
index 17c6cc3fbe..b9bab88ef2 100644
--- a/contrib/python/fonttools/fontTools/feaLib/ast.py
+++ b/contrib/python/fonttools/fontTools/feaLib/ast.py
@@ -595,8 +595,8 @@ class MarkClassDefinition(Statement):
class AlternateSubstStatement(Statement):
"""A ``sub ... from ...`` statement.
- ``prefix``, ``glyph``, ``suffix`` and ``replacement`` should be lists of
- `glyph-containing objects`_. ``glyph`` should be a `one element list`."""
+ ``glyph`` and ``replacement`` should be `glyph-containing objects`_.
+ ``prefix`` and ``suffix`` should be lists of `glyph-containing objects`_."""
def __init__(self, prefix, glyph, suffix, replacement, location=None):
Statement.__init__(self, location)
diff --git a/contrib/python/fonttools/fontTools/misc/bezierTools.py b/contrib/python/fonttools/fontTools/misc/bezierTools.py
index 1b37ade8d6..2021f24437 100644
--- a/contrib/python/fonttools/fontTools/misc/bezierTools.py
+++ b/contrib/python/fonttools/fontTools/misc/bezierTools.py
@@ -631,7 +631,14 @@ def splitCubicAtT(pt1, pt2, pt3, pt4, *ts):
((77.3438, 56.25), (85.9375, 43.75), (93.75, 25), (100, 0))
"""
a, b, c, d = calcCubicParameters(pt1, pt2, pt3, pt4)
- return _splitCubicAtT(a, b, c, d, *ts)
+ split = _splitCubicAtT(a, b, c, d, *ts)
+
+ # the split impl can introduce floating point errors; we know the first
+ # segment should always start at pt1 and the last segment should end at pt4,
+ # so we set those values directly before returning.
+ split[0] = (pt1, *split[0][1:])
+ split[-1] = (*split[-1][:-1], pt4)
+ return split
@cython.locals(
diff --git a/contrib/python/fonttools/fontTools/misc/transform.py b/contrib/python/fonttools/fontTools/misc/transform.py
index 2f4a216fa6..aeacc30fcb 100644
--- a/contrib/python/fonttools/fontTools/misc/transform.py
+++ b/contrib/python/fonttools/fontTools/misc/transform.py
@@ -52,6 +52,8 @@ translate, rotation, scale, skew, and transformation-center components.
>>>
"""
+from __future__ import annotations
+
import math
from typing import NamedTuple
from dataclasses import dataclass
@@ -65,7 +67,7 @@ _ONE_EPSILON = 1 - _EPSILON
_MINUS_ONE_EPSILON = -1 + _EPSILON
-def _normSinCos(v):
+def _normSinCos(v: float) -> float:
if abs(v) < _EPSILON:
v = 0
elif v > _ONE_EPSILON:
@@ -214,7 +216,7 @@ class Transform(NamedTuple):
xx, xy, yx, yy = self[:4]
return [(xx * dx + yx * dy, xy * dx + yy * dy) for dx, dy in vectors]
- def translate(self, x=0, y=0):
+ def translate(self, x: float = 0, y: float = 0):
"""Return a new transformation, translated (offset) by x, y.
:Example:
@@ -225,7 +227,7 @@ class Transform(NamedTuple):
"""
return self.transform((1, 0, 0, 1, x, y))
- def scale(self, x=1, y=None):
+ def scale(self, x: float = 1, y: float | None = None):
"""Return a new transformation, scaled by x, y. The 'y' argument
may be None, which implies to use the x value for y as well.
@@ -241,7 +243,7 @@ class Transform(NamedTuple):
y = x
return self.transform((x, 0, 0, y, 0, 0))
- def rotate(self, angle):
+ def rotate(self, angle: float):
"""Return a new transformation, rotated by 'angle' (radians).
:Example:
@@ -251,13 +253,11 @@ class Transform(NamedTuple):
<Transform [0 1 -1 0 0 0]>
>>>
"""
- import math
-
c = _normSinCos(math.cos(angle))
s = _normSinCos(math.sin(angle))
return self.transform((c, s, -s, c, 0, 0))
- def skew(self, x=0, y=0):
+ def skew(self, x: float = 0, y: float = 0):
"""Return a new transformation, skewed by x and y.
:Example:
@@ -267,8 +267,6 @@ class Transform(NamedTuple):
<Transform [1 0 1 1 0 0]>
>>>
"""
- import math
-
return self.transform((1, math.tan(y), math.tan(x), 1, 0, 0))
def transform(self, other):
@@ -336,7 +334,7 @@ class Transform(NamedTuple):
dx, dy = -xx * dx - yx * dy, -xy * dx - yy * dy
return self.__class__(xx, xy, yx, yy, dx, dy)
- def toPS(self):
+ def toPS(self) -> str:
"""Return a PostScript representation
:Example:
@@ -352,7 +350,7 @@ class Transform(NamedTuple):
"""Decompose into a DecomposedTransform."""
return DecomposedTransform.fromTransform(self)
- def __bool__(self):
+ def __bool__(self) -> bool:
"""Returns True if transform is not identity, False otherwise.
:Example:
@@ -374,14 +372,14 @@ class Transform(NamedTuple):
"""
return self != Identity
- def __repr__(self):
+ def __repr__(self) -> str:
return "<%s [%g %g %g %g %g %g]>" % ((self.__class__.__name__,) + self)
Identity = Transform()
-def Offset(x=0, y=0):
+def Offset(x: float = 0, y: float = 0) -> Transform:
"""Return the identity transformation offset by x, y.
:Example:
@@ -392,7 +390,7 @@ def Offset(x=0, y=0):
return Transform(1, 0, 0, 1, x, y)
-def Scale(x, y=None):
+def Scale(x: float, y: float | None = None) -> Transform:
"""Return the identity transformation scaled by x, y. The 'y' argument
may be None, which implies to use the x value for y as well.
@@ -492,7 +490,7 @@ class DecomposedTransform:
0,
)
- def toTransform(self):
+ def toTransform(self) -> Transform:
"""Return the Transform() equivalent of this transformation.
:Example:
diff --git a/contrib/python/fonttools/fontTools/pens/statisticsPen.py b/contrib/python/fonttools/fontTools/pens/statisticsPen.py
index b91d93b6eb..874a3c5b8d 100644
--- a/contrib/python/fonttools/fontTools/pens/statisticsPen.py
+++ b/contrib/python/fonttools/fontTools/pens/statisticsPen.py
@@ -106,6 +106,7 @@ class StatisticsControlPen(StatisticsBase, BasePen):
def _moveTo(self, pt):
self._nodes.append(complex(*pt))
+ self._startPoint = pt
def _lineTo(self, pt):
self._nodes.append(complex(*pt))
@@ -119,12 +120,16 @@ class StatisticsControlPen(StatisticsBase, BasePen):
self._nodes.append(complex(*pt))
def _closePath(self):
+ p0 = self._getCurrentPoint()
+ if p0 != self._startPoint:
+ self._lineTo(self._startPoint)
self._update()
def _endPath(self):
p0 = self._getCurrentPoint()
if p0 != self._startPoint:
raise OpenContourError("Glyph statistics not defined on open contours.")
+ self._update()
def _update(self):
nodes = self._nodes
diff --git a/contrib/python/fonttools/fontTools/ttLib/tables/_n_a_m_e.py b/contrib/python/fonttools/fontTools/ttLib/tables/_n_a_m_e.py
index 3fd1cdb483..31653f08ec 100644
--- a/contrib/python/fonttools/fontTools/ttLib/tables/_n_a_m_e.py
+++ b/contrib/python/fonttools/fontTools/ttLib/tables/_n_a_m_e.py
@@ -48,6 +48,10 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
dependencies = ["ltag"]
+ def __init__(self, tag=None):
+ super().__init__(tag)
+ self.names = []
+
def decompile(self, data, ttFont):
format, n, stringOffset = struct.unpack(b">HHH", data[:6])
expectedStringOffset = 6 + n * nameRecordSize
@@ -78,10 +82,6 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
self.names.append(name)
def compile(self, ttFont):
- if not hasattr(self, "names"):
- # only happens when there are NO name table entries read
- # from the TTX file
- self.names = []
names = self.names
names.sort() # sort according to the spec; see NameRecord.__lt__()
stringData = b""
@@ -108,8 +108,6 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
def fromXML(self, name, attrs, content, ttFont):
if name != "namerecord":
return # ignore unknown tags
- if not hasattr(self, "names"):
- self.names = []
name = NameRecord()
self.names.append(name)
name.fromXML(name, attrs, content, ttFont)
@@ -194,8 +192,6 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
identified by the (platformID, platEncID, langID) triplet. A warning is issued
to prevent unexpected results.
"""
- if not hasattr(self, "names"):
- self.names = []
if not isinstance(string, str):
if isinstance(string, bytes):
log.warning(
@@ -262,7 +258,7 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
The nameID is assigned in the range between 'minNameID' and 32767 (inclusive),
following the last nameID in the name table.
"""
- names = getattr(self, "names", [])
+ names = self.names
nameID = 1 + max([n.nameID for n in names] + [minNameID - 1])
if nameID > 32767:
raise ValueError("nameID must be less than 32768")
@@ -359,8 +355,6 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
If the 'nameID' argument is None, the created nameID will not
be less than the 'minNameID' argument.
"""
- if not hasattr(self, "names"):
- self.names = []
if nameID is None:
# Reuse nameID if possible
nameID = self.findMultilingualName(
@@ -404,8 +398,6 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
assert (
len(platforms) > 0
), "'platforms' must contain at least one (platformID, platEncID, langID) tuple"
- if not hasattr(self, "names"):
- self.names = []
if not isinstance(string, str):
raise TypeError(
"expected str, found %s: %r" % (type(string).__name__, string)
diff --git a/contrib/python/fonttools/ya.make b/contrib/python/fonttools/ya.make
index a5f677fa7d..461b564664 100644
--- a/contrib/python/fonttools/ya.make
+++ b/contrib/python/fonttools/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(4.55.3)
+VERSION(4.55.4)
LICENSE(MIT)
diff --git a/contrib/python/tzdata/.dist-info/METADATA b/contrib/python/tzdata/.dist-info/METADATA
index 4feec22ac4..393adbb254 100644
--- a/contrib/python/tzdata/.dist-info/METADATA
+++ b/contrib/python/tzdata/.dist-info/METADATA
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.2
Name: tzdata
-Version: 2024.2
+Version: 2025.1
Summary: Provider of IANA time zone data
Home-page: https://github.com/python/tzdata
Author: Python Software Foundation
diff --git a/contrib/python/tzdata/tzdata/__init__.py b/contrib/python/tzdata/tzdata/__init__.py
index e558a8a536..87dba5a778 100644
--- a/contrib/python/tzdata/tzdata/__init__.py
+++ b/contrib/python/tzdata/tzdata/__init__.py
@@ -1,6 +1,6 @@
# IANA versions like 2020a are not valid PEP 440 identifiers; the recommended
# way to translate the version is to use YYYY.n where `n` is a 0-based index.
-__version__ = "2024.2"
+__version__ = "2025.1"
# This exposes the original IANA version number.
-IANA_VERSION = "2024b"
+IANA_VERSION = "2025a"
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/America/Asuncion b/contrib/python/tzdata/tzdata/zoneinfo/America/Asuncion
index 6225036742..f056047f05 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/America/Asuncion
+++ b/contrib/python/tzdata/tzdata/zoneinfo/America/Asuncion
Binary files differ
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/Asia/Manila b/contrib/python/tzdata/tzdata/zoneinfo/Asia/Manila
index 3c3584e09a..145bb6fb16 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/Asia/Manila
+++ b/contrib/python/tzdata/tzdata/zoneinfo/Asia/Manila
Binary files differ
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/leapseconds b/contrib/python/tzdata/tzdata/zoneinfo/leapseconds
index 6c715cb20b..76f771427f 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/leapseconds
+++ b/contrib/python/tzdata/tzdata/zoneinfo/leapseconds
@@ -69,11 +69,11 @@ Leap 2016 Dec 31 23:59:60 + S
# Any additional leap seconds will come after this.
# This Expires line is commented out for now,
# so that pre-2020a zic implementations do not reject this file.
-#Expires 2025 Jun 28 00:00:00
+#Expires 2025 Dec 28 00:00:00
# POSIX timestamps for the data in this file:
-#updated 1720104763 (2024-07-04 14:52:43 UTC)
-#expires 1751068800 (2025-06-28 00:00:00 UTC)
+#updated 1736208000 (2025-01-07 00:00:00 UTC)
+#expires 1766880000 (2025-12-28 00:00:00 UTC)
# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat)
-# File expires on 28 June 2025
+# File expires on 28 December 2025
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/tzdata.zi b/contrib/python/tzdata/tzdata/zoneinfo/tzdata.zi
index 62e78bb826..db6ba4af2b 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/tzdata.zi
+++ b/contrib/python/tzdata/tzdata/zoneinfo/tzdata.zi
@@ -1,4 +1,4 @@
-# version 2024b
+# version 2025a
# This zic input file is in the public domain.
R d 1916 o - Jun 14 23s 1 S
R d 1916 1919 - O Su>=1 23s 0 -
@@ -721,12 +721,16 @@ R P 2085 o - Ap 21 2 0 -
R P 2085 o - Jun 9 2 1 S
R P 2086 o - Ap 13 2 0 -
R P 2086 o - May 25 2 1 S
-R PH 1936 o - N 1 0 1 D
-R PH 1937 o - F 1 0 0 S
-R PH 1954 o - Ap 12 0 1 D
-R PH 1954 o - Jul 1 0 0 S
-R PH 1978 o - Mar 22 0 1 D
-R PH 1978 o - S 21 0 0 S
+R PH 1936 o - O 31 24 1 D
+R PH 1937 o - Ja 15 24 0 S
+R PH 1941 o - D 15 24 1 D
+R PH 1945 o - N 30 24 0 S
+R PH 1954 o - Ap 11 24 1 D
+R PH 1954 o - Jun 4 24 0 S
+R PH 1977 o - Mar 27 24 1 D
+R PH 1977 o - S 21 24 0 S
+R PH 1990 o - May 21 0 1 D
+R PH 1990 o - Jul 28 24 0 S
R S 1920 1923 - Ap Su>=15 2 1 S
R S 1920 1923 - O Su>=1 2 0 -
R S 1962 o - Ap 29 2 1 S
@@ -1725,7 +1729,7 @@ R Y 1972 2006 - O lastSu 2 0 S
R Y 1987 2006 - Ap Su>=1 2 1 D
R Yu 1965 o - Ap lastSu 0 2 DD
R Yu 1965 o - O lastSu 2 0 S
-R m 1931 o - April 30 0 1 D
+R m 1931 o - Ap 30 0 1 D
R m 1931 o - O 1 0 0 S
R m 1939 o - F 5 0 1 D
R m 1939 o - Jun 25 0 0 S
@@ -2019,9 +2023,9 @@ R y 2002 2004 - Ap Su>=1 0 0 -
R y 2002 2003 - S Su>=1 0 1 -
R y 2004 2009 - O Su>=15 0 1 -
R y 2005 2009 - Mar Su>=8 0 0 -
-R y 2010 ma - O Su>=1 0 1 -
+R y 2010 2024 - O Su>=1 0 1 -
R y 2010 2012 - Ap Su>=8 0 0 -
-R y 2013 ma - Mar Su>=22 0 0 -
+R y 2013 2024 - Mar Su>=22 0 0 -
R PE 1938 o - Ja 1 0 1 -
R PE 1938 o - Ap 1 0 0 -
R PE 1938 1939 - S lastSu 0 1 -
@@ -2336,7 +2340,8 @@ Z America/Asuncion -3:50:40 - LMT 1890
-3:50:40 - AMT 1931 O 10
-4 - %z 1972 O
-3 - %z 1974 Ap
--4 y %z
+-4 y %z 2024 O 15
+-3 - %z
Z America/Bahia -2:34:4 - LMT 1914
-3 B %z 2003 S 24
-3 - %z 2011 O 16
@@ -3268,10 +3273,10 @@ Z Asia/Makassar 7:57:36 - LMT 1920
8 - %z 1942 F 9
9 - %z 1945 S 23
8 - WITA
-Z Asia/Manila -15:56 - LMT 1844 D 31
-8:4 - LMT 1899 May 11
-8 PH P%sT 1942 May
-9 - JST 1944 N
+Z Asia/Manila -15:56:8 - LMT 1844 D 31
+8:3:52 - LMT 1899 S 6 4u
+8 PH P%sT 1942 F 11 24
+9 - JST 1945 Mar 4
8 PH P%sT
Z Asia/Nicosia 2:13:28 - LMT 1921 N 14
2 CY EE%sT 1998 S
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/zone.tab b/contrib/python/tzdata/tzdata/zoneinfo/zone.tab
index bfc0b59330..d2be66359f 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/zone.tab
+++ b/contrib/python/tzdata/tzdata/zoneinfo/zone.tab
@@ -310,7 +310,7 @@ PF -0900-13930 Pacific/Marquesas Marquesas Islands
PF -2308-13457 Pacific/Gambier Gambier Islands
PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea
PG -0613+15534 Pacific/Bougainville Bougainville
-PH +1435+12100 Asia/Manila
+PH +143512+1205804 Asia/Manila
PK +2452+06703 Asia/Karachi
PL +5215+02100 Europe/Warsaw
PM +4703-05620 America/Miquelon
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/zone1970.tab b/contrib/python/tzdata/tzdata/zoneinfo/zone1970.tab
index 7726f39a09..5ded0565eb 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/zone1970.tab
+++ b/contrib/python/tzdata/tzdata/zoneinfo/zone1970.tab
@@ -183,7 +183,7 @@ IR +3540+05126 Asia/Tehran
IT,SM,VA +4154+01229 Europe/Rome
JM +175805-0764736 America/Jamaica
JO +3157+03556 Asia/Amman
-JP +353916+1394441 Asia/Tokyo
+JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory
KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi
KG +4254+07436 Asia/Bishkek
KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake
@@ -246,7 +246,7 @@ PF -0900-13930 Pacific/Marquesas Marquesas Islands
PF -2308-13457 Pacific/Gambier Gambier Islands
PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville
PG -0613+15534 Pacific/Bougainville Bougainville
-PH +1435+12100 Asia/Manila
+PH +143512+1205804 Asia/Manila
PK +2452+06703 Asia/Karachi
PL +5215+02100 Europe/Warsaw
PM +4703-05620 America/Miquelon
@@ -293,7 +293,7 @@ RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea
SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa
SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei
SD +1536+03232 Africa/Khartoum
-SG,MY +0117+10351 Asia/Singapore peninsular Malaysia
+SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia
SR +0550-05510 America/Paramaribo
SS +0451+03137 Africa/Juba
ST +0020+00644 Africa/Sao_Tome
diff --git a/contrib/python/tzdata/tzdata/zoneinfo/zonenow.tab b/contrib/python/tzdata/tzdata/zoneinfo/zonenow.tab
index 01f536b3ba..d2c1e48584 100644
--- a/contrib/python/tzdata/tzdata/zoneinfo/zonenow.tab
+++ b/contrib/python/tzdata/tzdata/zoneinfo/zonenow.tab
@@ -97,9 +97,6 @@ XX +1828-06954 America/Santo_Domingo Atlantic Standard ("AST") - eastern Caribbe
# -04/-03 (Chile DST)
XX -3327-07040 America/Santiago most of Chile
#
-# -04/-03 (Paraguay DST)
-XX -2516-05740 America/Asuncion Paraguay
-#
# -04/-03 - AST/ADT (North America DST)
XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda
#
@@ -224,7 +221,7 @@ XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island
XX -0610+10648 Asia/Jakarta Indonesia ("WIB")
#
# +08
-XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore
+XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia
#
# +08 - AWST
XX -3157+11551 Australia/Perth Western Australia ("AWST")
@@ -236,7 +233,7 @@ XX +3114+12128 Asia/Shanghai China ("CST")
XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT")
#
# +08 - PHT
-XX +1435+12100 Asia/Manila Philippines ("PHT")
+XX +143512+1205804 Asia/Manila Philippines ("PHT")
#
# +08 - WITA
XX -0507+11924 Asia/Makassar Indonesia ("WITA")
@@ -248,7 +245,7 @@ XX -3143+12852 Australia/Eucla Eucla
XX +5203+11328 Asia/Chita Russia; Palau; East Timor
#
# +09 - JST
-XX +353916+1394441 Asia/Tokyo Japan ("JST")
+XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory
#
# +09 - KST
XX +3733+12658 Asia/Seoul Korea ("KST")
diff --git a/contrib/python/tzdata/ya.make b/contrib/python/tzdata/ya.make
index 6fbf62e9d8..cd028a674f 100644
--- a/contrib/python/tzdata/ya.make
+++ b/contrib/python/tzdata/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(2024.2)
+VERSION(2025.1)
LICENSE(Apache-2.0)