Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-typer for openSUSE:Factory 
checked in at 2026-04-28 11:53:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-typer (Old)
 and      /work/SRC/openSUSE:Factory/.python-typer.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-typer"

Tue Apr 28 11:53:25 2026 rev:33 rq:1349285 version:0.24.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-typer/python-typer.changes        
2026-03-30 18:29:35.846826355 +0200
+++ /work/SRC/openSUSE:Factory/.python-typer.new.11940/python-typer.changes     
2026-04-28 11:53:41.534835235 +0200
@@ -1,0 +2,15 @@
+Sat Apr 25 20:45:16 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.24.2:
+  * Ensure that `typer.launch` forwards correctly when
+    launching a file. PR #1708 by @svlandeg.
+  * Ensure `ty` runs without errors. PR #1628 by @svlandeg.
+  * Add dates to release notes. PR #1612 by @YuriiMotov.
+  * Fix code blocks in reference docs overflowing table width.
+  * Fix broken link to FastAPI and Friends newsletter. PR #1540
+  * Handle external links `target=_blank` and CSS automatically
+    in JS and CSS. PR #1622 by @tiangolo.
+  * Remove link to Typer developer survey. PR #1609 by
+  * Clean up documentation in `install.md` file. PR #1606 by
+
+-------------------------------------------------------------------

Old:
----
  typer-0.24.1.tar.gz

New:
----
  typer-0.24.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-typer.spec ++++++
--- /var/tmp/diff_new_pack.dGFZMn/_old  2026-04-28 11:53:42.310867279 +0200
+++ /var/tmp/diff_new_pack.dGFZMn/_new  2026-04-28 11:53:42.314867444 +0200
@@ -1,8 +1,7 @@
 #
 # spec file for package python-typer
 #
-# Copyright (c) 2026 SUSE LLC
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 # Copyright (c) 2021 Matthias Bach <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -26,7 +25,7 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-typer
-Version:        0.24.1
+Version:        0.24.2
 Release:        0
 Summary:        Typer, build great CLIs. Easy to code. Based on Python type 
hints
 License:        MIT

++++++ typer-0.24.1.tar.gz -> typer-0.24.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/PKG-INFO new/typer-0.24.2/PKG-INFO
--- old/typer-0.24.1/PKG-INFO   1970-01-01 01:00:00.000000000 +0100
+++ new/typer-0.24.2/PKG-INFO   1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: typer
-Version: 0.24.1
+Version: 0.24.2
 Summary: Typer, build great CLIs. Easy to code. Based on Python type hints.
 Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <[email protected]>
 License-Expression: MIT
@@ -77,10 +77,6 @@
 * **Grow large**: Grow in complexity as much as you want, create arbitrarily 
complex trees of commands and groups of subcommands, with options and arguments.
 * **Run scripts**: Typer includes a `typer` command/program that you can use 
to run scripts, automatically converting them to CLIs, even if they don't use 
Typer internally.
 
-## 2026 February - Typer developer survey
-
-Help us define Typer's future by filling the <a 
href="https://forms.gle/nYvutPrVkmBQZLas7"; class="external-link" 
target="_blank">Typer developer survey</a>. ✨
-
 ## FastAPI of CLIs
 
 **Typer** is <a href="https://fastapi.tiangolo.com"; class="external-link" 
target="_blank">FastAPI</a>'s little sibling, it's the FastAPI of CLIs.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/README.md new/typer-0.24.2/README.md
--- old/typer-0.24.1/README.md  2026-02-21 17:54:33.771807400 +0100
+++ new/typer-0.24.2/README.md  2026-04-22 19:45:28.353569500 +0200
@@ -40,10 +40,6 @@
 * **Grow large**: Grow in complexity as much as you want, create arbitrarily 
complex trees of commands and groups of subcommands, with options and arguments.
 * **Run scripts**: Typer includes a `typer` command/program that you can use 
to run scripts, automatically converting them to CLIs, even if they don't use 
Typer internally.
 
-## 2026 February - Typer developer survey
-
-Help us define Typer's future by filling the <a 
href="https://forms.gle/nYvutPrVkmBQZLas7"; class="external-link" 
target="_blank">Typer developer survey</a>. ✨
-
 ## FastAPI of CLIs
 
 **Typer** is <a href="https://fastapi.tiangolo.com"; class="external-link" 
