Proyecto gestor de clientes para practicar de todo en Python

Refactorización

Creo que podemos refactorizar un poco esos enumeradores. Si devolviéramos también el índice en nuestra función find podríamos reutilizarla, así que vamos a hacer un enumerador ahí y devolvámoslo:

gestor/manager.py

def find():

    dni = input("Introduce el DNI del cliente\n> ")

    for i, client in enumerate(clients):

        if client['dni'] == dni:
            show(client)
            return i, client

    print("No se ha encontrado ningún cliente con ese DNI")

Ahora podemos reutilizar los bucles en las funciones edit y delete:

gestor/manager.py

def edit():

    i, client = find()

    if client:

        print(f"Introduce nuevo nombre ({client['nombre']})")
        clients[i]['nombre'] = helpers.input_text(2, 30)

        print(f"Introduce nuevo apellido ({client['apellido']})")
        clients[i]['apellido'] = helpers.input_text(2, 30)

        return True

    return False


def delete():

    i, client = find()

    if client:
        client = clients.pop(i)
        return True

    return False

Y con esto acabamos.

Si el curso tiene éxito me pensaré si añadir más secciones rehaciendo y mejorando el proyecto hasta llegar a una interfaz gráfica.