IIC2233 / Syllabus

86 stars 8 forks source link

Librerías permitidas, no permitidas y malas prácticas T4 #503

Open gecoli opened 1 month ago

gecoli commented 1 month ago

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?

Toda librería que tenga que instalarse no está permitida.

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


Librerías Permitidas

Librerías y Herramientas Prohibidas

☠️ 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:

¡Ánimo y éxito en sus tareas!

javibust commented 1 month ago

Hola, se puede usar math?

gecoli commented 1 month ago

¡Buenas tardes, @javibust !

Sí, sí se puede ocupar math.

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

josefa00 commented 1 month ago

Hola! Entonces lo que vimos en los contenidos de interfaces if name == 'main': def hook(type, value, traceback) -> None: print(type) print(traceback) sys.excepthook = hook

app = QApplication([])
ventana = MiVentana()
sys.exit(app.exec()) esta prohibido?
3rdPix commented 1 month ago

@josefa00 ¿Qué parte te refieres con exactitud? Todo lo que muestras está en Librerías permitidas.

AndresFerrerC commented 1 month ago

Se puede usar la librería re (de python)?, Es muy útil para verificar el nombre del usuario

IsidoraCarmona commented 1 month ago

@josefa00 ¿Qué parte te refieres con exactitud? Todo lo que muestras está en Librerías permitidas.

Me imagino que se refiere a exec(), yo tengo la misma duda, dado que dicen que esta prohibido, pero yo he visto que siempre lo usan

3rdPix commented 1 month ago

@josefa00 @IsidoraCarmona

Entiendo su duda. Lo que ocurre es que son métodos distintos. Lo que está prohibido es la función built-in de python exec. Sin embargo, el objeto QApplication tiene un método exec que es distinto al de python. Este último se utiliza para lanzar la aplicación en el framework de PyQt; por eso es que se muestra en las librerías permitidas como "app.exec()", para indicar que se refiere al objeto aplicación.

IsidoraCarmona commented 1 month ago

@josefa00 @IsidoraCarmona

Entiendo su duda. Lo que ocurre es que son métodos distintos. Lo que está prohibido es la función built-in de python exec. Sin embargo, el objeto QApplication tiene un método exec que es distinto al de python. Este último se utiliza para lanzar la aplicación en el framework de PyQt; por eso es que se muestra en las librerías permitidas como "app.exec()", para indicar que se refiere al objeto aplicación.

ahh okaa, entonces para abrir un pop up no se puede ocupar exec() cierto?

3rdPix commented 1 month ago

¿Un pop up dentro de tu juego? ¿Cómo un mensaje de error o algo semejante? Los QWidget también tienen el método, y es nuevamente distinto al de python. Por lo que en ese contexto se podría utilizar. Sin embargo, hay otros métodos que vienen con QWidget que pueden cumplir satisfactoriamente (y a veces es hasta mejor) el comportamiento de un pop up. Lo ideal es que puedan escudriñar en la documentación oficial de PyQt para que aprovechen y puedan trabajar bien con la librería,

gecoli commented 1 month ago

¡Buenos días, @AndresFerrerC !

Sí, sí se puede ocupar re.

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

gecoli commented 1 month ago

¡Buenos días, @ArthurFJ !

Sí, sí se pueden ocupar pyqtSlots.

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

Vicente1824 commented 1 month ago

Holi, ¿puedo usar annotations del módulo __future__? Es que me gustaría tener un thread que tome una ventana de juego como argumento y me gustaría tener la "anotación" de esa clase.

ArthurFJ commented 1 month ago

Puedo usar QPropertyAnimation de PyQt6.QtCore?

augustayanez commented 1 month ago

hola! se puede usar random?

Arielmild commented 1 month ago

Hola, ¿puedo usar la librería Turtle, para el movimiento de objeto?

waknaudt commented 1 month ago

Hola, se puede usar os.walk,os.listdir y os.scandir?

gecoli commented 1 month ago

¡Buenos días!

@Vicente1824 , sí se puede ocupar __future__.

@ArthurFJ , sí se puede ocupar QPropertyAnimation.

@augustayanez , sí se puede ocupar random.

@Arielmild , no, no se puede ocupar Turtle.

@waknaudt , sí, sí se pueden ocupar esos métodos de os.

¡Éxito en sus tareas! ꒰ᐢ. .ᐢ꒱₊˚⊹

JPBarrosG commented 1 month ago

Hola, se puede usar functools?

gecoli commented 1 month ago

¡Buenas, @JPBarrosG !

¿Puedes explicar a grandes rasgos para qué quieres ocuparla? 👀

waknaudt commented 1 month ago

Se puede usar sleep() del modulo time?

ArthurFJ commented 1 month ago

