]> git.ipfire.org Git - thirdparty/fastapi/sqlmodel.git/commitdiff
Update `docs_src/tutorial/relationship_attributes`
authorYurii Motov <yurii.motov.monte@gmail.com>
Wed, 24 Dec 2025 21:59:58 +0000 (22:59 +0100)
committerYurii Motov <yurii.motov.monte@gmail.com>
Thu, 25 Dec 2025 09:31:55 +0000 (10:31 +0100)
24 files changed:
docs_src/tutorial/relationship_attributes/back_populates/tutorial001.py [deleted file]
docs_src/tutorial/relationship_attributes/back_populates/tutorial002.py [deleted file]
docs_src/tutorial/relationship_attributes/back_populates/tutorial003.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004.py [deleted file]
docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005.py [deleted file]
docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001.py [deleted file]
docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001.py [deleted file]
docs_src/tutorial/relationship_attributes/read_relationships/tutorial001.py [deleted file]
docs_src/tutorial/relationship_attributes/read_relationships/tutorial002.py [deleted file]
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_back_populates/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_create_and_update_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_define_relationship_attributes/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial002.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial003.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial004.py
tests/test_tutorial/test_relationship_attributes/test_delete_records_relationship/test_tutorial005.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial001.py
tests/test_tutorial/test_relationship_attributes/test_read_relationships/test_tutorial002.py

