From 0c493e03196020dcf6073a19725c4c81dd8f09a6 Mon Sep 17 00:00:00 2001 From: BernardooVale <103006006+BernardooVale@users.noreply.github.com> Date: Mon, 22 Jun 2026 09:20:46 -0300 Subject: [PATCH 1/2] Atualizando os limiartes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit de acordo com a avaliação de dados feita com os commits minerados, identificamos que essas seriam as métricas ótimas --- detectores/deep_nesting.py | 2 +- detectores/long_method.py | 6 +++--- detectores/long_param_list.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/detectores/deep_nesting.py b/detectores/deep_nesting.py index b5e9a21..905301f 100644 --- a/detectores/deep_nesting.py +++ b/detectores/deep_nesting.py @@ -3,7 +3,7 @@ from .base import DetectionResult DEFAULT_PARAMS = { - "max_depth": 3, # profundidade > 3 = smell + "max_depth": 4, } NESTING_NODES = (ast.If, ast.For, ast.While, ast.With, ast.Try, diff --git a/detectores/long_method.py b/detectores/long_method.py index 093665e..320b9b6 100644 --- a/detectores/long_method.py +++ b/detectores/long_method.py @@ -9,9 +9,9 @@ # quiser varrer o limiar de statements (p.ex. o estudo de calibração) passa um # inteiro explícito em `params`. DEFAULT_PARAMS = { - "line_threshold": 30, # linhas lógicas (lizard nloc) - "stmt_threshold": None, # statements (Pylint R0915 usa 50); None = desativado - "ccn_threshold": 10, # complexidade ciclomática (McCabe) + "line_threshold": 75, # linhas lógicas (lizard nloc) + "stmt_threshold": 35, # statements (Pylint R0915 usa 50); None = desativado + "ccn_threshold": 25, # complexidade ciclomática (McCabe = 10) } diff --git a/detectores/long_param_list.py b/detectores/long_param_list.py index 25e5f47..ef15b3e 100644 --- a/detectores/long_param_list.py +++ b/detectores/long_param_list.py @@ -2,7 +2,7 @@ from .base import DetectionResult DEFAULT_PARAMS = { - "max_params": 5, # >5 parâmetros = smell + "max_params": 6, } def detect(fn: FunctionInfo, params: dict | None = None) -> DetectionResult: From 1a55cf38f29aa7010fe0f30c2d87a05c221c507c Mon Sep 17 00:00:00 2001 From: BernardooVale <103006006+BernardooVale@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:19:00 -0300 Subject: [PATCH 2/2] parametros novos/padroes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Falta escolher qual dos parametros sera utilizado. O padrão da literatura ou os identificados via mineracao dos smells --- detectores/deep_nesting.py | 4 ++++ detectores/long_method.py | 7 +++++++ detectores/long_param_list.py | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/detectores/deep_nesting.py b/detectores/deep_nesting.py index 905301f..09d4ec9 100644 --- a/detectores/deep_nesting.py +++ b/detectores/deep_nesting.py @@ -3,6 +3,10 @@ from .base import DetectionResult DEFAULT_PARAMS = { + "max_depth": 3, # profundidade > 3 = smell +} + +NOVOS_PARAMS = { # novo parametro ótimo identificado apos analise de dados, concordancia para utilizacao dele pendente "max_depth": 4, } diff --git a/detectores/long_method.py b/detectores/long_method.py index 320b9b6..972826b 100644 --- a/detectores/long_method.py +++ b/detectores/long_method.py @@ -8,7 +8,14 @@ # que `detect(fn)` (sem params) é idêntico à versão pré-parametrização. Quem # quiser varrer o limiar de statements (p.ex. o estudo de calibração) passa um # inteiro explícito em `params`. + DEFAULT_PARAMS = { + "line_threshold": 30, # linhas lógicas (lizard nloc) + "stmt_threshold": None, # statements (Pylint R0915 usa 50); None = desativado + "ccn_threshold": 10, # complexidade ciclomática (McCabe) +} + +NOVOS_PARAMS = { # novo parametro ótimo identificado apos analise de dados, concordancia para utilizacao dele pendente "line_threshold": 75, # linhas lógicas (lizard nloc) "stmt_threshold": 35, # statements (Pylint R0915 usa 50); None = desativado "ccn_threshold": 25, # complexidade ciclomática (McCabe = 10) diff --git a/detectores/long_param_list.py b/detectores/long_param_list.py index ef15b3e..6f3be45 100644 --- a/detectores/long_param_list.py +++ b/detectores/long_param_list.py @@ -2,6 +2,10 @@ from .base import DetectionResult DEFAULT_PARAMS = { + "max_params": 5, # >5 parâmetros = smell +} + +NOVOS_PARAMS = { # novo parametro ótimo identificado apos analise de dados, concordancia para utilizacao dele pendente "max_params": 6, }