diff --git a/srcpkgs/hatchling/template b/srcpkgs/hatchling/template index 81a777c33bd1f1..0bc6abb7578931 100644 --- a/srcpkgs/hatchling/template +++ b/srcpkgs/hatchling/template @@ -1,7 +1,7 @@ # Template file for 'hatchling' pkgname=hatchling -version=1.25.0 -revision=2 +version=1.27.0 +revision=1 build_style=python3-pep517 _deps="python3-editables python3-packaging python3-pathspec python3-pluggy python3-trove-classifiers" @@ -13,7 +13,7 @@ license="MIT" homepage="https://hatch.pypa.io/latest/" changelog="https://raw.githubusercontent.com/pypa/hatch/master/docs/history/hatchling.md" distfiles="${PYPI_SITE}/h/hatchling/hatchling-${version}.tar.gz" -checksum=7064631a512610b52250a4d3ff1bd81551d6d1431c4eb7b72e734df6c74f4262 +checksum=971c296d9819abb3811112fc52c7a9751c8d381898f36533bb16f9791e941fd6 post_install() { vlicense LICENSE.txt diff --git a/srcpkgs/python3-ipython_ipykernel/patches/1248.patch b/srcpkgs/python3-ipython_ipykernel/patches/1248.patch new file mode 100644 index 00000000000000..2fa9c259425e6c --- /dev/null +++ b/srcpkgs/python3-ipython_ipykernel/patches/1248.patch @@ -0,0 +1,42 @@ +Taken from https://github.com/ipython/ipykernel/pull/1248 + +From 3e7fb7c787511212ccb642004b4331a59594a329 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Mon, 10 Jun 2024 16:11:33 +0200 +Subject: [PATCH] Avoid a DeprecationWarning on Python 3.13+ + + ... + /usr/lib/python3.13/site-packages/ipykernel/jsonutil.py:29: in + datetime.strptime("1", "%d") + /usr/lib64/python3.13/_strptime.py:573: in _strptime_datetime + tt, fraction, gmtoff_fraction = _strptime(data_string, format) + /usr/lib64/python3.13/_strptime.py:336: in _strptime + format_regex = _TimeRE_cache.compile(format) + /usr/lib64/python3.13/_strptime.py:282: in compile + return re_compile(self.pattern(format), IGNORECASE) + /usr/lib64/python3.13/_strptime.py:270: in pattern + warnings.warn("""\ + E DeprecationWarning: Parsing dates involving a day of month without a year specified is ambiguious + E and fails to parse leap day. The default behavior will change in Python 3.15 + E to either always raise an exception or to use a different default year (TBD). + E To avoid trouble, add a specific year to the input & format. + E See https://github.com/python/cpython/issues/70647. + +See also https://github.com/jupyter/jupyter_client/issues/1020 +--- + ipykernel/jsonutil.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ipykernel/jsonutil.py b/ipykernel/jsonutil.py +index 6a463cf1..e45f06e5 100644 +--- a/ipykernel/jsonutil.py ++++ b/ipykernel/jsonutil.py +@@ -26,7 +26,7 @@ + + # holy crap, strptime is not threadsafe. + # Calling it once at import seems to help. +-datetime.strptime("1", "%d") ++datetime.strptime("2000-01-01", "%Y-%m-%d") + + # ----------------------------------------------------------------------------- + # Classes and functions diff --git a/srcpkgs/python3-ipython_ipykernel/patches/1277.diff b/srcpkgs/python3-ipython_ipykernel/patches/1277.diff new file mode 100644 index 00000000000000..1acdb44ed3ee47 --- /dev/null +++ b/srcpkgs/python3-ipython_ipykernel/patches/1277.diff @@ -0,0 +1,238 @@ +Backported to 6.29.5 from https://github.com/ipython/ipykernel/pull/1277 +See https://github.com/ipython/ipykernel/issues/1302 + +diff --git a/docs/conf.py b/docs/conf.py +index 4bb59932..38a724b5 100644 +--- a/docs/conf.py ++++ b/docs/conf.py +@@ -13,7 +13,7 @@ + import os + import shutil + from pathlib import Path +-from typing import Any, Dict, List ++from typing import Any + + # If extensions (or modules to document with autodoc) are in another directory, + # add these directories to sys.path here. If the directory is relative to the +@@ -70,7 +70,7 @@ + # built documents. + # + +-version_ns: Dict[str, Any] = {} ++version_ns: dict[str, Any] = {} + here = Path(__file__).parent.resolve() + version_py = Path(here) / os.pardir / "ipykernel" / "_version.py" + with open(version_py) as f: +@@ -159,7 +159,7 @@ + # Add any paths that contain custom static files (such as style sheets) here, + # relative to this directory. They are copied after the builtin static files, + # so a file named "default.css" will overwrite the builtin "default.css". +-html_static_path: List[str] = [] ++html_static_path: list[str] = [] + + # Add any extra paths that contain custom files (such as robots.txt or + # .htaccess) here, relative to this directory. These files are copied +@@ -226,7 +226,7 @@ + + # -- Options for LaTeX output --------------------------------------------- + +-latex_elements: Dict[str, object] = {} ++latex_elements: dict[str, object] = {} + + # Grouping the document tree into LaTeX files. List of tuples + # (source start file, target name, title, +diff --git a/ipykernel/_version.py b/ipykernel/_version.py +index d9a9f534..5907d150 100644 +--- a/ipykernel/_version.py ++++ b/ipykernel/_version.py +@@ -2,7 +2,6 @@ + store the current version info of the server. + """ + import re +-from typing import List + + # Version string must appear intact for hatch versioning + __version__ = "7.0.0a0" +@@ -11,7 +10,7 @@ + pattern = r"(?P\d+).(?P\d+).(?P\d+)(?P.*)" + match = re.match(pattern, __version__) + assert match is not None +-parts: List[object] = [int(match[part]) for part in ["major", "minor", "patch"]] ++parts: list[object] = [int(match[part]) for part in ["major", "minor", "patch"]] + if match["rest"]: + parts.append(match["rest"]) + version_info = tuple(parts) +diff --git a/ipykernel/debugger.py b/ipykernel/debugger.py +index 8680793f..780d1801 100644 +--- a/ipykernel/debugger.py ++++ b/ipykernel/debugger.py +@@ -130,7 +130,7 @@ def _reset_tcp_pos(self): + + def _put_message(self, raw_msg): + self.log.debug("QUEUE - _put_message:") +- msg = t.cast(t.Dict[str, t.Any], jsonapi.loads(raw_msg)) ++ msg = t.cast(dict[str, t.Any], jsonapi.loads(raw_msg)) + if msg["type"] == "event": + self.log.debug("QUEUE - received event:") + self.log.debug(msg) +diff --git a/ipykernel/inprocess/channels.py b/ipykernel/inprocess/channels.py +index 378416dc..4c01c5bc 100644 +--- a/ipykernel/inprocess/channels.py ++++ b/ipykernel/inprocess/channels.py +@@ -3,8 +3,6 @@ + # Copyright (c) IPython Development Team. + # Distributed under the terms of the Modified BSD License. + +-from typing import List +- + from jupyter_client.channelsabc import HBChannelABC + + # ----------------------------------------------------------------------------- +@@ -15,7 +13,7 @@ + class InProcessChannel: + """Base class for in-process channels.""" + +- proxy_methods: List[object] = [] ++ proxy_methods: list[object] = [] + + def __init__(self, client=None): + """Initialize the channel.""" +diff --git a/ipykernel/iostream.py b/ipykernel/iostream.py +index beca44b1..81170b97 100644 +--- a/ipykernel/iostream.py ++++ b/ipykernel/iostream.py +@@ -15,7 +15,7 @@ + from collections import defaultdict, deque + from io import StringIO, TextIOBase + from threading import local +-from typing import Any, Callable, Deque, Dict, Optional ++from typing import Any, Callable, Optional + + import zmq + from jupyter_client.session import extract_header +@@ -94,8 +94,8 @@ def __init__(self, socket, pipe=False): + if pipe: + self._setup_pipe_in() + self._local = threading.local() +- self._events: Deque[Callable[..., Any]] = deque() +- self._event_pipes: Dict[threading.Thread, Any] = {} ++ self._events: deque[Callable[..., Any]] = deque() ++ self._event_pipes: dict[threading.Thread, Any] = {} + self._event_pipe_gc_lock: threading.Lock = threading.Lock() + self._event_pipe_gc_seconds: float = 10 + self._setup_event_pipe() +@@ -470,7 +470,7 @@ def __init__( + self.pub_thread = pub_thread + self.name = name + self.topic = b"stream." + name.encode() +- self._parent_header: contextvars.ContextVar[Dict[str, Any]] = contextvars.ContextVar( ++ self._parent_header: contextvars.ContextVar[dict[str, Any]] = contextvars.ContextVar( + "parent_header" + ) + self._parent_header.set({}) +diff --git a/ipykernel/ipkernel.py b/ipykernel/ipkernel.py +index db83d986..48efa6cd 100644 +--- a/ipykernel/ipkernel.py ++++ b/ipykernel/ipkernel.py +@@ -1,5 +1,7 @@ + """The IPython kernel implementation""" + ++from __future__ import annotations ++ + import asyncio + import builtins + import gc +@@ -16,7 +18,7 @@ + from IPython.core import release + from IPython.utils.tokenutil import line_at_cursor, token_at_cursor + from jupyter_client.session import extract_header +-from traitlets import Any, Bool, HasTraits, Instance, List, Type, observe, observe_compat ++from traitlets import Any, Bool, HasTraits, Instance, List, Type, default, observe, observe_compat + from zmq.eventloop.zmqstream import ZMQStream + + from .comm.comm import BaseComm +@@ -46,7 +48,7 @@ def _create_comm(*args, **kwargs): + + # there can only be one comm manager in a ipykernel process + _comm_lock = threading.Lock() +-_comm_manager: t.Optional[CommManager] = None ++_comm_manager: CommManager | None = None + + + def _get_comm_manager(*args, **kwargs): +@@ -84,7 +86,11 @@ def _user_module_changed(self, change): + if self.shell is not None: + self.shell.user_module = change["new"] + +- user_ns = Instance(dict, args=None, allow_none=True) ++ user_ns = Instance("collections.abc.Mapping", allow_none=True) ++ ++ @default("user_ns") ++ def _default_user_ns(self): ++ return dict() + + @observe("user_ns") + @observe_compat +@@ -353,7 +359,7 @@ async def do_execute( + + self._forward_input(allow_stdin) + +- reply_content: t.Dict[str, t.Any] = {} ++ reply_content: dict[str, t.Any] = {} + if hasattr(shell, "run_cell_async") and hasattr(shell, "should_run_async"): + run_cell = shell.run_cell_async + should_run_async = shell.should_run_async +@@ -559,7 +565,7 @@ def do_inspect(self, code, cursor_pos, detail_level=0, omit_sections=()): + """Handle code inspection.""" + name = token_at_cursor(code, cursor_pos) + +- reply_content: t.Dict[str, t.Any] = {"status": "ok"} ++ reply_content: dict[str, t.Any] = {"status": "ok"} + reply_content["data"] = {} + reply_content["metadata"] = {} + assert self.shell is not None +@@ -755,7 +761,7 @@ def init_closure(self: threading.Thread, *args, **kwargs): + threading.Thread.run = run_closure # type:ignore[method-assign] + + def _clean_thread_parent_frames( +- self, phase: t.Literal["start", "stop"], info: t.Dict[str, t.Any] ++ self, phase: t.Literal["start", "stop"], info: dict[str, t.Any] + ): + """Clean parent frames of threads which are no longer running. + This is meant to be invoked by garbage collector callback hook. +diff --git a/ipykernel/pickleutil.py b/ipykernel/pickleutil.py +index 6f156594..4ffa5262 100644 +--- a/ipykernel/pickleutil.py ++++ b/ipykernel/pickleutil.py +@@ -209,7 +209,7 @@ def __init__(self, f): + """Initialize the can""" + self._check_type(f) + self.code = f.__code__ +- self.defaults: typing.Optional[typing.List[typing.Any]] ++ self.defaults: typing.Optional[list[typing.Any]] + if f.__defaults__: + self.defaults = [can(fd) for fd in f.__defaults__] + else: +@@ -475,7 +475,7 @@ def uncan_sequence(obj, g=None): + if buffer is not memoryview: + can_map[buffer] = CannedBuffer + +-uncan_map: typing.Dict[type, typing.Any] = { ++uncan_map: dict[type, typing.Any] = { + CannedObject: lambda obj, g: obj.get_object(g), + dict: uncan_dict, + } +diff --git a/pyproject.toml b/pyproject.toml +index 1e9e543c..e1d7b1d5 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -187,6 +187,9 @@ filterwarnings= [ + + # Ignore datetime warning. + "ignore:datetime.datetime.utc:DeprecationWarning", ++ ++ # ignore unclosed sqlite in traits ++ "ignore:unclosed database in =1.6.5", + "ipython>=7.23.1", + "comm>=0.1.1", + "traitlets>=5.4.0", diff --git a/srcpkgs/python3-ipython_ipykernel/template b/srcpkgs/python3-ipython_ipykernel/template index 22143ffaf9a5e4..b768cfb3fc49c1 100644 --- a/srcpkgs/python3-ipython_ipykernel/template +++ b/srcpkgs/python3-ipython_ipykernel/template @@ -1,13 +1,15 @@ # Template file for 'python3-ipython_ipykernel' pkgname=python3-ipython_ipykernel version=6.29.5 -revision=2 +revision=3 build_style=python3-pep517 # run all tests available make_check_target="tests" hostmakedepends="hatchling python3-jupyter_client" depends="python3-comm python3-ipython python3-jupyter_client - python3-nest_asyncio python3-packaging python3-psutil python3-tornado" + python3-jupyter_core python3-matplotlib-inline python3-nest_asyncio + python3-packaging python3-psutil python3-pyzmq python3-tornado + python3-traitlets" checkdepends="$depends python3-flaky python3-pytest-asyncio python3-pytest-timeout python3-trio python3-curio python3-matplotlib python3-PyQt5 python3-PyQt5-svg python3-pytest-xdist" diff --git a/srcpkgs/python3-jupyter_client/template b/srcpkgs/python3-jupyter_client/template index 7f6ed7b35d8c01..55a5f7a3b63a1a 100644 --- a/srcpkgs/python3-jupyter_client/template +++ b/srcpkgs/python3-jupyter_client/template @@ -1,16 +1,20 @@ # Template file for 'python3-jupyter_client' pkgname=python3-jupyter_client -version=8.6.2 -revision=2 +version=8.6.3 +revision=1 build_style=python3-pep517 -# 1st: random fail (see https://github.com/jupyter/jupyter_client/issues/979) -# 2nd: fail by timeout in ~ 60s +# random failures (see https://github.com/jupyter/jupyter_client/issues/979) make_check_args=" --deselect tests/test_kernelmanager.py::TestParallel::test_start_parallel_process_kernels[tcp] - --deselect tests/test_restarter.py::test_restart_check[ipc]" + --deselect tests/test_kernelmanager.py::TestParallel::test_start_sequence_kernels[ipc] + --deselect tests/test_kernelmanager.py::TestParallel::test_start_sequence_process_kernels[tcp] + --deselect tests/test_restarter.py::test_restart_check[ipc] + --deselect tests/test_restarter.py::test_async_restart_check[ipc] + --deselect tests/test_client.py::TestAsyncKernelClient::test_input_request" hostmakedepends="hatchling" -depends="python3-dateutil python3-jupyter_core python3-pyzmq python3-tornado" -checkdepends="$depends inetutils-ifconfig iproute2 openssh +depends="python3-dateutil python3-jupyter_core python3-pyzmq python3-tornado + python3-traitlets" +checkdepends="$depends inetutils-ifconfig iproute2 openssh python3-msgpack python3-pytest-jupyter python3-pytest-timeout python3-pytest-xdist" short_desc="Jupyter protocol client APIs" maintainer="Gonzalo TornarĂ­a " @@ -18,7 +22,7 @@ license="BSD-3-Clause" homepage="https://github.com/jupyter/jupyter_client" changelog="https://raw.githubusercontent.com/jupyter/jupyter_client/main/CHANGELOG.md" distfiles="${PYPI_SITE}/j/jupyter_client/jupyter_client-${version}.tar.gz" -checksum=2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df +checksum=35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419 conflicts="python-jupyter_client<=5.2.4_2" make_check=extended # cannot be tested without python3-ipython_ipykernel diff --git a/srcpkgs/python3-pytest-asyncio/template b/srcpkgs/python3-pytest-asyncio/template index 091f8f5d42a04b..cfb9c094d3a7b0 100644 --- a/srcpkgs/python3-pytest-asyncio/template +++ b/srcpkgs/python3-pytest-asyncio/template @@ -1,7 +1,7 @@ # Template file for 'python3-pytest-asyncio' pkgname=python3-pytest-asyncio -version=0.23.8 -revision=2 +version=0.25.0 +revision=1 build_style=python3-pep517 hostmakedepends="python3-setuptools_scm python3-wheel" depends="python3-pytest" @@ -12,7 +12,7 @@ license="Apache-2.0" homepage="https://github.com/pytest-dev/pytest-asyncio" changelog="https://raw.githubusercontent.com/pytest-dev/pytest-asyncio/master/docs/source/reference/changelog.rst" distfiles="${PYPI_SITE}/p/pytest-asyncio/pytest_asyncio-${version}.tar.gz" -checksum=759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3 +checksum=8c0610303c9e0442a5db8604505fc0f545456ba1528824842b37b4a626cbf609 if [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then # these tests fail on CI (bind to a tcp address) diff --git a/srcpkgs/python3-tornado/template b/srcpkgs/python3-tornado/template index 3684929c9ccd8c..286c18b0cdd0ae 100644 --- a/srcpkgs/python3-tornado/template +++ b/srcpkgs/python3-tornado/template @@ -1,7 +1,7 @@ # Template file for 'python3-tornado' pkgname=python3-tornado -version=6.4.1 -revision=2 +version=6.4.2 +revision=1 build_style=python3-pep517 hostmakedepends="python3-setuptools python3-wheel" makedepends="python3-devel" @@ -13,7 +13,7 @@ license="Apache-2.0" homepage="http://www.tornadoweb.org/" changelog="https://www.tornadoweb.org/en/stable/releases.html" distfiles="${PYPI_SITE}/t/tornado/tornado-${version}.tar.gz" -checksum=92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9 +checksum=92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b do_check() { # There is one instance of test_bind_source_ip (the one for