Hola, puedo usar AlignmentFlag y FoucsPolicy? Los saque de aca: https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QWidget.html#PySide6.QtWidgets.QWidget.setFocusPolicy https://forum.qt.io/topic/130569/center-align-in-pyqt6-python/4

LemmyLimonLimonada commented 1 month ago

Hola, puedo usar QPainter? Como que queda bonito jkasjksaj 🦅

gecoli commented 1 month ago

¡Buenas tardes, @waknaudt @ArthurFJ y @LemmyLimonLimonada !

Todo lo que piden usar, se pueden usar.

¡Éxito en sus tareas y manténganse secos! ꒰ᐢ. .ᐢ꒱₊˚⊹

undieguito commented 1 month ago

Buenas tardes, puedo ocupar try/except ValueError: (?) Saludos.

scovarrubiasm commented 1 month ago

Hola, en el main.py del cliente y servidor se puede usar except??

IsidoraCarmona commented 1 month ago

Hola, cuando dicen que no se pueden usar variables gloables se refieren a que no se puede hacer esto? class Clase: variable = [] def init(self): ..........

josegrz commented 1 month ago

Hola entonces si estría permitido usar exec() para QMessageBox? def button_clicked(self, s): dlg = QMessageBox(self) dlg.setWindowTitle("I have a question!") dlg.setText("This is a simple dialog") button = dlg.exec()

    if button == QMessageBox.StandardButton.Ok:
        print("OK!")

este ejemplo es de https://www.pythonguis.com/tutorials/pyqt6-dialogs/

Jpdelaf commented 4 weeks ago

@josegrz misma duda, escribo esto para que me llegue la notificación cuando te respondan.

Qjudini commented 4 weeks ago

se puede usar qwidget para las clases del cliente y el juego?

gecoli commented 4 weeks ago

Buenas tardes!

@undieguito y @scovarrubiasm es posible ocupar Try/Exception siempre y cuando se ocupe de manera debida (especificando la excepción a tratar y no un simple except Exception).

@IsidoraCarmona , eso se llama variable de clase, lo cual está permitido.

@josegrz , @Jpdelaf Ese exec() es distinto al prohibido, así que está permitido.

@Qjudini , sí, se puede ocupar.

¡Éxito en sus tareas! ꒰ᐢ. .ᐢ꒱₊˚⊹

rinsoni commented 4 weeks ago

holaa, se puede usar break de casualidad? lo pienso usar cuando un cliente se desconecte de golpe o haya algun error

jfierro2801 commented 4 weeks ago

Hola, se puede usar grabKeyboard?

nicolaslindl commented 4 weeks ago

hola, se puede usar qsplitter? para hacer las divisiones de la pantalla en la interfaz grafica de la ventana de juego

gecoli commented 4 weeks ago

¡Buenas tardes!

@rinsoni , no es recomendable ni una buena práctica ocupar break, pero tampoco será penalizado su correcto uso.

@jfierro2801 , si te requieres a la función de Qwidget, sí, sí se puede.

@nicolaslindl , sí, sí se puede ocupar.

¡Éxito en sus tareas! ꒰ᐢ. .ᐢ꒱₊˚⊹

brbaracanales commented 3 weeks ago

Hola! se puede usar glob.glob()?

gecoli commented 3 weeks ago

Buenas noches, @brbaracanales

Lamento la confusión, sí se puede!

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

Bonjour1X commented 3 weeks ago

¿puedo usar "os.path.dirname("file")","os.path.abspath("file")", como os.path.join("...", "...") para abrir o colocar "algo" al menú/tarea? ya que lo ví en una ayudantia y estaba viendo como adaptarlo con los demas os.path y me esta sirviendo en un momento

gecoli commented 3 weeks ago

Buenas noches, @Bonjour1X !

Sí, sí se puede ocupar.

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

R3Y3X commented 3 weeks ago

hola esta perimitido usar self.exec() para un Qthread ?

gecoli commented 3 weeks ago

Buenas, @R3Y3X

¿Puedes explicar para qué quieres ocuparlo en vez de run? 👀

BenjaMedinaPUC commented 3 weeks ago

Hola! se puede usar itemgetter de operator? para ordenar numeros estaré atento a la respuesta

gecoli commented 3 weeks ago

Buenas, @BenjaMedinaPUC !

Sí, sí se puede.

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹

R3Y3X commented 3 weeks ago

Buenas, @gecoli

¿Puedes explicar para qué quieres ocuparlo en vez de run? 👀 utilizo run pero lueg utilizo self.exec() para que cuando el usuario haga mas movimientos de pepa no se caiga el programa y pueda ejecutarlos uno detras de otros

gecoli commented 3 weeks ago

@R3Y3X

Puedes ocuparlo!

¡Éxito en tu tarea! ꒰ᐢ. .ᐢ꒱₊˚⊹