示例#1
0
    def inicializacion(self, duracion_simulacion):

        super(Simulacion2mec, self).inicializacion(duracion_simulacion)

        self.estado_mecanico = [Simulacion.DESOCUPADO, Simulacion.DESOCUPADO]

        self.cola_mecanico = [Cola('mecanico'), Cola('mecanico')]

        # Lista de eventos
        self.lista_de_eventos = {
            'arribo_pala': [
                Evento('arribo_pala'),
                Evento('arribo_pala'),
                Evento('arribo_pala')
            ],
            'partida_pala': [
                Evento('partida_pala'),
                Evento('partida_pala'),
                Evento('partida_pala')
            ],
            'arribo_aplastador':
            Evento('arribo_aplastador'),
            'partida_aplastador':
            Evento('partida_aplastador'),
            'fin_de_reparacion':
            [Evento('fin_de_reparacion'),
             Evento('fin_de_reparacion')]
        }
def gerar_eventos():
    fila_de_eventos = Queue()
    for _, i in enumerate(range(randint(1, 20))):
        evento = Evento(choice(eventos))
        evento.set_priority()
        print(f"[{_+1}] Evento gerado: {evento}.")
        sleep(0.2)
        fila_de_eventos.insert(evento)
    print(f"[+] ----- > Gerados: {len(fila_de_eventos)} eventos.\n\n")
    sleep(0.5)
    return fila_de_eventos
示例#3
0
    def inicializacion(self, duracion_simulacion):

        self.duracion_simulacion = duracion_simulacion

        # Contadores Estadisticos
        self.tiempo_ocioso = 0
        self.total_material_transportado = 0
        self.total_descomposturas = 0
        self.acrt = 0

        # Variables de estado

        self.reloj_simulacion = 0
        self.estado_pala = [
            Simulacion.DESOCUPADO, Simulacion.DESOCUPADO, Simulacion.DESOCUPADO
        ]
        self.estado_aplastador = Simulacion.DESOCUPADO
        self.estado_mecanico = Simulacion.DESOCUPADO
        self.ult_ubicacion_mecanico = 'pala'
        self.ultima_medicion_descomposturas = 0
        self.dcrt = 0

        self.colas_pala = []
        for i in range(3):
            cola_pala = Cola('pala')
            cola_pala.agregar(Camion(50, i))
            cola_pala.agregar(Camion(20, i))
            cola_pala.agregar(Camion(20, i))
            self.colas_pala.append(cola_pala)

        self.cola_aplastador = Cola('aplastador')
        self.cola_mecanico = Cola('mecanico')

        # Lista de eventos

        self.lista_de_eventos = {
            'arribo_pala': [
                Evento('arribo_pala'),
                Evento('arribo_pala'),
                Evento('arribo_pala')
            ],
            'partida_pala': [
                Evento('partida_pala'),
                Evento('partida_pala'),
                Evento('partida_pala')
            ],
            'arribo_aplastador':
            Evento('arribo_aplastador'),
            'partida_aplastador':
            Evento('partida_aplastador'),
            'fin_de_reparacion':
            Evento('fin_de_reparacion')
        }
示例#4
0
def parse_json_eventos(json_source):
	#json_eventos = json_source["eventos"]

	eventos = []
	for json_evento in json_source:
		eventos.append(Evento(json_evento))

	return eventos
示例#5
0
def analisa_linha(queue_leitura, queue_linha, queue_lista):
    if not queue_linha.empty():
        evento = queue_linha.get()
        params = evento.get_params()
        if evento.metodo == None:
            novo_evento = Evento("quebrar", **params)
            queue_linha.put(novo_evento)
        elif evento.metodo == "quebrar":
            params["linha"] = str(evento.linha)
            lista = quebrar(evento.linha)
            params["lista"] = lista
            novo_evento = Evento(None, **params)
            queue_lista.put(novo_evento)
        elif evento.metodo == "fim":
            novo_evento = Evento("proxima", **params)
            queue_leitura.put(novo_evento)
    return queue_leitura, queue_linha, queue_lista
示例#6
0
    def inicializacion(self, duracion_simulacion):

        super(SimulacionUnaCola, self).inicializacion(duracion_simulacion)

        self.cola_pala = Cola('pala')

        for i in range(3):
            self.cola_pala.agregar(Camion(50))
            for k in range(2):
                self.cola_pala.agregar(Camion(20))

        # Lista de eventos

        self.lista_de_eventos = {
            'arribo_pala':
            Evento('arribo_pala'),
            'partida_pala': [
                Evento('partida_pala'),
                Evento('partida_pala'),
                Evento('partida_pala')
            ],
            'arribo_aplastador':
            Evento('arribo_aplastador'),
            'partida_aplastador':
            Evento('partida_aplastador'),
            'fin_de_reparacion':
            Evento('fin_de_reparacion')
        }
