Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-narwhals for openSUSE:Factory 
checked in at 2026-03-29 20:01:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-narwhals (Old)
 and      /work/SRC/openSUSE:Factory/.python-narwhals.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-narwhals"

Sun Mar 29 20:01:18 2026 rev:8 rq:1343456 version:2.18.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-narwhals/python-narwhals.changes  
2026-03-17 19:06:16.741101340 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-narwhals.new.8177/python-narwhals.changes    
    2026-03-29 20:01:55.736488991 +0200
@@ -1,0 +2,10 @@
+Sun Mar 29 15:07:22 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2.18.1:
+  * fix: fix `concat_str` for pandas backed by pyarrow large-
+    string
+  * chore: xfail test due to pandas regression
+  * chore: exception `message` attribute annotations
+  * chore: silence deprecationwarning we cannot do anything about
+
+-------------------------------------------------------------------

Old:
----
  narwhals-2.18.0.tar.gz

New:
----
  narwhals-2.18.1.tar.gz

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

Other differences:
------------------
++++++ python-narwhals.spec ++++++
--- /var/tmp/diff_new_pack.3Ce45G/_old  2026-03-29 20:01:56.692528379 +0200
+++ /var/tmp/diff_new_pack.3Ce45G/_new  2026-03-29 20:01:56.696528543 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-narwhals
-Version:        2.18.0
+Version:        2.18.1
 Release:        0
 Summary:        Extremely lightweight compatibility layer between dataframe 
libraries
 License:        MIT

++++++ narwhals-2.18.0.tar.gz -> narwhals-2.18.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/PKG-INFO new/narwhals-2.18.1/PKG-INFO
--- old/narwhals-2.18.0/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/PKG-INFO        2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: narwhals
-Version: 2.18.0
+Version: 2.18.1
 Summary: Extremely lightweight compatibility layer between dataframe libraries
 Project-URL: Homepage, https://github.com/narwhals-dev/narwhals
 Project-URL: Documentation, https://narwhals-dev.github.io/narwhals/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/narwhals/_pandas_like/series.py 
new/narwhals-2.18.1/narwhals/_pandas_like/series.py
--- old/narwhals-2.18.0/narwhals/_pandas_like/series.py 2020-02-02 
01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/narwhals/_pandas_like/series.py 2020-02-02 
01:00:00.000000000 +0100
@@ -402,6 +402,15 @@
     def _with_binary(self, op: Callable[..., PandasLikeSeries], other: Any) -> 
