このメッセージはsonarlintからのメッセージで、この機能の認知的複雑さを軽減する方法を理解しようとしています。いかなる援助も前もって評価される。あなたは拡張子でファイルをフィルタリングするための2つのジェネレータ式を使って、インデントの1つのレベルを削除することができPythonこの機能をリファクタリングして、認知の複雑さを19から15に引き下げる
import os
import json
import click
import hcl
cfn = [".json", ".template", ".yaml", ".yml"]
tf = ["tf"]
def file_handler(dir):
for root, dirs, files in os.walk(dir):
for file in files:
if file.endswith(tuple(cfn)):
with open(os.path.join(root, file), 'r') as fin:
try:
file = fin.read()
if "AWSTemplateFormatVersion" in file:
data = json.dumps(file)
print(data)
except ValueError as e:
raise SystemExit(e)
elif file.endswith(tuple(tf)):
with open(os.path.join(root, file), 'r') as file:
try:
obj = hcl.load(file)
data = json.dumps(obj)
print(data)
except ValueError as e:
raise SystemExit(e)
return data
結果の数値を得るために使用しているメトリックスツールは何ですか? – SteveJ
関数を抽出し、ファイルタイプのハンドラルックアップを作成し、エラー処理を統一し、重複を取り除くなど –
[codereview.se]に投稿したほうがよいでしょう –