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)
示例#2
0
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]),
示例#3
0
 def setUp(self):
     self.crud = crud.CRUD()