Bitacora 24/3/2019

Empecé desde ayer(23/2/2019) a las 11 de la noche a idear una nueva forma de mejorar el sistema y hacer el web scrapping más sencillo desde que se me ocurrió cuando no estaba en la casa mientras solo pensaba en el proyecto por alguna razón. Pase la noche implementando la nueva función que ahora iba a intercambiar con la función anterior que había usado para validar si el activo existía en la página y cambiar la variable global para su uso continuó. Luego de lograr implementarlo y asignar nuevamente toda la información obtenida por el código de ese activo a variables, de ahí pase a dormir como a las 3 de la mañana.

La nueva función consistía de en vez de usar repetidos "soup.find_next" con Beautiful Soup ahora iba a usar "soup.select()[contador] donde ahora iba a crear una lista y con el contador buscaba el código  en vez de los "find_next()" repetidos. De igual manera la asignación de las variables que contienen la información del activo la hice con "soup.tbody.content[]" para de igual manera facilitar su obtención usando una lista y no "find_next". Además sí el contador pasaba a ser mayor del número de activos mientras lo buscaba esto iba a dar un error donde la lista no tenía un indice igual al contador. Esto fue validado usando "Try, Except"para darle que obtuviera False así verificando que el código no se encuentra en el sistema.

Ya que había logrado cambiar esta información para facilitar el proceso ahora podía pasar a continuar con la implementación de la función 1 ya con los métodos de de depreciación(con la respuesta tabulada) en Python hechos por mi compañera. Así podía empezar a usar mis variables con la información asignada de ese activo en esa misma función. Ambos nos dimos cuenta al probarlo que un activo con período de recuperación con un valor de cero ya no tiene años de vida útil y no tendría depreciación, por lo cual nos dimos cuenta que teníamos validaciones por hacer.

Implementando la función de mi compañera para la depreciación me di cuenta que para todas las funciones iba a necesitar las variables con la información asignada del activo dependiendo del código. Entonces iba a tener que volver todas esas variables globales pero me encontré con un impedimento. Esas variables dependían de que mi primer variable global cambiara, y esta cambiaba solo cuando se sometía al proceso de verificar el código(así esa variable quedaba con el código y luego saco las variables con la información las sacaba con lo que sigue para abajo). Y no podía usar la función para verificar el código antes como para obtener todas las demás variables debido a que necesitaba la variable del código para llamar esa función, la variable a ese código era introducida hasta que empezaba la función 1. Esto me hizo realizar que sí sacaba la variable de código( la que pedía el código) fuera de la función 1, iba a poder verificar sí el código estaba en la página web antes, y así, la variable global de activo iba a cambiar primero, y ya las demás variables(ahora globales) podrían cambiar también.

Luego de hacer esto, me encontré con otro problema. Mi función que verificaba los errores se basaba de que sí había algo mal, devolvía a función 1, y eso significaba que sí quería usar esa función para el resto de las funciones o para reiniciar el proceso no iba a funcionar correctamente. Tenía que devolver el proceso completo. Así que luego de investigar al respecto por internet lo que hice fue crear una función Principal() que contuviera código que haya digitado hasta el momento de mi definición y así sí la persona deseara reiniciar podía usar Principal() para devolverme y sí la persona no deseara devolverse usaba exit() para cerrarlo por completo. Termine la función 1.

Además de esto añadí que la función Principal se reprodujera apenas empezaba a correr el programa, añadí una bienvenida al programa, el input del código afuera, un menú de que hacen cada una de las funciones y un input para que decidiera cual desea usar y cree una función auxiliar que tabula el activo del código y su información completa debido a que voy a necesitar devolver esa información al usuario repetidas veces.

Comentarios

Entradas populares