예제 #1
0
    def __init__(self, pilas=None, x=0, y=0):
        if not pilas:
            mensaje = "Ten cuidado, antes de crear un actor tienes que vincularlo con: 'pilas.actores.vincular(MiActor)'"
            raise Exception(mensaje)

        if not isinstance(pilas, pilasengine.Pilas):
            mensaje = "Tienes que enviar el objeto 'pilas' como argumento al actor, en lugar de eso llego esto: " + str(pilas)
            raise Exception(mensaje)

        if not isinstance(x, (int, long, float)):
            mensaje = "El parametro x tiene un valor no permitido: " + str(x)
            raise Exception(mensaje)

        if not isinstance(y, (int, long, float)):
            mensaje = "El parametro y tiene un valor no permitido: " + str(y)
            raise Exception(mensaje)

        self.pilas = pilas
        self.padre = None

        Estudiante.__init__(self)
        self._definir_valores_iniciales(pilas, x, y)

        # Listas para definir los callbacks de los eventos
        self._callback_cuando_hace_click = set()
        self._callback_cuando_mueve_mouse = set()
        self._grupos_a_los_que_pertenece = []
        self._actores = []

        # Vincula el actor con la escena actual.
        pilas.actores.agregar_actor(self)

        # Especifica la composión de dibujado (ver actor particula.py).
        self.composicion = None
예제 #2
0
    def __init__(self, pilas=None, x=0, y=0):
        if not pilas:
            mensaje = "Ten cuidado, antes de crear un actor tienes que vincularlo con: 'pilas.actores.vincular(MiActor)'"
            raise Exception(mensaje)

        if not isinstance(pilas, pilasengine.Pilas):
            mensaje = "Tienes que enviar el objeto 'pilas' como argumento al actor, en lugar de eso llego esto: " + str(
                pilas)
            raise Exception(mensaje)

        if not isinstance(x, (int, long, float)):
            mensaje = "El parametro x tiene un valor no permitido: " + str(x)
            raise Exception(mensaje)

        if not isinstance(y, (int, long, float)):
            mensaje = "El parametro y tiene un valor no permitido: " + str(y)
            raise Exception(mensaje)

        self.pilas = pilas
        self.padre = None

        Estudiante.__init__(self)
        self._definir_valores_iniciales(pilas, x, y)

        # Listas para definir los callbacks de los eventos
        self._callback_cuando_hace_click = set()
        self._callback_cuando_mueve_mouse = set()
        self._grupos_a_los_que_pertenece = []
        self._actores = []

        # Vincula el actor con la escena actual.
        pilas.actores.agregar_actor(self)

        # Especifica la composión de dibujado (ver actor particula.py).
        self.composicion = None
def validateDataSheet(filename,columnas,colores,errorsMessages,validaciones):
	header_rows = 2
	VACIO = errorsMessages[0]
	NO_REDONDEADO = errorsMessages[-1]
	TIPO_NO_NUMERICO = errorsMessages[-2]
	try:
		wb = load_workbook(filename)
		data_sheet = wb["DATA"]
		total_students = data_sheet.max_row - header_rows
		total_columns = data_sheet.max_column 

		print("Total estudiantes a revisar: "+str(total_students))
		total_errors = 0
		for row in data_sheet.iter_rows(min_row=header_rows+1, max_col=total_columns, max_row=data_sheet.max_row):
			data = []
			for cell in row:
				data.append(cell.value)
				fillCell(cell,colores[VACIO]) #Restore cell color
			estudiante = Estudiante(data, columnas)
			estudiante.convertir()
			convertirDatosNumericos(estudiante,row,columnas)
			#Luego de convertir datos numéricos, se valida
			errores = estudiante.validar(errorsMessages,validaciones)
			countErrorStudent = 0
			for error, campos in errores.items():
				color = colores[error]
				countErrorStudent += len(campos)
				for columna in campos:
					if columna in columnas:
						i = columnas.index(columna)
						if error==NO_REDONDEADO: #El error detectado es corregido por el script
							row[i].value = estudiante.calif_final[columna]
						else:
							fillCell(row[i],color,'solid') #Errores no corregidos se pintan
			
			if countErrorStudent:
				print('{:<9}{}'.format('FALLÓ',estudiante.nombre))
				total_errors += 1
			else:
				print('{:<9}{}'.format('OK',estudiante.nombre))
		if total_errors:
			print("RESULTADOS: Se detectaron errores en las calificaciones de ", total_errors," estudiantes.")
			print()
			print("Revise su archivo de calificaciones, y corrija los errores de las CELDAS RESALTADAS con los siguientes colores:")
			print("1. Naranja \t --> \t Dato requerido.")
			print("2. Azul \t --> \t Valor no válido, revise la cabecera del archivo modelo para las posibles opciones.")
			print("3. Amarillo \t --> \t Valor fuera del rango posible.")
			#print("4. Verde \t --> \t El dato no es numérico.")
			print("="*150)
			print("**OJO: Los errores tipo dato_no_redondeado y dato_no_numerico fueron corregidos por el script")
		else:
			print("="*150)
			print('¡Felicidades! Tu archivo de excel está listo para ser enviado')
			print('Por favor enviar a [email protected] con el subject Estadísticas P##-2019I')
            print('No te olvides de renombrar tu archivo excel como estadisticas-P##-2019I.xlsx')
		print("="*150)
		print("Copyright (c) 2018 eslozano")
		print('All Rights Reserved :)')
		wb.save(filename)