示例#7
0
 def run(self):
     self.cargar_integrantes()
     Contenido.importar_info_contenidos()
     Evento.creacion_primeros_eventos()
     while Evento.lista_eventos:
         Evento.seleccionar_evento()
         self.funciones[Evento.evento_actual.tipo]()
     examen = Evaluacion(4, Evento.evento_actual.tiempo + 5,
                         choice(Contenido.lista_contenidos)
                         )  #Solo para mostrar, mal implemenado
     Evento.evento_actual = examen
     self.funciones[examen.tipo]()
     entrega_examen = EntregaNotasCoord(7, examen.tiempo + 14, (4, 1))
     Evento.evento_actual = entrega_examen
     self.funciones[entrega_examen.tipo]()
     publicacion_examen = PublicacionNotas(14, entrega_examen.tiempo,
                                           (4, 1))
     Evento.evento_actual = publicacion_examen
     Evento.evento_actual.numero = 1000000
     self.funciones[publicacion_examen.tipo]()
示例#8
0
def analisa_lista(queue_leitura, queue_linha, queue_lista):
    if not queue_lista.empty():
        evento = queue_lista.get()
        params = evento.get_params()
        if evento.metodo == None:
            params["linha_analisada"] = []
            params["linha"] = (evento.linha)
            novo_evento = Evento("primeira", **params)
            queue_lista.put(novo_evento)
        elif evento.metodo == "primeira":
            string = evento.lista[0]
            del (evento.lista[0])
            novo_evento = Evento("classificar", arg=string, **params)
            queue_lista.put(novo_evento)
        elif evento.metodo == "classificar":
            token = classificar(evento.arg)
            if "linha_analisada" not in params:
                params["linha_analisada"] = []
            params["linha_analisada"] += (token)
            novo_evento = Evento("proxima", **params)
            queue_lista.put(novo_evento)
        elif evento.metodo == "proxima":
            if not evento.lista or len(evento.lista) == 0:
                novo_evento = Evento("fim", **params)
                queue_lista.put(novo_evento)
            else:
                string = evento.lista[0]
                del (evento.lista[0])
                novo_evento = Evento("classificar", arg=string, **params)
                queue_lista.put(novo_evento)
        elif evento.metodo == "fim":
            params["lista"] = None
            novo_evento = Evento("fim", **params)
            queue_linha.put(novo_evento)
        return queue_leitura, queue_linha, queue_lista
示例#9
0
    def reunion_a_docencia(self):
        '''
        Este metodo desencadena todas las funciones asociadas a la reunion de los ayudantes de docencia.
        Se crean los futuros eventos que dependen de este.
        :return:
        '''
        evento = Evento.evento_actual

        # Proxima reunion:
        fecha = evento.tiempo + 7
        Evento(8, fecha)
        sim_logger.info(
            '[Día {dia}]: Reunión de ayudantes de docencia.'.format(
                dia=evento.tiempo))
示例#10
0
    def publicacion_notas(self):
        evento = Evento.evento_actual
        str_publicacion = ''
        for alumno in Alumno.lista_alumnos:
            confianza = alumno.confianza
        for tupla in Evento.evento_actual.lista_entregas:
            if tupla[0] == 1 and tupla[1] == 4:
                # Se programa la bota de ramos:
                Evento(10, evento.tiempo)
            str_publicacion += '{tipo_ev} {num}, '.format(
                tipo_ev=Evento.tipos[tupla[0]], num=tupla[1])

        str_publicacion = str_publicacion[:-2]
        sim_logger.info(
            '[Día {dia}]: Se publicaron las notas de: {evaluaciones}'.format(
                evaluaciones=str_publicacion, dia=evento.tiempo))
示例#11
0
    def catedra(self):
        '''
        Este metodo desencadena todas las funciones asociadas a la realizaciond e la catedra.
        Se crean los futuros eventos que dependen de este.
        :return:
        '''
        evento = Evento.evento_actual

        # Creacion proxima catedra:
        try:
            fecha = evento.tiempo + 7
            sim_logger.info(
                '[Día {dia}]: Se realizó la catedra {numero}, acerca de {materia}.'
                .format(materia=Contenido.lista_contenidos[semana(
                    evento.tiempo)].nombre,
                        dia=evento.tiempo,
                        numero=evento.numero_tipo))
            Evento(6, fecha)
        except BaseException:
            pass
