Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Librerías permitidas, no permitidas y malas prácticas T1 #222

Closed
gatochico opened this issue Apr 17, 2021 · 23 comments
Closed

Librerías permitidas, no permitidas y malas prácticas T1 #222

gatochico opened this issue Apr 17, 2021 · 23 comments
Assignees
Labels
IMPORTANTE Es importante que se lea esta issue Tarea 1 Dudas sobre la T1

Comments

@gatochico
Copy link
Contributor

Para consultar sobre una librería deben responder esta issue con una pregunta de la siguiente forma:

¿Puedo usar la librería nombre_librería para hacer explicación_de_lo_que_quiero_hacer?

¡Recuerden especificar en su README qué librerías utilizan!


Librerías Permitidas

  • ABC
  • dataclasses
  • random
  • collections
  • CurrencyConverter
  • itertools
  • functools
  • operator
  • copy
  • string
  • pprint
  • beautifultable
  • os
  • sys.exit

Librerías Prohibidas

  • csv
  • json
  • pickle
  • shutil
  • pathlib
  • glob
  • pandas
  • numpy
  • ast
  • curses
  • io
  • re
  • sqlite3

☠️ Built-ins Prohibidos

El uso de alguna de las siguiente funciones es automáticamente un 1,0 sin discusión: 😭

Malas prácticas

El uso de las siguientes prácticas será considerado una mala práctica:

  • except Exception: o únicamente except: (excepciones bien capturadas sí estarán permitidas).
  • Variables globales de cualquier tipo, a excepción de los elementos considerados en parametros.py.
  • Import * o imports que no se encuentren al inicio del programa.
  • Paths absolutos y no relativos.
  • No añadir encoding al momento de trabajar archivos.

¡Éxito en sus tareas! ⛰🛳⛰

@gatochico gatochico added the Tarea 1 Dudas sobre la T1 label Apr 17, 2021
@gatochico gatochico self-assigned this Apr 17, 2021
@gatochico gatochico added the IMPORTANTE Es importante que se lea esta issue label Apr 17, 2021
@gatochico gatochico pinned this issue Apr 17, 2021
@tomasladrix
Copy link

Utilizar diccionarios en parametros.py es considerado mala practica? No estoy seguro si la mala práctica de variables globales se refiere exclusivamente a cuando se usa global x.

Estoy pensando en algo del estilo

PARAM_FACIL = 1
PARAM_DIFICIL = 2
PARAM = {'facil': PARAM_FACIL, 'dificil': PARAM_DIFICIL}

No hay problema con usar los diccionarios de esta forma?

@Ignacioislae
Copy link

¿Es considerado mala practica utilizar if dentro de init() en las clases?

@gatochico
Copy link
Contributor Author

Hola!

@tomasladrix ¡No hay problema con que hagas eso! Recuerda almacenar solo parámetros y que el diccionario esté en el archivo parametros.py.

@Ignacioislae No lo es, puedes hacerlo ✨

@tomasladrix
Copy link

Hola,

Se puede usar la librería tabluate?

Aprovecho de preguntar también por prettytable y texttable. Todas cumplen una función similar a beautifultable que sí está permitida.

@gatochico
Copy link
Contributor Author

Hola @tomasladrix !

  • Sí puedes usar tabulate y texttable 🎉.
  • No puedes usar prettytable 😢 (esta tiene funciones un poco más poderosas que las otras, por eso no se permite).

Finalmente, si vas a usar alguna de las permitidas, trata de elegir solo una, ya que todas apuntan a lo mismo y así no haces que tu corrector(a) tenga que bajar tantas librerías.

Saludos y éxito en la tarea!

@Wh4rp Wh4rp mentioned this issue Apr 24, 2021
7 tasks
@tamyhan
Copy link

tamyhan commented Apr 25, 2021

Hola! Se pueden usar las funciones lambda?

@josepiniguez
Copy link

HOLA, ¿se puede usar la libreria colorama?

@vcorvalh
Copy link

Hola! ¿Se puede ocupar la librería time? Es específicamente para ocupar sleep

@RodrigoFritis
Copy link

RodrigoFritis commented Apr 26, 2021

Hola, tengo 2 dudas:

  1. Se puede usar break en algún ciclo o es considerado una mala práctica?
  2. Se puede usar el metodo insert() para las listas?

Gracias

@gatochico
Copy link
Contributor Author

¡Hola a todes!

@tamyhan Sí puedes usar funciones lambda 🎉

@josepiniguez Sí puedes usar colorama 🎉

