■ はじめに
SQLFluff でエラーがあり、他のメンバーが解決してくれたのだが 色々と勉強になったので、トラブルをメモっておく
【1】トラブル概要
SQLFluffでLinter実行後に「エラー内容」が表示
【2】エラー内容
ConfigLoader.get_global() is deprecated, and no longer necessary. Please update you plugin to use the config loading functions directly to remove this message.
【3】発生したPythonコード
https://dk521123.hatenablog.com/entry/2024/03/31/232907
src/sqlfluff_plugin_demo/__init__.py
from sqlfluff.core.config import ConfigLoader from sqlfluff.core.plugin import hookimpl # ... @hookimpl def load_default_config() -> dict: """Loads the default configuration for the plugin.""" # ★ここでエラー★ return ConfigLoader.get_global().load_config_resource( package="sqlfluff_plugin_demo", file_name="plugin_config.cfg", ) # ...
【4】原因
SQLFluff が Version upにより、 ConfigLoader.get_global()が使えなくなった。
* ChangeLogにも書いてある
ChangeLog - [3.2.0] - 2024-09-18
https://github.com/sqlfluff/sqlfluff/blob/main/CHANGELOG.md#320---2024-09-18
the ConfigLoader class has been deprecated, and plugins should instead call the config loading functions directly. See the example plugin for details.
【5】解決案
# Version をグレードダウンするって手もあると思うが、、、 * load_config_resource() を呼び出すように修正
https://github.com/sqlfluff/sqlfluff/pull/6177/files
# from sqlfluff.core.config import ConfigLoader from sqlfluff.core.config import load_config_resource from sqlfluff.core.plugin import hookimpl @hookimpl def load_default_config() -> dict: """Loads the default configuration for the plugin.""" # ★ここを修正 - 直接 load_config_resource() をコール★ # return ConfigLoader.get_global().load_config_resource( return load_config_resource( package="sqlfluff_plugin_demo", file_name="plugin_config.cfg", )
関連記事
SQL Linter ~ SQLFluff ~
https://dk521123.hatenablog.com/entry/2024/02/28/225002
SQL Linter ~ SQLFluff / Custom rule ~
https://dk521123.hatenablog.com/entry/2024/03/31/232907