예제 #4
0
    def __init__(self, pilas=None, *k, **kv):
        # Especifica la composión de dibujado (ver actor particula.py).
        self.composicion = None

        if not pilas:
            mensaje = "Ten cuidado, antes de crear un actor tienes que vincularlo con: 'pilas.actores.vincular(MiActor)'"
            raise Exception(mensaje)

        if not isinstance(pilas, pilasengine.Pilas):
            mensaje = "Tienes que enviar el objeto 'pilas' como argumento al actor, en lugar de eso llego esto: " + str(
                pilas)
            raise Exception(mensaje)

        self.pilas = pilas
        self.padre = None

        if 'x' in kv:
            x = kv['x']
        else:
            x = 0

        if 'y' in kv:
            y = kv['y']
        else:
            y = 0

        if 'imagen' in kv:
            imagen = kv['imagen']
        else:
            imagen = 'sin_imagen.png'

        Estudiante.__init__(self)

        self._definir_valores_iniciales(pilas, x, y, imagen)
        # x, y, imagen)
        self.etiquetas = Etiquetas()
        self.etiquetas.agregar(self.__class__.__name__)

        # Listas para definir los callbacks de los eventos
        self._callback_cuando_hace_click = set()
        self._callback_cuando_mueve_mouse = set()
        self._grupos_a_los_que_pertenece = []
        self._actores = []

        # Argumentos adicionales.
        self.argumentos_adicionales = (k, kv)

        # Vincula el actor con la escena actual.
        pilas.actores.agregar_actor(self)
예제 #5
0
파일: actor.py 프로젝트: JuanFVera/pilas
    def __init__(self, pilas=None, *k, **kv):
        # Especifica la composión de dibujado (ver actor particula.py).
        self.composicion = None

        if not pilas:
            mensaje = "Ten cuidado, antes de crear un actor tienes que vincularlo con: 'pilas.actores.vincular(MiActor)'"
            raise Exception(mensaje)

        if not isinstance(pilas, pilasengine.Pilas):
            mensaje = "Tienes que enviar el objeto 'pilas' como argumento al actor, en lugar de eso llego esto: " + str(pilas)
            raise Exception(mensaje)

        self.pilas = pilas
        self.padre = None

        if 'x' in kv:
            x = kv['x']
        else:
            x = 0

        if 'y' in kv:
            y = kv['y']
        else:
            y = 0

        if 'imagen' in kv:
            imagen = kv['imagen']
        else:
            imagen = 'sin_imagen.png'

        Estudiante.__init__(self)

        self._definir_valores_iniciales(pilas, x, y, imagen)
        # x, y, imagen)
        self.etiquetas = Etiquetas()
        self.etiquetas.agregar(self.__class__.__name__)

        # Listas para definir los callbacks de los eventos
        self._callback_cuando_hace_click = set()
        self._callback_cuando_mueve_mouse = set()
        self._grupos_a_los_que_pertenece = []
        self._actores = []

        # Argumentos adicionales.
        self.argumentos_adicionales = (k, kv)

        # Vincula el actor con la escena actual.
        pilas.actores.agregar_actor(self)
