3
0
Fork 0

Compare commits

...

10 commits

20 changed files with 86 additions and 76 deletions

View file

@ -3,25 +3,16 @@
[MESSAGES CONTROL]
disable=fixme,
abstract-method,
anomalous-backslash-in-string,
arguments-differ,
arguments-renamed,
assignment-from-no-return,
attribute-defined-outside-init,
bare-except,
broad-exception-caught,
consider-using-dict-comprehension,
consider-using-dict-items,
consider-using-generator,
consider-using-get,
consider-using-set-comprehension,
cyclic-import,
dangerous-default-value,
deprecated-method,
duplicate-code,
implicit-str-concat,
import-outside-toplevel,
invalid-name,
isinstance-second-argument-not-valid-type,
keyword-arg-before-vararg,
missing-function-docstring,
@ -49,8 +40,5 @@ disable=fixme,
unnecessary-lambda-assignment,
unspecified-encoding,
unused-argument,
unused-wildcard-import,
use-a-generator,
use-dict-literal,
wildcard-import,
wrong-import-order,

View file

@ -63,7 +63,7 @@ def webapp(
elif runner == "uvicorn":
import uvicorn # pylint: disable=import-error
import uvicorn # pylint: disable=import-error,import-outside-toplevel
# need service details from config
spec = config.require(f"{config.appname}.web.app.spec")

View file

@ -27,7 +27,7 @@
from wuttjamaican.email import EmailSetting
class feedback(EmailSetting):
class feedback(EmailSetting): # pylint: disable=invalid-name
"""
Sent when user submits feedback via the web app.
"""

View file

@ -274,14 +274,14 @@ class Form: # pylint: disable=too-many-instance-attributes
schema=None,
model_class=None,
model_instance=None,
nodes={},
widgets={},
validators={},
defaults={},
nodes=None,
widgets=None,
validators=None,
defaults=None,
readonly=False,
readonly_fields=[],
required_fields={},
labels={},
readonly_fields=None,
required_fields=None,
labels=None,
action_method="post",
action_url=None,
reset_url=None,
@ -465,7 +465,9 @@ class Form: # pylint: disable=too-many-instance-attributes
Node overrides are tracked via :attr:`nodes`.
"""
from wuttaweb.forms.schema import ObjectNode
from wuttaweb.forms.schema import ( # pylint: disable=import-outside-toplevel
ObjectNode,
)
if isinstance(nodeinfo, colander.SchemaNode):
# assume nodeinfo is a complete node
@ -494,7 +496,7 @@ class Form: # pylint: disable=too-many-instance-attributes
:param widget: Either a :class:`deform:deform.widget.Widget`
instance, or else a widget "type" name.
:param \**kwargs: Any remaining kwargs are passed along to
:param \\**kwargs: Any remaining kwargs are passed along to
:meth:`make_widget()` - if applicable.
Widget overrides are tracked via :attr:`widgets`.
@ -526,13 +528,13 @@ class Form: # pylint: disable=too-many-instance-attributes
:param widget_type: Which of the above (or custom) widget
type to create.
:param \**kwargs: Remaining kwargs are passed as-is to the
:param \\**kwargs: Remaining kwargs are passed as-is to the
widget factory.
:returns: New widget instance, or ``None`` if e.g. it could
not determine how to create the widget.
"""
from wuttaweb.forms import widgets
from wuttaweb.forms import widgets # pylint: disable=import-outside-toplevel
if widget_type == "notes":
return widgets.NotesWidget(**kwargs)
@ -556,7 +558,7 @@ class Form: # pylint: disable=too-many-instance-attributes
* :class:`sqlalchemy:sqlalchemy.types.DateTime` ->
:class:`~wuttaweb.forms.widgets.WuttaDateTimeWidget`
"""
from wuttaweb.forms import widgets
from wuttaweb.forms import widgets # pylint: disable=import-outside-toplevel
if not self.model_class:
return
@ -586,7 +588,9 @@ class Form: # pylint: disable=too-many-instance-attributes
:param widget: :class:`~wuttaweb.grids.base.Grid` instance,
pre-configured and (usually) with data.
"""
from wuttaweb.forms.widgets import GridWidget
from wuttaweb.forms.widgets import ( # pylint: disable=import-outside-toplevel
GridWidget,
)
widget = GridWidget(self.request, grid)
self.set_widget(key, widget)
@ -599,7 +603,7 @@ class Form: # pylint: disable=too-many-instance-attributes
if grid.key in self.grid_vue_context:
log.warning(
"grid data with key '%s' already registered, " "but will be replaced",
"grid data with key '%s' already registered, but will be replaced",
grid.key,
)

View file

@ -63,7 +63,7 @@ class WuttaDateTime(colander.DateTime):
for fmt in formats:
try:
return datetime.datetime.strptime(cstruct, fmt)
except:
except Exception: # pylint: disable=broad-exception-caught
pass
node.raise_invalid("Invalid date and/or time")

View file

@ -37,8 +37,8 @@ from paginate_sqlalchemy import SqlalchemyOrmPage
from pyramid.renderers import render
from webhelpers2.html import HTML
from wuttaweb.util import FieldList, get_model_fields, make_json_safe
from wuttjamaican.db.util import UUID
from wuttaweb.util import FieldList, get_model_fields, make_json_safe
from wuttaweb.grids.filters import default_sqlalchemy_filters, VerbNotSupported
@ -379,14 +379,14 @@ class Grid: # pylint: disable=too-many-instance-attributes
key=None,
columns=None,
data=None,
labels={},
renderers={},
enums={},
labels=None,
renderers=None,
enums=None,
checkable=False,
row_class=None,
actions=[],
linked_columns=[],
hidden_columns=[],
actions=None,
linked_columns=None,
hidden_columns=None,
sortable=False,
sort_multiple=True,
sort_on_backend=True,
@ -467,7 +467,7 @@ class Grid: # pylint: disable=too-many-instance-attributes
# enums
self.enums = {}
for k in enums:
for k in enums or {}:
self.set_enum(k, enums[k])
def get_columns(self):
@ -1853,7 +1853,7 @@ class Grid: # pylint: disable=too-many-instance-attributes
data = filtr.apply_filter(data)
except VerbNotSupported as error:
log.warning("verb not supported for '%s' filter: %s", key, error.verb)
except:
except Exception: # pylint: disable=broad-exception-caught
log.exception("filtering data by '%s' failed!", key)
return data

View file

@ -63,7 +63,7 @@ class GridFilter: # pylint: disable=too-many-instance-attributes
column by which to filter. For instance,
``model.Person.full_name``.
:param \**kwargs: Any additional kwargs will be set as attributes
:param \\**kwargs: Any additional kwargs will be set as attributes
on the filter instance.
Filter instances have the following attributes:
@ -175,7 +175,7 @@ class GridFilter: # pylint: disable=too-many-instance-attributes
key,
label=None,
verbs=None,
choices={},
choices=None,
default_active=False,
default_verb=None,
default_value=None,
@ -198,7 +198,7 @@ class GridFilter: # pylint: disable=too-many-instance-attributes
self.default_verb = default_verb
# choices
self.set_choices(choices)
self.set_choices(choices or {})
# value
self.default_value = default_value
@ -358,7 +358,7 @@ class GridFilter: # pylint: disable=too-many-instance-attributes
verb = self.verb
if not verb:
verb = self.get_default_verb()
log.warn(
log.warning(
"missing verb for '%s' filter, will use default verb: %s",
self.key,
verb,
@ -582,7 +582,7 @@ class IntegerAlchemyFilter(NumericAlchemyFilter):
if value:
try:
return int(value)
except:
except Exception: # pylint: disable=broad-exception-caught
pass
return None

View file

@ -187,8 +187,8 @@ class WebHandler(GenericHandler):
# registered via entry points
registered = []
for Handler in load_entry_points(f"{self.appname}.web.menus").values():
spec = Handler.get_spec()
for handler in load_entry_points(f"{self.appname}.web.menus").values():
spec = handler.get_spec()
if spec not in handlers:
registered.append(spec)
if registered:

View file

@ -51,8 +51,8 @@ This module contains the following references:
"""
from webhelpers2.html import *
from webhelpers2.html.tags import *
from webhelpers2.html import * # pylint: disable=wildcard-import,unused-wildcard-import
from webhelpers2.html.tags import * # pylint: disable=wildcard-import,unused-wildcard-import
from wuttaweb.util import ( # pylint: disable=unused-import
get_liburl,

View file

@ -314,7 +314,7 @@ class AuthView(View):
def defaults(config, **kwargs):
base = globals()
AuthView = kwargs.get("AuthView", base["AuthView"])
AuthView = kwargs.get("AuthView", base["AuthView"]) # pylint: disable=invalid-name
AuthView.defaults(config)

View file

@ -127,7 +127,7 @@ class BatchMasterView(MasterView):
model = self.app.model
# created_by
CreatedBy = orm.aliased(model.User)
CreatedBy = orm.aliased(model.User) # pylint: disable=invalid-name
g.set_joiner(
"created_by",
lambda q: q.join(
@ -221,7 +221,7 @@ class BatchMasterView(MasterView):
on the batch handler - when creating. Parent/default logic is
used when updating.
:param \**kwargs: Additional kwargs will be passed as-is to
:param \\**kwargs: Additional kwargs will be passed as-is to
the ``make_batch()`` call.
"""
if self.creating:
@ -329,7 +329,7 @@ class BatchMasterView(MasterView):
self.batch_handler.do_populate(batch, progress=progress)
session.flush()
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
session.rollback()
log.warning(
"failed to populate %s: %s",
@ -367,7 +367,7 @@ class BatchMasterView(MasterView):
try:
self.batch_handler.do_execute(batch, self.request.user)
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
log.warning("failed to execute batch: %s", batch, exc_info=True)
self.request.session.flash(f"Execution failed!: {error}", "error")
@ -383,8 +383,8 @@ class BatchMasterView(MasterView):
if hasattr(cls, "row_model_class"):
return cls.row_model_class
Batch = cls.get_model_class()
return Batch.__row_class__
model_class = cls.get_model_class()
return model_class.__row_class__
def get_row_grid_data(self, batch):
"""
@ -392,8 +392,10 @@ class BatchMasterView(MasterView):
:attr:`~wuttjamaican:wuttjamaican.db.model.batch.BatchMixin.rows`
data.
"""
BatchRow = self.get_row_model_class()
query = self.Session.query(BatchRow).filter(BatchRow.batch == batch)
row_model_class = self.get_row_model_class()
query = self.Session.query(row_model_class).filter(
row_model_class.batch == batch
)
return query
def configure_row_grid(self, g): # pylint: disable=empty-docstring

View file

@ -109,7 +109,7 @@ class CommonView(View):
# send email
try:
self.feedback_send(context)
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
log.warning("failed to send feedback email", exc_info=True)
return {"error": str(error) or error.__class__.__name__}
@ -287,7 +287,7 @@ class CommonView(View):
if theme:
try:
set_app_theme(self.request, theme, session=Session())
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
error = self.app.render_error(error)
self.request.session.flash(f"Failed to set theme: {error}", "error")
referrer = self.request.params.get("referrer") or self.request.get_referrer()
@ -345,7 +345,9 @@ class CommonView(View):
def defaults(config, **kwargs):
base = globals()
CommonView = kwargs.get("CommonView", base["CommonView"])
CommonView = kwargs.get( # pylint: disable=invalid-name
"CommonView", base["CommonView"]
)
CommonView.defaults(config)

View file

@ -301,7 +301,9 @@ class EmailSettingView(MasterView):
def defaults(config, **kwargs):
base = globals()
EmailSettingView = kwargs.get("EmailSettingView", base["EmailSettingView"])
EmailSettingView = kwargs.get( # pylint: disable=invalid-name
"EmailSettingView", base["EmailSettingView"]
)
EmailSettingView.defaults(config)

View file

@ -34,11 +34,11 @@ from sqlalchemy import orm
from pyramid.renderers import render_to_response
from webhelpers2.html import HTML
from wuttaweb.views import View
from wuttjamaican.util import get_class_hierarchy
from wuttaweb.views.base import View
from wuttaweb.util import get_form_data, render_csrf_token
from wuttaweb.db import Session
from wuttaweb.progress import SessionProgress
from wuttjamaican.util import get_class_hierarchy
log = logging.getLogger(__name__)
@ -826,7 +826,7 @@ class MasterView(View):
try:
self.delete_bulk_action(records, progress=progress)
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
session.rollback()
log.warning(
"failed to delete %s results for %s",
@ -1128,7 +1128,7 @@ class MasterView(View):
try:
self.execute_instance(obj, user, progress=progress)
except Exception as error:
except Exception as error: # pylint: disable=broad-exception-caught
session.rollback()
log.warning("%s failed to execute: %s", model_title, obj, exc_info=True)
if progress:
@ -1651,7 +1651,7 @@ class MasterView(View):
button act like a link. This will yield something like:
``<b-button tag="a" href="{url}">``
:param \**kwargs: All remaining kwargs are passed to the
:param \\**kwargs: All remaining kwargs are passed to the
underlying ``HTML.tag()`` call, so will be rendered as
attributes on the button tag.
@ -2260,7 +2260,7 @@ class MasterView(View):
:param obj: Model instance object.
:param \**kwargs: Additional kwargs to be passed to
:param \\**kwargs: Additional kwargs to be passed to
``request.route_url()``, if needed.
"""
kw = self.get_action_route_kwargs(obj)

View file

@ -210,7 +210,9 @@ class PersonView(MasterView):
def defaults(config, **kwargs):
base = globals()
PersonView = kwargs.get("PersonView", base["PersonView"])
PersonView = kwargs.get( # pylint: disable=invalid-name
"PersonView", base["PersonView"]
)
PersonView.defaults(config)

View file

@ -264,7 +264,9 @@ class ReportView(MasterView):
def defaults(config, **kwargs):
base = globals()
ReportView = kwargs.get("ReportView", base["ReportView"])
ReportView = kwargs.get( # pylint: disable=invalid-name
"ReportView", base["ReportView"]
)
ReportView.defaults(config)

View file

@ -374,10 +374,12 @@ class PermissionView(MasterView):
def defaults(config, **kwargs):
base = globals()
RoleView = kwargs.get("RoleView", base["RoleView"])
RoleView = kwargs.get("RoleView", base["RoleView"]) # pylint: disable=invalid-name
RoleView.defaults(config)
PermissionView = kwargs.get("PermissionView", base["PermissionView"])
PermissionView = kwargs.get( # pylint: disable=invalid-name
"PermissionView", base["PermissionView"]
)
PermissionView.defaults(config)

View file

@ -278,10 +278,14 @@ class SettingView(MasterView):
def defaults(config, **kwargs):
base = globals()
AppInfoView = kwargs.get("AppInfoView", base["AppInfoView"])
AppInfoView = kwargs.get( # pylint: disable=invalid-name
"AppInfoView", base["AppInfoView"]
)
AppInfoView.defaults(config)
SettingView = kwargs.get("SettingView", base["SettingView"])
SettingView = kwargs.get( # pylint: disable=invalid-name
"SettingView", base["SettingView"]
)
SettingView.defaults(config)

View file

@ -86,7 +86,7 @@ class UpgradeView(MasterView):
# created_by
g.set_link("created_by")
Creator = orm.aliased(model.User)
Creator = orm.aliased(model.User) # pylint: disable=invalid-name
g.set_joiner(
"created_by",
lambda q: q.join(Creator, Creator.uuid == model.Upgrade.created_by_uuid),
@ -101,7 +101,7 @@ class UpgradeView(MasterView):
# executed_by
g.set_link("executed_by")
Executor = orm.aliased(model.User)
Executor = orm.aliased(model.User) # pylint: disable=invalid-name
g.set_joiner(
"executed_by",
lambda q: q.outerjoin(
@ -378,7 +378,9 @@ class UpgradeView(MasterView):
def defaults(config, **kwargs):
base = globals()
UpgradeView = kwargs.get("UpgradeView", base["UpgradeView"])
UpgradeView = kwargs.get( # pylint: disable=invalid-name
"UpgradeView", base["UpgradeView"]
)
UpgradeView.defaults(config)

View file

@ -418,7 +418,7 @@ class UserView(MasterView):
def defaults(config, **kwargs):
base = globals()
UserView = kwargs.get("UserView", base["UserView"])
UserView = kwargs.get("UserView", base["UserView"]) # pylint: disable=invalid-name
UserView.defaults(config)