#wip(py): Arreglando los Bugs Overtab de clases y BaseComponents de AnP.

This commit is contained in:
KyMAN 2025-03-23 22:29:32 +01:00
parent 2cbab5d806
commit b1035dd60a
3 changed files with 47 additions and 10 deletions

View File

@ -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.
<!-- [[wmd]] -->

View File

@ -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

View File

@ -1 +1 @@
0.0.1.2
0.0.1.3