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 2025-09-25 18:45:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sqlmodel (Old)
 and      /work/SRC/openSUSE:Factory/.python-sqlmodel.new.11973 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-sqlmodel"

Thu Sep 25 18:45:55 2025 rev:4 rq:1307103 version:0.0.25

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sqlmodel/python-sqlmodel.changes  
2025-03-31 11:42:48.979256041 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-sqlmodel.new.11973/python-sqlmodel.changes   
    2025-09-25 18:48:08.901335902 +0200
@@ -1,0 +2,7 @@
+Thu Sep 25 11:32:00 UTC 2025 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to 0.0.25
+  * Add overload for `exec` method to support `insert`, `update`,
+    `delete` statements.
+
+-------------------------------------------------------------------

Old:
----
  sqlmodel-0.0.24.tar.gz

New:
----
  sqlmodel-0.0.25.tar.gz

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

Other differences:
------------------
++++++ python-sqlmodel.spec ++++++
--- /var/tmp/diff_new_pack.7zNHat/_old  2025-09-25 18:48:09.461359342 +0200
+++ /var/tmp/diff_new_pack.7zNHat/_new  2025-09-25 18:48:09.465359509 +0200
@@ -26,7 +26,7 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-sqlmodel%{psuffix}
-Version:        0.0.24
+Version:        0.0.25
 Release:        0
 Summary:        SQL databases in Python, designed for simplicity, 
compatibility, and robustness
 License:        MIT

++++++ sqlmodel-0.0.24.tar.gz -> sqlmodel-0.0.25.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/PKG-INFO new/sqlmodel-0.0.25/PKG-INFO
--- old/sqlmodel-0.0.24/PKG-INFO        1970-01-01 01:00:00.000000000 +0100
+++ new/sqlmodel-0.0.25/PKG-INFO        1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: sqlmodel
-Version: 0.0.24
+Version: 0.0.25
 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]>
 Classifier: Development Status :: 4 - Beta
@@ -10,7 +10,6 @@
 Classifier: Intended Audience :: System Administrators
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
@@ -28,7 +27,7 @@
 Project-URL: Repository, https://github.com/fastapi/sqlmodel
 Project-URL: Issues, https://github.com/fastapi/sqlmodel/issues
 Project-URL: Changelog, https://sqlmodel.tiangolo.com/release-notes/
-Requires-Python: >=3.7
+Requires-Python: >=3.8
 Requires-Dist: SQLAlchemy<2.1.0,>=2.0.14
 Requires-Dist: pydantic<3.0.0,>=1.10.13
 Description-Content-Type: text/markdown
@@ -140,16 +139,14 @@
 Then you could create a **SQLModel** model like this:
 
 ```Python
-from typing import Optional
-
 from sqlmodel import Field, SQLModel
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 ```
 
 That class `Hero` is a **SQLModel** model, the equivalent of a SQL table in 
Python code.
@@ -184,17 +181,15 @@
 
 You can learn a lot more about **SQLModel** by quickly following the 
**tutorial**, but if you need a taste right now of how to put all that together 
and save to the database, you can do this:
 
-```Python hl_lines="18  21  23-27"
-from typing import Optional
-
+```Python hl_lines="16  19  21-25"
 from sqlmodel import Field, Session, SQLModel, create_engine
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 
 
 hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
@@ -220,17 +215,15 @@
 
 Then you could write queries to select from that same database, for example 
with:
 
-```Python hl_lines="15-18"
-from typing import Optional
-
+```Python hl_lines="13-17"
 from sqlmodel import Field, Session, SQLModel, create_engine, select
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 
 
 engine = create_engine("sqlite:///database.db")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/README.md 
new/sqlmodel-0.0.25/README.md
--- old/sqlmodel-0.0.24/README.md       2025-03-07 06:43:14.999393000 +0100
+++ new/sqlmodel-0.0.25/README.md       2025-09-17 23:44:21.876244000 +0200
@@ -105,16 +105,14 @@
 Then you could create a **SQLModel** model like this:
 
 ```Python
-from typing import Optional
-
 from sqlmodel import Field, SQLModel
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 ```
 
 That class `Hero` is a **SQLModel** model, the equivalent of a SQL table in 
Python code.
@@ -149,17 +147,15 @@
 
 You can learn a lot more about **SQLModel** by quickly following the 
**tutorial**, but if you need a taste right now of how to put all that together 
and save to the database, you can do this:
 
-```Python hl_lines="18  21  23-27"
-from typing import Optional
-
+```Python hl_lines="16  19  21-25"
 from sqlmodel import Field, Session, SQLModel, create_engine
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 
 
 hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
@@ -185,17 +181,15 @@
 
 Then you could write queries to select from that same database, for example 
with:
 
-```Python hl_lines="15-18"
-from typing import Optional
-
+```Python hl_lines="13-17"
 from sqlmodel import Field, Session, SQLModel, create_engine, select
 
 
 class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
+    id: int | None = Field(default=None, primary_key=True)
     name: str
     secret_name: str
-    age: Optional[int] = None
+    age: int | None = None
 
 
 engine = create_engine("sqlite:///database.db")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001/main.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001/main.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001/main.py   
    2025-03-07 06:43:15.033393000 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001/main.py   
    2025-09-17 23:44:21.920244700 +0200
@@ -88,8 +88,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py
 2025-03-07 06:43:15.033393000 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001_py310/main.py
 2025-09-17 23:44:21.920244700 +0200
@@ -86,8 +86,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py
  2025-03-07 06:43:15.034392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/app_testing/tutorial001_py39/main.py
  2025-09-17 23:44:21.921244600 +0200
