【トラブル】SQLFluffでエラー「ConfigLoader.get_global() is deprecated」が発生

■ はじめに

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()が使えなくなった。

https://github.com/sqlfluff/sqlfluff/blob/6dd6433a51e87d2ca421260f3c2b3ea4ef5dac01/src/sqlfluff/core/config/loader.py#L255

* 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