Script 'mail_helper' called by obssrc
Hello community,

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

Package is "python-sqlmodel"

Sun Apr 26 21:11:35 2026 rev:8 rq:1349299 version:0.0.38

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sqlmodel/python-sqlmodel.changes  
2026-03-30 18:34:14.726448436 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-sqlmodel.new.11940/python-sqlmodel.changes   
    2026-04-26 21:14:15.912657754 +0200
@@ -1,0 +2,16 @@
+Sat Apr 25 21:40:16 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.0.38:
+  * Fix type annotation in `SQLModel.__new__`, avoid explicitly
+    returning `Any`.
+  * Fix `tuple_` return type annotation.
+  * Fix typos in `contributing.md`. PR #1842 by @GopalGB.
+  * Remove outdated Python 3.9 tutorial file.
+  * Fix ambiguous phrasing regarding `HeroPublicWithTeam`
+    model.
+  * Handle external links `target=_blank` and CSS automatically
+    in JS and CSS.
+  * Document `.in_()` method. PR #619 by @masylum.
+  * Fix small typos in the documentation. PR #1641
+
+-------------------------------------------------------------------

Old:
----
  sqlmodel-0.0.37.tar.gz

New:
----
  sqlmodel-0.0.38.tar.gz

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

Other differences:
------------------
++++++ python-sqlmodel.spec ++++++
--- /var/tmp/diff_new_pack.lphm56/_old  2026-04-26 21:14:16.360676059 +0200
+++ /var/tmp/diff_new_pack.lphm56/_new  2026-04-26 21:14:16.364676223 +0200
@@ -26,7 +26,7 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-sqlmodel%{psuffix}
-Version:        0.0.37
+Version:        0.0.38
 Release:        0
 Summary:        SQL databases in Python, designed for simplicity, 
compatibility, and robustness
 License:        MIT

++++++ sqlmodel-0.0.37.tar.gz -> sqlmodel-0.0.38.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.37/PKG-INFO new/sqlmodel-0.0.38/PKG-INFO
--- old/sqlmodel-0.0.37/PKG-INFO        1970-01-01 01:00:00.000000000 +0100
+++ new/sqlmodel-0.0.38/PKG-INFO        1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: sqlmodel
-Version: 0.0.37
+Version: 0.0.38
 Summary: SQLModel, SQL databases in Python, designed for simplicity, 
compatibility, and robustness.
 Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= <[email protected]>
 License-Expression: MIT
@@ -30,6 +30,7 @@
 Requires-Python: >=3.10
 Requires-Dist: SQLAlchemy<2.1.0,>=2.0.14
 Requires-Dist: pydantic>=2.11.0
+Requires-Dist: typing-extensions>=4.5.0
 Description-Content-Type: text/markdown
 
 <p align="center">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.37/docs_src/tutorial/where/tutorial006b_py310.py 
