Exemple #1
0
def test(cuboId, mostrar=True, ejecutar=False, salida=False):
    from support.util.jsonmgr import load_cubo

    # TODO normalizar los nombres de ficheros y campos a FQN
    mis_cubos = load_cubo()
    cubo = Cubo(mis_cubos[cuboId])
    generaQuery(cubo, mostrar, ejecutar, salida)
Exemple #2
0
def test(cuboId,mostrar=True,ejecutar=False,salida=False):
    from support.util.jsonmgr import load_cubo

    # TODO normalizar los nombres de ficheros y campos a FQN
    mis_cubos = load_cubo('/home/werner/projects/dana-cube.git/cubo.json')
    cubo = Cubo(mis_cubos[cuboId])
    generaQuery(cubo,mostrar,ejecutar,salida)
Exemple #3
0
 def saveFile(self,dialog=False):
     """
     notese que salvo sin versiones. A la larga es un fichero solo de trabajo
     """
     if not dialog or self.saveDialog():
         definiciones = load_cubo(self.cubeFile)
         definiciones['user functions'] = tree2dict(self.tree.model().invisibleRootItem(),isDictFromDef)
         dump_json(definiciones,self.cubeFile)
Exemple #4
0
def main():
    from support.util.jsonmgr import load_cubo
    app = QApplication(sys.argv)
    mis_cubos = load_cubo()
    cubo = mis_cubos['datos light']
    form = guidePreview(cubo)
    form.show()
    if form.exec_():
        pass
        sys.exit()
Exemple #5
0
 def __init__(self,cubo,parent=None):
     super().__init__(parent)
     mis_cubos =  load_cubo('/home/werner/projects/dana-cube.git/cubo.json')
     cubo = Cubo(mis_cubos[cubo])
     query = generaQuery(cubo,ejecutar=False)
     
     self.tree = QueryTab(cubo.db,script=query)
     meatLayout=QGridLayout()
     meatLayout.addWidget(self.tree)
     self.setLayout(meatLayout)    
     self.tree.execute()
Exemple #6
0
def selector(configFile):
    configData = load_cubo(getConfigFileName(configFile))
    if configData is None or configData.get('Conexiones') is None:
        sys.exit()

    form = directConnectDlg(configData)
    form.show()
    if form.exec_():
        return form.conn, form.confName, form.confInfo
    else:
        return None, None, None
Exemple #7
0
def UberTest(mostrar=False,ejecutar=True,salida=False):
    from support.util.jsonmgr import load_cubo

    # TODO normalizar los nombres de ficheros y campos a FQN
    mis_cubos =  load_cubo('/home/werner/projects/dana-cube.git/cubo.json')
    for cuboId in mis_cubos:
        if cuboId == 'default':
            continue
        print('Ahora para el cubo ',cuboId)
        cubo = Cubo(mis_cubos[cuboId])
        cubo.nombre = cuboId
        generaQuery(cubo,mostrar,ejecutar,salida)
Exemple #8
0
def uf_discover_file(uf,plugins,configFile):
    """
    uf libreria (directorio de funciones)
    dictionary  diccionario de funciones
    """
    from support.util.jsonmgr import load_cubo
    toollist = readUM(uf)
    definiciones = load_cubo(configFile)
    if not definiciones:
        uf_discover(uf,plugins)
        return
    else:
        defs = definiciones['user functions']
    functions = {}
    sequences = {}
    #TODO ordered dict ¿?
    for item in defs:
        entrada = defs[item]
        if entrada['class'] == 'sequence':
            sequences[item] = entrada
            sequences[item]['name'] = item
        elif entrada['class'] == 'function':
            functions[item] = entrada
            functions[item]['name'] = item
            try:
                gosh = toollist[entrada['entry']]
                functions[item]['entry'] = gosh
            except KeyError:
                print('Funcion de usuario {} no definida'.format(entrada['entry']))
                del functions[item]
                continue
            if 'aux_parm' in functions[item]:
                auxiliares = functions[item]['aux_parm']
                bien = True
                for parametro in auxiliares:
                    if parametro.startswith('fun'):
                        try:
                            auxiliares[parametro] = toollist[auxiliares[parametro]]
                        except KeyError:
                            print('Funcion de usuario {} no definida'.format(auxiliares[parametro]))
                            bien = False
                            break
                if not bien:
                    del functions[item]
    #pprint(functions)
    for entrada in functions:
        registro_funcion(plugins,**functions[entrada])
    for entrada in sequences:
        registro_secuencia(plugins,**sequences[entrada])