示例#12
0
def analise_lexica():
    queue_leitura = queue.Queue()
    queue_linha = queue.Queue()
    queue_lista = queue.Queue()

    #path = input("Digite o endereço do arquivo: ")
    path = "/home/paula/paula/poli/doing/compiladores/projeto/programa.bas"
    novo_evento = Evento(None, arg=path)
    queue_leitura.put(novo_evento)
    while (True):
        if not queue_lista.empty():
            queue_leitura, queue_linha, queue_lista = analisa_lista(
                queue_leitura, queue_linha, queue_lista)
        elif not queue_linha.empty():
            queue_leitura, queue_linha, queue_lista = analisa_linha(
                queue_leitura, queue_linha, queue_lista)
        elif not queue_leitura.empty():
            queue_leitura, queue_linha, queue_lista, response = leitura(
                queue_leitura, queue_linha, queue_lista)
        else:
            return response
示例#13
0
def leitura(queue_leitura, queue_linha, queue_lista):
    response = None
    if not queue_leitura.empty():
        evento = queue_leitura.get()
        params = evento.get_params()
        if evento.metodo == None:
            params["filename"] = evento.arg
            novo_evento = Evento("abrir", **params)
            queue_leitura.put(novo_evento)
        elif evento.metodo == "abrir":
            file = open(evento.filename, "r")
            novo_evento = Evento("primeira", file=file, **params)
            queue_leitura.put(novo_evento)
        elif evento.metodo == "primeira":
            params["numero_linha"] = 1
            novo_evento = Evento("ler", **params)
            queue_leitura.put(novo_evento)
        elif evento.metodo == "ler":
            linha = evento.file.readline()

            if not linha:
                linha = None
                novo_evento = Evento("fim", **params)
                queue_leitura.put(novo_evento)
            else:
                params["linha"] = linha
                novo_evento = Evento(None, **params)
                queue_linha.put(novo_evento)

        elif evento.metodo == "proxima":
            if "texto_analisado" not in params:
                params["texto_analisado"] = []

            params["texto_analisado"].append(
                Linha_tokens(evento.numero_linha, evento.linha_analisada))
            params["linha_analisada"] = []
            params["linha"] = None
            params["numero_linha"] += 1
            novo_evento = Evento("ler", **params)
            queue_leitura.put(novo_evento)
        elif evento.metodo == "fim":
            response = evento.texto_analisado
        else:
            raise Exception("Evento estranho")
    return queue_leitura, queue_linha, queue_lista, response
示例#14
0
        except ValueError:
            print("Introduce un numero!")

    if op == 7:
        print("Adiós!")
        break

    if op == 1:
        print("Registrando evento....")
        nombreEvento = input("Nombre del evento: ")
        fecha = input("Fecha del evento: ")
        localidad = input("Localidad del evento: ")
        provincia = input("Provincia del evento: ")
        precioInscipcion = input("Precio de inscripción del evento: ")

        evento = Evento(nombreEvento, fecha, localidad, provincia,
                        precioInscipcion)

        if controlador.añadirEvento(evento):
            print("Evento añadido correctamente!")
        else:
            print("Error al añadir el evento!")

    if op == 2:
        while True:
            nomEvento = input("Introduce el nombre del evento:")
            if controlador.estaEvento(nomEvento):
                break
            else:
                print("Este evento no existe!")

        print()
示例#15
0
 def __montar_objeto_evento(self, tupla):
     return Evento(tupla['nome'], tupla['tema'], tupla['local'], tupla['data'], tupla['hora_ini'], tupla['hora_fim'])
