From f34554c9dba63c08a8e6b5b43088826f3e85dc09 Mon Sep 17 00:00:00 2001 From: donbarbos Date: Fri, 13 Feb 2026 15:37:38 +0400 Subject: [PATCH 1/3] [reportlab] Update to 4.4.10 Closes: #15420 Diff: https://github.com/MrBitBucket/reportlab-mirror/compare/f17cecae94762bd914591eba61125bd3f3732ffd...b6879c88a6c3a86d2bd4074de50037718ba59733 --- stubs/reportlab/METADATA.toml | 2 +- .../reportlab/graphics/charts/utils.pyi | 29 ++++++++++++++++++- stubs/reportlab/reportlab/lib/utils.pyi | 5 ++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/stubs/reportlab/METADATA.toml b/stubs/reportlab/METADATA.toml index d97d0d814420..33ce4a87e357 100644 --- a/stubs/reportlab/METADATA.toml +++ b/stubs/reportlab/METADATA.toml @@ -1,4 +1,4 @@ -version = "4.4.9" +version = "4.4.10" # GitHub mirror of https://hg.reportlab.com/hg-public/reportlab/file upstream_repository = "https://github.com/MrBitBucket/reportlab-mirror" diff --git a/stubs/reportlab/reportlab/graphics/charts/utils.pyi b/stubs/reportlab/reportlab/graphics/charts/utils.pyi index 607d3b15a387..8549cfe3a133 100644 --- a/stubs/reportlab/reportlab/graphics/charts/utils.pyi +++ b/stubs/reportlab/reportlab/graphics/charts/utils.pyi @@ -1,6 +1,29 @@ from _typeshed import Incomplete -from typing import Final +from collections.abc import Sequence +from typing import Final, Literal +__all__ = ( + "angle2corner", + "angle2dir", + "boxCornerCoords", + "CustomDrawChanger", + "DrawTimeCollector", + "FillPairedData", + "find_good_grid", + "find_interval", + "findNones", + "lineSegmentIntersect", + "makeCircularString", + "maverage", + "mkTimeTuple", + "nextRoundNumber", + "pairFixNones", + "pairMaverage", + "seconds2str", + "str2seconds", + "ticks", + "xyDist", +) __version__: Final[str] def mkTimeTuple(timeString): ... @@ -43,3 +66,7 @@ class CustomDrawChanger: class FillPairedData(list[Incomplete]): other: Incomplete def __init__(self, v, other: int = 0) -> None: ... + +def angle2dir(angle: float) -> str: ... +def angle2corner(angle: float) -> str: ... +def boxCornerCoords(bb: Sequence[float], cn: Literal["n", "ne", "e", "se", "s", "sw", "w", "nw", "c"]) -> tuple[float, float]: ... diff --git a/stubs/reportlab/reportlab/lib/utils.pyi b/stubs/reportlab/reportlab/lib/utils.pyi index 8aafa063ccf3..0f3cb2dedca8 100644 --- a/stubs/reportlab/reportlab/lib/utils.pyi +++ b/stubs/reportlab/reportlab/lib/utils.pyi @@ -1,10 +1,11 @@ import datetime import zipimport from _typeshed import Incomplete, SupportsItems -from collections.abc import Generator, Iterable +from collections.abc import Generator, Iterable, MutableMapping from os import PathLike from types import TracebackType from typing import AnyStr, Final, Literal, TypeVar, overload, type_check_only +from urllib.request import _UrlopenRet from reportlab.lib.rltempfile import get_rl_tempdir as get_rl_tempdir, get_rl_tempfile as get_rl_tempfile @@ -85,7 +86,7 @@ class ArgvDictValue: def getArgvDict(**kw): ... def getHyphenater(hDict=None): ... def open_for_read_by_name(name, mode: str = "b"): ... -def rlUrlRead(name): ... +def rlUrlRead(name: str, headers: MutableMapping[str, str] | None) -> _UrlopenRet: ... def open_for_read(name, mode: str = "b"): ... def open_and_read(name, mode: str = "b"): ... def open_and_readlines(name, mode: str = "t"): ... From 79166a1021089df0c79a02943dbb8f409ffe1906 Mon Sep 17 00:00:00 2001 From: donbarbos Date: Fri, 13 Feb 2026 15:40:47 +0400 Subject: [PATCH 2/3] Add missing default value --- stubs/reportlab/reportlab/lib/utils.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/reportlab/reportlab/lib/utils.pyi b/stubs/reportlab/reportlab/lib/utils.pyi index 0f3cb2dedca8..44f0af9ae341 100644 --- a/stubs/reportlab/reportlab/lib/utils.pyi +++ b/stubs/reportlab/reportlab/lib/utils.pyi @@ -86,7 +86,7 @@ class ArgvDictValue: def getArgvDict(**kw): ... def getHyphenater(hDict=None): ... def open_for_read_by_name(name, mode: str = "b"): ... -def rlUrlRead(name: str, headers: MutableMapping[str, str] | None) -> _UrlopenRet: ... +def rlUrlRead(name: str, headers: MutableMapping[str, str] | None = None) -> _UrlopenRet: ... def open_for_read(name, mode: str = "b"): ... def open_and_read(name, mode: str = "b"): ... def open_and_readlines(name, mode: str = "t"): ... From 17e1eeec42ad2a0933a075128d703b1827baaa45 Mon Sep 17 00:00:00 2001 From: donbarbos Date: Fri, 13 Feb 2026 15:43:23 +0400 Subject: [PATCH 3/3] remove unused allowlist entry --- stubs/reportlab/@tests/stubtest_allowlist.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stubs/reportlab/@tests/stubtest_allowlist.txt b/stubs/reportlab/@tests/stubtest_allowlist.txt index 4d0f9ed51ff3..0c7995b12587 100644 --- a/stubs/reportlab/@tests/stubtest_allowlist.txt +++ b/stubs/reportlab/@tests/stubtest_allowlist.txt @@ -73,7 +73,6 @@ reportlab.lib.abag.ABag.__setattr__ reportlab.lib.styles.PropertySet.__setattr__ # *-imports that cause a mess we don't want to propagate -reportlab.graphics.charts.lineplots.pi reportlab\.graphics\.render(base|PDF|PM|PS|SVG)\.EVEN_ODD reportlab\.graphics\.render(base|PDF|PM|PS|SVG)\.FILL_EVEN_ODD reportlab\.graphics\.render(base|PDF|PM|PS|SVG)\.FILL_NON_ZERO