target="_blank">FastAPI</a>'s little sibling, it's the FastAPI of CLIs.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/pyproject.toml 
new/typer-0.24.2/pyproject.toml
--- old/typer-0.24.1/pyproject.toml     2026-02-21 17:54:38.863812200 +0100
+++ new/typer-0.24.2/pyproject.toml     2026-04-22 19:45:31.531579000 +0200
@@ -43,7 +43,7 @@
     "annotated-doc >=0.0.2",
 ]
 readme = "README.md"
-version = "0.24.1"
+version = "0.24.2"
 
 [project.urls]
 Homepage = "https://github.com/fastapi/typer";
@@ -82,10 +82,10 @@
     "smokeshow >=0.5.0",
 ]
 tests = [
-    "coverage[toml] >=6.2",
+    "coverage[toml] >=7.13",
     "mypy >=1.19.1",
-    "ty >=0.0.9",
-    "pytest >=7.4.0",
+    "ty >=0.0.25",
+    "pytest >=9.0.0",
     "pytest-cov >=4.0.0",
     "pytest-sugar >=0.9.5",
     "pytest-xdist >=1.32.0",
@@ -108,13 +108,13 @@
     "scripts/",
 ]
 
-[tool.pytest.ini_options]
+[tool.pytest]
+minversion = "9.0"
 addopts = [
     "--strict-config",
     "--strict-markers",
 ]
