3
0
Fork 0

fix: fix 'unnecessary-lambda' and 'unnecessary-lambda-assignment' for pylint

This commit is contained in:
Lance Edgar 2025-08-31 23:02:38 -05:00
parent d265695cee
commit 601dec7777
8 changed files with 63 additions and 16 deletions

View file

@ -36,5 +36,3 @@ disable=fixme,
ungrouped-imports,
unidiomatic-typecheck,
unnecessary-comprehension,
unnecessary-lambda,
unnecessary-lambda-assignment,

View file

@ -438,7 +438,9 @@ class RoleRefsWidget(WuttaCheckboxChoiceWidget):
kw["roles"] = roles
# url
url = lambda role: self.request.route_url("roles.view", uuid=role.uuid)
def url(role):
return self.request.route_url("roles.view", uuid=role.uuid)
kw["url"] = url
# default logic from here

View file

@ -1058,13 +1058,27 @@ class Grid: # pylint: disable=too-many-instance-attributes
# TODO: may need this for String etc. as well?
if isinstance(model_property.type, sa.Text):
if foldcase:
kfunc = lambda obj: (obj[key] or "").lower()
def kfunc_folded(obj):
return (obj[key] or "").lower()
kfunc = kfunc_folded
else:
kfunc = lambda obj: obj[key] or ""
def kfunc_standard(obj):
return obj[key] or ""
kfunc = kfunc_standard
if not kfunc:
# nb. sorting with this can raise error if data
# contains varying types, e.g. str and None
kfunc = lambda obj: obj[key]
def kfunc_fallback(obj):
return obj[key]
kfunc = kfunc_fallback
# then sort the data and return
return sorted(data, key=kfunc, reverse=direction == "desc")
@ -1738,7 +1752,7 @@ class Grid: # pylint: disable=too-many-instance-attributes
raise ValueError(f"invalid dest identifier: {dest}")
# func to save a setting value to user session
def persist(key, value=lambda k: settings.get(k)):
def persist(key, value=settings.get):
assert dest == "session"
skey = f"grid.{self.key}.{key}"
self.request.session[skey] = value(key)

View file

@ -42,7 +42,9 @@ That will in turn include the following modules:
def defaults(config, **kwargs):
mod = lambda spec: kwargs.get(spec, spec)
def mod(spec):
return kwargs.get(spec, spec)
config.include(mod("wuttaweb.views.common"))
config.include(mod("wuttaweb.views.auth"))

View file

@ -119,13 +119,19 @@ class PersonView(MasterView):
)
if self.request.has_perm("users.view"):
url = lambda user, i: self.request.route_url("users.view", uuid=user.uuid)
grid.add_action("view", icon="eye", url=url)
def view_url(user, i): # pylint: disable=unused-argument
return self.request.route_url("users.view", uuid=user.uuid)
grid.add_action("view", icon="eye", url=view_url)
grid.set_link("username")
if self.request.has_perm("users.edit"):
url = lambda user, i: self.request.route_url("users.edit", uuid=user.uuid)
grid.add_action("edit", url=url)
def edit_url(user, i): # pylint: disable=unused-argument
return self.request.route_url("users.edit", uuid=user.uuid)
grid.add_action("edit", url=edit_url)
return grid

View file

@ -160,14 +160,20 @@ class RoleView(MasterView):
)
if self.request.has_perm("users.view"):
url = lambda user, i: self.request.route_url("users.view", uuid=user.uuid)
grid.add_action("view", icon="eye", url=url)
def view_url(user, i): # pylint: disable=unused-argument
return self.request.route_url("users.view", uuid=user.uuid)
grid.add_action("view", icon="eye", url=view_url)
grid.set_link("person")
grid.set_link("username")
if self.request.has_perm("users.edit"):
url = lambda user, i: self.request.route_url("users.edit", uuid=user.uuid)
grid.add_action("edit", url=url)
def edit_url(user, i): # pylint: disable=unused-argument
return self.request.route_url("users.edit", uuid=user.uuid)
grid.add_action("edit", url=edit_url)
return grid

View file

@ -54,9 +54,15 @@ class TestPersonView(WebTestCase):
self.assertIsInstance(form.widgets["users"], GridWidget)
def test_make_users_grid(self):
self.pyramid_config.add_route("users.view", "/users/{uuid}/view")
self.pyramid_config.add_route("users.edit", "/users/{uuid}/edit")
model = self.app.model
view = self.make_view()
person = model.Person(full_name="John Doe")
self.session.add(person)
user = model.User(username="john", person=person)
self.session.add(user)
self.session.commit()
# basic
grid = view.make_users_grid(person)
@ -73,6 +79,9 @@ class TestPersonView(WebTestCase):
self.assertEqual(grid.actions[0].key, "view")
self.assertEqual(grid.actions[1].key, "edit")
# render grid to ensure coverage for link urls
grid.render_vue_template()
def test_objectify(self):
model = self.app.model
view = self.make_view()

View file

@ -95,9 +95,16 @@ class TestRoleView(WebTestCase):
self.assertIsNotNone(form.validators["name"])
def test_make_users_grid(self):
self.pyramid_config.add_route("users.view", "/users/{uuid}/view")
self.pyramid_config.add_route("users.edit", "/users/{uuid}/edit")
model = self.app.model
view = self.make_view()
role = model.Role(name="Manager")
self.session.add(role)
user = model.User(username="freddie")
user.roles.append(role)
self.session.add(user)
self.session.commit()
# basic
grid = view.make_users_grid(role)
@ -115,6 +122,9 @@ class TestRoleView(WebTestCase):
self.assertEqual(grid.actions[0].key, "view")
self.assertEqual(grid.actions[1].key, "edit")
# render grid to ensure coverage for link urls
grid.render_vue_template()
def test_unique_name(self):
model = self.app.model
view = self.make_view()