@@ -88,8 +88,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001.py 
2025-03-07 06:43:15.034392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001.py 
2025-09-17 23:44:21.921244600 +0200
@@ -80,8 +80,7 @@
         if not db_hero:
             raise HTTPException(status_code=404, detail="Hero not found")
         hero_data = hero.model_dump(exclude_unset=True)
-        for key, value in hero_data.items():
-            setattr(db_hero, key, value)
+        db_hero.sqlmodel_update(hero_data)
         session.add(db_hero)
         session.commit()
         session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001_py310.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001_py310.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001_py310.py   
2025-03-07 06:43:15.034392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001_py310.py   
2025-09-17 23:44:21.921244600 +0200
@@ -78,8 +78,7 @@
         if not db_hero:
             raise HTTPException(status_code=404, detail="Hero not found")
         hero_data = hero.model_dump(exclude_unset=True)
-        for key, value in hero_data.items():
-            setattr(db_hero, key, value)
+        db_hero.sqlmodel_update(hero_data)
         session.add(db_hero)
         session.commit()
         session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001_py39.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001_py39.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/delete/tutorial001_py39.py    
2025-03-07 06:43:15.034392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/delete/tutorial001_py39.py    
2025-09-17 23:44:21.921244600 +0200
@@ -80,8 +80,7 @@
         if not db_hero:
             raise HTTPException(status_code=404, detail="Hero not found")
         hero_data = hero.model_dump(exclude_unset=True)
-        for key, value in hero_data.items():
-            setattr(db_hero, key, value)
+        db_hero.sqlmodel_update(hero_data)
         session.add(db_hero)
         session.commit()
         session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001.py  
2025-03-07 06:43:15.035392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001.py  
2025-09-17 23:44:21.922244800 +0200
@@ -126,8 +126,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -183,8 +182,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py
    2025-03-07 06:43:15.035392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001_py310.py
    2025-09-17 23:44:21.922244800 +0200
@@ -124,8 +124,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -181,8 +180,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001_py39.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001_py39.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/relationships/tutorial001_py39.py 
    2025-03-07 06:43:15.035392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/relationships/tutorial001_py39.py 
    2025-09-17 23:44:21.922244800 +0200
@@ -126,8 +126,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -183,8 +182,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001.py
        2025-03-07 06:43:15.035392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001.py
        2025-09-17 23:44:21.922244800 +0200
@@ -88,8 +88,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py
  2025-03-07 06:43:15.035392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py310.py
  2025-09-17 23:44:21.922244800 +0200
@@ -86,8 +86,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py
 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py
--- 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py
   2025-03-07 06:43:15.035392800 +0100
+++ 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/session_with_dependency/tutorial001_py39.py
   2025-09-17 23:44:21.922244800 +0200
@@ -88,8 +88,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001.py  
2025-03-07 06:43:15.035392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001.py  
2025-09-17 23:44:21.923244700 +0200
@@ -117,8 +117,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -174,8 +173,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001_py310.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001_py310.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001_py310.py    
2025-03-07 06:43:15.035392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001_py310.py    
2025-09-17 23:44:21.923244700 +0200
@@ -115,8 +115,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -172,8 +171,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001_py39.py 
new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001_py39.py
--- old/sqlmodel-0.0.24/docs_src/tutorial/fastapi/teams/tutorial001_py39.py     
2025-03-07 06:43:15.035392800 +0100
+++ new/sqlmodel-0.0.25/docs_src/tutorial/fastapi/teams/tutorial001_py39.py     
2025-09-17 23:44:21.923244700 +0200
@@ -117,8 +117,7 @@
     if not db_hero:
         raise HTTPException(status_code=404, detail="Hero not found")
     hero_data = hero.model_dump(exclude_unset=True)
-    for key, value in hero_data.items():
-        setattr(db_hero, key, value)
+    db_hero.sqlmodel_update(hero_data)
     session.add(db_hero)
     session.commit()
     session.refresh(db_hero)
@@ -174,8 +173,7 @@
     if not db_team:
         raise HTTPException(status_code=404, detail="Team not found")
     team_data = team.model_dump(exclude_unset=True)
-    for key, value in team_data.items():
-        setattr(db_team, key, value)
+    db_team.sqlmodel_update(team_data)
     session.add(db_team)
     session.commit()
     session.refresh(db_team)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/pyproject.toml 
new/sqlmodel-0.0.25/pyproject.toml
--- old/sqlmodel-0.0.24/pyproject.toml  2025-03-07 06:43:17.447386500 +0100
+++ new/sqlmodel-0.0.25/pyproject.toml  2025-09-17 23:44:28.219324000 +0200
@@ -9,7 +9,7 @@
 dynamic = []
 description = "SQLModel, SQL databases in Python, designed for simplicity, 
compatibility, and robustness."
 readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
 authors = [
     { name = "Sebastián Ramírez", email = "[email protected]" },
 ]
@@ -21,7 +21,6 @@
     "Intended Audience :: System Administrators",
     "License :: OSI Approved :: MIT License",
     "Programming Language :: Python :: 3 :: Only",
-    "Programming Language :: Python :: 3.7",
     "Programming Language :: Python :: 3.8",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
@@ -39,7 +38,7 @@
     "SQLAlchemy >=2.0.14,<2.1.0",
     "pydantic >=1.10.13,<3.0.0",
 ]
-version = "0.0.24"
+version = "0.0.25"
 
 [project.urls]
 Homepage = "https://github.com/fastapi/sqlmodel";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/requirements-docs.txt 
new/sqlmodel-0.0.25/requirements-docs.txt
--- old/sqlmodel-0.0.24/requirements-docs.txt   2025-03-07 06:43:15.040392900 
+0100
+++ new/sqlmodel-0.0.25/requirements-docs.txt   2025-09-17 23:44:21.927245000 
+0200
@@ -1,19 +1,18 @@
 -e .
 -r requirements-docs-tests.txt
