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)
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)
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)
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()
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()
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
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)
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])
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')
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
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)
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()
def modlist(*lparm): definiciones = load_cubo('danacube.json') return list(definiciones['user functions'].keys())
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)