Upgrade to ruff>=0.16.0 (#2857)

* ruff>=0.16.0

See https://astral.sh/blog/ruff-v0.16.0

* uv run ruff check . --fix --unsafe-fixes

* Ruff fixes by Claude Code Opus 5
This commit is contained in:
Simon Willison 2026-07-25 15:47:08 -07:00 • committed by GitHub
commit e889403d3b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
133 changed files with 1647 additions and 1569 deletions

View file

@ -1,16 +1,16 @@
import asyncio
from datasette import hookimpl
from datasette.facets import Facet
from datasette.tokens import TokenHandler
from datasette import tracer
from datasette.permissions import Action
from datasette.resources import DatabaseResource
from datasette.utils import path_with_added_args
from datasette.utils.asgi import asgi_send_json, Response
import base64
import json
import urllib.parse
from datasette import hookimpl, tracer
from datasette.facets import Facet
from datasette.permissions import Action
from datasette.resources import DatabaseResource
from datasette.tokens import TokenHandler
from datasette.utils import path_with_added_args
from datasette.utils.asgi import Response, asgi_send_json
@hookimpl
def prepare_connection(conn, database, datasette):
@ -305,11 +305,7 @@ def startup(datasette):
datasette._startup_hook_fired = True
# And test some import shortcuts too
from datasette import Response
from datasette import Forbidden
from datasette import NotFound
from datasette import hookimpl
from datasette import actor_matches_allow
from datasette import Forbidden, NotFound, Response, actor_matches_allow, hookimpl
_ = (Response, Forbidden, NotFound, hookimpl, actor_matches_allow)
@ -373,7 +369,7 @@ def table_actions(datasette, database, table, actor, request):
"label": "Plugin button",
"description": "Runs JavaScript from a plugin",
"attrs": {
"aria-label": "Plugin button for {}".format(table),
"aria-label": f"Plugin button for {table}",
"data-plugin-action": "plugin-button",
"data-database": database,
"data-table": table,

View file

@ -1,8 +1,10 @@
import json
from functools import wraps
import markupsafe
from datasette import hookimpl
from datasette.utils.asgi import Response
from functools import wraps
import markupsafe
import json
@hookimpl
@ -33,11 +35,7 @@ def render_cell(value, database):
if set(data.keys()) != {"href", "label"}:
return None
href = data["href"]
if not (
href.startswith("/")
or href.startswith("http://")
or href.startswith("https://")
):
if not (href.startswith(("/", "http://", "https://"))):
return None
return markupsafe.Markup(
'<a data-database="{database}" href="{href}">{label}</a>'.format(
@ -54,7 +52,7 @@ def extra_template_vars(template, database, table, view_name, request, datasette
datasette._last_request = request
async def query_database(sql):
first_db = list(datasette.databases.keys())[0]
first_db = next(iter(datasette.databases.keys()))
return (await datasette.execute(first_db, sql)).rows[0][0]
async def inner():
@ -172,10 +170,10 @@ def register_routes(datasette):
path = config["path"]
def new_table(request):
return Response.text("/db/table: {}".format(sorted(request.url_vars.items())))
return Response.text(f"/db/table: {sorted(request.url_vars.items())}")
return [
(r"/{}/$".format(path), lambda: Response.text(path.upper())),
(rf"/{path}/$", lambda: Response.text(path.upper())),
# Also serves to demonstrate over-ride of default paths:
(r"/(?P<db_name>[^/]+)/(?P<table_and_format>[^/]+?$)", new_table),
]

View file

@ -1,6 +1,7 @@
import json
from datasette import hookimpl
from datasette.utils.asgi import Response
import json
async def can_render(
@ -18,9 +19,7 @@ async def can_render(
"request": request,
"view_name": view_name,
}
if request.args.get("_no_can_render"):
return False
return True
return not request.args.get("_no_can_render")
async def render_test_all_parameters(

View file

@ -1,6 +1,7 @@
from datasette import hookimpl
import time
from datasette import hookimpl
@hookimpl
def prepare_connection(conn):