예제 #6
0
    def on_btn_ing_clicked(self, btn_ing):
        un_estudiante = Estudiante(
            self.ent_cod.get_text(),
            self.ent_nom.get_text(),
            float(self.ent_nota.get_text()),
        )
        if not self.estudiante.search(un_estudiante):
            if self.estudiante.append(un_estudiante):
                dialogo = Gtk.MessageDialog(
                    parent=self,
                    buttons=Gtk.ButtonsType.OK,
                    text=boton.get_label() +
                    "Estudiante Adicionado Exitosamente!",
                )

                # print("Estudiante Adicionado Exitosamente!")
            else:
                dialogo = Gtk.MessageDialog(
                    parent=self,
                    buttons=Gtk.ButtonsType.OK,
                    text=boton.get_label() + "Estudiante NO pudo adicionarse!",
                )
                # print("Estudiante NO pudo adicionarse!")
        else:
            dialogo = Gtk.MessageDialog(
                parent=self,
                buttons=Gtk.ButtonsType.OK,
                text=boton.get_label() +
                "El estudinate ya se encuentra matriculado imposible matricularlo nuevamente",
            )
    def registrar(self):
        tmp = Estudiante(self.ui.nombre.text(), self.ui.correo.text(),
                         self.ui.contrasenia.text())
        print(f'Persona Registrada {tmp.nombre()}')

        file = open('RegistroProyecto.txt', 'wb')
        pickle.dump(tmp, file)
        file.close()
예제 #8
0
    def enviar(self):
        self.s.connect((self.host, self.port))

        estudiante = Estudiante(f'{self.ui.Nombre.text()}',
                                f'{self.ui.Correo.text()}',
                                f'{self.ui.Contrasena.text()}')

        estudiante_serializado = pickle.dumps(estudiante)

        self.s.send(estudiante_serializado)

        ans = self.s.recv(1024)
        print(f'Respuesta: \t{ans.decode()}')
예제 #9
0
    def adicionar_estudiante(self):
        system('clear')
        print('Crear estudiante')

        nombre_estudiante = input('Ingrese el nombre del estudiante: ')
        apellido_estudiante = input('Ingrese el apellido del estudiante: ')
        codigo_estudiante = input('Ingrese el codigo del estudiante: ')

        estudiante = Estudiante(nombre_estudiante, apellido_estudiante,
                                codigo_estudiante)

        if self.colegio.adicionar_estudiante(estudiante):

            print('El estudiante fue creado de forma exitosa')
            input()
예제 #10
0
def main():
    s = socket.socket()
    host = '3.16.226.150'
    port = 9999

    s.connect((host, port))
    estudiante = Estudiante('David Fernando Ortega Tamayo',
                            '*****@*****.**', 'Pycharm')

    estudiante_seriado = pickle.dumps(estudiante)
    s.send(estudiante_seriado)
    res = s.recv(1024)

    print(f' respuesta: \n\t{res.decode()}')
    s.close()
예제 #11
0
    def submitAlumno(self):

        s = socket.socket()
        # Port = 9997 proyecto final, 9998 pruebas
        s.connect((host, port))

        estudiante = Estudiante(self.nameLine.text(), self.mailLine.text(),
                                self.passLine.text())
        estudiante_seriado = pickle.dumps(estudiante)

        s.send(estudiante_seriado)
        res = s.recv(1024)
        print(f'Respuesta: \n\t{res.decode()}')

        s.send(b'INI')
        res = s.recv(1024)
        print(f'Respuesta: \n\t{res.decode()}')

        fileName, _ = QtWidgets.QFileDialog.getOpenFileName(
            self, "Open ZIP file", '', "Zip file (*.zip);;All Files (*)")
        if not fileName:
            return

        fileName2 = open(fileName, 'rb')

        fileName_seriado = pickle.dumps(fileName2.read())

        i = True
        j = 0

        while i:
            chunk = fileName_seriado[j:j + 1024]

            if not chunk:
                i = False
                continue

            s.send(chunk)
            res = s.recv(1024)
            print(f'Respuesta: \n\t{res.decode()}')
            j += 1024

        s.send(b'FIN')
        res = s.recv(1024)
        print(f'Respuesta: \n\t{res.decode()}')

        s.close()