new/sqlmodel-0.0.38/docs_src/tutorial/where/tutorial006b_py310.py
--- old/sqlmodel-0.0.37/docs_src/tutorial/where/tutorial006b_py310.py   
1970-01-01 01:00:00.000000000 +0100
+++ new/sqlmodel-0.0.38/docs_src/tutorial/where/tutorial006b_py310.py   
2026-04-02 23:03:51.778127000 +0200
@@ -0,0 +1,57 @@
+from sqlmodel import Field, Session, SQLModel, col, create_engine, select
+
+
+class Hero(SQLModel, table=True):
+    id: int | None = Field(default=None, primary_key=True)
+    name: str
+    secret_name: str
+    age: int | None = None
+
+
+sqlite_file_name = "database.db"
+sqlite_url = f"sqlite:///{sqlite_file_name}"
+
+engine = create_engine(sqlite_url, echo=True)
+
+
+def create_db_and_tables():
+    SQLModel.metadata.create_all(engine)
+
+
+def create_heroes():
+    hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
+    hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
+    hero_3 = Hero(name="Rusty-Man", secret_name="Tommy Sharp", age=48)
+    hero_4 = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
+    hero_5 = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
+    hero_6 = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
+    hero_7 = Hero(name="Captain North America", secret_name="Esteban 
Rogelios", age=93)
+
+    with Session(engine) as session:
+        session.add(hero_1)
+        session.add(hero_2)
+        session.add(hero_3)
+        session.add(hero_4)
+        session.add(hero_5)
+        session.add(hero_6)
+        session.add(hero_7)
+
+        session.commit()
+
+
+def select_heroes():
+    with Session(engine) as session:
+        statement = select(Hero).where(col(Hero.name).in_(["Deadpond", 
"Ratman"]))
+        results = session.exec(statement)
+        for hero in results:
+            print(hero)
+
+
+def main():
+    create_db_and_tables()
+    create_heroes()
+    select_heroes()
+
+
+if __name__ == "__main__":
+    main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.37/pyproject.toml 
new/sqlmodel-0.0.38/pyproject.toml
--- old/sqlmodel-0.0.37/pyproject.toml  2026-02-21 17:39:45.853665000 +0100
+++ new/sqlmodel-0.0.38/pyproject.toml  2026-04-02 23:03:54.431071000 +0200
@@ -39,8 +39,9 @@
 dependencies = [
     "SQLAlchemy >=2.0.14,<2.1.0",
     "pydantic>=2.11.0",
+    "typing-extensions>=4.5.0",
 ]
-version = "0.0.37"
+version = "0.0.38"
 
 [project.urls]
 Homepage = "https://github.com/fastapi/sqlmodel";
@@ -56,39 +57,38 @@
     "prek>=0.2.24,<1.0.0",
 ]
 docs = [
-    "black>=24.1.0",
-    "cairosvg==2.8.2",
-    "griffe-typingdoc==0.3.0",
-    "griffe-warnings-deprecated==1.1.0",
-    "markdown-include-variants==0.0.8",
-    "mdx-include>=1.4.1,<2.0.0",
-    "mkdocs-macros-plugin==1.5.0",
-    "mkdocs-material==9.7.1",
-    "mkdocs-redirects>=1.2.1,<1.3.0",
-    "mkdocstrings[python]==0.30.1",
-    "pillow==11.3.0",
-    "pyyaml>=5.3.1,<7.0.0",
-    "typer==0.23.2",
+    "black >=24.1.0",
+    "cairosvg >=2.9.0",
+    "griffe-typingdoc >=0.3.0",
+    "griffe-warnings-deprecated >=1.1.0",
+    "markdown-include-variants >=0.0.8",
+    "mdx-include >=1.4.1",
+    "mkdocs-macros-plugin >=1.5.0",
+    "mkdocs-material >=9.7.5",
+    "mkdocs-redirects >=1.2.1",
+    "mkdocstrings[python] >=1.0.3",
+    "pillow >=12.1.1",
+    "pyyaml >=5.3.1",
+    "typer >=0.24.1",
 ]
 github-actions = [
-    "httpx>=0.27.0,<0.29.0",
-    "pydantic>=2.5.3,<3.0.0",
-    "pydantic-settings>=2.1.0,<3.0.0",
-    "pygithub>=2.3.0,<3.0.0",
-    "smokeshow>=0.5.0",
+    "httpx >=0.28.1",
+    "pydantic >=2.5.3",
+    "pydantic-settings >=2.1.0",
+    "pygithub >=2.3.0",
+    "smokeshow >=0.5.0",
 ]
 tests = [
-    "black>=24.1.0",
-    "coverage[toml]>=6.2,<8.0",
-    "dirty-equals==0.11",
-    "fastapi>=0.128.0",
-    "httpx==0.28.1",
-    "jinja2==3.1.6",
-    "mypy==1.19.1",
-    "pre-commit>=2.17.0,<5.0.0",
-    "pytest>=7.0.1,<9.0.0",
-    "ruff==0.15.1",
-    "typing-extensions==4.15.0",
+    "black >=24.1.0",
+    "coverage[toml] >=6.2",
+    "dirty-equals >=0.11",
+    "fastapi >=0.128.0",
+    "httpx >=0.28.1",
+    "jinja2 >=3.1.6",
+    "mypy >=1.19.1",
+    "pytest >=7.0.1",
+    "ruff >=0.15.6",
+    "typing-extensions >=4.15.0",
 ]
 
 [tool.pdm]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.37/scripts/add_latest_release_date.py 