-mkdocs-material==9.5.18
+mkdocs-material==9.6.20
 mdx-include >=1.4.1,<2.0.0
 mkdocs-redirects>=1.2.1,<1.3.0
 pyyaml >=5.3.1,<7.0.0
 # For Material for MkDocs, Chinese search
 # jieba==0.42.1
 # For image processing by Material for MkDocs
-pillow==11.0.0
+pillow==11.3.0
 # For image processing by Material for MkDocs
-cairosvg==2.7.1
+cairosvg==2.8.2
 # mkdocstrings[python]==0.25.1
-# Enable griffe-typingdoc once dropping Python 3.7 and upgrading 
typing-extensions
-# griffe-typingdoc==0.2.5
+griffe-typingdoc==0.2.9
 # For griffe, it formats with black
-typer == 0.12.3
-mkdocs-macros-plugin==1.0.5
+typer == 0.17.4
+mkdocs-macros-plugin==1.3.9
 markdown-include-variants==0.0.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/requirements-github-actions.txt 
new/sqlmodel-0.0.25/requirements-github-actions.txt
--- old/sqlmodel-0.0.24/requirements-github-actions.txt 2025-03-07 
06:43:15.040392900 +0100
+++ new/sqlmodel-0.0.25/requirements-github-actions.txt 2025-09-17 
23:44:21.927245000 +0200
@@ -1,5 +1,5 @@
 PyGithub>=2.3.0,<3.0.0
 pydantic>=2.5.3,<3.0.0
 pydantic-settings>=2.1.0,<3.0.0
-httpx>=0.27.0,<0.28.0
+httpx>=0.27.0,<0.29.0
 smokeshow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/requirements-tests.txt 
new/sqlmodel-0.0.25/requirements-tests.txt
--- old/sqlmodel-0.0.24/requirements-tests.txt  2025-03-07 06:43:15.040392900 
+0100
+++ new/sqlmodel-0.0.25/requirements-tests.txt  2025-09-17 23:44:21.927245000 
+0200
@@ -1,17 +1,12 @@
 -e .
 -r requirements-docs-tests.txt
-pytest >=7.0.1,<8.0.0
+pytest >=7.0.1,<9.0.0
 coverage[toml] >=6.2,<8.0
 mypy ==1.4.1
-ruff ==0.9.6
+ruff ==0.13.0
 # For FastAPI tests
 fastapi >=0.103.2
-httpx ==0.24.1
-# TODO: upgrade when deprecating Python 3.7
-dirty-equals ==0.6.0; python_version < "3.8"
-dirty-equals ==0.9.0; python_version >= "3.8"
-jinja2 ==3.1.4
-# Pin typing-extensions until Python 3.8 is deprecated or the issue with 
dirty-equals
-# is fixed, maybe fixed after dropping Python 3.7 and upgrading dirty-equals
-typing-extensions ==4.6.1; python_version < "3.8"
-typing-extensions ==4.12.2; python_version >= "3.8"
+httpx ==0.28.1
+dirty-equals ==0.9.0
+jinja2 ==3.1.6
+typing-extensions ==4.13.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/requirements.txt 
new/sqlmodel-0.0.25/requirements.txt
--- old/sqlmodel-0.0.24/requirements.txt        2025-03-07 06:43:15.040392900 
+0100
+++ new/sqlmodel-0.0.25/requirements.txt        2025-09-17 23:44:21.928244800 
+0200
@@ -3,4 +3,4 @@
 -r requirements-tests.txt
 -r requirements-docs.txt
 
-pre-commit >=2.17.0,<4.0.0
+pre-commit >=2.17.0,<5.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/sqlmodel/__init__.py 
new/sqlmodel-0.0.25/sqlmodel/__init__.py
--- old/sqlmodel-0.0.24/sqlmodel/__init__.py    2025-03-07 06:43:15.041392800 
+0100
+++ new/sqlmodel-0.0.25/sqlmodel/__init__.py    2025-09-17 23:44:21.928244800 
+0200
@@ -1,4 +1,4 @@
-__version__ = "0.0.24"
+__version__ = "0.0.25"
 
 # 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.24/sqlmodel/_compat.py 
new/sqlmodel-0.0.25/sqlmodel/_compat.py
--- old/sqlmodel-0.0.24/sqlmodel/_compat.py     2025-03-07 06:43:15.041392800 
+0100
+++ new/sqlmodel-0.0.25/sqlmodel/_compat.py     2025-09-17 23:44:21.928244800 
+0200
@@ -103,7 +103,14 @@
         model.model_config[parameter] = value  # type: ignore[literal-required]
 
     def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, 
"FieldInfo"]:
-        return model.model_fields
+        # TODO: refactor the usage of this function to always pass the class
+        # not the instance, and then remove this extra check
+        # this is for compatibility with Pydantic v3
+        if isinstance(model, type):
+            use_model = model
+        else:
+            use_model = model.__class__
+        return use_model.model_fields
 
     def get_fields_set(
         object: InstanceOrType["SQLModel"],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/sqlmodel/ext/asyncio/session.py 
new/sqlmodel-0.0.25/sqlmodel/ext/asyncio/session.py
--- old/sqlmodel-0.0.24/sqlmodel/ext/asyncio/session.py 2025-03-07 
06:43:15.041392800 +0100
+++ new/sqlmodel-0.0.25/sqlmodel/ext/asyncio/session.py 2025-09-17 
23:44:21.928244800 +0200
@@ -12,6 +12,7 @@
 )
 
 from sqlalchemy import util