diff --git a/docs_src/tutorial/relationship_attributes/back_populates/tutorial001.py b/docs_src/tutorial/relationship_attributes/back_populates/tutorial001.py
deleted file mode 100644 (file)
index 39230cb..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship()
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship()
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-        hero_tarantula = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
-        hero_dr_weird = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
-        hero_cap = Hero(
-            name="Captain North America", secret_name="Esteban Rogelios", age=93
-        )
-
-        team_preventers.heroes.append(hero_tarantula)
-        team_preventers.heroes.append(hero_dr_weird)
-        team_preventers.heroes.append(hero_cap)
-        session.add(team_preventers)
-        session.commit()
-        session.refresh(hero_tarantula)
-        session.refresh(hero_dr_weird)
-        session.refresh(hero_cap)
-        print("Preventers new hero:", hero_tarantula)
-        print("Preventers new hero:", hero_dr_weird)
-        print("Preventers new hero:", hero_cap)
-
-
-def select_heroes():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Preventers")
-        result = session.exec(statement)
-        team_preventers = result.one()
-
-        print("Preventers heroes:", team_preventers.heroes)
-
-
-def update_heroes():
-    with Session(engine) as session:
-        hero_spider_boy = session.exec(
-            select(Hero).where(Hero.name == "Spider-Boy")
-        ).one()
-
-        preventers_team = session.exec(
-            select(Team).where(Team.name == "Preventers")
-        ).one()
-
-        print("Hero Spider-Boy:", hero_spider_boy)
-        print("Preventers Team:", preventers_team)
-        print("Preventers Team Heroes:", preventers_team.heroes)
-
-        hero_spider_boy.team = None
-
-        print("Spider-Boy without team:", hero_spider_boy)
-
-        print("Preventers Team Heroes again:", preventers_team.heroes)
-
-        session.add(hero_spider_boy)
-        session.commit()
-        print("After committing")
-
-        session.refresh(hero_spider_boy)
-        print("Spider-Boy after commit:", hero_spider_boy)
-
-        print("Preventers Team Heroes after commit:", preventers_team.heroes)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    select_heroes()
-    update_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/back_populates/tutorial002.py b/docs_src/tutorial/relationship_attributes/back_populates/tutorial002.py
deleted file mode 100644 (file)
index a1add4b..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-        hero_tarantula = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
-        hero_dr_weird = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
-        hero_cap = Hero(
-            name="Captain North America", secret_name="Esteban Rogelios", age=93
-        )
-
-        team_preventers.heroes.append(hero_tarantula)
-        team_preventers.heroes.append(hero_dr_weird)
-        team_preventers.heroes.append(hero_cap)
-        session.add(team_preventers)
-        session.commit()
-        session.refresh(hero_tarantula)
-        session.refresh(hero_dr_weird)
-        session.refresh(hero_cap)
-        print("Preventers new hero:", hero_tarantula)
-        print("Preventers new hero:", hero_dr_weird)
-        print("Preventers new hero:", hero_cap)
-
-
-def select_heroes():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Preventers")
-        result = session.exec(statement)
-        team_preventers = result.one()
-
-        print("Preventers heroes:", team_preventers.heroes)
-
-
-def update_heroes():
-    with Session(engine) as session:
-        hero_spider_boy = session.exec(
-            select(Hero).where(Hero.name == "Spider-Boy")
-        ).one()
-
-        preventers_team = session.exec(
-            select(Team).where(Team.name == "Preventers")
-        ).one()
-
-        print("Hero Spider-Boy:", hero_spider_boy)
-        print("Preventers Team:", preventers_team)
-        print("Preventers Team Heroes:", preventers_team.heroes)
-
-        hero_spider_boy.team = None
-
-        print("Spider-Boy without team:", hero_spider_boy)
-
-        print("Preventers Team Heroes again:", preventers_team.heroes)
-
-        session.add(hero_spider_boy)
-        session.commit()
-        print("After committing")
-
-        session.refresh(hero_spider_boy)
-        print("Spider-Boy after commit:", hero_spider_boy)
-
-        print("Preventers Team Heroes after commit:", preventers_team.heroes)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    select_heroes()
-    update_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/back_populates/tutorial003.py b/docs_src/tutorial/relationship_attributes/back_populates/tutorial003.py
deleted file mode 100644 (file)
index 98e1970..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, SQLModel, create_engine
-
-
-class Weapon(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-
-    hero: "Hero" = Relationship(back_populates="weapon")
-
-
-class Power(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-
-    hero_id: int = Field(foreign_key="hero.id")
-    hero: "Hero" = Relationship(back_populates="powers")
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-    weapon_id: Optional[int] = Field(default=None, foreign_key="weapon.id")
-    weapon: Optional[Weapon] = Relationship(back_populates="hero")
-
-    powers: List[Power] = Relationship(back_populates="hero")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def main():
-    create_db_and_tables()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001.py b/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial001.py
deleted file mode 100644 (file)
index 877aeb3..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team", cascade_delete=True)
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(
-        default=None, foreign_key="team.id", ondelete="CASCADE"
-    )
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-
-def delete_team():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        session.delete(team)
-        session.commit()
-        print("Deleted team:", team)
-
-
-def select_deleted_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Black Lion")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Black Lion not found:", hero)
-
-        statement = select(Hero).where(Hero.name == "Princess Sure-E")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Princess Sure-E not found:", hero)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    delete_team()
-    select_deleted_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002.py b/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial002.py
deleted file mode 100644 (file)
index ac97a20..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(
-        default=None, foreign_key="team.id", ondelete="SET NULL"
-    )
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-
-def delete_team():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        session.delete(team)
-        session.commit()
-        print("Deleted team:", team)
-
-
-def select_deleted_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Black Lion")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Black Lion has no team:", hero)
-
-        statement = select(Hero).where(Hero.name == "Princess Sure-E")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Princess Sure-E has no team:", hero)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    delete_team()
-    select_deleted_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003.py b/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial003.py
deleted file mode 100644 (file)
index 0424f75..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select, text
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team", passive_deletes="all")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(
-        default=None, foreign_key="team.id", ondelete="SET NULL"
-    )
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-    with engine.connect() as connection:
-        connection.execute(text("PRAGMA foreign_keys=ON"))  # for SQLite only
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-
-def delete_team():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        session.delete(team)
-        session.commit()
-        print("Deleted team:", team)
-
-
-def select_deleted_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Black Lion")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Black Lion has no team:", hero)
-
-        statement = select(Hero).where(Hero.name == "Princess Sure-E")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Princess Sure-E has no team:", hero)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    delete_team()
-    select_deleted_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004.py b/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial004.py
deleted file mode 100644 (file)
index 00c5ac1..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select, text
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team", passive_deletes="all")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(
-        default=None, foreign_key="team.id", ondelete="RESTRICT"
-    )
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-    with engine.connect() as connection:
-        connection.execute(text("PRAGMA foreign_keys=ON"))  # for SQLite only
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-
-def delete_team():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        session.delete(team)
-        session.commit()
-        print("Deleted team:", team)
-
-
-def select_deleted_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Black Lion")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Black Lion has no team:", hero)
-
-        statement = select(Hero).where(Hero.name == "Princess Sure-E")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Princess Sure-E has no team:", hero)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    delete_team()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005.py b/docs_src/tutorial/relationship_attributes/cascade_delete_relationships/tutorial005.py
deleted file mode 100644 (file)
index b46a778..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select, text
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team", passive_deletes="all")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(
-        default=None, foreign_key="team.id", ondelete="RESTRICT"
-    )
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-    with engine.connect() as connection:
-        connection.execute(text("PRAGMA foreign_keys=ON"))  # for SQLite only
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-
-def remove_team_heroes():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        team.heroes.clear()
-        session.add(team)
-        session.commit()
-        session.refresh(team)
-        print("Team with removed heroes:", team)
-
-
-def delete_team():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Wakaland")
-        team = session.exec(statement).one()
-        session.delete(team)
-        session.commit()
-        print("Deleted team:", team)
-
-
-def select_deleted_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Black Lion")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Black Lion has no team:", hero)
-
-        statement = select(Hero).where(Hero.name == "Princess Sure-E")
-        result = session.exec(statement)
-        hero = result.first()
-        print("Princess Sure-E has no team:", hero)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    remove_team_heroes()
-    delete_team()
-    select_deleted_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001.py b/docs_src/tutorial/relationship_attributes/create_and_update_relationships/tutorial001.py
deleted file mode 100644 (file)
index 73c68cf..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-        hero_tarantula = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
-        hero_dr_weird = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
-        hero_cap = Hero(
-            name="Captain North America", secret_name="Esteban Rogelios", age=93
-        )
-
-        team_preventers.heroes.append(hero_tarantula)
-        team_preventers.heroes.append(hero_dr_weird)
-        team_preventers.heroes.append(hero_cap)
-        session.add(team_preventers)
-        session.commit()
-        session.refresh(hero_tarantula)
-        session.refresh(hero_dr_weird)
-        session.refresh(hero_cap)
-        print("Preventers new hero:", hero_tarantula)
-        print("Preventers new hero:", hero_dr_weird)
-        print("Preventers new hero:", hero_cap)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001.py b/docs_src/tutorial/relationship_attributes/define_relationship_attributes/tutorial001.py
deleted file mode 100644 (file)
index af218b9..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001.py b/docs_src/tutorial/relationship_attributes/read_relationships/tutorial001.py
deleted file mode 100644 (file)
index b8bbe70..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-        hero_tarantula = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
-        hero_dr_weird = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
-        hero_cap = Hero(
-            name="Captain North America", secret_name="Esteban Rogelios", age=93
-        )
-
-        team_preventers.heroes.append(hero_tarantula)
-        team_preventers.heroes.append(hero_dr_weird)
-        team_preventers.heroes.append(hero_cap)
-        session.add(team_preventers)
-        session.commit()
-        session.refresh(hero_tarantula)
-        session.refresh(hero_dr_weird)
-        session.refresh(hero_cap)
-        print("Preventers new hero:", hero_tarantula)
-        print("Preventers new hero:", hero_dr_weird)
-        print("Preventers new hero:", hero_cap)
-
-
-def select_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Spider-Boy")
-        result = session.exec(statement)
-        hero_spider_boy = result.one()
-
-        statement = select(Team).where(Team.id == hero_spider_boy.team_id)
-        result = session.exec(statement)
-        team = result.first()
-        print("Spider-Boy's team:", team)
-
-        print("Spider-Boy's team again:", hero_spider_boy.team)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    select_heroes()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002.py b/docs_src/tutorial/relationship_attributes/read_relationships/tutorial002.py
deleted file mode 100644 (file)
index 30fa840..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-from typing import List, Optional
-
-from sqlmodel import Field, Relationship, Session, SQLModel, create_engine, select
-
-
-class Team(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    headquarters: str
-
-    heroes: List["Hero"] = Relationship(back_populates="team")
-
-
-class Hero(SQLModel, table=True):
-    id: Optional[int] = Field(default=None, primary_key=True)
-    name: str = Field(index=True)
-    secret_name: str
-    age: Optional[int] = Field(default=None, index=True)
-
-    team_id: Optional[int] = Field(default=None, foreign_key="team.id")
-    team: Optional[Team] = Relationship(back_populates="heroes")
-
-
-sqlite_file_name = "database.db"
-sqlite_url = f"sqlite:///{sqlite_file_name}"
-
-engine = create_engine(sqlite_url, echo=True)
-
-
-def create_db_and_tables():
-    SQLModel.metadata.create_all(engine)
-
-
-def create_heroes():
-    with Session(engine) as session:
-        team_preventers = Team(name="Preventers", headquarters="Sharp Tower")
-        team_z_force = Team(name="Z-Force", headquarters="Sister Margaret's Bar")
-
-        hero_deadpond = Hero(
-            name="Deadpond", secret_name="Dive Wilson", team=team_z_force
-        )
-        hero_rusty_man = Hero(
-            name="Rusty-Man", secret_name="Tommy Sharp", age=48, team=team_preventers
-        )
-        hero_spider_boy = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
-        session.add(hero_deadpond)
-        session.add(hero_rusty_man)
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_deadpond)
-        session.refresh(hero_rusty_man)
-        session.refresh(hero_spider_boy)
-
-        print("Created hero:", hero_deadpond)
-        print("Created hero:", hero_rusty_man)
-        print("Created hero:", hero_spider_boy)
-
-        hero_spider_boy.team = team_preventers
-        session.add(hero_spider_boy)
-        session.commit()
-        session.refresh(hero_spider_boy)
-        print("Updated hero:", hero_spider_boy)
-
-        hero_black_lion = Hero(name="Black Lion", secret_name="Trevor Challa", age=35)
-        hero_sure_e = Hero(name="Princess Sure-E", secret_name="Sure-E")
-        team_wakaland = Team(
-            name="Wakaland",
-            headquarters="Wakaland Capital City",
-            heroes=[hero_black_lion, hero_sure_e],
-        )
-        session.add(team_wakaland)
-        session.commit()
-        session.refresh(team_wakaland)
-        print("Team Wakaland:", team_wakaland)
-
-        hero_tarantula = Hero(name="Tarantula", secret_name="Natalia Roman-on", age=32)
-        hero_dr_weird = Hero(name="Dr. Weird", secret_name="Steve Weird", age=36)
-        hero_cap = Hero(
-            name="Captain North America", secret_name="Esteban Rogelios", age=93
-        )
-
-        team_preventers.heroes.append(hero_tarantula)
-        team_preventers.heroes.append(hero_dr_weird)
-        team_preventers.heroes.append(hero_cap)
-        session.add(team_preventers)
-        session.commit()
-        session.refresh(hero_tarantula)
-        session.refresh(hero_dr_weird)
-        session.refresh(hero_cap)
-        print("Preventers new hero:", hero_tarantula)
-        print("Preventers new hero:", hero_dr_weird)
-        print("Preventers new hero:", hero_cap)
-
-
-def select_heroes():
-    with Session(engine) as session:
-        statement = select(Team).where(Team.name == "Preventers")
-        result = session.exec(statement)
-        team_preventers = result.one()
-
-        print("Preventers heroes:", team_preventers.heroes)
-
-
-def update_heroes():
-    with Session(engine) as session:
-        statement = select(Hero).where(Hero.name == "Spider-Boy")
-        result = session.exec(statement)
-        hero_spider_boy = result.one()
-
-        hero_spider_boy.team = None
-        session.add(hero_spider_boy)
-        session.commit()
-
-        session.refresh(hero_spider_boy)
-        print("Spider-Boy without team:", hero_spider_boy)
-
-
-def main():
-    create_db_and_tables()
-    create_heroes()
-    select_heroes()
-    update_heroes()
-
-
-if __name__ == "__main__":
-    main()
index 698a7af2cb5e4a9b5fc9d6ae261f44c02f010889..208cfb7caa95120d5a9b054a9b13aabfe1f41876 100644 (file)
@@ -5,14 +5,13 @@ import pytest
 from sqlalchemy.exc import SAWarning
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial001",
-        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py39"),
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
index 8ce54be46c4b94c1907a07efc93afac072aca0bb..65a849f270365b1e3cb4e55f6171676e54e6c03f 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial002",
-        pytest.param("tutorial002_py39", marks=needs_py39),
+        pytest.param("tutorial002_py39"),
         pytest.param("tutorial002_py310", marks=needs_py310),
     ],
 )
