def download_ncm(fileName): try: import requests except: mp.install_lib('requests') mp.restart_program() downurl = "https://portalunico.siscomex.gov.br/classif/api/publico/nomenclatura/download/json" try: dados = requests.get(downurl) with open(fileName, "wb") as arquivo: arquivo.write(dados.content) return True except: pass return False
# By: will.i.am | Harmonia - RS - Brasil # 2021.11.20 try: import os from os import path import multiplat as mp import backend as be from math import sqrt except: print("Biblioteca necessária não disponível.\n\nEstamos finalizando.") quit() try: import matplotlib.pyplot as pyplot except: mp.install_lib("matplotlib") mp.restart_program() def inicio(): mp.limpar_terminal() print(' By: will.i.am -> github.com/williampilger\n\n\n ') print(" > Gráfico de Controle Estatístico do Processo para Atributos <") print(" > Gráfico para FRAÇÃO NÃO-CONFORME <") n = int(input("Informe a quantidade de elementos por amostra: ")) print( f"\n\n Digite abaixo a quantidade de itens NÃO-CONFORME de cada amostra de {n} elementos.\nDigite -1 para parar a coleta de amostras.\n" )
def main(): try: import readchar except: mp.install_lib('readchar') mp.restart_program() fileName = 'ncm.data.json' ResultPrint = 20 dic = load_ncm(fileName) if (not dic): print("Iniciando download dos dados de NCM") if (download_ncm(fileName)): print("> OK <") mp.restart_program() else: pesquisa = '' repesquisa = False p = [] #array com as opções condizentes com a pesquisa sel = -1 #indice do ítem selecionado. -1 quando nenhum selecionado while True: mp.limpar_terminal() print("\n\n By: William Pilger") print( f"\n Ultima atualização dos dados de NCM: {dic['Data_Ultima_Atualizacao_NCM']}\n" ) print(f"\n Faça sua pesquisa: {pesquisa}\n") if (repesquisa): sel = -1 p = pesquisa_dict(dic['Nomenclaturas'], pesquisa) repesquisa = False maxResultPrint = ResultPrint if (len(p) > 0): #reprinta a lista de itens coerentes index = 0 i = 0 for item in p: i += 1 if (i > maxResultPrint): break if (sel == index): carac = '♦' else: carac = ' ' print( f" {carac} {dic['Nomenclaturas'][item]['Codigo']:10} - {dic['Nomenclaturas'][item]['Descricao'][:80]}" ) index += 1 dig = readchar.readkey() if (dig == '\x1b'): #esc be.sair(1) elif (dig == '\t' or dig == '\r'): #tab ou enter if (sel != -1): #existe um ítem selecionado detalha(dic['Nomenclaturas'][p[sel]]) else: maxResultPrint += 10 elif (dig == '\x1b[A'): #seta pra CIMA if (sel > 0): sel -= 1 elif (dig == '\x1b[B'): #seta pra BAIXO if (sel < len(p)): sel += 1 elif (dig == '\x08'): #back space pesquisa = pesquisa[:-1] repesquisa = True else: pesquisa += dig repesquisa = True
# By: will.i.am | AuthentyAE | Bom Princípio - RS - Brasil try: import os import multiplat as mp import backend as be import time except: print("Biblioteca necessária não disponível.\n\nEstamos finalizando.") quit() try: import pyautogui except: mp.install_lib('pyautogui') mp.restart_program() try: import readchar except: mp.install_lib('readchar') mp.restart_program() #retorna dicionário com chaves e dados salvos em arquivo def carrega_chaves(fileName): dic = {} if not os.path.exists(fileName): return dic with open(fileName, "r") as arquivo: for linha in arquivo: linha = linha.replace('\n', '')#tirar fim de linha par = linha.split('\t')