@vicho1901 No puedes usar time para eso 😢 En particular la inclusión de sleeps aunque hace que el código se vea más 'realista' o 'bonito', nos ralentiza la corrección de tareas y por ende, nos molesta un poco. Si quieres usar sleep para algo más que fines estéticos, vuelve a comentar esta issue para ver el caso.

@RodrigoFritis break no es considerado mala práctica, puedes usarlo. Y sí, puedes usar insert() 🎉

Éxito en sus tareas!

@Piolawa
Copy link

Piolawa commented Apr 26, 2021

Hola!,
Se puede usar la libreria math ?

@gatochico
Copy link
Contributor Author

Hola @Piolawa , para qué quieres usar math?

@Piolawa
Copy link

Piolawa commented Apr 26, 2021

@gatochico para usar round() y redondear a un decimal lo que me entregue random(), es solo para no tener chorrocientos decimales xd

@gatochico
Copy link
Contributor Author

@Piolawa Sí, puedes usar math para eso 🎉

@aaossa aaossa mentioned this issue Apr 27, 2021
7 tasks
@illanes00
Copy link

Hola! Espero que estén bien :)
Se puede utilizar la librería time con tal de usar la función time() para generar nuevas seeds para la función random().
Ejemplo: seed(time()). Y así tener una pseudoaleatoriedad más realista?

@gatochico
Copy link
Contributor Author

¡Hola, @illanes00!

Primero que todo, felicitarte por tomar en cuenta el concepto de seeds en random y saber qué hacer para que simular una aleatoriedad más real 🤓 en la vida real es probable que debas tomar en cuenta estas cosas.

Segundo, para fines de esta tarea no es necesario que tomes dicha medida, con un random sin seed nos bastará para ejecutar las funcionalidades que se piden. Además, preferimos que no usen time en esta tarea 😢

@mjsifri
Copy link

mjsifri commented Apr 27, 2021

Hola! Quería saber si era mala práctica llamar funciones (métodos) desde el init?
Además, no me queda claro muy bien qué son las variables globales, si tengo un contador dentro de una función que no esta dentro de una clase, esto sería una variable global?
Saludos y gracias

@Emiliax16 Emiliax16 mentioned this issue Apr 27, 2021
7 tasks
@gatochico
Copy link
Contributor Author

Hola @mjsifri !

Primero, no es considerado mala práctica llamar métodos desde el init, así que puedes hacerlo.

Respecto a las variables globales, en la issue de librerías prohibidas de la primera tarea (#44), se explicó qué son consideradas variables globales.

Éxito en tu tarea!

@colobos
Copy link

colobos commented Apr 28, 2021

Hola!!, esta considerado mala práctica en una clase abstracta alternar entre métodos abstractos y no abstractos, ejemplo este orden:
abstractmethod:
.....
método no abstracto:
.....
abstractmethod:
.....
Gracias de antemano.

@Bizonte28
Copy link

Hola!

@tomasladrix ¡No hay problema con que hagas eso! Recuerda almacenar solo parámetros y que el diccionario esté en el archivo parametros.py.

Quería preguntar respecto a esto. Dice que debo almacenar solo parámetros, pero puedo crear el diccionario en dicho archivo. Por ejemplo usar for y namedtuple en dicho archivo?

@gatochico
Copy link
Contributor Author

Hola!

@colobos Si entendí bien lo que quieres hacer (que es definir métodos y no agrupar todos los abstractos primero y luego los no-abstractos) no se descuenta por eso. Si es que te referías a otra cosa, coméntalo de nuevo para ver si es mala práctica.

@Bizonte28 Ojo que lo que preguntó tu compañero más arriba es solamente ver si es posible agrupar algunos parámetros en un diccionario, por temas de orden. Cualquier otra cosa que no sea un parámetro o diccionario de parámetros no debe ir en el archivo parametros.py. Por lo tanto, namedtuples, ciclos y código en sí no puede ir en ese archivo.

Éxito en sus tareas!! 🐱

@colobos
Copy link

colobos commented Apr 28, 2021

Creo que si me entendió, pero a lo que me refiero, es no agrupar los métodos abstractos juntos, sino emplear dentro de la misma clase abstracta este orden para los métodos: método abstracto, método NO abstracto, método abstracto.

@gatochico
Copy link
Contributor Author

@colobos Si, no habría problema con que hagas eso al momento de definir tus métodos.

@gatochico gatochico unpinned this issue May 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
IMPORTANTE Es importante que se lea esta issue Tarea 1 Dudas sobre la T1
Projects
None yet
Development

No branches or pull requests