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-08-09 21:32:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-typer (Old)
 and      /work/SRC/openSUSE:Factory/.python-typer.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-typer"

Sun Aug  9 21:32:33 2026 rev:38 rq:1370101 version:0.27.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-typer/python-typer.changes        
2026-07-20 09:57:02.899503089 +0200
+++ /work/SRC/openSUSE:Factory/.python-typer.new.16738/python-typer.changes     
2026-08-09 21:33:36.734647343 +0200
@@ -1,0 +2,7 @@
+Thu Aug  6 18:02:08 UTC 2026 - Matthias Bach <[email protected]>
+
+- Update to 0.27.1
+  * Fix showing fast button as external link in animated terminals
+    in docs.
+
+-------------------------------------------------------------------

Old:
----
  typer-0.27.0.tar.gz

New:
----
  typer-0.27.1.tar.gz

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

Other differences:
------------------
++++++ python-typer.spec ++++++
--- /var/tmp/diff_new_pack.7JOnDS/_old  2026-08-09 21:33:37.202663226 +0200
+++ /var/tmp/diff_new_pack.7JOnDS/_new  2026-08-09 21:33:37.202663226 +0200
@@ -25,7 +25,7 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-typer
-Version:        0.27.0
+Version:        0.27.1
 Release:        0
 Summary:        Typer, build great CLIs. Easy to code. Based on Python type 
hints
 License:        MIT

++++++ typer-0.27.0.tar.gz -> typer-0.27.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/PKG-INFO new/typer-0.27.1/PKG-INFO
--- old/typer-0.27.0/PKG-INFO   1970-01-01 01:00:00.000000000 +0100
+++ new/typer-0.27.1/PKG-INFO   1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: typer
-Version: 0.27.0
+Version: 0.27.1
 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
@@ -80,18 +80,21 @@
 
 ## Installation
 
