Metadata-Version: 2.4
Name: consigue
Version: 1.2
Summary: Libreria que gestiona datos segun una fase
Author: El Señor es el único eterno. Que la ciencia lo honre a Él.
Author-email: from.colombia.to.all@gmail.com
License: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Requires-Python: >=3.11.3
Description-Content-Type: text/markdown
License-File: license.txt
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary


# Consigue

**Librería que gestiona datos según una fase**

Esta librería 'reitera' es apenas, una considerada para el paquete consigue. 
Esta librería no es la principal del paquete, pero aun así proporciona una 
manera de programar alineada, con la misma filosofía, de consigue.

## Actualización:

Septiembre de 2026, Versión: 1.2 
(se modifica la captura de la salida, para las funciones que utilizan la librería. Además, se cambió el nombre de la clase llamada, en la librería 'reitera'. Se está trabajando en la librería 'consigue'.)

## Explicación del funcionamiento de la librería.

Lo que esta librería hace es cambiarle las propiedades a las funciones o métodos. 
pretendiendo que el return caiga sobre una función señalada, no precisamente la inmediatamente 
anterior (la que la está llamando). 

Además, en esta librería se considera siempre devolver un "paquete" que es en realidad una 
lista. El primer índice de la lista es la que se encarga de indicar en cual función debe caer 
el return. 

Sin embargo, todo return puede devolver también algún dato, por tanto, esta librería 
también busca hacer eso. Esto se puede conseguir integrando tal dato al segundo índice de 
la lista (paquete). 
Si usted coloca el return sin nada, sin ningún dato lo que sucederá es que no se ira a la 
función anterior, sino que se saldrá de todo el sistema de esta librería. 
recuerde que, con esta librería, las funciones están encadenadas. 
Otra cosa que usted debe tener en cuenta, es que, la función a la que le 
corresponde el dato de retorno (o simplemente continuar con el flujo de ejecución) recibe este 
paquete como una tupla. 

por tanto, entre la función llamada y el resto del código, que se debe ejecutar, debe existir 
la salida de la misma función o método si es que no es a ella a la que le corresponde ejecutarse. 
Podríamos decir que es un... si no es una tupla, entonces, retorna a la función anterior entregándole 
el paquete. 

Una posibilidad dentro de la librería es que el paquete que se devuelva tenga un 
numero (primer índice) más elevado que el número que le corresponde a la función anterior. 
En tal caso, lo que la librería hace es sacar ese número y devolverlo en vez de una lista o una 
tupla. 
tenga mucho cuidado, si usted quiere hacer eso, lo puede hacer, pero ese número debe estar 
dentro de la lista [x,] si usted devuelve el numero directamente, lo que hará es salirse 
de todas las funciones anteriores. 
Así que no haga... por ejemplo: return 8 
haga más bien, lo siguiente:    return [8,] o return (8,) 

Estas posibles "opciones elevadas" pueden servir para redirigirse a otra parte de su objetivo 
de proceso o de programa. Pero tenga en cuenta que, 
en este caso, tal hecho (número u opción elevada) solo puede ser tratado en la función 
inmediatamente anterior. 

La única manera de que pueda hacer esto, con una función anterior, distinta, es que 
integre un tercer índice... 
que le proporcione tal alternativa (u operativa que usted en su imaginación quiera crear). 

Otro detalle más a tener en cuenta, es que si usted requiere devolverse a la función 
inmediatamente anterior lo puede hacer escribiendo... return [0,] 
también lo puede hacer indicando cero directamente... return 0 
Pero, tenga en cuenta que, aunque usted escriba un número, 
la función anterior recibirá una tupla. 

Cada función recibe un número como argumento, tal número, es el número que le corresponde a dicha función dentro del sistema de return. 
(y entonces el "paquete" cae o sigue cayendo, siempre que el 'numero' de la función por la que está pasando, sea superior). 
Entonces... el número que ingresa como argumento se trasmite de una función a la otra. Pero claro, debemos recordar que la siguiente función es un número superior (+1) a la que la llama. Este aumento lo hace automáticamente e internamente la librería. Usted no tiene necesidad de escribir, en cada función, el numero que le corresponde. Simplemente pase el mismo argumento que recibe, a la función a llamar.