index d30c71c3c2d51a6ac2d70c31a2633812f696f5a0..a23800db9813a6ba628abf12e660ebcd15f848fe 100644 (file)
@@ -6,14 +6,13 @@ from sqlalchemy import inspect
 from sqlalchemy.engine.reflection import Inspector
 from sqlmodel import create_engine
 
-from ....conftest import needs_py39, needs_py310
+from ....conftest import needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial003",
-        pytest.param("tutorial003_py39", marks=needs_py39),
+        pytest.param("tutorial003_py39"),
         pytest.param("tutorial003_py310", marks=needs_py310),
     ],
 )
index 0c6a229178e7b82c8ef684b119483ce840c40ab8..d73be8f3c3e10a8281fde0d26e381018efeee74d 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial001",
-        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py39"),
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
index 96cf8bcc49808c2e24294d05da8568e4e141a739..516f3e384378887a8c625dd2fb2def7ab04badf5 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial001",
-        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py39"),
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
index 5e43f80c4ce286a9b3b24b94432a27e8298e2b44..fddaf3d9bf6c2ffc02a65e8f93d0bd120b4dd1b7 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial001",
-        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py39"),
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
index cb3907afd7cc654b5661444ae147e1ecf7f5355e..5614c2fecc772c37e73d26ecd32d10682444250c 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial002",
-        pytest.param("tutorial002_py39", marks=needs_py39),
+        pytest.param("tutorial002_py39"),
         pytest.param("tutorial002_py310", marks=needs_py310),
     ],
 )