示例#16
0
def initSimulacion(tiempo):  #tiempo en unidades.
    global eventoCount
    global clienteCount
    global clntsSistema
    global instalaciones
    global servidores
    global clientes
    global miu
    global clientesViejos
    tiemposAtencion = []
    calculoCola = []
    calculoSistema = []
    colaCount = 0

    print("\nTiempo que va a correr la simulación: " + str(tiempo) + "\n")
    #Creamos las instalaciones del sistema
    for e in range(colas):
        ins = Cola(servidores[e], miu[e], clientes[e])
        instalaciones.append(ins)
        calculoCola += [{'sumatoria': 0, 'cantidad': 0}]
        calculoSistema += [{'sumatoria': 0, 'cantidad': 0}]

    #Generar Eventos
    #    Para el  tiempo t = 0 deben generar el evento de
    #    "entrada de una persona desde el exterior a la cola"
    for c in instalaciones:
        colaCount += 1
        eventoCount += 1
        #ID del evento,Cola del evento, tiempo = 0, tipo Evento 1-3
        evn = Evento(eventoCount, colaCount, 0, 1)
        colaPrioridad.append(evn)
        ordernarColaPrioridad()
        #generar tiempos de llegadas totales del exterior del sistema para cada cola.
    ordernarColaPrioridad()
    cFin = 0
    while (len(colaPrioridad) > 0 and (cFin < tiempo * 40)):
        event = colaPrioridad[0]
        largoCola = len(instalaciones[event.colaMadre - 1].colaEspera)
        eventServ = instalaciones[event.colaMadre - 1].servidores
        #Realiza sumatoria del tamanno de la cola
        calculoCola[event.colaMadre - 1]["sumatoria"] += largoCola
        calculoCola[event.colaMadre - 1]["cantidad"] += 1
        #Realiza sumatoria del tamanno del sistema
        calculoSistema[event.colaMadre - 1]["sumatoria"] += len(
            [item for item in eventServ if item != []]) + largoCola
        calculoSistema[event.colaMadre - 1]["cantidad"] += 1
        event.procesar(
        )  #Cambia el estado de procesado de False a True del evento.
        #1: Llegada a la cola
        if (event.tipo == 1):
            #print("Caso 1:")
            #Verificar que el evento pertenezca a un cliente, sino se crea un cliente nuevo y se le asigna el evento.
            clnt = Cliente(clienteCount)
            clienteCount += 1
            clnt.agregarEvento(event)
            clntsSistema.append(clnt)
            #print(clntsSistema)
            #Verificar si hay personas en la cola.
            if (largoCola > 0):
                #Debe de esperar en la cola.
                instalaciones[event.colaMadre - 1].agregarCliente(
                    clntsSistema[0])
                del clntsSistema[0]
                print("{} : Entra cliente en la cola {}, espera en la cola".
                      format(event.tiempo, event.colaMadre))
            else:
                #Pasar cliente a servidor para ser atendido.
                eventoCount += 1
                tiempoServicio = instalaciones[event.colaMadre -
                                               1].obtenerTiempoServicio()
                #tiemposAtencion[event.colaMadre-1]["cantidad"]+= 1
                #ID del evento,Cola del evento, tiempo = 0, tipo Evento 1-4
                eve = Evento(eventoCount, event.colaMadre, tiempoServicio, 2)
                clntsSistema[0].agregarEvento(
                    eve)  #Asigna el evento con el cliente.
                colaPrioridad.append(eve)
                ordernarColaPrioridad()
                print(
                    "{} : Entra cliente en la cola {}, empieza a ser atendido".
                    format(event.tiempo, event.colaMadre))
                #Pasamos el cliente al servidor y lo sacamos de la lista de clientes del sistema.
                instalaciones[event.colaMadre - 1].pasarCliente(
                    clntsSistema[0])
                del clntsSistema[0]
            #Generar siguiente llamada desde el exterior.
            cola = instalaciones[event.colaMadre - 1]
            cola.generarTiempoLLegada()
            #Generar evento de nueva llegada, si no supera el límite de tiempo.
            if (cola.y <= tiempo):
                #print("Crea llegada nueva")
                eventoCount += 1
                nEvn = Evento(eventoCount, event.colaMadre, cola.y, 1)
                #print(nEvn.IDCliente)
                colaPrioridad.append(nEvn)
                ordernarColaPrioridad()

        #2: Termina de ser atendido.
        #Aquí se puede procesar (generar bitácora) los eventos del cliente una vez que sale de la cola.
        elif (event.tipo == 2):
            #print("Caso 2:")
            #Sacar Cliente del servidor.
            clnt = instalaciones[event.colaMadre - 1].sacarCliente(
                event.IDCliente)
            clientesViejos.append(clnt)
            if (clnt == -5):
                for c in instalaciones:
                    for cliente in c.servidores:
                        if (cliente.ID == event.IDCliente):
                            clnt = cliente
            #Decidir cola a nueva a la que se debe ir.
            colaSig = colaSiguiente(event.colaMadre)
            #Averiguar si sale del sistema o pasa a cola nueva.
            if (colaSig == 0):
                print(
                    "{} : El Cliente termina de ser atendido en la cola {}, sale del sistema."
                    .format(clnt.obtenerTiempoSalida(), event.colaMadre))
            else:
                print(
                    "{} : Cliente termina de ser atendido en la cola {}, pasa a la cola {}"
                    .format(clnt.obtenerTiempoSalida(), event.colaMadre,
                            colaSig))
                eventoCount += 1
                #ID del evento,Cola del evento, tiempo = 0, tipo Evento 1-4
                eve = Evento(eventoCount, colaSig, clnt.obtenerTiempoSalida(),
                             3)
                colaPrioridad.append(eve)
                ordernarColaPrioridad()
                clnt.agregarEvento(eve)
                instalaciones[colaSig - 1].agregarCliente(clnt)
                if (largoCola > 0):
                    #Pasar siguiente cliente de la cola al servidor.Generar Evento de atención.
                    eventoCount += 1
                    tiempoServicio = instalaciones[event.colaMadre -
                                                   1].obtenerTiempoServicio()
                    tiempoServicio = instalaciones[event.colaMadre -
                                                   1].obtenerTiempoServicio()
                    #ID del evento,Cola del evento, tiempo = 0, tipo Evento 1-4
                    eve = Evento(eventoCount, event.colaMadre, tiempoServicio,
                                 2)
                    colaPrioridad.append(eve)
                    ordernarColaPrioridad()
                    instalaciones[event.colaMadre -
                                  1].colaEspera[0].agregarEvento(
                                      eve)  #Asignar evento con cliente.
                    nClnt = instalaciones[event.colaMadre - 1].colaEspera[0]
                    instalaciones[event.colaMadre - 1].pasarCliente(nClnt)
        #3: Termina de ser atendido y pasa a la cola n.
        elif (event.tipo == 3):
            #print("Caso 3:")
            if (largoCola > 0):
                #Debe de esperar en la cola.
                print("{} : Entra cliente en la cola {}, espera en la cola".
                      format(event.tiempo, event.colaMadre))
            else:
                #Pasar cliente a servidor para ser atendido.
                eventoCount += 1
                tiempoServicio = instalaciones[event.colaMadre -
                                               1].obtenerTiempoServicio()
                #ID del evento,Cola del evento, tiempo = 0, tipo Evento 1-4
                eve = Evento(eventoCount, event.colaMadre, tiempoServicio, 2)
                cln = instalaciones[colaSig - 1].colaEspera[0]
                instalaciones[colaSig - 1].colaEspera[0].agregarEvento(
                    eve)  #Asigna el evento con el cliente.
                colaPrioridad.append(eve)
                ordernarColaPrioridad()
                print(
                    "{} : Entra cliente en la cola {}, empieza a ser atendido".
                    format(event.tiempo, event.colaMadre))
                #Pasamos el cliente al servidor y lo sacamos de la lista de clientes del sistema.
                instalaciones[event.colaMadre - 1].pasarCliente(cln)
            #Generar siguiente llamada desde el exterior.
            cola = instalaciones[event.colaMadre - 1]
            cola.generarTiempoLLegada()
            #Generar evento de nueva llegada, si no supera el límite de tiempo.
            if (cola.y <= tiempo):
                #print("Crea llegada nueva")
                eventoCount += 1
                nEvn = Evento(eventoCount, event.colaMadre, cola.y, 1)
                #print(nEvn.IDCliente)
                colaPrioridad.append(nEvn)
                ordernarColaPrioridad()
        else:
            print("Caso X: Inexistente")

        #print("Borra de cola de prioridad")
        event = None
        eventosProcesados.append(colaPrioridad.pop(0))
        cFin += 1

    #Calculo de datos obtenidos en la simulacion
    clientesViejos = set(clientesViejos)
    print(clientesViejos)
    Wq = calcularTiempoColaSimulacion(clientesViejos, colas)
    W = calcularTiempoSistemaSimulacion(clientesViejos, colas)
    L = []
    Lq = []
    for i in range(len(calculoCola)):
        Lq += [calculoCola[i]["sumatoria"] / calculoCola[i]["cantidad"]]
    for i in range(len(calculoSistema)):
        L += [calculoSistema[i]["sumatoria"] / calculoSistema[i]["cantidad"]]
    #Imprimir datos
    print("\r\n\r\n\r\n")
    print("-------------------------------------------------")
    print("-------------------------------------------------")
    print("-Resultados según la simulacion:-")
    print("-------------------------------------------------")
    print("-------------------------------------------------\r\n")
    for i in range(colas):
        print("---------------Resultados de cola ", i + 1, "---------------")
        print("Lq     ", i + 1, ": ", Lq[i])
        print("L      ", i + 1, ": ", L[i])
        print("Wq     ", i + 1, ": ", Wq[i])
        print("W      ", i + 1, ": ", W[i])