Usted solo requiere señalar el numero a la primera función modificada, por este sistema, de esta librería.

### Descripción detallada acerca de la actualización.

Ya no se requiere identificar si el "paquete" es una lista, empleando el comando 'isinstance'. ahora, la función 'comparto_a' devuelve dos valores o argumentos. El primero es un boorlean que indica si debe salirse o no (False o True). Y el otro es precisamente el "paquete". En el ejemplo de abajo podrá observar los cambios.

## ¿Que contiene la librería?

De esta librería 'reitera' puede llamar: 

una clase llamada:     **Resive_propiedades_returnsystem** 

una función llamada:   **comparto_a** 

El objeto de la clase 'Resive_propiedades_returnsystem' es llamado internamente por la función 'comparto_a'. 

Con este objeto usted podría indicar el numero de la función, para que usted comprenda, más fácilmente, en cual función se encuentra. 
No necesita colocarle ningún número... al nombre de su función.

## Ejemplo, de la librería, que puede copiar y probar en la DEV.

El siguiente es un ejemplo de algunas funciones que emplean la librería 

```python

from consigue.funcion.reitera import comparto_a, Resive_propiedades_returnsystem

def control_alfa_01(nivel):

    if   3 == nivel:
        print("Estoy en funcion alfa (nivel 3).")
        
        dato_a_retornar= "naranja"
        
        return [2, dato_a_retornar, 3]

def residuo(mi_nivel):
    
    funsion_2= Resive_propiedades_returnsystem()
    salida, el_hecho= comparto_a(control_alfa_01, funsion_2, mi_nivel)
    if salida:
        return el_hecho
    
    "Ejemplo simple empleando la función."
    if el_hecho[2]  == 3:
        print("El color es:", el_hecho[1])
        #return [8,] # Para probar el numero elevado.
        
def acoplamiento(mi_nivel):

    funsion_1= Resive_propiedades_returnsystem()
    salida, el_hecho= comparto_a(residuo, funsion_1, mi_nivel)
    if salida:
        return el_hecho
    
    "Ejemplo de la función, con posibilidad de recibir un número elevado."
    if isinstance(el_hecho, int):
        print("Estoy recibiendo un numero elevado (nivel 1).")
    else:
        print("Estoy en la funcion 1.")
        print("Y 'el_hecho' es:", el_hecho)
    
acoplamiento(1)

```

# Al final del sistema de funciones.

Como puede ver, la función "control_alfa_01" es diferente, ya que es la última función llamada. Usted entonces puede: 

1. simplemente, tomar ese número para confirmarlo (como se hace en el ejemplo) o 
2. crear un sistema 'if', 'elif' para determinar desde que parte de su programa viene 
   el flujo de ejecución (tenga en cuenta que entonces, en tal caso, deben "venir" 
   o llegar, con números diferentes). 
   
El empleo de una estructura 'if', 'elif' dentro de la última función 
nos puede permitir... 
la construcción de un núcleo o bloque que opere controlando, todo el sistema 
(nuestro programa).


## Codigo fuente:

Para obtener el código fuente puede ir a la sección 'archivos de descarga' en la barra de pypi dentro de este mismo paquete (consigue) y descargar el fichero llamado 'consigue-1.1-py3-none-any.whl' y posteriormente descomprimirlo con alguna aplicación (ya sea 7-zip o winrar) allí encontrara los documentos y ficheros correspondientes a este proyecto.

o, si le es más cómodo puede ir al repositorio en github:

https://github.com/Jesu-super-galactico/consigue

## licencia: 
Mozilla Public License 2.0 (MPL 2.0)

## Puede encontrar esta misma informacion dentro de la librería, ejecute:

from consigue.readme import de_reitera
