def main(): sqlIgnore = re.compile("^[--].*") regexNomeTabela = re.compile("CREATE TABLE ([^\s]+)") regexDependencia = re.compile("REFERENCES ([^\s]+)") try: estrutura = open(args.fileName, "r") except FileNotFoundError as err: print(err) #Lista de todas as tabelas referenciadas no arquivo de estrutura listaTabela = ListaTabela() #lista de tabelas povoadas tabelasPovoadas = ListaTabela() linha = "" for line in estrutura: if not (sqlIgnore.match(line)): linha = linha + line if (';' in line): #Faz com que cada bloco do código SQL seja lido em uma única linha linha = linha.replace('\n', ' ') nome = regexNomeTabela.search(linha) dependencias = regexDependencia.findall(linha) if (nome != None): tabela = Tabela(nome.group(1)[1:-1]) listaTabela.add_tabela(tabela) #Adiciona todas as referenências encontradas, retirando os limitadores (aspas) tabela.add_dependencias([d[1:-1] for d in dependencias]) #Adiciona as tabelas sem dependencias na lista de tabelas povoadas if not (dependencias): tabelasPovoadas.add_tabela(tabela) #Limpa a variável para a próxima iteração linha = "" while True: for t in listaTabela.list: if (len(t.dependencias) > 0 and not tabelasPovoadas.find_nome(t.nome)): flag_add_table = True for d in t.dependencias: if not (tabelasPovoadas.find_nome(d)): flag_add_table = False if (flag_add_table): tabelasPovoadas.add_tabela(t) if (len(tabelasPovoadas.list) >= len(listaTabela.list)): break print('\n'.join([t.nome for t in tabelasPovoadas.list]))
def dodaj_tabelo(self, tabela=None): # še funkcija dodaj [tabele] if tabela == None: a = True tabela = Tabela(None, self) else: if tabela in self.tabele: print(colored('POZOR!: Ista tabela je dodana večkrat v isto bazo', 'red')) a = False self.tabele.append(tabela) if self.tabele_imena is None: self.tabele_imena = [] self.tabele_imena.append(tabela.tabela_ime) if a == True: return tabela
def req_tabela(self, *args): ids = [self.ids.tex1, self.ids.tex2] self.pop = Popup(title='Tabela', content=Tabela(DataFrame=df, ids_list=ids), size_hint=(0.5, 0.5)) self.pop.open()
k = m - len(str(self.tabele_imena[i])) s = ' ' * k print(space + colored(str(self.tabele_imena[i]), 'magenta') + s + puscica + str(self.tabele[i])) else: print(space + str(None)) print('Prebrano iz SQL: ' + str(self.prebrano_iz_SQL)) print('Neshranjene spremembe: ' + str(self.neshranjene_spremembe)) print() if __name__ == "__main__": b = Baza('Aladeen') b.izpis() t=Tabela('Neki') t.dodaj_vrstico() t.dodaj_vrstico() t.dodaj_vrstico() t.dodaj_vrstico() t.dodaj_vrstico() t1=Tabela('Neki druzga') t1.dodaj_vrstico() t1.dodaj_vrstico() t1.dodaj_vrstico() s1=Stolpec('neki bolšga') s1.izpis() s2=t.dodaj_podoben_stolpec(s1) s3=t1.dodaj_podoben_stolpec(s2) s1.izpis() s2.izpis()
def cb_vnos(self, text): self.qt.tab[self.stolpec_stevilo] = text def ch_vnos(self, text): self.qt.tab[self.stolpec_stevilo] = text if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) a = QtWidgets.QWidget() a.setMinimumSize(300, 300) b = QtWidgets.QVBoxLayout() c = QtFunkcije() t = Tabela('Stoški') i = Stolpec('ime', t) i.attribute = 'le' m = Stolpec('mesečni', t) m.attribute = 'ch' v = Stolpec('vrednost', t) k = Stolpec('kategorija', t) k.attribute = 'cb' t.tabela_ime = 'tabela' t.dodaj_vrstico() v = t.dodaj_vrstico() v.vrstica_vrednosti = [1, 2, 3, 4] t.dodaj_vrstico()