Self:
         ser, other_native = align_and_extract_native(self, other)
         preserve_broadcast = self._broadcast and getattr(other, "_broadcast", 
True)
+        if (
+            str(self.native.dtype) == "large_string[pyarrow]"
+            and isinstance(other_native, str)
+            and op.__name__ == "add"
+        ):
+            # https://github.com/pandas-dev/pandas/issues/64393
+            import pyarrow as pa  # ignore-banned-import
+
+            other_native = pa.scalar(other_native, type=pa.large_string())
         return self._with_native(
             op(ser, other_native), preserve_broadcast=preserve_broadcast
         ).alias(self.name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/narwhals/exceptions.py 
new/narwhals-2.18.1/narwhals/exceptions.py
--- old/narwhals-2.18.0/narwhals/exceptions.py  2020-02-02 01:00:00.000000000 
+0100
+++ new/narwhals-2.18.1/narwhals/exceptions.py  2020-02-02 01:00:00.000000000 
+0100
@@ -19,6 +19,8 @@
     Needed by https://github.com/tensorflow/tensorflow/issues/36857.
     """
 
+    message: str
+
     def __init__(self, message: str) -> None:
         self.message = message
 
@@ -29,6 +31,8 @@
 class ColumnNotFoundError(FormattedKeyError, NarwhalsError):
     """Exception raised when column name isn't present."""
 
+    message: str
+
     def __init__(self, message: str) -> None:
         self.message = message
         super().__init__(self.message)
@@ -77,6 +81,8 @@
 class InvalidIntoExprError(TypeError, NarwhalsError):
     """Exception raised when object can't be converted to expression."""
 
+    message: str
+
     def __init__(self, message: str) -> None:
         self.message = message
         super().__init__(self.message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/narwhals/sql.py 
new/narwhals-2.18.1/narwhals/sql.py
--- old/narwhals-2.18.0/narwhals/sql.py 2020-02-02 01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/narwhals/sql.py 2020-02-02 01:00:00.000000000 +0100
@@ -85,9 +85,8 @@
         |┌──────┬─────────┬─────────┐|
         |│ date │  price  │ symbol  │|
         |│ date │ int64[] │ varchar │|
-        |├──────┴─────────┴─────────┤|
-        |│          0 rows          │|
-        |└──────────────────────────┘|
+        |└──────┴─────────┴─────────┘|
+        |           0 rows           |
         └────────────────────────────┘
     """
     column_mapping = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/pyproject.toml 
new/narwhals-2.18.1/pyproject.toml
--- old/narwhals-2.18.0/pyproject.toml  2020-02-02 01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/pyproject.toml  2020-02-02 01:00:00.000000000 +0100
@@ -5,7 +5,7 @@
 
 [project]
 name = "narwhals"
-version = "2.18.0"
+version = "2.18.1"
 dependencies = []
 requires-python = ">=3.9"
 authors = [
@@ -93,7 +93,7 @@
   "duckdb",
   "narwhals[sql]",
   "markdown-exec[ansi]",
-  "mkdocs",
+  "mkdocs==1.6.1",
   "mkdocs-autorefs",
   "mkdocs-material",
   "mkdocstrings[python]",
@@ -253,6 +253,10 @@
   'ignore:.*defaulting to pandas implementation:Warning:modin',
   'ignore:.*implementation has mismatches with pandas:Warning:modin',
   'ignore:.*You are using pyarrow version',
+  
+  # Deprecation raised by DuckDB
+  'ignore:.*fetch_arrow_table\(\) is deprecated:DeprecationWarning:sqlframe',
+  'ignore:.*fetch_arrow_table\(\) is deprecated:DeprecationWarning:ibis',
 
   # 
https://discuss.python.org/t/types-uniontype-was-merged-with-wrong-class-not-even-a-class/102275/31
   "ignore:.*'_UnionGenericAlias' is deprecated:DeprecationWarning",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/narwhals-2.18.0/tests/expr_and_series/concat_str_test.py 
new/narwhals-2.18.1/tests/expr_and_series/concat_str_test.py
--- old/narwhals-2.18.0/tests/expr_and_series/concat_str_test.py        
2020-02-02 01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/tests/expr_and_series/concat_str_test.py        
2020-02-02 01:00:00.000000000 +0100
@@ -1,11 +1,11 @@
 from __future__ import annotations
 
-from typing import Callable
+from typing import Any, Callable
 
 import pytest
 
 import narwhals as nw
-from tests.utils import POLARS_VERSION, Constructor, assert_equal_data
+from tests.utils import PANDAS_VERSION, POLARS_VERSION, Constructor, 
assert_equal_data
 
 pytest.importorskip("pyarrow")
 import pyarrow as pa
@@ -100,3 +100,40 @@
         .schema
     )
     assert expected_function(result.field("store_item").type)
+
+
[email protected](
+    PANDAS_VERSION < (2, 2), reason='"add" was not implemented yet for 
large-string'
+)
+def test_concat_str_with_large_string() -> None:
+    # https://github.com/pandas-dev/pandas/issues/64393
+    pytest.importorskip("pandas")
+    import pandas as pd
+
+    native_pa = pa.table(
+        {"store": ["foo", "bar"], "item": ["axe", "saw"]},
+        schema=pa.schema([("store", pa.large_string()), ("item", 
pa.large_string())]),
+    )
+    native_pd = native_pa.to_pandas(types_mapper=pd.ArrowDtype)
+
+    expr = nw.concat_str("store", "item", separator="-").alias("store_item")
+    result: nw.DataFrame[Any] = nw.from_native(native_pa).with_columns(expr)
+    expected = {
+        "store": ["foo", "bar"],
+        "item": ["axe", "saw"],
+        "store_item": ["foo-axe", "bar-saw"],
+    }
+    assert_equal_data(result, expected)
+    result = nw.from_native(native_pd).with_columns(expr)
+    assert_equal_data(result, expected)
+
+    expr = nw.concat_str("store", nw.lit("item"), 
separator="-").alias("store_item")
+    result = nw.from_native(native_pa).with_columns(expr)
+    expected = {
+        "store": ["foo", "bar"],
+        "item": ["axe", "saw"],
+        "store_item": ["foo-item", "bar-item"],
+    }
+    assert_equal_data(result, expected)
+    result = nw.from_native(native_pd).with_columns(expr)
+    assert_equal_data(result, expected)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/narwhals-2.18.0/tests/frame/select_test.py 
new/narwhals-2.18.1/tests/frame/select_test.py
--- old/narwhals-2.18.0/tests/frame/select_test.py      2020-02-02 
01:00:00.000000000 +0100
+++ new/narwhals-2.18.1/tests/frame/select_test.py      2020-02-02 
01:00:00.000000000 +0100
@@ -9,6 +9,7 @@
 from tests.utils import (
     DASK_VERSION,
     DUCKDB_VERSION,
+    PANDAS_VERSION,
     Constructor,
     ConstructorEager,
     assert_equal_data,
@@ -57,8 +58,12 @@
         nw.from_native(constructor({"a": [1, 2, 3]})).select(invalid_select)
 
 
-def test_select_boolean_cols() -> None:
+def test_select_boolean_cols(request: pytest.FixtureRequest) -> None:
     pytest.importorskip("pandas")
+    if PANDAS_VERSION >= (3, 1):  # pragma: no cover
+        request.applymarker(
+            
pytest.mark.xfail(reason="https://github.com/pandas-dev/pandas/issues/64749";)
+        )
     import pandas as pd
 
     df = nw.from_native(pd.DataFrame({True: [1, 2], False: [3, 4]}), 
eager_only=True)

Reply via email to