new/sqlmodel-0.0.38/scripts/add_latest_release_date.py
--- old/sqlmodel-0.0.37/scripts/add_latest_release_date.py      1970-01-01 
01:00:00.000000000 +0100
+++ new/sqlmodel-0.0.38/scripts/add_latest_release_date.py      2026-04-02 
23:03:51.778127000 +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/sqlmodel-0.0.37/sqlmodel/__init__.py 
new/sqlmodel-0.0.38/sqlmodel/__init__.py
--- old/sqlmodel-0.0.37/sqlmodel/__init__.py    2026-02-21 17:39:42.151568400 
+0100
+++ new/sqlmodel-0.0.38/sqlmodel/__init__.py    2026-04-02 23:03:51.778623600 
+0200
@@ -1,4 +1,4 @@
-__version__ = "0.0.37"
+__version__ = "0.0.38"
 
 # Re-export from SQLAlchemy
 from sqlalchemy.engine import create_engine as create_engine
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.37/sqlmodel/main.py 
new/sqlmodel-0.0.38/sqlmodel/main.py
--- old/sqlmodel-0.0.37/sqlmodel/main.py        2026-02-21 17:39:42.152568300 
+0100
+++ new/sqlmodel-0.0.38/sqlmodel/main.py        2026-04-02 23:03:51.779301600 
+0200
@@ -814,7 +814,9 @@
     __allow_unmapped__ = True  # 
https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six
     model_config = SQLModelConfig(from_attributes=True)
 
-    def __new__(cls, *args: Any, **kwargs: Any) -> Any:
+    # Typing spec says `__new__` returning `Any` overrides normal constructor
+    # behavior, but a missing annotation does not:
+    def __new__(cls, *args: Any, **kwargs: Any):  # type: 
ignore[no-untyped-def]
         new_object = super().__new__(cls)
         # SQLAlchemy doesn't call __init__ on the base class when querying 
from DB
         # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.37/sqlmodel/sql/expression.py 
new/sqlmodel-0.0.38/sqlmodel/sql/expression.py
--- old/sqlmodel-0.0.37/sqlmodel/sql/expression.py      2026-02-21 
17:39:42.152568300 +0100
+++ new/sqlmodel-0.0.38/sqlmodel/sql/expression.py      2026-04-02 
23:03:51.779737200 +0200
@@ -179,8 +179,8 @@
 def tuple_(
     *clauses: _ColumnExpressionArgument[Any] | Any,
     types: Sequence["_TypeEngineArgument[Any]"] | None = None,
-) -> tuple[Any, ...]:
-    return sqlalchemy.tuple_(*clauses, types=types)  # type: 
ignore[return-value]
+) -> sqlalchemy.Tuple:
+    return sqlalchemy.tuple_(*clauses, types=types)
 
 
 def type_coerce(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.37/tests/test_tutorial/test_where/test_tutorial006b.py 
new/sqlmodel-0.0.38/tests/test_tutorial/test_where/test_tutorial006b.py
--- old/sqlmodel-0.0.37/tests/test_tutorial/test_where/test_tutorial006b.py     
1970-01-01 01:00:00.000000000 +0100
+++ new/sqlmodel-0.0.38/tests/test_tutorial/test_where/test_tutorial006b.py     
2026-04-02 23:03:51.785757500 +0200
@@ -0,0 +1,34 @@
+import importlib
+from types import ModuleType
+
+import pytest
+from sqlmodel import create_engine
+
+from ...conftest import PrintMock, needs_py310
+
+
[email protected](
+    name="mod",
+    params=[
+        pytest.param("tutorial006b_py310", marks=needs_py310),
+    ],
+)
+def get_module(request: pytest.FixtureRequest) -> ModuleType:
+    mod = importlib.import_module(f"docs_src.tutorial.where.{request.param}")
+    mod.sqlite_url = "sqlite://"
+    mod.engine = create_engine(mod.sqlite_url)
+    return mod
+
+
+def test_tutorial(print_mock: PrintMock, mod: ModuleType):
+    mod.main()
+    assert print_mock.calls == [
+        [
+            {
+                "name": "Deadpond",
+                "secret_name": "Dive Wilson",
+                "age": None,
+                "id": 1,
+            }
+        ]
+    ]

Reply via email to