+from sqlalchemy.engine.cursor import CursorResult
 from sqlalchemy.engine.interfaces import _CoreAnyExecuteParams
 from sqlalchemy.engine.result import Result, ScalarResult, TupleResult
 from sqlalchemy.ext.asyncio import AsyncSession as _AsyncSession
@@ -19,6 +20,7 @@
 from sqlalchemy.ext.asyncio.session import _EXECUTE_OPTIONS
 from sqlalchemy.orm._typing import OrmExecuteOptionsParameter
 from sqlalchemy.sql.base import Executable as _Executable
+from sqlalchemy.sql.dml import UpdateBase
 from sqlalchemy.util.concurrency import greenlet_spawn
 from typing_extensions import deprecated
 
@@ -57,12 +59,25 @@
         _add_event: Optional[Any] = None,
     ) -> ScalarResult[_TSelectParam]: ...
 
+    @overload
+    async def exec(
+        self,
+        statement: UpdateBase,
+        *,
+        params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, 
Any]]]] = None,
+        execution_options: Mapping[str, Any] = util.EMPTY_DICT,
+        bind_arguments: Optional[Dict[str, Any]] = None,
+        _parent_execute_state: Optional[Any] = None,
+        _add_event: Optional[Any] = None,
+    ) -> CursorResult[Any]: ...
+
     async def exec(
         self,
         statement: Union[
             Select[_TSelectParam],
             SelectOfScalar[_TSelectParam],
             Executable[_TSelectParam],
+            UpdateBase,
         ],
         *,
         params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, 
Any]]]] = None,
@@ -70,7 +85,9 @@
         bind_arguments: Optional[Dict[str, Any]] = None,
         _parent_execute_state: Optional[Any] = None,
         _add_event: Optional[Any] = None,
-    ) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam]]:
+    ) -> Union[
+        TupleResult[_TSelectParam], ScalarResult[_TSelectParam], 
CursorResult[Any]
+    ]:
         if execution_options:
             execution_options = util.immutabledict(execution_options).union(
                 _EXECUTE_OPTIONS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/sqlmodel/main.py 
new/sqlmodel-0.0.25/sqlmodel/main.py
--- old/sqlmodel-0.0.24/sqlmodel/main.py        2025-03-07 06:43:15.041392800 
+0100
+++ new/sqlmodel-0.0.25/sqlmodel/main.py        2025-09-17 23:44:21.928244800 
+0200
@@ -477,7 +477,7 @@
 class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta):
     __sqlmodel_relationships__: Dict[str, RelationshipInfo]
     model_config: SQLModelConfig
-    model_fields: Dict[str, FieldInfo]  # type: ignore[assignment]
+    model_fields: ClassVar[Dict[str, FieldInfo]]
     __config__: Type[SQLModelConfig]
     __fields__: Dict[str, ModelField]  # type: ignore[assignment]
 
@@ -839,7 +839,7 @@
         return cls.__name__.lower()
 
     @classmethod
-    def model_validate(
+    def model_validate(  # type: ignore[override]
         cls: Type[_TSQLModel],
         obj: Any,
         *,
@@ -863,20 +863,25 @@
         mode: Union[Literal["json", "python"], str] = "python",
         include: Union[IncEx, None] = None,
         exclude: Union[IncEx, None] = None,
-        context: Union[Dict[str, Any], None] = None,
-        by_alias: bool = False,
+        context: Union[Any, None] = None,
+        by_alias: Union[bool, None] = None,
         exclude_unset: bool = False,
         exclude_defaults: bool = False,
         exclude_none: bool = False,
         round_trip: bool = False,
         warnings: Union[bool, Literal["none", "warn", "error"]] = True,
+        fallback: Union[Callable[[Any], Any], None] = None,
         serialize_as_any: bool = False,
     ) -> Dict[str, Any]:
+        if PYDANTIC_MINOR_VERSION < (2, 11):
+            by_alias = by_alias or False
         if PYDANTIC_MINOR_VERSION >= (2, 7):
             extra_kwargs: Dict[str, Any] = {
                 "context": context,
                 "serialize_as_any": serialize_as_any,
             }
+        if PYDANTIC_MINOR_VERSION >= (2, 11):
+            extra_kwargs["fallback"] = fallback
         else:
             extra_kwargs = {}
         if IS_PYDANTIC_V2:
@@ -896,7 +901,7 @@
             return super().dict(
                 include=include,
                 exclude=exclude,
-                by_alias=by_alias,
+                by_alias=by_alias or False,
                 exclude_unset=exclude_unset,
                 exclude_defaults=exclude_defaults,
                 exclude_none=exclude_none,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/sqlmodel/orm/session.py 
new/sqlmodel-0.0.25/sqlmodel/orm/session.py
--- old/sqlmodel-0.0.24/sqlmodel/orm/session.py 2025-03-07 06:43:15.041392800 
+0100
+++ new/sqlmodel-0.0.25/sqlmodel/orm/session.py 2025-09-17 23:44:21.928244800 
+0200
@@ -10,6 +10,7 @@
 )
 
 from sqlalchemy import util
+from sqlalchemy.engine.cursor import CursorResult
 from sqlalchemy.engine.interfaces import _CoreAnyExecuteParams
 from sqlalchemy.engine.result import Result, ScalarResult, TupleResult
 from sqlalchemy.orm import Query as _Query
@@ -17,6 +18,7 @@
 from sqlalchemy.orm._typing import OrmExecuteOptionsParameter
 from sqlalchemy.sql._typing import _ColumnsClauseArgument
 from sqlalchemy.sql.base import Executable as _Executable
+from sqlalchemy.sql.dml import UpdateBase
 from sqlmodel.sql.base import Executable
 from sqlmodel.sql.expression import Select, SelectOfScalar
 from typing_extensions import deprecated
@@ -49,12 +51,25 @@
         _add_event: Optional[Any] = None,
     ) -> ScalarResult[_TSelectParam]: ...
 
