Call scalars() from session rather than row results

This commit is contained in:
Keith Edmunds 2023-10-27 06:41:40 +01:00
parent 858c86d907
commit 37cdaf3e3f

View File

@ -123,7 +123,7 @@ class NoteColours(Base):
Return all records
"""
return session.execute(select(cls)).scalars().all()
return session.scalars(select(cls)).all()
@staticmethod
def get_colour(session: scoped_session, text: str) -> Optional[str]:
@ -135,12 +135,11 @@ class NoteColours(Base):
return None
for rec in (
session.execute(
session.scalars(
select(NoteColours)
.filter(NoteColours.enabled.is_(True))
.order_by(NoteColours.order)
)
.scalars()
.all()
):
if rec.is_regex:
@ -204,12 +203,11 @@ class Playdates(Base):
"""Return a list of Playdates objects since passed time"""
return (
session.execute(
session.scalars(
select(Playdates)
.where(Playdates.lastplayed >= since)
.order_by(Playdates.lastplayed)
)
.scalars()
.all()
)
@ -288,12 +286,11 @@ class Playlists(Base):
"""Returns a list of all playlists ordered by last use"""
return (
session.execute(
session.scalars(
select(cls)
.filter(cls.is_template.is_(False))
.order_by(cls.tab.desc(), cls.last_used.desc())
)
.scalars()
.all()
)
@ -302,10 +299,9 @@ class Playlists(Base):
"""Returns a list of all templates ordered by name"""
return (
session.execute(
session.scalars(
select(cls).filter(cls.is_template.is_(True)).order_by(cls.name)
)
.scalars()
.all()
)
@ -314,7 +310,7 @@ class Playlists(Base):
"""Returns a list of all closed playlists ordered by last use"""
return (
session.execute(
session.scalars(
select(cls)
.filter(
cls.tab.is_(None),
@ -323,7 +319,6 @@ class Playlists(Base):
)
.order_by(cls.last_used.desc())
)
.scalars()
.all()
)
@ -334,8 +329,7 @@ class Playlists(Base):
"""
return (
session.execute(select(cls).where(cls.tab.is_not(None)).order_by(cls.tab))
.scalars()
session.scalars(select(cls).where(cls.tab.is_not(None)).order_by(cls.tab))
.all()
)
@ -440,10 +434,9 @@ class PlaylistRows(Base):
"""Copy playlist entries"""
src_rows = (
session.execute(
session.scalars(
select(PlaylistRows).filter(PlaylistRows.playlist_id == src_id)
)
.scalars()
.all()
)
@ -520,12 +513,11 @@ class PlaylistRows(Base):
"""
plrs = (
session.execute(
session.scalars(
select(PlaylistRows)
.where(PlaylistRows.playlist_id == playlist_id)
.order_by(PlaylistRows.plr_rownum)
)
.scalars()
.all()
)
@ -545,12 +537,11 @@ class PlaylistRows(Base):
"""
plrs = (
session.execute(
session.scalars(
select(cls)
.where(cls.playlist_id == playlist_id, cls.id.in_(plr_ids))
.order_by(cls.plr_rownum)
)
.scalars()
.all()
)
@ -591,12 +582,11 @@ class PlaylistRows(Base):
"""
plrs = (
session.execute(
session.scalars(
select(cls)
.where(cls.playlist_id == playlist_id, cls.played.is_(True))
.order_by(cls.plr_rownum)
)
.scalars()
.all()
)
@ -623,7 +613,7 @@ class PlaylistRows(Base):
if to_row is not None:
query = query.where(cls.plr_rownum <= to_row)
plrs = session.execute((query).order_by(cls.plr_rownum)).scalars().all()
plrs = session.scalars((query).order_by(cls.plr_rownum)).all()
return plrs
@ -637,7 +627,7 @@ class PlaylistRows(Base):
"""
plrs = (
session.execute(
session.scalars(
select(cls)
.where(
cls.playlist_id == playlist_id,
@ -646,7 +636,6 @@ class PlaylistRows(Base):
)
.order_by(cls.plr_rownum)
)
.scalars()
.all()
)
@ -702,7 +691,7 @@ class Settings(Base):
result = {}
settings = session.execute(select(cls)).scalars().all()
settings = session.scalars(select(cls)).all()
for setting in settings:
result[setting.name] = setting
@ -789,7 +778,7 @@ class Tracks(Base):
def get_all(cls, session) -> List["Tracks"]:
"""Return a list of all tracks"""
return session.execute(select(cls)).scalars().unique().all()
return session.scalars(select(cls)).unique().all()
@classmethod
def get_by_path(cls, session: scoped_session, path: str) -> Optional["Tracks"]:
@ -817,13 +806,12 @@ class Tracks(Base):
"""
return (
session.execute(
session.scalars(
select(cls)
.options(joinedload(Tracks.playdates))
.where(cls.artist.ilike(f"%{text}%"))
.order_by(cls.title)
)
.scalars()
.unique()
.all()
)
@ -838,13 +826,12 @@ class Tracks(Base):
https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#joined-eager-loading
"""
return (
session.execute(
session.scalars(
select(cls)
.options(joinedload(Tracks.playdates))
.where(cls.title.like(f"{text}%"))
.order_by(cls.title)
)
.scalars()
.unique()
.all()
)