From ef29ac89634dc37851b8b0d792d0d1e896a6f4b2 Mon Sep 17 00:00:00 2001 From: Mo8it Date: Sun, 3 Jul 2022 17:11:33 +0200 Subject: [PATCH] Apply flake8 --- advlabdb/adminModelViews.py | 9 ++++---- advlabdb/advlabdb_independent_funs.py | 8 ------- advlabdb/assistantModelViews.py | 21 +++---------------- advlabdb/customClasses.py | 2 +- advlabdb/model_dependent_funs.py | 8 ++----- advlabdb/models.py | 2 +- advlabdb/routes.py | 4 ++-- .../scripts/maintain/reset_admin_password.py | 2 +- advlabdb/scripts/setup/init_database.py | 2 +- advlabdb/scripts/terminal_utils.py | 2 +- advlabdb/scripts/test/test_container.py | 1 - advlabdb/scripts/test/test_database.py | 15 ++++++++++++- 12 files changed, 30 insertions(+), 46 deletions(-) diff --git a/advlabdb/adminModelViews.py b/advlabdb/adminModelViews.py index 2cc145e..f9ed58a 100644 --- a/advlabdb/adminModelViews.py +++ b/advlabdb/adminModelViews.py @@ -3,7 +3,7 @@ from io import BytesIO from pathlib import Path import numpy as np -from flask import flash, has_request_context, redirect, request, url_for +from flask import flash, has_request_context, redirect, url_for from flask_admin import expose from flask_admin.contrib.sqla.fields import QuerySelectField, QuerySelectMultipleField from flask_admin.contrib.sqla.filters import BooleanEqualFilter, FilterEqual @@ -28,7 +28,7 @@ from wtforms.fields import ( from wtforms.validators import URL, DataRequired, Email, NumberRange, Optional from wtforms.widgets import NumberInput -from . import adminSpace, app, assistantSpace, db, user_datastore +from . import adminSpace, assistantSpace, db, user_datastore from .admin_link_formatters import ( admin_formatter, appointment_date_formatter, @@ -58,7 +58,7 @@ from .advlabdb_independent_funs import ( ) from .customClasses import SecureAdminBaseView, SecureAdminModelView from .database_import import importFromFile -from .exceptions import DataBaseException, ModelViewException +from .exceptions import ModelViewException from .model_dependent_funs import ( generate_new_password_field, initActiveSemesterMenuLinks, @@ -1337,7 +1337,7 @@ class AnalysisView(SecureAdminBaseView): title += f"\nN = {N}" if N > 0: - hist = ax.hist( + ax.hist( data, bins=np.arange(MAX_MARK) - 0.5, ) @@ -1423,7 +1423,6 @@ class AnalysisView(SecureAdminBaseView): ] semesters = Semester.sortedSemestersStartingWithNewest() - semesterLabels = [str(semester) for semester in semesters] meanFinalPartMarks = np.flip( [ np.mean( diff --git a/advlabdb/advlabdb_independent_funs.py b/advlabdb/advlabdb_independent_funs.py index b96902e..0b94aeb 100644 --- a/advlabdb/advlabdb_independent_funs.py +++ b/advlabdb/advlabdb_independent_funs.py @@ -27,14 +27,6 @@ def deep_getattr(object, composed_name): return attr -def missing_formatter(view, context, model, name): - attr = deep_getattr(model, name) - if attr is None: - return Markup("MISSING") - - return attr - - def str_without_semester_formatter(view, context, model, name): attr = deep_getattr(model, name) diff --git a/advlabdb/assistantModelViews.py b/advlabdb/assistantModelViews.py index b075f34..99368af 100644 --- a/advlabdb/assistantModelViews.py +++ b/advlabdb/assistantModelViews.py @@ -3,40 +3,25 @@ from flask_admin import expose from flask_admin.model.template import EndpointLinkRowAction from flask_security import admin_change_password, current_user from flask_wtf import FlaskForm -from markupsafe import Markup -from wtforms.fields import TextAreaField -from wtforms.validators import Optional from . import assistantSpace, db from .advlabdb_independent_funs import ( deep_getattr, experiment_marks_missing_formatter, flashRandomPassword, - missing_formatter, str_formatter, - str_without_semester_formatter, ) from .customClasses import SecureAssistantBaseView, SecureAssistantModelView -from .exceptions import DataBaseException, ModelViewException +from .exceptions import ModelViewException from .forms import assistant_group_experiment_form_factory from .model_dependent_funs import ( generate_new_password_field, initActiveSemesterMenuLinks, - mark_field, parse_selection_mark_field, user_info_fields, ) from .model_independent_funs import randomPassword, reportBadAttempt -from .models import ( - MAX_MARK, - MIN_MARK, - Appointment, - Assistant, - ExperimentMark, - GroupExperiment, - SemesterExperiment, - User, -) +from .models import Assistant, GroupExperiment, SemesterExperiment, User class AssistantGroupExperimentView(SecureAssistantModelView): @@ -103,7 +88,7 @@ class AssistantGroupExperimentView(SecureAssistantModelView): try: group_experiment = db.session.get(GroupExperiment, int(group_experiment_id_str)) - except: + except Exception: red = url_for("index") + "assistant/group_experiment" flash("No valid group experiment id") return redirect(red) diff --git a/advlabdb/customClasses.py b/advlabdb/customClasses.py index 0d57117..7c336e6 100644 --- a/advlabdb/customClasses.py +++ b/advlabdb/customClasses.py @@ -4,7 +4,7 @@ from flask_admin.contrib.sqla import ModelView from flask_admin.helpers import get_form_data from flask_admin.model.helpers import get_mdict_item_or_list from flask_security import current_user -from sqlalchemy import and_, select +from sqlalchemy import select from . import db from .exceptions import DataBaseException, ModelViewException diff --git a/advlabdb/model_dependent_funs.py b/advlabdb/model_dependent_funs.py index 8f62b68..e2bfeed 100644 --- a/advlabdb/model_dependent_funs.py +++ b/advlabdb/model_dependent_funs.py @@ -25,7 +25,7 @@ def initActiveSemesterMenuLinks(space): category="Active semester", ) ) - except Exception as ex: + except Exception: print( "ERROR: The Semester table does not exist yet! Therefore, menu links could not be generated. You can ignore this error if you are just initializing the database." ) @@ -33,10 +33,6 @@ def initActiveSemesterMenuLinks(space): space.add_link(MenuLink(name="Logout", url=url_for("security.logout"))) -def get_count(table): - return db.session.scalar(select(func.count()).select_from(table)) - - def active_semester_str(): active_semester = current_user.active_semester active_semester_str = str(active_semester) @@ -65,7 +61,7 @@ def selection_mark_field_choices(): def selection_mark_field(mark_type: str, default): choices = selection_mark_field_choices() - if default == None: + if default is None: default = -1 return SelectField( diff --git a/advlabdb/models.py b/advlabdb/models.py index 9f5a5e8..ed9e682 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -663,7 +663,7 @@ class User(db.Model, FsUserMixin): def setActiveSemester(self, semester): if semester is None: - flash(f"Can not change the active semester to None!", "error") + flash("Can not change the active semester to None!", "error") return if self.active_semester != semester: diff --git a/advlabdb/routes.py b/advlabdb/routes.py index e6ed055..2436680 100644 --- a/advlabdb/routes.py +++ b/advlabdb/routes.py @@ -1,5 +1,5 @@ -from flask import flash, redirect, render_template, request, url_for -from flask_security import auth_required, current_user, roles_accepted, roles_required +from flask import flash, redirect, request, url_for +from flask_security import auth_required, current_user from . import app, db from .model_dependent_funs import active_semester_str diff --git a/advlabdb/scripts/maintain/reset_admin_password.py b/advlabdb/scripts/maintain/reset_admin_password.py index e02dd57..8d24d9d 100644 --- a/advlabdb/scripts/maintain/reset_admin_password.py +++ b/advlabdb/scripts/maintain/reset_admin_password.py @@ -4,7 +4,7 @@ from sqlalchemy import select from ... import app, db from ...model_independent_funs import randomPassword from ...models import Admin, User -from ..terminal_utils import box, spaced_hl, validating_input +from ..terminal_utils import box, validating_input def main(): diff --git a/advlabdb/scripts/setup/init_database.py b/advlabdb/scripts/setup/init_database.py index 4667c79..c2047cc 100644 --- a/advlabdb/scripts/setup/init_database.py +++ b/advlabdb/scripts/setup/init_database.py @@ -40,7 +40,7 @@ def main(): db.session.add(semester) adminRole = user_datastore.create_role(name="admin") - assistantRole = user_datastore.create_role(name="assistant") + user_datastore.create_role(name="assistant") box("The first admin account will now be created") diff --git a/advlabdb/scripts/terminal_utils.py b/advlabdb/scripts/terminal_utils.py index 8c703a8..a66982b 100644 --- a/advlabdb/scripts/terminal_utils.py +++ b/advlabdb/scripts/terminal_utils.py @@ -80,7 +80,7 @@ def validating_input( ans = input(prompt) try: ans = format_function(ans) - except Exception as ex: + except Exception: continue else: done_validation = True diff --git a/advlabdb/scripts/test/test_container.py b/advlabdb/scripts/test/test_container.py index 7d3b362..afbc6c7 100644 --- a/advlabdb/scripts/test/test_container.py +++ b/advlabdb/scripts/test/test_container.py @@ -31,7 +31,6 @@ If you want to clean up after testing with the container, run the following: """ import subprocess -from getpass import getpass def run(command, **kwargs): diff --git a/advlabdb/scripts/test/test_database.py b/advlabdb/scripts/test/test_database.py index 9eccc5f..ead32a1 100644 --- a/advlabdb/scripts/test/test_database.py +++ b/advlabdb/scripts/test/test_database.py @@ -3,7 +3,20 @@ from datetime import date from flask_security import hash_password from ... import app, db, user_datastore -from ...models import * +from ...models import ( + Admin, + Appointment, + Assistant, + Experiment, + Group, + GroupExperiment, + Part, + PartStudent, + Program, + Semester, + SemesterExperiment, + Student, +) def main():