index e063630f9638a2207d65c59210fc034840d72625..095062d7d7fb63c2aa1c67f805e35944798ba0d4 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial003",
-        pytest.param("tutorial003_py39", marks=needs_py39),
+        pytest.param("tutorial003_py39"),
         pytest.param("tutorial003_py310", marks=needs_py310),
     ],
 )
index 8b6c101fb8c9df7ea3af275ab0dead6577ea740f..fb045d45a72f3ffaa4c8936f5ee31cc0f750654d 100644 (file)
@@ -5,14 +5,13 @@ import pytest
 from sqlalchemy.exc import IntegrityError
 from sqlmodel import Session, create_engine, select
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial004",
-        pytest.param("tutorial004_py39", marks=needs_py39),
+        pytest.param("tutorial004_py39"),
         pytest.param("tutorial004_py310", marks=needs_py310),
     ],
 )
index 273007770ba3645de18086688ccfd188a1ea83ec..d2170f225ccb7a36d98ba1f02e2889d2e6f5008d 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial005",
-        pytest.param("tutorial005_py39", marks=needs_py39),
+        pytest.param("tutorial005_py39"),
         pytest.param("tutorial005_py310", marks=needs_py310),
     ],
 )
index 1b2caaa9c52feb65e2aa0de6b2ebad3b70e6d308..651f44a0332f0b79178ddd0426e070205cfc3476 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial001",
-        pytest.param("tutorial001_py39", marks=needs_py39),
+        pytest.param("tutorial001_py39"),
         pytest.param("tutorial001_py310", marks=needs_py310),
     ],
 )
index 68ee2cc1d8e5cb1982f3bfa2414f5e13bcf06921..306f3f174b1a55505be1eadb16c0854832bef960 100644 (file)
@@ -4,14 +4,13 @@ from types import ModuleType
 import pytest
 from sqlmodel import create_engine
 
-from ....conftest import PrintMock, needs_py39, needs_py310
+from ....conftest import PrintMock, needs_py310
 
 
 @pytest.fixture(
     name="mod",
     params=[
-        "tutorial002",
-        pytest.param("tutorial002_py39", marks=needs_py39),
+        pytest.param("tutorial002_py39"),
         pytest.param("tutorial002_py310", marks=needs_py310),
     ],
 )