def __init__(self): parser = argparse.ArgumentParser( description='File search for dbSchema') parser.add_argument( '-n', '--name', action='store', nargs='+', dest='name', default='', required=False, help='Procura e lista todos os registros com o \'name\' informada.' ) parser.add_argument( '-l', '--location', action='store', nargs='+', dest='location', default='', required=False, help= 'Procura e lista todos os registros com a \'location\' informada.') parser.add_argument( '-a', '--and', action='store_true', dest='search_and', default=False, required=False, help= 'Se utilizado será feito a busca no \'name\' E \'location\'( \'name\' e \'location\' obrigatórios).' ) parser.add_argument( '-c', '--create', action='store_true', dest='create', default=None, required=False, help='Cria um novo registro. \'name\' e \'location\' obrigatórios.' ) parser.add_argument( '-d', '--delete', action='store_true', dest='delete', default=False, required=False, help= 'Apaga registro com o \'name\' e \'location\' passado.(\'name\' e \'location\' obrigatórios.)' ) parser.add_argument( '-u', '--update', action='store', dest='update', default=None, required=False, help= 'Altera o \'owner\' do registro encontrado para o do usuario informado. Se passar APAGAR o \'owner\' do registro encontrado será limpo. (\'name\' e \'location\' obrigatórios.)' ) parser.add_argument( '-p', '--specialties', action='store', nargs='+', dest='specialties', default='', required=False, help= 'Cria a informaçao passada na posiçao specialties. Utilizado somente quando for criar um registro novo.' ) parser.add_argument( '-s', '--size', action='store', dest='size', default='', required=False, help= 'Cria a informaçao passada na posiçao size. Utilizado somente quando for criar um registro novo.' ) parser.add_argument( '-r', '--rate', action='store', dest='rate', default='', required=False, help= 'Cria a informaçao passada na posiçao rate. Utilizado somente quando for criar um registro novo.' ) arguments = parser.parse_args() self.name = ' '.join(arguments.name) self.location = ' '.join(arguments.location) self.specialties = ' '.join(arguments.specialties) self.size = arguments.size self.rate = arguments.rate self.crud = crud.CRUD() self.matches = self.crud.find({ 'name': self.name, 'location': self.location, 'search_and': arguments.search_and }) if arguments.create: self.check_required_parameters self.crud.create([ self.name, self.location, self.specialties, self.size, self.rate ]) print 'Registro criado com sucesso!' elif arguments.delete: print self.draw_table(self.matches) if self.matches: delete_yes_not = raw_input( '\nDeseja deletar todos os registros exibidos? \nDigite SIM para apagar e NAO para cancelar a exclusão. ' ) if delete_yes_not.lower() in ['sim', 's']: for recNo in self.matches: self.crud.delete(recNo) print 'Registro(s) apagado(s) com sucesso!' elif delete_yes_not.lower() in ['nao', 'não', 'n']: print 'A exclusão foi cancelada' else: print 'Opcão inválida, a exclusão foi cancelada.' elif arguments.update: self.check_required_parameters(self.name, self.location) print self.draw_table(self.matches) if self.matches: update_yes_not = raw_input( '\nDeseja alterar todos os registros exibidos? \nDigite SIM para alterar e NAO para cancelar a alteração. ' ) if update_yes_not.lower() in ['sim', 's']: try: int(arguments.update) for x in self.matches: self.crud.update(x, {'owner': arguments.update}) mensage = 'Registro atualizado com sucesso!' except: if arguments.update.lower() == 'apagar': for x in self.matches: self.crud.update(x, {'owner': ' '}) mensage = 'Registro atualizado com sucesso!' else: mensage = 'Alteraçao foi Cancelada. Digite apenas numeros ou apagar.' else: mensage = 'Alteraçao foi Cancelada' print '\n' + mensage else: print self.draw_table(self.matches)
import sys import dlib import cv2 import face_recognition import os import psycopg2 import crud crudOperation = crud.CRUD() class matchFace: def searchMatch(self, file_name): data = None query = "" entry_encoding = "" try: #face_detector = dlib.get_frontal_face_detector() #detected_faces = face_detector(io.BytesIO(file_name), 1) threshold = 0.6 retorna = "r1" image_entry = face_recognition.load_image_file(file_name) retorna = "r2" entry_encoding = face_recognition.face_encodings(image_entry)[0] retorna = "r3" if (len(entry_encoding) > 0): retorna = "r4" query = """select "faceId","tenantid" from kycface."vectors" where sqrt(power(CUBE(array[{}]) <-> "vec_low", 2) + power(CUBE(array[{}]) <-> "vec_high", 2)) <= {} """.format( ','.join(str(s) for s in entry_encoding[0:64]),
def setUp(self): self.crud = crud.CRUD()