示例#17
0
                if isinstance(evento, Evento_exclusivo):
                    if evento.cupos == 0:
                        continue
                if (asistente.agregar_a_evento(evento)):
                    if isinstance(evento, Evento_exclusivo):
                        evento.cupos -= 1
                    evento.espectadores += 1
                    asistentes_del_evento.append(asistente.nombre)
                    self.comicon[evento.nombre] = [
                        asistentes_del_evento, evento.espectadores
                    ]

    def mostrar_eventos_de_asistentes(self):
        for asistente in self.asistentes:
            print(
                asistente.nombre,
                "tiene asignados los nombres de los siguientes eventos: ",
                str([evento.nombre for evento in asistente.eventos_anotados]))


if __name__ == "__main__":
    asistentes = ["Luciano", "Julian", "Lucas", "Martín"]
    eventos = [
        Evento_exclusivo("Capitán América", 10, 13, 2),
        Evento_exclusivo("Hulk", 10, 11, 1),
        Evento_exclusivo("Los 4 fantásticos", 11, 12, 3),
        Evento_exclusivo("Mujer Maravilla", 13, 14, 2),
        Evento("Hombre araña", 16, 17)
    ]
    a = ComiCon(asistentes, eventos)
示例#18
0
                break

        while True:
            try:
                precioI = int(input("Introduce el precio de la inscripcion: "))

                if precioI <= 0:
                    print(
                        "El precio de la inscripcion no puede ser 0 o menor que 0"
                    )
                else:
                    break
            except ValueError:
                print("El precio es un numero!!")

        evento = Evento(nombre, fecha, localidad, provincia, precioI)

        if con.anyadirEvento(evento):
            print("El evento se ha anyadido correctamente!!")
        else:
            print("Error al anyadir el evento!!")

    if op == 2:
        while True:
            nEvento = str(input("Introduce le nombre del evento: "))

            if con.comEvento(nEvento) == False:
                print("El evento introducido no existe!!")
            else:
                break
 def __init__(self, nombre, inicio, fin, cupos):
     Evento.__init__(self, nombre, inicio, fin)
     self.cupos = cupos