-Create and activate a [virtual 
environment](https://typer.tiangolo.com/virtual-environments/) and then install 
**Typer**:
+First, [install 
`uv`](https://docs.astral.sh/uv/getting-started/installation/), and then add 
**Typer** to your project:
 
 <div class="termy">
 
 ```console
-$ pip install typer
+$ uv add typer
 ---> 100%
-Successfully installed typer rich shellingham
 ```
 
 </div>
 
+This installs both the Typer library and the `typer` command in the project's 
virtual environment. To use `typer` directly with shell completion, [activate 
the project environment and install 
completion](tutorial/install.md#activate-the-virtual-environment).
+
+If you prefer to use `pip`, install `typer` inside a virtual environment. See 
the [installation guide](tutorial/install.md) for the alternative steps.
+
 ## Example
 
 ### The absolute minimum
@@ -173,7 +176,7 @@
 
 ```console
 // Run your application
-$ python main.py
+$ uv run python main.py
 
 // You get a nice error, you are missing 'name'
 Usage: main.py [OPTIONS] {name}
@@ -184,7 +187,7 @@
 
 
 // You get a --help for free
-$ python main.py --help
+$ uv run python main.py --help
 
 Usage: main.py [OPTIONS] {name}
 
@@ -196,7 +199,7 @@
 ╰───────────────────────────────────────────────────╯
 
 // Now pass the 'name' argument
-$ python main.py Camila
+$ uv run python main.py Camila
 
 Hello Camila
 
@@ -256,7 +259,7 @@
 <div class="termy">
 
 ```console
-$ python main.py --help
+$ uv run python main.py --help
 
  Usage: main.py [OPTIONS] COMMAND [ARGS]...
 
@@ -289,7 +292,7 @@
 <div class="termy">
 
 ```console
-$ python main.py hello --help
+$ uv run python main.py hello --help
 
  Usage: main.py hello [OPTIONS] {name}
 
@@ -308,7 +311,7 @@
 <div class="termy">
 
 ```console
-$ python main.py goodbye --help
+$ uv run python main.py goodbye --help
 
  Usage: main.py goodbye [OPTIONS] {name}
 
@@ -333,19 +336,19 @@
 ```console
 // Use it with the hello command
 
-$ python main.py hello Camila
+$ uv run python main.py hello Camila
 
 Hello Camila
 
 // And with the goodbye command
 
-$ python main.py goodbye Camila
+$ uv run python main.py goodbye Camila
 
 Bye Camila!
 
 // And with --formal
 
-$ python main.py goodbye --formal Camila
+$ uv run python main.py goodbye --formal Camila
 
 Goodbye Ms. Camila. Have a good day.
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/README.md new/typer-0.27.1/README.md
--- old/typer-0.27.0/README.md  2026-07-15 21:21:01.552980000 +0200
+++ new/typer-0.27.1/README.md  2026-08-03 16:40:58.725499400 +0200
@@ -43,18 +43,21 @@
 
 ## Installation
 
-Create and activate a [virtual 
environment](https://typer.tiangolo.com/virtual-environments/) and then install 
**Typer**:
+First, [install 
`uv`](https://docs.astral.sh/uv/getting-started/installation/), and then add 
**Typer** to your project:
 
 <div class="termy">
 
 ```console
-$ pip install typer
+$ uv add typer
 ---> 100%
-Successfully installed typer rich shellingham
 ```
 
 </div>
 
+This installs both the Typer library and the `typer` command in the project's 
virtual environment. To use `typer` directly with shell completion, [activate 
the project environment and install 
completion](tutorial/install.md#activate-the-virtual-environment).
+
+If you prefer to use `pip`, install `typer` inside a virtual environment. See 
the [installation guide](tutorial/install.md) for the alternative steps.
+
 ## Example
 
 ### The absolute minimum
@@ -136,7 +139,7 @@
 
 ```console
 // Run your application
-$ python main.py
+$ uv run python main.py
 
 // You get a nice error, you are missing 'name'
 Usage: main.py [OPTIONS] {name}
@@ -147,7 +150,7 @@
 
 
 // You get a --help for free
-$ python main.py --help
+$ uv run python main.py --help
 
 Usage: main.py [OPTIONS] {name}
 
@@ -159,7 +162,7 @@
 ╰───────────────────────────────────────────────────╯
 
 // Now pass the 'name' argument
-$ python main.py Camila
+$ uv run python main.py Camila
 
 Hello Camila
 
@@ -219,7 +222,7 @@
 <div class="termy">
 
 ```console
-$ python main.py --help
+$ uv run python main.py --help
 
  Usage: main.py [OPTIONS] COMMAND [ARGS]...
 
@@ -252,7 +255,7 @@
 <div class="termy">
 
 ```console
-$ python main.py hello --help
+$ uv run python main.py hello --help
 
  Usage: main.py hello [OPTIONS] {name}
 
@@ -271,7 +274,7 @@
 <div class="termy">
 
 ```console
-$ python main.py goodbye --help
+$ uv run python main.py goodbye --help
 
  Usage: main.py goodbye [OPTIONS] {name}
 
@@ -296,19 +299,19 @@
 ```console
 // Use it with the hello command
 
-$ python main.py hello Camila
+$ uv run python main.py hello Camila
 
 Hello Camila
 
 // And with the goodbye command
 
-$ python main.py goodbye Camila
+$ uv run python main.py goodbye Camila
 
 Bye Camila!
 
 // And with --formal
 
-$ python main.py goodbye --formal Camila
+$ uv run python main.py goodbye --formal Camila
 
 Goodbye Ms. Camila. Have a good day.
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/pyproject.toml 
new/typer-0.27.1/pyproject.toml
--- old/typer-0.27.0/pyproject.toml     2026-07-15 21:21:03.806383100 +0200
+++ new/typer-0.27.1/pyproject.toml     2026-08-03 16:41:01.968499000 +0200
@@ -43,7 +43,7 @@
     "colorama; platform_system == 'Windows'",
 ]
 readme = "README.md"
-version = "0.27.0"
+version = "0.27.1"
 
 [project.urls]
 Homepage = "https://github.com/fastapi/typer";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/tests/test_rich_markup_mode.py 
new/typer-0.27.1/tests/test_rich_markup_mode.py
--- old/typer-0.27.0/tests/test_rich_markup_mode.py     2026-07-15 
21:21:01.565547500 +0200
+++ new/typer-0.27.1/tests/test_rich_markup_mode.py     2026-08-03 
16:40:58.746045000 +0200
@@ -330,3 +330,50 @@
     # We're assuming the test suite is run with rich installed
     app = typer.Typer()
     assert app.rich_markup_mode == "rich"
+
+
[email protected](
+    "mode",
+    ["markdown", "rich", None],
+)
+def test_markup_mode_epilog(mode):
+    app = typer.Typer(rich_markup_mode=mode)
+
+    help_string = "Here is a help string"
+
+    epilog_string = """
+    Just wrapping up:
+
+    This is the first conclusion
+    Here is conclusion two
+
+    That's all folks!
+    """
+
+    @app.command(help=help_string, epilog=epilog_string)
+    def main():
+        print("Hello World")
+
+    assert app.rich_markup_mode == mode
+
+    result = runner.invoke(app)
+    assert "Hello World" in result.stdout
+
+    result = runner.invoke(app, ["--help"])
+    result_lines = [line.strip() for line in result.stdout.split("\n")]
+    first_index = result_lines.index("Just wrapping up:")
+    assert first_index > 0
+    assert result_lines[first_index + 1] == ""
+
+    if mode == "rich":
+        assert result_lines[first_index + 2] == "This is the first conclusion"
+        assert result_lines[first_index + 3] == "Here is conclusion two"
+        assert result_lines[first_index + 4] == ""
+        assert result_lines[first_index + 5] == "That's all folks!"
+    else:
+        assert (
+            result_lines[first_index + 2]
+            == "This is the first conclusion Here is conclusion two"
+        )
+        assert result_lines[first_index + 3] == ""
+        assert result_lines[first_index + 4] == "That's all folks!"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/typer/__init__.py 
new/typer-0.27.1/typer/__init__.py
--- old/typer-0.27.0/typer/__init__.py  2026-07-15 21:21:01.571152000 +0200
+++ new/typer-0.27.1/typer/__init__.py  2026-08-03 16:40:58.755499000 +0200
@@ -1,6 +1,6 @@
 """Typer, build great CLIs. Easy to code. Based on Python type hints."""
 
-__version__ = "0.27.0"
+__version__ = "0.27.1"
 
 from shutil import get_terminal_size as get_terminal_size
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/typer-0.27.0/typer/rich_utils.py 
new/typer-0.27.1/typer/rich_utils.py
--- old/typer-0.27.0/typer/rich_utils.py        2026-07-15 21:21:01.571390600 
+0200
+++ new/typer-0.27.1/typer/rich_utils.py        2026-08-03 16:40:58.757045300 
+0200
@@ -222,8 +222,7 @@
     if remaining_paragraphs:
         # Add a newline inbetween the header and the remaining paragraphs
         yield Text("")
-        # Join with double linebreaks for markdown and Rich markup
-        remaining_lines = "\n\n".join(remaining_paragraphs)
+        remaining_lines = _fix_linebreaks(remaining_paragraphs, markup_mode)
 
         yield _make_rich_text(
             text=remaining_lines,
@@ -232,6 +231,11 @@
         )
 
 
+def _fix_linebreaks(paragraphs: list[str], markup_mode: MarkupModeStrict) -> 
str:
+    # Join with double linebreaks for markdown and Rich markup
+    return "\n\n".join(paragraphs)
+
+
 def _get_parameter_help(
     *,
     param: TyperOption | TyperArgument | _click.Parameter,
@@ -685,7 +689,7 @@
     if obj.epilog:
         # Remove single linebreaks, replace double with single
         lines = obj.epilog.split("\n\n")
-        epilogue = "\n".join([x.replace("\n", " ").strip() for x in lines])
+        epilogue = _fix_linebreaks(lines, markup_mode)
         epilogue_text = _make_rich_text(text=epilogue, markup_mode=markup_mode)
         console.print(Padding(Align(epilogue_text, pad=False), 1))
 

Reply via email to