Exemple #9
0
def test_genera_comp():
    """
    probar todas las combinaciones posibles y las diferencias de implementacion
    
    """
    from support.util.jsonmgr import load_cubo
    from support.util.numeros import avg
    from random import randint
    mis_cubos = load_cubo('testcubo.json')
    cubo = Cubo(mis_cubos['datos locales pg'])
    for guia in cubo.lista_guias:
        for guia2 in cubo.lista_guias:
            #if guia['name'] == 'geo-detail' or guia2['name'] == 'geo-detail':
            #continue
            print('procesando ', guia['name'], guia2['name'])
            test_comp(cubo, guia['name'], 'partido')
Exemple #10
0
def editAsTree(fichero):
    from base.core import Cubo
    from support.util.jsonmgr import load_cubo
    definiciones = load_cubo(fichero)
    mis_cubos = definiciones['user functions']

    #cubo = Cubo(mis_cubos['experimento'])
    model = displayTree()
    model.setItemPrototype(QStandardItem())
    model.setHorizontalHeaderLabels(['Nombre','Contenido','Tipo'])
    hiddenRoot = model.invisibleRootItem()
    parent = hiddenRoot
    for entrada in mis_cubos:
        if mis_cubos[entrada]['class'] == 'function':
            tipo = 'function'
        elif mis_cubos[entrada]['class'] == 'sequence':
            tipo = 'sequence'
        dict2tree(parent,entrada,mis_cubos[entrada],tipo)
    return model
Exemple #11
0
def short_test_sim():
    """
    Comprobar el comportamiento del rollup
    FIXME  ¿Como distingue el rollup de los nulos de cabecera con los nulos de uso practico ?
    """
    from support.util.jsonmgr import load_cubo
    from support.util.numeros import avg
    from random import randint
    mis_cubos = load_cubo('../testcubo.json')
    cubo = Cubo(mis_cubos['datos locales pg'])
    row = 'partido'
    col = 'partido'
    vista = Vista2(cubo, row, col, 'sum', 'votes_presential', totalizado=True)
    #pprint(vista.array)
    for item in vista.col_hdr_idx.traverse():
        print(item.text(), item.getFullHeadInfo(content='key', format='array'))
    for line in vista.toList():
        print(line)
    print()
    for line in vista.toList(rowHdrContent='key',
                             rowFilter=lambda x: x.type() == TOTAL):
        print(line)
Exemple #12
0
Please see https://github.com/wllacer/dana-cube#license for further particulars about licencing of the Dana-Cube Project 

"""
from __future__ import division
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals


from research.cubespread import guidePreview
from PyQt5.QtWidgets import QApplication    
from support.util.jsonmgr import load_cubo

if __name__ == '__main__':
    import sys

    # con utf-8, no lo recomiendan pero me funciona
    #print(sys,version_info)
    if sys.version_info[0] < 3:
        reload(sys)
        sys.setdefaultencoding('utf-8')
    
    app = QApplication(sys.argv)
    mis_cubos = load_cubo()
    cubo = mis_cubos['datos light']
    form = guidePreview(cubo)
    form.show()
    if form.exec_():
        pass
        sys.exit()
Exemple #13
0
def modlist(*lparm):
    definiciones = load_cubo('danacube.json')
    return list(definiciones['user functions'].keys())
Exemple #14
0
 def saveFile(self):
     if self.saveDialog():
         definiciones = load_cubo(self.cubeFile)
         definiciones['user functions'] = tree2dict(self.tree.model().invisibleRootItem(),isDictFromDef)
         dump_config(definiciones, self.cubeFile,total=True,secure=False)