示例#20
0
 def criar_evento(self, nome, tema, local, data, hora_ini, hora_fim):
     evento = Evento(nome, tema, local, data, hora_ini, hora_fim)
     self.eventoDAO.inserir(evento)
def extraerDecrip(soup):
    topicsEvent_estruct = BeautifulSoup(
        soup.find("div", class_="cfp").prettify())
    topicsEvent = ""
    for txt in topicsEvent_estruct.stripped_strings:
        topicsEvent = topicsEvent + '\n' + txt
    return topicsEvent


a = "http://www.wikicfp.com/cfp/servlet/event.showcfp?eventid=45369&copyownerid=60222"
r = requests.get(a)
soup = BeautifulSoup(r.text)
soup = soup.find("div", class_="contsec")

event = Evento()

event.name = extraerName(soup)

event.url = extraerUrl(soup)

when = extraerDates(soup, "When")  #return ('value1','value2')
event.whenBegin = when[0]
event.whenEnd = when[1]

event.where = extraerWhere(soup, "Where")

event.abstractRegistration = extraerImportantDates(
    soup, "Abstract Registration Due")

event.submissionDeadline = extraerImportantDates(
		return categ

def extraerDecrip(soup):
	topicsEvent_estruct = BeautifulSoup(soup.find("div", class_="cfp").prettify())
	topicsEvent = ""
	for  txt in topicsEvent_estruct.stripped_strings:
		topicsEvent = topicsEvent +'\n'+ txt
	return topicsEvent


a = "http://www.wikicfp.com/cfp/servlet/event.showcfp?eventid=45369&copyownerid=60222"
r = requests.get(a)
soup = BeautifulSoup(r.text)
soup = soup.find("div", class_="contsec")

event = Evento()

event.name = extraerName(soup)

event.url = extraerUrl(soup)

when = extraerDates(soup, "When") #return ('value1','value2')
event.whenBegin = when[0]
event.whenEnd   = when[1]

event.where = extraerWhere(soup, "Where")

event.abstractRegistration = extraerImportantDates(soup, "Abstract Registration Due")

event.submissionDeadline = extraerImportantDates(soup, "Submission Deadline") #Notification Due inal Version Due