[Pkg-debile-commits] [debile-web] 01/03: Use implicit line continuations when building SQLAlchemy queries
Jon Severinsson
jonno-guest at moszumanska.debian.org
Sun Mar 30 15:37:47 UTC 2014
This is an automated email from the git hooks/post-receive script.
jonno-guest pushed a commit to branch master
in repository debile-web.
commit eb1609387b10aeda753f4666b6c728ef5a4ff5b1
Author: Jon Severinsson <jon at severinsson.net>
Date: Sun Mar 30 15:24:31 2014 +0200
Use implicit line continuations when building SQLAlchemy queries
---
debileweb/blueprints/frontend.py | 386 +++++++++++++++++++++------------------
1 file changed, 204 insertions(+), 182 deletions(-)
diff --git a/debileweb/blueprints/frontend.py b/debileweb/blueprints/frontend.py
index fd6713b..1334246 100644
--- a/debileweb/blueprints/frontend.py
+++ b/debileweb/blueprints/frontend.py
@@ -53,12 +53,12 @@ def ago_display(when):
def index():
session = make_session()
- groups = session.query(Group)\
- .order_by(Group.name.asc())\
- .all()
- builders = session.query(Builder)\
- .order_by(Builder.name.asc())\
- .all()
+ groups = session.query(Group).order_by(
+ Group.name.asc(),
+ ).all()
+ builders = session.query(Builder).order_by(
+ Builder.name.asc(),
+ ).all()
groups_info = []
for group in groups:
@@ -74,12 +74,13 @@ def index():
info['builder'] = builder
info['builder_link'] = "/builder/%s" % builder.name
info['maintainer_link'] = "/user/%s" % builder.maintainer.email
- jobs = session.query(Job).join(Source)\
- .filter(Job.assigned_at != None)\
- .filter(Job.finished_at == None)\
- .filter(Job.builder == builder)\
- .order_by(Job.assigned_at.desc())\
- .all()
+ jobs = session.query(Job).filter(
+ Job.assigned_at != None,
+ Job.finished_at == None,
+ Job.builder == builder,
+ ).order_by(
+ Job.assigned_at.desc(),
+ ).all()
jobs_info = []
for job in jobs:
jobinfo = {}
@@ -92,9 +93,9 @@ def index():
info['jobs_info'] = jobs_info
builders_info.append(info)
- pending_jobs = session.query(Job)\
- .filter(Job.assigned_at == None)\
- .count()
+ pending_jobs = session.query(Job).filter(
+ Job.assigned_at == None,
+ ).count()
form = SearchPackageForm()
return render_template('index.html', **{
@@ -123,74 +124,74 @@ def sources(search="", prefix="recent", page=0):
return redirect('/source/' + request.form['source'] + '/')
if request.path.startswith("/maintainer/"):
- source_count = session.query(Source)\
- .count()
desc = "Search results for maintainer '%s'" % search
- source_count = session.query(Source)\
- .filter(Source.maintainers.any(Maintainer.name.contains(search) |
- Maintainer.email.contains(search)))\
- .count()
- sources = session.query(Source)\
- .filter(Source.maintainers.any(Maintainer.name.contains(search) |
- Maintainer.email.contains(search)))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ Source.maintainers.any(
+ Maintainer.name.contains(search) |
+ Maintainer.email.contains(search)
+ ),
+ ).count()
+ sources = session.query(Source).filter(
+ Source.maintainers.any(
+ Maintainer.name.contains(search) |
+ Maintainer.email.contains(search)
+ ),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif request.path.startswith("/source/"):
desc = "Search results for source '%s'" % search
- source_count = session.query(Source)\
- .filter(Source.name.contains(search))\
- .count()
- sources = session.query(Source)\
- .filter(Source.name.contains(search))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ Source.name.contains(search),
+ ).count()
+ sources = session.query(Source).filter(
+ Source.name.contains(search),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif prefix == "recent":
desc = "All recent sources."
source_count = session.query(Source).count()
- sources = session.query(Source)\
- .order_by(Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ sources = session.query(Source).order_by(
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif prefix == "incomplete":
desc = "All incomplete sources."
- source_count = session.query(Source)\
- .filter(Source.jobs.any(Job.finished_at == None))\
- .count()
- sources = session.query(Source)\
- .filter(Source.jobs.any(Job.finished_at == None))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ Source.jobs.any(Job.finished_at == None),
+ ).count()
+ sources = session.query(Source).filter(
+ Source.jobs.any(Job.finished_at == None),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif prefix == "l":
desc = "All sources for packages beginning with 'l'"
- source_count = session.query(Source)\
- .filter(Source.name.startswith("l"))\
- .filter(~Source.name.startswith("lib"))\
- .count()
- sources = session.query(Source)\
- .filter(Source.name.startswith("l"))\
- .filter(~Source.name.startswith("lib"))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ Source.name.startswith("l"),
+ ~Source.name.startswith("lib"),
+ ).count()
+ sources = session.query(Source).filter(
+ Source.name.startswith("l"),
+ ~Source.name.startswith("lib"),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
else:
desc = "All sources for packages beginning with '%s'" % prefix
- source_count = session.query(Source)\
- .filter(Source.name.startswith(prefix))\
- .count()
- sources = session.query(Source)\
- .filter(Source.name.startswith(prefix))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ Source.name.startswith(prefix),
+ ).count()
+ sources = session.query(Source).filter(
+ Source.name.startswith(prefix),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
sources_info = []
for source in sources:
@@ -225,52 +226,53 @@ def jobs(prefix="recent", page=0):
if prefix == "recent":
desc = "All recent jobs."
job_count = session.query(Job).count()
- jobs = session.query(Job).join(Source).join(Check)\
- .order_by(Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ jobs = session.query(Job).join(Job.source).order_by(
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif prefix == "incomplete":
desc = "All incomplete jobs."
- job_count = session.query(Job)\
- .filter(Job.finished_at == None)\
- .count()
- jobs = session.query(Job).join(Source).join(Check)\
- .filter(Job.finished_at == None)\
- .order_by(Source.name.asc(), Source.uploaded_at.desc(),
- Check.build.desc(), Check.id.asc(),
- Job.id.asc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ job_count = session.query(Job).filter(
+ Job.finished_at == None,
+ ).count()
+ jobs = session.query(Job).join(Job.source).join(Job.check).filter(
+ Job.finished_at == None
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ Check.build.desc(),
+ Check.id.asc(),
+ Job.id.asc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
elif prefix == "l":
desc = "All jobs for packages beginning with 'l'"
- job_count = session.query(Job).join(Source)\
- .filter(Source.name.startswith("l"))\
- .filter(~Source.name.startswith("lib"))\
- .count()
- jobs = session.query(Job).join(Source).join(Check)\
- .filter(Source.name.startswith("l"))\
- .filter(~Source.name.startswith("lib"))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc(),
- Check.build.desc(), Check.id.asc(),
- Job.id.asc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ job_count = session.query(Job).join(Job.source).filter(
+ Source.name.startswith("l"),
+ ~Source.name.startswith("lib"),
+ ).count()
+ jobs = session.query(Job).join(Job.source).join(Job.check).filter(
+ Source.name.startswith("l"),
+ ~Source.name.startswith("lib"),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ Check.build.desc(),
+ Check.id.asc(),
+ Job.id.asc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
else:
desc = "All jobs for packages beginning with '%s'" % prefix
- job_count = session.query(Job).join(Source)\
- .filter(Source.name.startswith(prefix))\
- .count()
- jobs = session.query(Job).join(Source).join(Check)\
- .filter(Source.name.startswith(prefix))\
- .order_by(Source.name.asc(), Source.uploaded_at.desc(),
- Check.build.desc(), Check.id.asc(),
- Job.id.asc())\
- .offset(page * ENTRIES_PER_LIST_PAGE)\
- .limit(ENTRIES_PER_LIST_PAGE)\
- .all()
+ job_count = session.query(Job).join(Job.source).filter(
+ Source.name.startswith(prefix),
+ ).count()
+ jobs = session.query(Job).join(Job.source).join(Job.check).filter(
+ Source.name.startswith(prefix),
+ ).order_by(
+ Source.name.asc(),
+ Source.uploaded_at.desc(),
+ Check.build.desc(),
+ Check.id.asc(),
+ Job.id.asc(),
+ ).offset(page * ENTRIES_PER_LIST_PAGE).limit(ENTRIES_PER_LIST_PAGE).all()
jobs_info = []
for job in jobs:
@@ -304,19 +306,18 @@ def group(name, page=0):
page = int(page)
session = make_session()
- group = session.query(Group)\
- .filter(Group.name == name)\
- .one()
+ group = session.query(Group).filter(
+ Group.name == name,
+ ).one()
- source_count = session.query(Source)\
- .filter(GroupSuite.group == group)\
- .count()
- sources = session.query(Source)\
- .filter(GroupSuite.group == group)\
- .order_by(Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_PAGE)\
- .limit(ENTRIES_PER_PAGE)\
- .all()
+ source_count = session.query(Source).filter(
+ GroupSuite.group == group,
+ ).count()
+ sources = session.query(Source).filter(
+ GroupSuite.group == group,
+ ).order_by(
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_PAGE).limit(ENTRIES_PER_PAGE).all()
sources_info = []
for source in sources:
@@ -347,17 +348,18 @@ def builder(name, page=0):
page = int(page)
session = make_session()
- builder = session.query(Builder)\
- .filter(Builder.name == name)\
- .one()
+ builder = session.query(Builder).filter(
+ Builder.name == name,
+ ).one()
- job_count = session.query(Job).filter(Job.builder == builder).count()
- jobs = session.query(Job).join(Source)\
- .filter(Job.builder == builder)\
- .order_by(Job.assigned_at.desc())\
- .offset(page * ENTRIES_PER_PAGE)\
- .limit(ENTRIES_PER_PAGE)\
- .all()
+ job_count = session.query(Job).filter(
+ Job.builder == builder,
+ ).count()
+ jobs = session.query(Job).filter(
+ Job.builder == builder,
+ ).order_by(
+ Job.assigned_at.desc(),
+ ).offset(page * ENTRIES_PER_PAGE).limit(ENTRIES_PER_PAGE).all()
jobs_info = []
for job in jobs:
@@ -390,29 +392,30 @@ def user(email, page=0):
page = int(page)
session = make_session()
- user = session.query(Person)\
- .filter(Person.email == email)\
- .one()
-
- groups = session.query(Group)\
- .filter(Group.maintainer == user)\
- .order_by(Group.name.asc())\
- .all()
-
- builders = session.query(Builder)\
- .filter(Builder.maintainer == user)\
- .order_by(Builder.name.asc())\
- .all()
-
- source_count = session.query(Source)\
- .filter(Source.uploader == user)\
- .count()
- sources = session.query(Source)\
- .filter(Source.uploader == user)\
- .order_by(Source.uploaded_at.desc())\
- .offset(page * ENTRIES_PER_PAGE)\
- .limit(ENTRIES_PER_PAGE)\
- .all()
+ user = session.query(Person).filter(
+ Person.email == email,
+ ).one()
+
+ groups = session.query(Group).filter(
+ Group.maintainer == user,
+ ).order_by(
+ Group.name.asc(),
+ ).all()
+
+ builders = session.query(Builder).filter(
+ Builder.maintainer == user,
+ ).order_by(
+ Builder.name.asc(),
+ ).all()
+
+ source_count = session.query(Source).filter(
+ Source.uploader == user,
+ ).count()
+ sources = session.query(Source).filter(
+ Source.uploader == user,
+ ).order_by(
+ Source.uploaded_at.desc(),
+ ).offset(page * ENTRIES_PER_PAGE).limit(ENTRIES_PER_PAGE).all()
groups_info = []
for group in groups:
@@ -426,12 +429,13 @@ def user(email, page=0):
info = {}
info['builder'] = builder
info['builder_link'] = "/builder/%s" % builder.name
- jobs = session.query(Job).join(Source)\
- .filter(Job.assigned_at != None)\
- .filter(Job.finished_at == None)\
- .filter(Job.builder == builder)\
- .order_by(Job.assigned_at.desc())\
- .all()
+ jobs = session.query(Job).filter(
+ Job.assigned_at != None,
+ Job.finished_at == None,
+ Job.builder == builder,
+ ).order_by(
+ Job.assigned_at.desc(),
+ ).all()
jobs_info = []
for job in jobs:
jobinfo = {}
@@ -472,12 +476,14 @@ def user(email, page=0):
def source(group_name, package_name, suite_or_version):
session = make_session()
- source = session.query(Source)\
- .filter(Group.name == group_name)\
- .filter(Source.name == package_name)\
- .filter((Source.version == suite_or_version) |
- (Suite.name == suite_or_version))\
- .order_by(Source.uploaded_at.desc()).first()
+ source = session.query(Source).filter(
+ Group.name == group_name,
+ Source.name == package_name,
+ (Source.version == suite_or_version) |
+ (Suite.name == suite_or_version),
+ ).order_by(
+ Source.uploaded_at.desc()
+ ).first()
if not source:
return render_template('source-not-found.html', **{
@@ -487,9 +493,12 @@ def source(group_name, package_name, suite_or_version):
})
# Find all versions of this package
- versions = session.query(Source.version)\
- .filter(Group.name == group_name)\
- .filter(Source.name == package_name)
+ versions = session.query(
+ Source.version,
+ ).filter(
+ Group.name == group_name,
+ Source.name == package_name,
+ )
versions = sorted([x[0] for x in versions], key=Version, reverse=True)
versions_info = []
@@ -499,10 +508,13 @@ def source(group_name, package_name, suite_or_version):
(group_name, package_name, version)
versions_info.append((version, href))
- jobs = session.query(Job).join(Check)\
- .filter(Job.source == source)\
- .order_by(Check.build.desc(), Check.id.asc(), Job.id.asc())\
- .all()
+ jobs = session.query(Job).join(Job.check).filter(
+ Job.source == source,
+ ).order_by(
+ Check.build.desc(),
+ Check.id.asc(),
+ Job.id.asc(),
+ ).all()
total = len(jobs)
unfinished = 0
@@ -577,9 +589,13 @@ def job(job_id, group_name="", package_name="", package_version="", version=""):
def search_source():
search = request.args.get('search[term]')
session = make_session()
- query = session.query(Source.name)\
- .filter(Source.name.startswith(search))\
- .group_by(Source.name).limit(10)
+ query = session.query(
+ Source.name,
+ ).filter(
+ Source.name.startswith(search),
+ ).group_by(
+ Source.name,
+ ).limit(10).all()
result = [r[0] for r in query]
return jsonify(result)
@@ -588,10 +604,16 @@ def search_source():
def search_maintainer():
search = request.args.get('search[term]')
session = make_session()
- query = session.query(Maintainer.name, Maintainer.email)\
- .filter(Maintainer.name.startswith(search) |
- Maintainer.email.startswith(search))\
- .group_by(Maintainer.name, Maintainer.email).limit(10)
+ query = session.query(
+ Maintainer.name,
+ Maintainer.email,
+ ).filter(
+ Maintainer.name.startswith(search) |
+ Maintainer.email.startswith(search),
+ ).group_by(
+ Maintainer.name,
+ Maintainer.email,
+ ).limit(10).all()
result = [r[0] if r[0].startswith(search) else r[1] for r in query]
return jsonify(result)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-debile/debile-web.git
More information about the Pkg-debile-commits
mailing list