+    @overload
+    def exec(
+        self,
+        statement: UpdateBase,
+        *,
+        params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, 
Any]]]] = None,
+        execution_options: Mapping[str, Any] = util.EMPTY_DICT,
+        bind_arguments: Optional[Dict[str, Any]] = None,
+        _parent_execute_state: Optional[Any] = None,
+        _add_event: Optional[Any] = None,
+    ) -> CursorResult[Any]: ...
+
     def exec(
         self,
         statement: Union[
             Select[_TSelectParam],
             SelectOfScalar[_TSelectParam],
             Executable[_TSelectParam],
+            UpdateBase,
         ],
         *,
         params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, 
Any]]]] = None,
@@ -62,7 +77,9 @@
         bind_arguments: Optional[Dict[str, Any]] = None,
         _parent_execute_state: Optional[Any] = None,
         _add_event: Optional[Any] = None,
-    ) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam]]:
+    ) -> Union[
+        TupleResult[_TSelectParam], ScalarResult[_TSelectParam], 
CursorResult[Any]
+    ]:
         results = super().execute(
             statement,
             params=params,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/tests/conftest.py 
new/sqlmodel-0.0.25/tests/conftest.py
--- old/sqlmodel-0.0.24/tests/conftest.py       2025-03-07 06:43:15.042392700 
+0100
+++ new/sqlmodel-0.0.25/tests/conftest.py       2025-09-17 23:44:21.929244800 
+0200
@@ -1,8 +1,10 @@
 import shutil
 import subprocess
 import sys
+from dataclasses import dataclass, field
 from pathlib import Path
-from typing import Any, Callable, Dict, List, Union
+from typing import Any, Callable, Dict, Generator, List, Union
+from unittest.mock import patch
 
 import pytest
 from pydantic import BaseModel
@@ -14,8 +16,8 @@
 docs_src_path = top_level_path / "docs_src"
 
 
[email protected]()
-def clear_sqlmodel():
[email protected](autouse=True)
+def clear_sqlmodel() -> Any:
     # Clear the tables in the metadata for the default base model
     SQLModel.metadata.clear()
     # Clear the Models associated with the registry, to avoid warnings
@@ -26,7 +28,7 @@
 
 
 @pytest.fixture()
-def cov_tmp_path(tmp_path: Path):
+def cov_tmp_path(tmp_path: Path) -> Generator[Path, None, None]:
     yield tmp_path
     for coverage_path in tmp_path.glob(".coverage*"):
         coverage_destiny_path = top_level_path / coverage_path.name
@@ -53,8 +55,8 @@
 def get_testing_print_function(
     calls: List[List[Union[str, Dict[str, Any]]]],
 ) -> Callable[..., Any]:
-    def new_print(*args):
-        data = []
+    def new_print(*args: Any) -> None:
+        data: List[Any] = []
         for arg in args:
             if isinstance(arg, BaseModel):
                 data.append(arg.model_dump())
@@ -71,6 +73,19 @@
     return new_print
 
 
+@dataclass
+class PrintMock:
+    calls: List[Any] = field(default_factory=list)
+
+
[email protected](name="print_mock")
+def print_mock_fixture() -> Generator[PrintMock, None, None]:
+    print_mock = PrintMock()
+    new_print = get_testing_print_function(print_mock.calls)
+    with patch("builtins.print", new=new_print):
+        yield print_mock
+
+
 needs_pydanticv2 = pytest.mark.skipif(not IS_PYDANTIC_V2, reason="requires 
Pydantic v2")
 needs_pydanticv1 = pytest.mark.skipif(IS_PYDANTIC_V2, reason="requires 
Pydantic v1")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_decimal/test_tutorial001.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_decimal/test_tutorial001.py
--- old/sqlmodel-0.0.24/tests/test_advanced/test_decimal/test_tutorial001.py    
2025-03-07 06:43:15.042392700 +0100
+++ new/sqlmodel-0.0.25/tests/test_advanced/test_decimal/test_tutorial001.py    
2025-09-17 23:44:21.929244800 +0200
@@ -30,7 +30,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.advanced.decimal import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_decimal/test_tutorial001_py310.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_decimal/test_tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_advanced/test_decimal/test_tutorial001_py310.py  
    2025-03-07 06:43:15.042392700 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_advanced/test_decimal/test_tutorial001_py310.py  
    2025-09-17 23:44:21.929244800 +0200
@@ -31,7 +31,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.advanced.decimal import tutorial001_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial001.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial001.py
--- old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial001.py       
2025-03-07 06:43:15.042392700 +0100
+++ new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial001.py       
2025-09-17 23:44:21.929244800 +0200
@@ -6,7 +6,7 @@
 from ...conftest import get_testing_print_function
 
 
-def test_tutorial(clear_sqlmodel) -> None:
+def test_tutorial() -> None:
     from docs_src.advanced.uuid import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial001_py310.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial001_py310.py
--- old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial001_py310.py 
2025-03-07 06:43:15.042392700 +0100
+++ new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial001_py310.py 
2025-09-17 23:44:21.929244800 +0200
@@ -7,7 +7,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel) -> None:
+def test_tutorial() -> None:
     from docs_src.advanced.uuid import tutorial001_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial002.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial002.py
--- old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial002.py       
2025-03-07 06:43:15.042392700 +0100
+++ new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial002.py       
2025-09-17 23:44:21.929244800 +0200
@@ -6,7 +6,7 @@
 from ...conftest import get_testing_print_function
 
 
-def test_tutorial(clear_sqlmodel) -> None:
+def test_tutorial() -> None:
     from docs_src.advanced.uuid import tutorial002 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial002_py310.py 
new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial002_py310.py
--- old/sqlmodel-0.0.24/tests/test_advanced/test_uuid/test_tutorial002_py310.py 
2025-03-07 06:43:15.042392700 +0100
+++ new/sqlmodel-0.0.25/tests/test_advanced/test_uuid/test_tutorial002_py310.py 
2025-09-17 23:44:21.929244800 +0200
@@ -7,7 +7,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel) -> None:
+def test_tutorial() -> None:
     from docs_src.advanced.uuid import tutorial002_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sqlmodel-0.0.24/tests/test_select_gen.py 
new/sqlmodel-0.0.25/tests/test_select_gen.py
--- old/sqlmodel-0.0.24/tests/test_select_gen.py        2025-03-07 
06:43:15.043393000 +0100
+++ new/sqlmodel-0.0.25/tests/test_select_gen.py        2025-09-17 
23:44:21.930245000 +0200
@@ -1,3 +1,4 @@
+import os
 import subprocess
 import sys
 from pathlib import Path
@@ -9,9 +10,11 @@
 
 @needs_py39
 def test_select_gen() -> None:
+    env = os.environ.copy()
+    env["CHECK_JINJA"] = "1"
     result = subprocess.run(
         [sys.executable, "scripts/generate_select.py"],
-        env={"CHECK_JINJA": "1"},
+        env=env,
         check=True,
         cwd=root_path,
         capture_output=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_py310_tutorial002_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_py310_tutorial002_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_py310_tutorial002_py310.py
  2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_py310_tutorial002_py310.py
  1970-01-01 01:00:00.000000000 +0100
@@ -1,163 +0,0 @@
-from typing import Any, Dict, List, Union
-from unittest.mock import patch
-
-from sqlmodel import create_engine
-
-from tests.conftest import get_testing_print_function, needs_py310
-
-
-def check_calls(calls: List[List[Union[str, Dict[str, Any]]]]):
-    assert calls[0] == ["Before interacting with the database"]
-    assert calls[1] == [
-        "Hero 1:",
-        {
-            "id": None,
-            "name": "Deadpond",
-            "secret_name": "Dive Wilson",
-            "age": None,
-        },
-    ]
-    assert calls[2] == [
-        "Hero 2:",
-        {
-            "id": None,
-            "name": "Spider-Boy",
-            "secret_name": "Pedro Parqueador",
-            "age": None,
-        },
-    ]
-    assert calls[3] == [
-        "Hero 3:",
-        {
-            "id": None,
-            "name": "Rusty-Man",
-            "secret_name": "Tommy Sharp",
-            "age": 48,
-        },
-    ]
-    assert calls[4] == ["After adding to the session"]
-    assert calls[5] == [
-        "Hero 1:",
-        {
-            "id": None,
-            "name": "Deadpond",
-            "secret_name": "Dive Wilson",
-            "age": None,
-        },
-    ]
-    assert calls[6] == [
-        "Hero 2:",
-        {
-            "id": None,
-            "name": "Spider-Boy",
-            "secret_name": "Pedro Parqueador",
-            "age": None,
-        },
-    ]
-    assert calls[7] == [
-        "Hero 3:",
-        {
-            "id": None,
-            "name": "Rusty-Man",
-            "secret_name": "Tommy Sharp",
-            "age": 48,
-        },
-    ]
-    assert calls[8] == ["After committing the session"]
-    assert calls[9] == ["Hero 1:", {}]
-    assert calls[10] == ["Hero 2:", {}]
-    assert calls[11] == ["Hero 3:", {}]
-    assert calls[12] == ["After committing the session, show IDs"]
-    assert calls[13] == ["Hero 1 ID:", 1]
-    assert calls[14] == ["Hero 2 ID:", 2]
-    assert calls[15] == ["Hero 3 ID:", 3]
-    assert calls[16] == ["After committing the session, show names"]
-    assert calls[17] == ["Hero 1 name:", "Deadpond"]
-    assert calls[18] == ["Hero 2 name:", "Spider-Boy"]
-    assert calls[19] == ["Hero 3 name:", "Rusty-Man"]
-    assert calls[20] == ["After refreshing the heroes"]
-    assert calls[21] == [
-        "Hero 1:",
-        {
-            "id": 1,
-            "name": "Deadpond",
-            "secret_name": "Dive Wilson",
-            "age": None,
-        },
-    ]
-    assert calls[22] == [
-        "Hero 2:",
-        {
-            "id": 2,
-            "name": "Spider-Boy",
-            "secret_name": "Pedro Parqueador",
-            "age": None,
-        },
-    ]
-    assert calls[23] == [
-        "Hero 3:",
-        {
-            "id": 3,
-            "name": "Rusty-Man",
-            "secret_name": "Tommy Sharp",
-            "age": 48,
-        },
-    ]
-    assert calls[24] == ["After the session closes"]
-    assert calls[21] == [
-        "Hero 1:",
-        {
-            "id": 1,
-            "name": "Deadpond",
-            "secret_name": "Dive Wilson",
-            "age": None,
-        },
-    ]
-    assert calls[22] == [
-        "Hero 2:",
-        {
-            "id": 2,
-            "name": "Spider-Boy",
-            "secret_name": "Pedro Parqueador",
-            "age": None,
-        },
-    ]
-    assert calls[23] == [
-        "Hero 3:",
-        {
-            "id": 3,
-            "name": "Rusty-Man",
-            "secret_name": "Tommy Sharp",
-            "age": 48,
-        },
-    ]
-
-
-@needs_py310
-def test_tutorial_001(clear_sqlmodel):
-    from docs_src.tutorial.automatic_id_none_refresh import tutorial001_py310 
as mod
-
-    mod.sqlite_url = "sqlite://"
-    mod.engine = create_engine(mod.sqlite_url)
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        mod.main()
-    check_calls(calls)
-
-
-@needs_py310
-def test_tutorial_002(clear_sqlmodel):
-    from docs_src.tutorial.automatic_id_none_refresh import tutorial002_py310 
as mod
-
-    mod.sqlite_url = "sqlite://"
-    mod.engine = create_engine(mod.sqlite_url)
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        mod.main()
-    check_calls(calls)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py
      2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_automatic_id_none_refresh/test_tutorial001_tutorial002.py
      2025-09-17 23:44:21.930245000 +0200
@@ -1,12 +1,14 @@
+import importlib
+from types import ModuleType
 from typing import Any, Dict, List, Union
-from unittest.mock import patch
 
+import pytest
 from sqlmodel import create_engine
 
-from tests.conftest import get_testing_print_function
+from tests.conftest import PrintMock, needs_py310
 
 
-def check_calls(calls: List[List[Union[str, Dict[str, Any]]]]):
+def check_calls(calls: List[List[Union[str, Dict[str, Any]]]]) -> None:
     assert calls[0] == ["Before interacting with the database"]
     assert calls[1] == [
         "Hero 1:",
@@ -133,29 +135,25 @@
     ]
 
 
-def test_tutorial_001(clear_sqlmodel):
-    from docs_src.tutorial.automatic_id_none_refresh import tutorial001 as mod
-
-    mod.sqlite_url = "sqlite://"
-    mod.engine = create_engine(mod.sqlite_url)
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        mod.main()
-    check_calls(calls)
-
-
-def test_tutorial_002(clear_sqlmodel):
-    from docs_src.tutorial.automatic_id_none_refresh import tutorial002 as mod
-
-    mod.sqlite_url = "sqlite://"
-    mod.engine = create_engine(mod.sqlite_url)
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        mod.main()
-    check_calls(calls)
[email protected](
+    name="module",
+    params=[
+        "tutorial001",
+        "tutorial002",
+        pytest.param("tutorial001_py310", marks=needs_py310),
+        pytest.param("tutorial002_py310", marks=needs_py310),
+    ],
+)
+def get_module(request: pytest.FixtureRequest) -> ModuleType:
+    module = importlib.import_module(
+        f"docs_src.tutorial.automatic_id_none_refresh.{request.param}"
+    )
+    module.sqlite_url = "sqlite://"
+    module.engine = create_engine(module.sqlite_url)
+
+    return module
+
+
+def test_tutorial_001_tutorial_002(print_mock: PrintMock, module: ModuleType) 
-> None:
+    module.main()
+    check_calls(print_mock.calls)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001.py 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001.py 
    2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001.py 
    2025-09-17 23:44:21.930245000 +0200
@@ -1,8 +1,11 @@
-from unittest.mock import patch
+import importlib
+from dataclasses import dataclass
+from types import ModuleType
 
+import pytest
 from sqlmodel import create_engine
 
-from ...conftest import get_testing_print_function
+from tests.conftest import PrintMock, needs_py39, needs_py310
 
 expected_calls = [
     [
@@ -22,16 +25,34 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
-    from docs_src.tutorial.code_structure.tutorial001 import app, database
+@dataclass
+class Modules:
+    app: ModuleType
+    database: ModuleType
 
-    database.sqlite_url = "sqlite://"
-    database.engine = create_engine(database.sqlite_url)
-    app.engine = database.engine
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        app.main()
-    assert calls == expected_calls
+
[email protected](
+    name="modules",
+    params=[
+        "tutorial001",
+        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py310", marks=needs_py310),
+    ],
+)
+def get_modules(request: pytest.FixtureRequest) -> Modules:
+    app_module = importlib.import_module(
+        f"docs_src.tutorial.code_structure.{request.param}.app"
+    )
+    database_module = importlib.import_module(
+        f"docs_src.tutorial.code_structure.{request.param}.database"
+    )
+    database_module.sqlite_url = "sqlite://"
+    database_module.engine = create_engine(database_module.sqlite_url)
+    app_module.engine = database_module.engine
+
+    return Modules(app=app_module, database=database_module)
+
+
+def test_tutorial(print_mock: PrintMock, modules: Modules):
+    modules.app.main()
+    assert print_mock.calls == expected_calls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001_py310.py
       2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001_py310.py
       1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-from unittest.mock import patch
-
-from sqlmodel import create_engine
-
-from ...conftest import get_testing_print_function, needs_py310
-
-expected_calls = [
-    [
-        "Created hero:",
-        {
-            "id": 1,
-            "name": "Deadpond",
-            "age": None,
-            "secret_name": "Dive Wilson",
-            "team_id": 1,
-        },
-    ],
-    [
-        "Hero's team:",
-        {"name": "Z-Force", "headquarters": "Sister Margaret's Bar", "id": 1},
-    ],
-]
-
-
-@needs_py310
-def test_tutorial(clear_sqlmodel):
-    from docs_src.tutorial.code_structure.tutorial001_py310 import app, 
database
-
-    database.sqlite_url = "sqlite://"
-    database.engine = create_engine(database.sqlite_url)
-    app.engine = database.engine
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        app.main()
-    assert calls == expected_calls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001_py39.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001_py39.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial001_py39.py
        2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial001_py39.py
        1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-from unittest.mock import patch
-
-from sqlmodel import create_engine
-
-from ...conftest import get_testing_print_function, needs_py39
-
-expected_calls = [
-    [
-        "Created hero:",
-        {
-            "id": 1,
-            "name": "Deadpond",
-            "age": None,
-            "secret_name": "Dive Wilson",
-            "team_id": 1,
-        },
-    ],
-    [
-        "Hero's team:",
-        {"name": "Z-Force", "headquarters": "Sister Margaret's Bar", "id": 1},
-    ],
-]
-
-
-@needs_py39
-def test_tutorial(clear_sqlmodel):
-    from docs_src.tutorial.code_structure.tutorial001_py39 import app, database
-
-    database.sqlite_url = "sqlite://"
-    database.engine = create_engine(database.sqlite_url)
-    app.engine = database.engine
-    calls = []
-
-    new_print = get_testing_print_function(calls)
-
-    with patch("builtins.print", new=new_print):
-        app.main()
-    assert calls == expected_calls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002.py 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002.py 
    2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002.py 
    2025-09-17 23:44:21.930245000 +0200
@@ -22,7 +22,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.code_structure.tutorial002 import app, database
 
     database.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002_py310.py
       2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002_py310.py
       2025-09-17 23:44:21.930245000 +0200
@@ -23,7 +23,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.code_structure.tutorial002_py310 import app, 
database
 
     database.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002_py39.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002_py39.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_code_structure/test_tutorial002_py39.py
        2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_code_structure/test_tutorial002_py39.py
        2025-09-17 23:44:21.930245000 +0200
@@ -23,7 +23,7 @@
 
 
 @needs_py39
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.code_structure.tutorial002_py39 import app, database
 
     database.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py
       2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001.py
       2025-09-17 23:44:21.930245000 +0200
@@ -3,7 +3,7 @@
 from sqlmodel import create_engine
 
 
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.create_tables import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001_py310.py
 2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_create_connected_tables/test_tutorial001_py310.py
 2025-09-17 23:44:21.930245000 +0200
@@ -6,7 +6,7 @@
 
 
 @needs_py310
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.create_tables import tutorial001_py310 as 
mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
        2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_delete/test_tutorial001.py
        2025-09-17 23:44:21.930245000 +0200
@@ -58,7 +58,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.delete import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_delete/test_tutorial001_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_delete/test_tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_delete/test_tutorial001_py310.py
  2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_delete/test_tutorial001_py310.py
  2025-09-17 23:44:21.930245000 +0200
@@ -59,7 +59,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.delete import tutorial001_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
        2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_insert/test_tutorial001.py
        2025-09-17 23:44:21.930245000 +0200
@@ -38,7 +38,7 @@
 ]
 
 
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.insert import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_insert/test_tutorial001_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_insert/test_tutorial001_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_insert/test_tutorial001_py310.py
  2025-03-07 06:43:15.043393000 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_insert/test_tutorial001_py310.py
  2025-09-17 23:44:21.931244900 +0200
@@ -39,7 +39,7 @@
 
 
 @needs_py310
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.insert import tutorial001_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial001_py310_tutorial002_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial001_py310_tutorial002_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial001_py310_tutorial002_py310.py
        2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial001_py310_tutorial002_py310.py
        2025-09-17 23:44:21.931244900 +0200
@@ -63,7 +63,7 @@
 
 
 @needs_py310
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.select import tutorial001_py310 as mod
 
     mod.sqlite_url = "sqlite://"
@@ -78,7 +78,7 @@
 
 
 @needs_py310
-def test_tutorial002(clear_sqlmodel):
+def test_tutorial002():
     from docs_src.tutorial.connect.select import tutorial002_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py
    2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial001_tutorial002.py
    2025-09-17 23:44:21.931244900 +0200
@@ -62,7 +62,7 @@
 ]
 
 
-def test_tutorial001(clear_sqlmodel):
+def test_tutorial001():
     from docs_src.tutorial.connect.select import tutorial001 as mod
 
     mod.sqlite_url = "sqlite://"
@@ -76,7 +76,7 @@
     assert calls == expected_calls
 
 
-def test_tutorial002(clear_sqlmodel):
+def test_tutorial002():
     from docs_src.tutorial.connect.select import tutorial002 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial003.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial003.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial003.py
        2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial003.py
        2025-09-17 23:44:21.931244900 +0200
@@ -74,7 +74,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial003 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial003_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial003_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial003_py310.py
  2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial003_py310.py
  2025-09-17 23:44:21.931244900 +0200
@@ -75,7 +75,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial003_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial004.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial004.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial004.py
        2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial004.py
        2025-09-17 23:44:21.931244900 +0200
@@ -48,7 +48,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial004 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial004_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial004_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial004_py310.py
  2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial004_py310.py
  2025-09-17 23:44:21.931244900 +0200
@@ -49,7 +49,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial004_py310 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial005.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial005.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial005.py
        2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial005.py
        2025-09-17 23:44:21.931244900 +0200
@@ -50,7 +50,7 @@
 ]
 
 
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial005 as mod
 
     mod.sqlite_url = "sqlite://"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial005_py310.py
 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial005_py310.py
--- 
old/sqlmodel-0.0.24/tests/test_tutorial/test_connect/test_select/test_tutorial005_py310.py
  2025-03-07 06:43:15.044392800 +0100
+++ 
new/sqlmodel-0.0.25/tests/test_tutorial/test_connect/test_select/test_tutorial005_py310.py
  2025-09-17 23:44:21.931244900 +0200
@@ -51,7 +51,7 @@
 
 
 @needs_py310
-def test_tutorial(clear_sqlmodel):
+def test_tutorial():
     from docs_src.tutorial.connect.select import tutorial005_py310 as mod
 
     mod.sqlite_url = "sqlite://"

Reply via email to