def buscar_paquete_virtual(nombre_pq):
    paquete_existe = Paquete.objects.filter(nombre=nombre_pq)
    if len(paquete_existe):
        return paquete_existe[0]
    else:
        print "Registrando paquete virtual %s" % nombre_pq
        nPaquete = Paquete(nombre=nombre_pq)
        nPaquete.save()
        return nPaquete
def buscar_paquete(paquete):
    if paquete != None:
        nombre_pq = paquete["Package"] if paquete.has_key("Package") else None
        instsize_pq = paquete["Installed-Size"] if paquete.has_key("Installed-Size") else None
        version_pq = paquete["Version"] if paquete.has_key("Version") else None
        mantenedor_paquete = buscar_mantenedor(paquete["Maintainer"]) if paquete.has_key("Maintainer") else None
        arquitectura_pq = paquete["Architecture"] if paquete.has_key("Architecture") else None
        size_pq = paquete["Size"] if paquete.has_key("Size") else None
        sha256_pq = paquete["SHA256"] if paquete.has_key("SHA256") else None
        sha1_pq = paquete["SHA1"] if paquete.has_key("SHA1") else None
        md5sum_pq = paquete["MD5sum"] if paquete.has_key("MD5sum") else None
        descripcion_pq = paquete["Description"] if paquete.has_key("Description") else None
        pagina_pq = paquete["Homepage"] if paquete.has_key("Homepage") else None
        desmd5_pq = paquete["Description-md5"] if paquete.has_key("Description-md5") else None
        sec_pq = paquete["Section"] if paquete.has_key("Section") else None
        prioridad_pq = paquete["Priority"] if paquete.has_key("Priority") else None
        nombrearchivo_pq = paquete["Filename"] if paquete.has_key("Filename") else None
        paquete_existe = Paquete.objects.filter(nombre=nombre_pq, md5sum=md5sum_pq)
        if len(paquete_existe):
            return paquete_existe[0]
        else:
            print "Registrando %s" % nombre_pq
            nPaquete = Paquete(
                nombre=nombre_pq,
                version=version_pq,
                size=size_pq,
                instsize=instsize_pq,
                sha256=sha256_pq,
                sha1=sha1_pq,
                mantenedor=mantenedor_paquete,
                desmd5=desmd5_pq,
                descripcion=descripcion_pq,
                pagina=pagina_pq,
                seccion=sec_pq,
                prioridad=prioridad_pq,
                nombrearchivo=nombrearchivo_pq,
                arquitectura=arquitectura_pq,
                md5sum=md5sum_pq,
            )
            nPaquete.save()
            return nPaquete
def buscar_paquete(seccion, npaquete = None):
    if seccion != None:
        nombre_pq = seccion.get("Package")
        instsize_pq = seccion.get("Installed-Size")
        version_pq = seccion.get("Version")
        mantenedor_paquete = buscar_mantenedor(seccion)
        arquitectura_pq = seccion.get("Architecture")
        size_pq = seccion.get("Size")
        sha256_pq =  seccion.get("SHA256") 
        sha1_pq = seccion.get("SHA1")
        md5sum_pq = seccion.get("MD5sum")
        descripcion_pq = seccion.get("Description")
        pagina_pq = seccion.get("Homepage")
        desmd5_pq = seccion.get("Description-md5")
        sec_pq = seccion.get("Section")
        prioridad_pq = seccion.get("Priority")
        nombrearchivo_pq = seccion.get("Filename")
        paquete_existe = Paquete.objects.filter(nombre = nombre_pq, md5sum = md5sum_pq)
        if len(paquete_existe):
            return paquete_existe[0]
        else:
            nPaquete = Paquete(nombre = nombre_pq, version = version_pq, size = size_pq,
                               instsize = instsize_pq, sha256 = sha256_pq, sha1 = sha1_pq,
                               mantenedor = mantenedor_paquete, desmd5 = desmd5_pq,
                               descripcion = descripcion_pq, pagina = pagina_pq, seccion = sec_pq,
                               prioridad = prioridad_pq, nombrearchivo = nombrearchivo_pq,
                               arquitectura = arquitectura_pq, md5sum = md5sum_pq)
            nPaquete.save()
            return nPaquete
    else:
        if npaquete:
            # Registro de paquete virtual
            nPaquete = Paquete(nombre = npaquete)
            nPaquete.save()
            return nPaquete