def __init__(self, str_status_led): self.neopixel_importado = neopixel_importado self.str_status_led = str_status_led self.config = config.Config() if self.neopixel_importado: # LED strip configuration: self.LED_COUNT = self.config.led_count # Number of LED pixels. self.LED_PIN = self.config.led_pin # GPIO pin connected to the pixels (18 uses PWM!). self.LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz) self.LED_DMA = 10 # DMA channel to use for generating signal (try 10) self.LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest self.LED_INVERT = self.config.led_invert # True to invert the signal (when using NPN transistor level shift) self.LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53 #LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0). # Create NeoPixel object with appropriate configuration. self.strip = Adafruit_NeoPixel(self.LED_COUNT, self.LED_PIN, self.LED_FREQ_HZ, self.LED_DMA, self.LED_INVERT, self.LED_BRIGHTNESS, self.LED_CHANNEL) # Intialize the library (must be called once before other functions). self.strip.begin() else: self.conexao_rpi = conexao.Conexao()
class Genero: CAMINHO_DB = '../DB/fat' DB_NOME = 'fat_genero' EXTENS_DB = '.csv' SEP = ';' TBL_FAT_GENERO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def tabelaGeneros(self): # inicializa variaveis confianca = [] hora = [] id_dim_genero = [] id_dim_data = [] guids = [] # carrega dimensões dim_genero = conexao.Conexao().carregaDimensao( '../DB/dim/dim_genero.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'gênero': for item_chave, item_valor in atributo.items(): if item_chave == 'confiança': confianca.append(item_valor) if item_chave == 'valor': for indice in dim_genero: if indice[1] == item_valor: id_dim_genero.append(indice[0]) guids.append(chave) if item == 'data': id_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').date() hora_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').time() id_dim_data.append(id_data) hora.append(hora_data) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_genero': ids, 'id_genero': id_dim_genero, 'vlr_confianca': confianca, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato) def fatoGenero(self): df = self.tabelaGeneros() df.to_csv(self.TBL_FAT_GENERO, index=False, sep=self.SEP)
class Emocao: CAMINHO_DB = '../DB/dim' DB_NOME = 'dim_emocao' EXTENS_DB = '.csv' SEP = ';' TBL_DIM_EMOCAO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def tabelaEmocoes(self): emocoes = [] for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'sentimentos': for item_chave, item_valor in atributo.items(): emocoes.append(item_chave) emocoes_distinct = np.unique(np.array(emocoes)) ids = [i + 1 for i in range(0, len(emocoes_distinct))] dimensao = {'id_emocao': ids, 'descricao_emocao': emocoes_distinct} return pd.DataFrame.from_dict(dimensao) def dimensaoEmocao(self): df = self.tabelaEmocoes() df.to_csv(self.TBL_DIM_EMOCAO, index=False, sep=self.SEP)
class Genero: CAMINHO_DB = '../DB/dim' DB_NOME = 'dim_genero' EXTENS_DB = '.csv' SEP = ';' TBL_DIM_GENERO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def tabelaGeneros(self): generos = [] for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'gênero': for item_chave, item_valor in atributo.items(): if item_chave == 'valor': generos.append(item_valor) generos_distinct = np.unique(np.array(generos)) ids = [i + 1 for i in range(0, len(generos_distinct))] dimensao = {'id_genero': ids, 'descricao_genero': generos_distinct} return pd.DataFrame.from_dict(dimensao) def dimensaoGeneros(self): df = self.tabelaGeneros() df.to_csv(self.TBL_DIM_GENERO, index=False, sep=self.SEP)
def __init__(self): # Definindo variáveis do Tkinter self.app = Tk() self.app.title('Sway LED') # StringVar para as classes definir os status do programa self.str_status_leds = StringVar() # self.str_status_leds.trace("w", self.alterar_status) # Frames usados na janela do aplicativo self.frameCores = Frame(self.app) self.frameEfeitos = Frame(self.app) self.frameLightpaint = Frame(self.app) self.frameDancypi = Frame(self.app) self.frameServerled = Frame(self.app) self.frameConfig = Frame(self.app) self.frameConfigApp = Frame(self.app) # Chamando a classe Led (levando a stringvar de status), de Configurações, conexão e construir aplicação # self.led = led.Led(self.str_status_leds) self.config = config.Config() self.conexao = conexao.Conexao() self.build = gui.ConstruirAplicacao(self.app, self.str_status_leds) # Função para inserir todos os widgets necessários e alterar a tela self.construir_menu() self.mudar_tela(app_iniciando=True) # Abrir o aplicativo self.app.mainloop()
def tabelaPessoas(self): # inicializa variaveis confianca = [] confianca_idade = [] vlr_idade = [] hora = [] id_dim_genero = [] id_dim_data = [] guids = [] # carrega dimensões dim_genero = conexao.Conexao().carregaDimensao( '../DB/dim/dim_genero.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'gênero': for item_chave, item_valor in atributo.items(): if item_chave == 'confiança': confianca.append(item_valor) if item_chave == 'valor': for indice in dim_genero: if indice[1] == item_valor: id_dim_genero.append(indice[0]) guids.append(chave) if item == 'data': id_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').date() hora_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').time() id_dim_data.append(id_data) hora.append(hora_data) if item == 'idade': for item_chave, item_valor in atributo.items(): if item_chave == 'confiança': confianca_idade.append(item_valor) if item_chave == 'valor': vlr_idade.append(item_valor) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_pessoa': ids, 'id_genero': id_dim_genero, 'vlr_confianca_genero': confianca, 'idade_estimada': vlr_idade, 'vlr_confianca_idade': confianca_idade, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato)
def __init__(self, app, var_status_leds): self._app = app self.config = config.Config() self.led = led.Led(var_status_leds) self.conexao = conexao.Conexao() self.var_status_leds = var_status_leds self.verificar_se_temos_led()
def tabelaSentimentos(self): # inicializa variaveis confianca = [] vlr_resultado = [] hora = [] id_dim_emocao = [] id_dim_data = [] guids = [] # carrega dimensões dim_emocao = conexao.Conexao().carregaDimensao( '../DB/dim/dim_emocao.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'sentimentos': for item_chave, item_valor in atributo.items(): id_atributo = self.pesquisaID( item_chave, dim_emocao) id_dim_emocao.append(id_atributo) for k1, v1 in item_valor.items(): if k1 == 'confiança': confianca.append(v1) if k1 == 'valor': vlr_resultado.append(v1) guids.append(chave) for guid in guids: data, hora_valor_valor = self.dataHora(guid) id_dim_data.append(data) hora.append(hora_valor_valor) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_emocao': ids, 'id_emocao': id_dim_emocao, 'vlr_confianca': confianca, 'vlr_resultado': vlr_resultado, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato)
def tabelaCartazes(self): # inicializa variaveis hora = [] id_dim_cartaz = [] id_dim_data = [] guids = [] # carrega dimensões dim_cartaz = conexao.Conexao().carregaDimensao( '../DB/dim/dim_cartaz.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'foto': for item_chave, item_valor in atributo.items(): if item_chave == 'url': nome_cartaz = self.trataCartazNome( item_valor) cartaz = self.pesquisaID( nome_cartaz, dim_cartaz) id_dim_cartaz.append(cartaz) guids.append(chave) if item == 'data': id_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').date() hora_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').time() id_dim_data.append(id_data) hora.append(hora_data) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_cartaz': ids, 'id_cartaz': id_dim_cartaz, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato)
def recebe_pacote(self, pack): #tenho de dar um jeito de arrumar isso if not (pack.ip_origem, pack.porta_origem) in self.conexoes.keys(): self.conexoes[(pack.ip_origem, pack.porta_origem)] = conexao.Conexao( 500, pack.ip_origem, pack.porta_origem, pack.ip_destino, pack.porta_destino) flags = pack.checa_flags() print('INCOMING > ip origem : ',pack.ip_origem, \ ' | porta origem : ', pack.porta_origem, \ ' | ip destino : ', pack.ip_destino,\ ' | porta destino : ',pack.porta_destino,\ ' | numero de sequencia : ', pack.numero_de_sequencia, \ ' | numero de ack :', pack.numero_de_acknowledgement,\ ' | FIN : ', flags[0], ' | SYN : ', flags[1],\ ' | RST : ', flags[2], ' | ACK : ', flags[3], ' | conteudo : ', pack.conteudo.decode("UTF-8") if len(pack.conteudo) > 0 else '""') p = self.conexoes[(pack.ip_origem, pack.porta_origem)].recebe_pacote(pack) for packet in p: flags = packet.checa_flags() if type(packet.conteudo) is int: packet.conteudo = packet.conteudo.to_bytes(2, byteorder='big') print('OUTGOING > ip origem : ',packet.ip_origem, \ ' | porta origem : ', packet.porta_origem, \ ' | ip destino : ', packet.ip_destino,\ ' | porta destino : ',packet.porta_destino,\ ' | numero de sequencia : ', packet.numero_de_sequencia, \ ' | numero de ack :', packet.numero_de_acknowledgement,\ ' | FIN : ', flags[0], ' | SYN : ', flags[1],\ ' | RST : ', flags[2], ' | ACK : ', flags[3], ' | conteudo : NOPE')#, packet.conteudo.decode("UTF-8") if len(pack.conteudo) > 0 else '""') #if packet.numero_de_sequencia == 0: # packet.numero_de_sequencia = self.conexoes[(pack.ip_origem, pack.porta_origem)]. pack.ativa_flags(fin=False, syn=False, rst=False, ack=True) self.fd.sendto(packet.serialize(), (packet.ip_destino, \ packet.porta_destino))
class Cartaz: CAMINHO_DB = '../DB/dim' DB_NOME = 'dim_cartaz' EXTENS_DB = '.csv' SEP = ';' TBL_DIM_CARTAZ = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def tabelaCartazes(self): cartazes = [] for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'foto': for item_chave, item_valor in atributo.items(): if item_chave == 'url': cartazes.append(item_valor) cartazes_tratados = [] for item in cartazes: nome = item.split('_') cartazes_tratados.append(nome[-3]+ ' ' + str(nome[-2])) cartazes_distinct = np.unique(np.array(cartazes_tratados)) ids = [i + 1 for i in range(0, len(cartazes_distinct))] dimensao = {'id_cartaz': ids, 'descricao_cartaz': cartazes_distinct} return pd.DataFrame.from_dict(dimensao) def dimensaoCartazes(self): df = self.tabelaCartazes() df.to_csv(self.TBL_DIM_CARTAZ, index=False ,sep=self.SEP)
class Sentimento: CAMINHO_DB = '../DB/fat' DB_NOME = 'fat_sentimento' EXTENS_DB = '.csv' SEP = ';' TBL_FAT_SENTIMENTO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def pesquisaID(self, emocao, dimensao): for indice in dimensao: if indice[1] == emocao: return indice[0] def dataHora(self, guid): for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'data': if chave == guid: id_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').date() hora_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').time() return id_data, hora_data def tabelaSentimentos(self): # inicializa variaveis confianca = [] vlr_resultado = [] hora = [] id_dim_emocao = [] id_dim_data = [] guids = [] # carrega dimensões dim_emocao = conexao.Conexao().carregaDimensao( '../DB/dim/dim_emocao.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'sentimentos': for item_chave, item_valor in atributo.items(): id_atributo = self.pesquisaID( item_chave, dim_emocao) id_dim_emocao.append(id_atributo) for k1, v1 in item_valor.items(): if k1 == 'confiança': confianca.append(v1) if k1 == 'valor': vlr_resultado.append(v1) guids.append(chave) for guid in guids: data, hora_valor_valor = self.dataHora(guid) id_dim_data.append(data) hora.append(hora_valor_valor) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_emocao': ids, 'id_emocao': id_dim_emocao, 'vlr_confianca': confianca, 'vlr_resultado': vlr_resultado, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato) def fatoSentimento(self): df = self.tabelaSentimentos() df.to_csv(self.TBL_FAT_SENTIMENTO, index=False, sep=self.SEP)
class Queries(object): """ Classe com queries mais utilizadas no projeto Modo de uso Queries.tickers() - retorna um frame com o resultado da query """ conexao = conexao.Conexao() @staticmethod def tickers(): """Função que retorna a lista de ticker, ticker_id e empresa_id Returns: pd.DataFrame() """ sql = "select id, ticker, empresa_id from assets_ticker" return Queries.conexao.query(sql) @staticmethod def valor_mercado(): """Função que retorna o valor de mercado das empresas Returns: pd.DataFrame() """ sql = "select empresa_id, ticker_id, date, valor from assets_valormercado" return Queries.conexao.query(sql) @staticmethod def precos_ajustado(): """Função que retorna o preço de fechamento e preço médio ajustado das empresas Returns: pd.DataFrame() """ sql = "select date, ticker_id, preult, premed from assets_precohistoricoajustado" return Queries.conexao.query(sql) @staticmethod def precos_nao_ajustado(): """Função que retorna o volume e o preço de fechamento não ajustado das empresas Returns: pd.DataFrame() """ sql = "select date, ticker_id, voltot, preult from assets_historicalprice where tpmerc=10" return Queries.conexao.query(sql) @staticmethod def volume_mercado(): """Função que retorna as informações da tabela volumemercado Essas informações são utilizadas para compor o backtest. Returns: pd.DataFrame() """ sql = "select * from assets_volumemercado" return Queries.conexao.query(sql) @staticmethod def patrimonio_liquido(): """Função que retorna o patrimônio líquido das empresas Returns: pd.DataFrame() """ sql = "select empresa_id, ticker_id, date, data_de_divulgacao, valor from assets_patrimonioliquido" return Queries.conexao.query(sql) @staticmethod def lucros(): """Função que retorna o lucro líquido das empresas Returns: pd.DataFrame() """ sql = "select ticker_id, empresa_id, date, lucro_liquido from assets_informacoesfinanceiras " \ "order by empresa_id, date" return Queries.conexao.query(sql) @staticmethod def pesos(): """Função que retorna os pesos de otimização Returns: pd.DataFrame() """ sql = "select * from pandas_pesos" return Queries.conexao.query(sql)
def iniciar_conexao(self, status): cx = conexao.Conexao() cx.enviar_teste() status.set('aaaa')
class Cartaz: CAMINHO_DB = '../DB/fat' DB_NOME = 'fat_cartaz' EXTENS_DB = '.csv' SEP = ';' TBL_FAT_CARTAZ = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB dados = conexao.Conexao().dados() def trataCartazNome(self, nome): nome_resultado = nome.split('_') return nome_resultado[-3] + ' ' + str(nome_resultado[-2]) def pesquisaID(self, nome, dimensao): for indice in dimensao: if indice[1] == nome: return indice[0] def tabelaCartazes(self): # inicializa variaveis hora = [] id_dim_cartaz = [] id_dim_data = [] guids = [] # carrega dimensões dim_cartaz = conexao.Conexao().carregaDimensao( '../DB/dim/dim_cartaz.csv') # carrega os dados da fato for chave, valor in self.dados.items(): for k, v in valor.items(): if k == 'resposta': for item, atributo in v.items(): if item == 'foto': for item_chave, item_valor in atributo.items(): if item_chave == 'url': nome_cartaz = self.trataCartazNome( item_valor) cartaz = self.pesquisaID( nome_cartaz, dim_cartaz) id_dim_cartaz.append(cartaz) guids.append(chave) if item == 'data': id_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').date() hora_data = datetime.strptime( atributo, '%Y-%m-%d %H:%M:%S.%f').time() id_dim_data.append(id_data) hora.append(hora_data) ids = [i + 1 for i in range(0, len(guids))] fato = { 'id_fato_cartaz': ids, 'id_cartaz': id_dim_cartaz, 'data': id_dim_data, 'hora': hora, 'guid': guids } return pd.DataFrame.from_dict(fato) def fatoCartaz(self): df = self.tabelaCartazes() df.to_csv(self.TBL_FAT_CARTAZ, index=False, sep=self.SEP)