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://"