예제 #12
0
def main():
    s = socket.socket()

    host = '3.16.226.150'
    port = 9999

    s.connect((host, port))

    estudiante = Estudiante("Elliot Ruiz Sanchez", "*****@*****.**", "IECA8")

    estudiante_seriado = pickle.dumps(estudiante)

    s.send(estudiante_seriado)

    res = s.recv(1024)
    print(f'Respuesta: \n\t{res.decode()}')

    s.close()
예제 #13
0
 def regAsistencia(self):
     self.ui.nombreLE.setDisabled(True)
     self.ui.correoLE.setDisabled(True)
     self.ui.contraLE.setDisabled(True)
     alumno = Estudiante(self.ui.nombreLE.text(), self.ui.correoLE.text(),
                         self.ui.contraLE.text())
     self.mostrarAlerta("Conexión con el servidor establecida")
     self.clienteF = Cliente("3.16.226.150")
     self.clienteF.setPuerto(int(
         self.ui.puertoCB.currentText()))  # Retorna str, castear a int
     self.clienteF.conectar()
     self.ui.pantallaTE.clear()
     msj = self.clienteF.enviar(alumno)
     self.ui.pantallaTE.insertPlainText(msj + '\n')
     print(msj)
     self.statusBar().showMessage("Selecciona tu archivo...")
     self.ui.asistenciaB.setDisabled(True)
     self.ui.zipLE.setEnabled(True)
     self.ui.zipbuscarB.setEnabled(True)
예제 #14
0
                    print(res.decode())

                    inicio +=1024

            self.conexion.send(b'FIN')
            res=self.conexion.recv(1024) # respuesta fin del paquete
            print(res.decode())

            res=self.conexion.recv(1024) #respuesta de validacion del archivo
            return res.decode()


if __name__ == '__main__':
    c=cliente()
    c.conectar()
    e=Estudiante('Misael Hernandez', '*****@*****.**','12345678')
    r=c.enviar(e)

    print(r)

    f=open('proyecto.zip','rb')
    r=c.enviar(f.read())

    c.desconectar()


#--------------------------------------------------ejemplo 2
#class cliente:

#    def __init__(self, ip='localhost', puerto=9998):
#        #self.ip = '3.16.226.150'
예제 #15
0
                    if not chunk:
                        continuar = False
                        continue
                    self.clientSocket.send(chunk)
                    res = self.clientSocket.recv(1024)
                    print(res.decode())

                    inicio += 1024

            self.clientSocket.send(b"FIN")
            res = self.clientSocket.recv(1024)  # Respuesta paquete FIN
            print(res.decode())

            res = self.clientSocket.recv(
                1024)  # Respuesta de validacion del archivo
            return res.decode()


if __name__ == '__main__':
    c = Cliente("3.16.226.150", 9998)
    c.conectar()
    alumno = Estudiante("Felix Armenta A", "*****@*****.**", "PADTS_3")
    respuesta = c.enviar(alumno)

    print(respuesta)

    f = open("test.zip", "rb")
    respuesta = c.enviar(f.read())
    print(respuesta)
    c.desconectar()
예제 #16
0
from estudiante import Estudiante

estudiantes = []
n = int(input('Cantidad de estudiantes: '))

for i in range(n):
    nombre = str(input('Ingrese el nombre: '))
    apellido = str(input('Ingrese el apellido: '))
    codigo = str(input('Ingrese el código: '))
    email = str(input('Ingrese el email: '))

    est = Estudiante(nombre, apellido, codigo, email)
    estudiantes.append(est)

for est in estudiantes:
    print (est)



예제 #17
0
    def enviarEstudiante(self):
        e = Estudiante(self.ui.nombreLE.text(), self.ui.correoLE.text(),
                       self.ui.contraLE.text())

        self.ui.archivoG.setEnabled(True)