FeD7791 / voidFinderProject

Repositorio para el proyecto de Void Finder de la materia de Desarrollo de Software para computo Cientifico
MIT License
0 stars 0 forks source link

Implementr io.py y box.py #2

Closed leliel12 closed 11 months ago

leliel12 commented 12 months ago
  1. Tu paquete no se llama src
  2. Tiene que haber adentro SOLO tres archivos:
    • voidfindertk/__init__.py Vacio de momento
    • voidfindertk/box.py que tiene SOLO la representacion del Box.
    • voidfindertk/io.py que tiene SOLO la funcion read_table() que recibe un path a un archivo y retorna un Box

Todo lo demas afuera.

Esencialmente esto deberia andar

from voidfindertk import io
box = io.read_table("path/al/dataset.txt")
print(box)
# salida del box
FeD7791 commented 12 months ago

Tengo problemas aca, reorganize todo, dejando los archivos que pedis en la carpeta voidFinderToolkit. Tengo problemas con los inports si utilizo todo desde un archivo para probarlo.

leliel12 commented 12 months ago

Fíjate en otro proyecto de ejemplo como se usan los importa dentro de un paquete. Y abrí una termina guerra del paquete y ahí proba el ejemplo

El jue, 19 de oct. de 2023 21:41, Jorge Federico Bustillos Rava < @.***> escribió:

Tengo problemas aca, reorganize todo, dejando los archivos que pedis en la carpeta voidFinderToolkit. Tengo problemas con los inports si utilizo todo desde un archivo para probarlo.

— Reply to this email directly, view it on GitHub https://github.com/FeD7791/voidFinderProject/issues/2#issuecomment-1771894339, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACJAAXRPOOOWLED4T656WTYAHCDRAVCNFSM6AAAAAA6HTGMECVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZRHA4TIMZTHE . You are receiving this because you authored the thread.Message ID: @.***>

FeD7791 commented 12 months ago

Bueno llegue a una solucion. Pero no tengo cocinado el tema de los imports en los paquetes con el init y eso.

leliel12 commented 12 months ago

La funcion TIENE que llarmarse read_table()

Por que eventualmente vos a vas a hacer esto (aun no te pedi que lo corrijas)

import voidfindertk as vft

vftk.read_table("zaraza.dat")

Las cosas no colicionan por que claramente eso esta adentro de vftk. y no pandas., eso se llama espacio de nombres y esta en el PEP-20.

Por otro lado la diferencia es ademas semantica, por que read_table pueden haber muchos pero responden con objetos diferentes. Eso se llama polimorfismo

leliel12 commented 12 months ago
FeD7791 commented 12 months ago
  • que es path = rf"{input_path}" al parecer no sirve para nada, lee lo que subis.
  • Data cols no deberia estar, o deberia tener un valor por defecto.
  • Hace que read_tables() reciba argumentos nombrados variables (**kwargs) y los delegue a read_table de pandas`

Resuelto read_table() ya no pide columnas de forma obligatoria, toma las primeras 7 por defecto, o bien 7 argumentos args o 7 kargs [x,y,z,vx,vy,vz,m]

leliel12 commented 12 months ago

Hace que read_tables() reciba argumentos nombrados variables (**kwargs) y los delegue a read_table de pandas`

Eso no lo hiciste y vola los args

FeD7791 commented 11 months ago

Hace que read_tables() reciba argumentos nombrados variables (**kwargs) y los delegue a read_table de pandas`

Eso no lo hiciste y vola los args

Refactorizado: read_table() solo recibe el path y kwargs opcionales [x,y,z,vx,vy,vz,m] , internamente read_table de pandas solo lee las colunas indicadas o las primeras 6 por defecto en lugar de leer toda la tabla como antes

leliel12 commented 11 months ago

Por favor implementar el ticket

FeD7791 commented 11 months ago
  • Nada de lo que pedi en este ticket esta implementado.
  • No se por que hay una obsesion por los try catch, no estas delegando los **kwargs.
  • path = rf"{input_path}" esto no se que es.

Por favor implementar el ticket

leliel12 commented 11 months ago

No se usa un try except para mejorar el error eso es un antipatrón.

Poner a=f"{x}" si x es una cadena de caracteres es exactamente lo mismo hacer a=x

El problema es que no estás entendiendo casi nada de manejo de excepciones te recomiendo buscarte video de años anteriores y fijarte todo el tema de opciones de nuevo porque estás confundiendo un montón de cosas.

Por otro lado el tema de las columnas no tiene que ver con el tema del kwargs vos lo mezclaste solo yo nunca

El dom, 22 de oct. de 2023 18:25, Jorge Federico Bustillos Rava < @.***> escribió:

  • Nada de lo que pedi en este ticket esta implementado.
  • No se por que hay una obsesion por los try catch, no estas delegando los **kwargs.
  • path = rf"{input_path}" esto no se que es.

Por favor implementar el ticket

  • Lo de path ya se cambio, removi el r para que quedara el f de format para mi input path
  • Los kwargs tenian un error en la condicion del if y lo cambie. pero al especificar todos [x,y,z,vx,vy,vz,m] selecciona las columnas con el pandas
  • El try catch lo uso de momento para ser mas informativo con el error.

— Reply to this email directly, view it on GitHub https://github.com/FeD7791/voidFinderProject/issues/2#issuecomment-1774202948, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACJAASU2E67EJXQOB7USUDYAWFLPAVCNFSM6AAAAAA6HTGMECVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZUGIYDEOJUHA . You are receiving this because you authored the thread.Message ID: @.***>

FeD7791 commented 11 months ago

Ya me vi el video, las notas y el articulo de Real Python. A lo mejor no le cacho muy bien pero no logro digerir todas estas cosas que pedis. Yo no lo encuentro mal, capaz podriamos charlarlo o verlo bien de como hacerlo en consulta?