From 5db4f6953d19e0d89864852f02796ed554881427 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 17 Mar 2026 03:56:20 +0000 Subject: [PATCH] Fix linting: remove unused import, apply black formatting https://claude.ai/code/session_01SvPEPqHgURTWESRp28pTC3 --- datasette/views/table.py | 27 ++++++++++----- tests/test_column_types.py | 68 +++++++++++++++++--------------------- 2 files changed, 49 insertions(+), 46 deletions(-) diff --git a/datasette/views/table.py b/datasette/views/table.py index 20d78164..2b393087 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -532,7 +532,9 @@ class TableInsertView(BaseView): return _error(errors, 400) # Validate column types - ct_errors = await _validate_column_types(self.ds, database_name, table_name, rows) + ct_errors = await _validate_column_types( + self.ds, database_name, table_name, rows + ) if ct_errors: return _error(ct_errors, 400) @@ -1567,18 +1569,27 @@ async def table_view_data( ct_class = datasette.get_column_type_class(ct_name) if ct_class: candidate = await ct_class.render_cell( - value=value, column=column, table=table_name, - database=database_name, datasette=datasette, - request=request, config=ct_config, + value=value, + column=column, + table=table_name, + database=database_name, + datasette=datasette, + request=request, + config=ct_config, ) if candidate is not None: plugin_display_value = candidate if plugin_display_value is None: for candidate in pm.hook.render_cell( - row=row, value=value, column=column, - table=table_name, pks=pks_for_display, - database=database_name, datasette=datasette, - request=request, column_type=ct_name, + row=row, + value=value, + column=column, + table=table_name, + pks=pks_for_display, + database=database_name, + datasette=datasette, + request=request, + column_type=ct_name, column_type_config=ct_config, ): candidate = await await_me_maybe(candidate) diff --git a/tests/test_column_types.py b/tests/test_column_types.py index 0c8a969d..7e16e6c2 100644 --- a/tests/test_column_types.py +++ b/tests/test_column_types.py @@ -6,7 +6,6 @@ from datasette.hookspecs import hookimpl from datasette.plugins import pm from datasette.utils import sqlite3 from datasette.utils import StartupError -import json import markupsafe import pytest import time @@ -354,9 +353,7 @@ async def test_validation_allows_empty_string(ds_ct): @pytest.mark.asyncio async def test_column_type_base_defaults(): ct = ColumnType(name="test", description="Test type") - assert await ct.render_cell( - "val", "col", "tbl", "db", None, None, None - ) is None + assert await ct.render_cell("val", "col", "tbl", "db", None, None, None) is None assert await ct.validate("val", None, None) is None assert await ct.transform_value("val", None, None) == "val" @@ -381,7 +378,9 @@ async def test_render_cell_extra_with_column_types(ds_ct): @pytest.mark.asyncio async def test_duplicate_column_type_name_raises_error(): class DuplicateUrlType(ColumnType): - async def render_cell(self, value, column, table, database, datasette, request, config): + async def render_cell( + self, value, column, table, database, datasette, request, config + ): return None class _Plugin: @@ -445,13 +444,7 @@ async def test_transform_value_in_json_output(tmp_path_factory): [db_path], config={ "databases": { - "data": { - "tables": { - "t": { - "column_types": {"name": "upper"} - } - } - } + "data": {"tables": {"t": {"column_types": {"name": "upper"}}}} } }, ) @@ -476,20 +469,37 @@ async def test_column_type_render_cell_has_priority_over_plugins(tmp_path_factor """Column type render_cell should take priority over render_cell plugin hook.""" class PriorityColumnType(ColumnType): - async def render_cell(self, value, column, table, database, datasette, request, config): + async def render_cell( + self, value, column, table, database, datasette, request, config + ): if value is not None: - return markupsafe.Markup(f"COLUMN_TYPE:{markupsafe.escape(value)}") + return markupsafe.Markup( + f"COLUMN_TYPE:{markupsafe.escape(value)}" + ) return None class _ColumnTypePlugin: @hookimpl def register_column_types(self, datasette): - return [PriorityColumnType(name="priority_test", description="Priority test")] + return [ + PriorityColumnType(name="priority_test", description="Priority test") + ] class _RenderCellPlugin: @hookimpl - def render_cell(self, row, value, column, table, pks, database, datasette, request, - column_type, column_type_config): + def render_cell( + self, + row, + value, + column, + table, + pks, + database, + datasette, + request, + column_type, + column_type_config, + ): if column == "name": return markupsafe.Markup(f"PLUGIN:{markupsafe.escape(value)}") @@ -510,11 +520,7 @@ async def test_column_type_render_cell_has_priority_over_plugins(tmp_path_factor config={ "databases": { "data": { - "tables": { - "t": { - "column_types": {"name": "priority_test"} - } - } + "tables": {"t": {"column_types": {"name": "priority_test"}}} } } }, @@ -613,13 +619,7 @@ async def test_unknown_type_warning_logged(tmp_path_factory, caplog): [db_path], config={ "databases": { - "data": { - "tables": { - "t": { - "column_types": {"col": "nonexistent_type"} - } - } - } + "data": {"tables": {"t": {"column_types": {"col": "nonexistent_type"}}}} } }, ) @@ -648,15 +648,7 @@ async def test_config_overwrites_on_restart(tmp_path_factory): ds = Datasette( [db_path], config={ - "databases": { - "data": { - "tables": { - "t": { - "column_types": {"col": "email"} - } - } - } - } + "databases": {"data": {"tables": {"t": {"column_types": {"col": "email"}}}}} }, ) await ds.invoke_startup()