-xfail_strict = true
-junit_family = "xunit2"
+strict_xfail = true
 filterwarnings = [
     "error",
     "ignore::DeprecationWarning:xdist",
@@ -245,3 +245,6 @@
 
 [tool.ruff.lint.flake8-tidy-imports.banned-api."shellingham.detect_shell"]
 msg = "Use 'typer._completion_shared._get_shell_name' instead of using 
'shellingham.detect_shell' directly.\n"
+
+[tool.ty.terminal]
+error-on-warning = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/scripts/add_latest_release_date.py 
new/typer-0.24.2/scripts/add_latest_release_date.py
--- old/typer-0.24.1/scripts/add_latest_release_date.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/typer-0.24.2/scripts/add_latest_release_date.py 2026-04-22 
19:45:28.370477700 +0200
@@ -0,0 +1,40 @@
+"""Check release-notes.md and add today's date to the latest release header if 
missing."""
+
+import re
+import sys
+from datetime import date
+
+RELEASE_NOTES_FILE = "docs/release-notes.md"
+RELEASE_HEADER_PATTERN = re.compile(r"^## (\d+\.\d+\.\d+)\s*(\(.*\))?\s*$")
+
+
+def main() -> None:
+    with open(RELEASE_NOTES_FILE) as f:
+        lines = f.readlines()
+
+    for i, line in enumerate(lines):
+        match = RELEASE_HEADER_PATTERN.match(line)
+        if not match:
+            continue
+
+        version = match.group(1)
+        date_part = match.group(2)
+
+        if date_part:
+            print(f"Latest release {version} already has a date: {date_part}")
+            sys.exit(0)
+
+        today = date.today().isoformat()
+        lines[i] = f"## {version} ({today})\n"
+        print(f"Added date: {version} ({today})")
+
+        with open(RELEASE_NOTES_FILE, "w") as f:
+            f.writelines(lines)
+        sys.exit(0)
+
+    print("No release header found")
+    sys.exit(1)
+
+
+if __name__ == "__main__":
+    main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/tests/test_launch.py 
new/typer-0.24.2/tests/test_launch.py
--- old/typer-0.24.1/tests/test_launch.py       2026-02-21 17:54:33.788807400 
+0100
+++ new/typer-0.24.2/tests/test_launch.py       2026-04-22 19:45:28.372724800 
+0200
@@ -4,6 +4,8 @@
 import pytest
 import typer
 
+from tests.utils import needs_windows
+
 url = "http://example.com";
 
 
@@ -53,4 +55,18 @@
     with patch("typer.main.click.launch", return_value=0) as launch_mock:
         typer.launch("not a url")
 
-    launch_mock.assert_called_once_with("not a url")
+    launch_mock.assert_called_once_with("not a url", wait=False, locate=False)
+
+
+@needs_windows
+def test_launch_file():
+    with (
+        patch("click._termui_impl.sys.platform", "win32"),
+        patch("click._termui_impl.WIN", True),
+        patch("click._termui_impl.CYGWIN", False),
+        patch("subprocess.call", return_value=0) as call_mock,
+    ):
+        result = typer.launch("C:/tmp/file.txt", locate=True)
+
+    assert result == 0
+    call_mock.assert_called_once_with(["explorer", "/select,C:/tmp/file.txt"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/tests/utils.py 
new/typer-0.24.2/tests/utils.py
--- old/typer-0.24.1/tests/utils.py     2026-02-21 17:54:33.796807300 +0100
+++ new/typer-0.24.2/tests/utils.py     2026-04-22 19:45:28.381250900 +0200
@@ -9,6 +9,9 @@
 needs_linux = pytest.mark.skipif(
     not sys.platform.startswith("linux"), reason="Test requires Linux"
 )
+needs_windows = pytest.mark.skipif(
+    not sys.platform.startswith("win"), reason="Test requires Windows"
+)
 
 needs_rich = pytest.mark.skipif(not HAS_RICH, reason="Test requires Rich")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/typer/__init__.py 
new/typer-0.24.2/typer/__init__.py
--- old/typer-0.24.1/typer/__init__.py  2026-02-21 17:54:33.796807300 +0100
+++ new/typer-0.24.2/typer/__init__.py  2026-04-22 19:45:28.381250900 +0200
@@ -1,6 +1,6 @@
 """Typer, build great CLIs. Easy to code. Based on Python type hints."""
 
-__version__ = "0.24.1"
+__version__ = "0.24.2"
 
 from shutil import get_terminal_size as get_terminal_size
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/typer/cli.py 
new/typer-0.24.2/typer/cli.py
--- old/typer-0.24.1/typer/cli.py       2026-02-21 17:54:33.797807500 +0100
+++ new/typer-0.24.2/typer/cli.py       2026-04-22 19:45:28.381578700 +0200
@@ -131,6 +131,7 @@
         else:
             typer.echo(f"Could not import as Python module: {state.module}", 
err=True)
         sys.exit(1)
+    assert spec is not None
     module = importlib.util.module_from_spec(spec)
     spec.loader.exec_module(module)  # type: ignore
     obj = get_typer_from_module(module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/typer/core.py 
new/typer-0.24.2/typer/core.py
--- old/typer-0.24.1/typer/core.py      2026-02-21 17:54:33.797807500 +0100
+++ new/typer-0.24.2/typer/core.py      2026-04-22 19:45:28.381578700 +0200
@@ -376,7 +376,7 @@
             help = f"{help}  {extra_str}" if help else f"{extra_str}"
         return name, help
 
-    def make_metavar(self, ctx: click.Context | None = None) -> str:
+    def make_metavar(self, ctx: click.Context) -> str:
         # Modified version of click.core.Argument.make_metavar()
         # to include Argument name
         if self.metavar is not None:
@@ -387,8 +387,7 @@
         var = (self.name or "").upper()
         if not self.required:
             var = f"[{var}]"
-        type_var = self.type.get_metavar(self, ctx=ctx)  # type: 
ignore[arg-type]
-        # type_var = self.type.get_metavar(self, ctx=ctx)
+        type_var = self.type.get_metavar(self, ctx=ctx)
         if type_var:
             var += f":{type_var}"
         if self.nargs != 1:
@@ -487,8 +486,8 @@
     ) -> Any | Callable[[], Any] | None:
         return _extract_default_help_str(self, ctx=ctx)
 
-    def make_metavar(self, ctx: click.Context | None = None) -> str:
-        return super().make_metavar(ctx=ctx)  # type: ignore[arg-type]
+    def make_metavar(self, ctx: click.Context) -> str:
+        return super().make_metavar(ctx=ctx)
 
     def get_help_record(self, ctx: click.Context) -> tuple[str, str] | None:
         # Duplicate all of Click's logic only to modify a single line, to 
allow boolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.24.1/typer/main.py 
new/typer-0.24.2/typer/main.py
--- old/typer-0.24.1/typer/main.py      2026-02-21 17:54:33.797807500 +0100
+++ new/typer-0.24.2/typer/main.py      2026-04-22 19:45:28.381578700 +0200
@@ -1386,7 +1386,7 @@
     rich_markup_mode: MarkupMode,
 ) -> click.Command:
     assert command_info.callback, "A command must have a callback function"
-    name = command_info.name or 
get_command_name(command_info.callback.__name__)  # 
ty:ignore[unresolved-attribute]
+    name = command_info.name or 
get_command_name(command_info.callback.__name__)  # ty: ignore
     use_help = command_info.help
     if use_help is None:
         use_help = inspect.getdoc(command_info.callback)
@@ -2010,4 +2010,4 @@
         return 0
 
     else:
-        return click.launch(url)
+        return click.launch(url, wait=wait, locate=locate)

Reply via email to