From b1035dd60a78dd13faaf4b44088a27c8bda85106 Mon Sep 17 00:00:00 2001 From: KyMAN <0kyman0@gmail.com> Date: Sun, 23 Mar 2025 22:29:32 +0100 Subject: [PATCH] #wip(py): Arreglando los Bugs Overtab de clases y BaseComponents de AnP. --- Public/doc/es/bugs.w.md | 18 ++++++++++++++++++ Python/PythonMapper.py | 37 ++++++++++++++++++++++++++++--------- version | 2 +- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/Public/doc/es/bugs.w.md b/Public/doc/es/bugs.w.md index 7eb7e2a..3e37301 100644 --- a/Public/doc/es/bugs.w.md +++ b/Public/doc/es/bugs.w.md @@ -12,4 +12,22 @@ Esta sección se dedicará a publicar todos los Bugs y errores reportados los cu También se podrá ver el estado del mismo, tanto por la descripción como por los estados de los Checkboxes que acompañen al Report. +### Overtab de clases + +Algunas clases salen con una tabulación por encima de sí mismas, además de que las clases vacías salen sin el "pass". + +* [X] Localización del problema del cierre "pass" de las clases vacías. +* [X] Solución al cierre "pass" de las clases vacías. +* [-] Localización del problema de la tabulación de las clases por encima de sí mismas. +* [-] Solución al problema de la tabulación de las clases por encima de sí mismas. + +> [!@Srx00] El problema de la sobretabulación radica en que hay ciertas librerías que tienen condiciones para la generación de una clase pseudoabstracta. Esta condición se establece con un simple IF el cual hace una tabulación no controlada en el patrón de seguimiento de clases. Hay que localizar y ampliar los datos de bloques de procesamiento de código a dichas conciones para permitir la tabulación controlada de esos recursos en forma de clases. Actualmente está parcheado con la eliminación de los niveles por encima de una tabulación. + +### BaseComponents + +La clase pseudoabstracta de BaseComponents del proyecto AnP no es visible por parte de los patrones de seguimiento. + +* [ ] Localizar el problema. +* [ ] Solucionar el problema. + \ No newline at end of file diff --git a/Python/PythonMapper.py b/Python/PythonMapper.py index 3acef67..2371dc5 100644 --- a/Python/PythonMapper.py +++ b/Python/PythonMapper.py @@ -120,6 +120,11 @@ class PythonMapper: variable:str has_class:bool = block.class_data != "" + #### TEMPORARY. REMOVES LEVELS ##### + if level: + level = 1 + #### TEMPORARY. REMOVES LEVELS ##### + block:PythonMapper.CodeBlock = block for _ in range(level - 1): @@ -156,6 +161,12 @@ class PythonMapper: for method in block.methods: code += "\n\n" + white_spaces + method + ":pass" + #### TEMPORARY. REMOVES LEVELS ##### + code = RECompile(r'^(class[ \t][^\:]+\:)(([\r\n]+|[ \t]+)+class[ \t])', RE_MULTILINE).sub(r'\1pass\2', code) + if code[-1] == ":": + code += "pass" + #### TEMPORARY. REMOVES LEVELS ##### + return code def __process_cache_file(self) -> None: @@ -342,12 +353,19 @@ class PythonMapper: if ok: sets[key][1] = [i - span[1] for i in position] - if k == len(self.__data): - self.__data += [None] - while data.i: - data.i -= 1 - data.levels[data.i].code.class_code += [data.levels[data.i + 1].code] - self.__data[k] = data.levels[0].code + l:int = len(self.__data) + + # print([k, l]) + + # k > l and print(data.levels[0].code.class_code) + + if k <= l: + if k == l: + self.__data += [None] + while data.i: + data.i -= 1 + data.levels[data.i].code.class_code += [data.levels[data.i + 1].code] + self.__data[k] = data.levels[0].code @staticmethod def set_level(data:Any, spaces:int) -> bool: @@ -520,7 +538,8 @@ class PythonMapper: messages:Optional[tuple[str]] = tuple(), variables:Optional[dict[str, Any|None]] = {}, error_message:Optional[str|None] = None, - ok_message:Optional[str] = None + ok_message:Optional[str] = None, + level:int = 0 ): if error: if error_message: @@ -541,11 +560,11 @@ class PythonMapper: **variables, "list" : list_messages, "code" : error - }) + }, level + 2) return False - ok_message and self._print("ok", ok_message, variables) + ok_message and self._print("ok", ok_message, variables, level + 1) return True diff --git a/version b/version index 87037c7..dc9a74e 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.0.1.2 \ No newline at end of file +0.0.1.3 \ No newline at end of file