Esempio n. 1
0
def post_data():
    json_s, errors = first_validate()
    lst_cit = json_s['citizens']
    try:
        import_id = Import_id.query.all()[-1].last_id + 1
    except:
        import_id = 1
    last_id = Import_id(last_id=import_id)
    db.session.add(last_id)
    if errors:
        return errors, 400
    try:
        db.create_all()
        relat_dict = dict()
        for cit in lst_cit:
            editors = list(cit)
            for line in editors:
                if line not in [
                        'citizen_id', 'town', 'street', 'building',
                        'apartment', 'name', 'birth_date', 'gender',
                        'relatives'
                ]:
                    return "Invalid keys in citizen\n", 404
            citizen_id = cit['citizen_id']
            town = cit['town']
            street = cit['street']
            building = cit['building']
            apartment = cit['apartment']
            name = cit['name']
            birth_date = datetime.datetime.strptime(cit['birth_date'],
                                                    '%d.%m.%Y').date()
            if datetime.datetime.now().date() < birth_date:
                return "Date of some person is too large\n", 400
            gender = cit['gender']
            if len(str(cit['relatives'])) > 2:
                relatives = list(
                    map(int,
                        str(cit['relatives'])[1:-1].split(',')))
            else:
                relatives = []
            citizen = Citizen(citizen_id=citizen_id,
                              town=town,
                              street=street,
                              building=building,
                              apartment=apartment,
                              name=name,
                              birth_date=birth_date,
                              gender=gender,
                              relatives=relatives,
                              import_id=import_id)
            db.session.add(citizen)
            relat_dict[citizen_id] = relatives
        if last_valid(lst_cit, import_id, relat_dict):
            return "Invalid arguments\n", 400
        db.session.commit()
        return jsonify({"data": {"import_id": citizen.import_id}}), 201
    except:
        return "Bad Request\n", 400
Esempio n. 2
0
 def search(self):
     step_size = np.array([
         (self.bounds[i][1] - self.bounds[i][0]) * self.init_fac
         for i in range(Citizen.P_SIZE)
     ])
     current = Citizen()
     self.evaluate(current)
     count = 0
     gen = 0
     while gen < self.max_gen:
         big_stepsize = self.large_step_size(gen, step_size)
         step, big_step = self.take_steps(current, step_size, big_stepsize)
         if step.get_error() <= current.get_error() or \
                 big_step.get_error() <= current.get_error():
             if big_step.get_error() <= step.get_error():
                 step_size, current = big_stepsize, big_step
             else:
                 current = step
             count = 0
         else:
             count += 1
             if count >= self.max_no_impr:
                 count = 0
                 step_size = (step_size / self.s_factor)
         self.best = current
         self.error.append(current.get_error())
         print("iteration:{}, error:{}".format(gen, current.get_error()))
         gen += 1
Esempio n. 3
0
 def de_rand_1_bin(self, p0, p1, p2, p3):
     cut = randint_bound(Citizen.P_SIZE)
     params = [0 for _ in range(Citizen.P_SIZE)]
     for i in range(4):
         if i == cut or rand() < self.cr:
             aux = p3[i] + self.wf * (p1[i] - p2[i])
             aux = Citizen.BOUNDS[i][0] if (
                 aux < Citizen.BOUNDS[i][0]) else aux
             aux = Citizen.BOUNDS[i][1] if (
                 aux > Citizen.BOUNDS[i][1]) else aux
             params[i] = aux
         else:
             params[i] = p0[i]
     return Citizen(params)
Esempio n. 4
0
 def search(self):
     gen = 0
     candidate = Citizen()
     self.evaluate(candidate)
     while gen < self.max_gen:
         neighbor = self.random_neighbor(candidate.get_values())
         self.evaluate(neighbor)
         if neighbor.get_error() <= candidate.get_error():
             candidate = neighbor
         self.best = candidate
         self.error.append(candidate.get_error())
         print('iteration: {}, error: {}'.format(gen,
                                                 candidate.get_error()))
         gen += 1
Esempio n. 5
0
def import_data():
    try:
        listOfCitizens = request.get_json()
        listOfCitizens = listOfCitizens["citizens"]
        import_id = generate_random_number()
        for citizen in listOfCitizens:
            citizen_id = citizen['citizen_id']
            if citizen_id < 0:
                return "The citizen_id is not valid", 400

            town = citizen['town']
            flag = False
            for c in town:
                if c.isalpha() or c.isdigit():
                    flag = True
            if not flag or len(town) > 256 or len(town) == 0:
                return "The town string is not valid", 400

            street = citizen['street']
            flag = False
            for c in street:
                if c.isalpha() or c.isdigit():
                    flag = True
            if not flag or len(street) > 256 or len(street) == 0:
                return "The street string is not valid", 400

            building = citizen['building']
            flag = False
            for c in building:
                if c.isalpha() or c.isdigit():
                    flag = True
            if not flag or len(building) > 256 or len(building) == 0:
                return "The building string is not valid", 400

            apartment = citizen['apartment']
            if apartment < 0:
                return "The apartment is not valid", 400

            name = citizen['name']
            if len(name) > 256 or len(name) == 0:
                return "The name string is not valid", 400

            birth_date = citizen['birth_date']
            if check_date(birth_date) == 0:
                return "The date of birth is not valid", 400

            gender = citizen['gender']
            if gender != "male" or gender != "female":
                return "The gender string is not valid", 400

            relatives = ' '.join([str(e) for e in citizen['relatives']])
            citi = Citizen(import_id=import_id,
                           citizen_id=citizen_id,
                           town=town,
                           street=street,
                           building=building,
                           apartment=apartment,
                           name=name,
                           birth_date=birth_date,
                           gender=gender,
                           relatives=relatives)
            db.session.add(citi)
            db.session.commit()
        if checkrelatives(listOfCitizens) == 0:
            '''
            delete_this = Citizen.query.filter_by(import_id=import_id)
            for citi in delete_this:
                db.session.delete(citi)
            db.session.commit()
            '''
            return "You have a trouble with relatives relationship", 400
        return jsonify({"data": {"import_id": import_id}}), 201
    except Exception as e:
        print("\n \t exception \n")
        print(str(e))
        return "The input data is not correct", 400
Esempio n. 6
0
def rebuild_database():
    db.drop_all()
    db.create_all()
    household = Household(
        name='Barcelona-001',
        number_of_members='5',
        region='Region IV-A',
        province='Quezon',
        city='Lucena',
        barangay='Ilayang Iyam',
        address='12 Zamora St. Ciudad Maharlika, Ilayang Iyam, Lucena City',
        cluster='2011334281',
        contact='09159484200',
        status='Green',
        remarks='')

    household1 = Household(name='Barcelona-002',
                           number_of_members=3,
                           region='Region IV-A',
                           province='Quezon',
                           city='Lucena',
                           barangay='Isabang',
                           address='Barcelona Compound, Lucena City',
                           cluster='2011334281',
                           contact='09159484200',
                           status='Green',
                           remarks='')

    household2 = Household(name='Armamento-001',
                           number_of_members=3,
                           region='Region IV-A',
                           province='Quezon',
                           city='Lucena',
                           barangay='Gulang Gulang',
                           address='Capistrano Subdivision, Lucena City',
                           cluster='2011334282',
                           contact='09159484200',
                           status='Green',
                           remarks='')

    image = HouseholdImage(
        household_id=1, path='../static/images/households/test_household.jpg')

    image1 = HouseholdImage(
        household_id=2, path='../static/images/households/test_household1.jpg')

    image2 = HouseholdImage(
        household_id=3, path='../static/images/households/test_household2.jpg')

    citizen1 = Citizen(last_name='Barcelona',
                       first_name='Jasper Oliver',
                       middle_name='Estrada',
                       gender='Male',
                       age=23,
                       birthday='June 11, 1994',
                       employment_status='Employed',
                       occupation='Chief Executive Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen2 = Citizen(last_name='Barcelona',
                       first_name='Flora',
                       middle_name='Estrada',
                       gender='Female',
                       age=63,
                       birthday='May 29, 1953',
                       employment_status='Retired',
                       occupation='Government Health Worker',
                       company='City Health Office',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Widowed',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen3 = Citizen(last_name='Barcelona',
                       first_name='Ma Angelica',
                       middle_name='Estrada',
                       gender='Female',
                       age=29,
                       birthday='December 18, 1988',
                       employment_status='Employed',
                       occupation='Web Content Developer',
                       company='Intercontinental Hotels Group',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen4 = Citizen(last_name='Barcelona',
                       first_name='Ma April Therese',
                       middle_name='Estrada',
                       gender='Female',
                       age=34,
                       birthday='April 26, 1986',
                       employment_status='Employed',
                       occupation='Technical Support',
                       company='Direct with Hotels',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Child',
                       status='Green',
                       remarks='')

    citizen5 = Citizen(last_name='Sacristia',
                       first_name='Rolando',
                       middle_name='Dela Cruz',
                       gender='Male',
                       age=46,
                       birthday='Augyst 08, 1976',
                       employment_status='Employed',
                       occupation='House Helper',
                       company='N/A',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='09159484200',
                       household_id=1,
                       household_name='Barcelona-001',
                       position='Resident',
                       status='Green',
                       remarks='')

    citizen6 = Citizen(last_name='Barcelona',
                       first_name='Jadd Paolo Luigi',
                       middle_name='Ong',
                       gender='Male',
                       age=29,
                       birthday='April 14, 1986',
                       employment_status='Employed',
                       occupation='Chief Marketing Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen7 = Citizen(last_name='Barcelona',
                       first_name='Cyril Joy',
                       middle_name='Lucero',
                       gender='Female',
                       age=23,
                       birthday='April 25, 1986',
                       employment_status='Employed',
                       occupation='Dentist',
                       company='Lucero Dental Clinic',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Spouse',
                       status='Green',
                       remarks='')

    citizen8 = Citizen(last_name='Barcelona',
                       first_name='Stephen Skylar',
                       middle_name='Lucero',
                       gender='Male',
                       age=1,
                       birthday='November 15, 2017',
                       employment_status='Unemployed',
                       occupation='N/A',
                       company='N/A',
                       email='N/A',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Single',
                       msisdn='N/A',
                       household_id=2,
                       household_name='Barcelona-002',
                       position='Spouse',
                       status='Green',
                       remarks='')

    citizen9 = Citizen(last_name='Armamento',
                       first_name='Jan Paolo',
                       middle_name='Calzado',
                       gender='Male',
                       age=23,
                       birthday='January 23, 1994',
                       employment_status='Employed',
                       occupation='Chief Infrastructure Officer',
                       company='Pisara',
                       email='*****@*****.**',
                       citizenship='Filipino',
                       religion='Roman Catholic',
                       civil_status='Married',
                       msisdn='09159484200',
                       household_id=3,
                       household_name='Armamento-001',
                       position='Head',
                       status='Green',
                       remarks='')

    citizen10 = Citizen(last_name='Armamento',
                        first_name='Caithlin Lois',
                        middle_name='Nicolas',
                        gender='Female',
                        age=23,
                        birthday='January 23, 1994',
                        employment_status='Unemployed',
                        occupation='Student',
                        company='MSEUF',
                        email='N/A',
                        citizenship='Filipino',
                        religion='Roman Catholic',
                        civil_status='Married',
                        msisdn='09159484200',
                        household_id=3,
                        household_name='Armamento-001',
                        position='Spouse',
                        status='Green',
                        remarks='')

    citizen11 = Citizen(last_name='Armamento',
                        first_name='Coco',
                        middle_name='Nicolas',
                        gender='Female',
                        age=1,
                        birthday='January 23, 1994',
                        employment_status='Unemployed',
                        occupation='N/A',
                        company='N/A',
                        email='N/A',
                        citizenship='Filipino',
                        religion='Roman Catholic',
                        civil_status='Single',
                        msisdn='N/A',
                        household_id=3,
                        household_name='Armamento-001',
                        position='Child',
                        status='Green',
                        remarks='')

    admin_user = AdminUser(email='*****@*****.**',
                           password='******',
                           status='Active',
                           name="Jasper Barcelona")

    db.session.add(household)
    db.session.add(household1)
    db.session.add(household2)

    db.session.add(citizen1)
    db.session.add(citizen2)
    db.session.add(citizen3)
    db.session.add(citizen4)
    db.session.add(citizen5)
    db.session.add(citizen6)
    db.session.add(citizen7)
    db.session.add(citizen8)
    db.session.add(citizen9)
    db.session.add(citizen10)
    db.session.add(citizen11)

    db.session.add(image)
    db.session.add(image1)
    db.session.add(image2)

    db.session.add(admin_user)

    db.session.commit()

    return jsonify(status='success'), 201
Esempio n. 7
0
 def generate_sample(self):
     sample = Citizen()
     for i in range(Citizen.P_SIZE):
         aux = rand_bound(self.means[i], self.stdevs[i])
         sample.set_value(i, aux)
     return sample
Esempio n. 8
0
 def create_pop(self):
     return [Citizen() for _ in range(self.pop_size)]
Esempio n. 9
0
 def random_neighbor(self, params=[]):
     mutant = Citizen(params)
     pos = randint_bound(Citizen.P_SIZE)
     mutant.set_value(pos)
     return mutant
Esempio n. 10
0
def main():
    user_interface = UserInterface()
    name, sex, age, cpf = user_interface.read_citizen_data()
    new_citizen = Citizen(name, sex, age, cpf)
    user_interface.show_citizen_data(new_citizen)
Esempio n. 11
0
 def cross(self, p1, p2):
     v_p1 = p1.get_values()
     v_p2 = p2.get_values()
     cut_p = randint_bound(1, 3)
     v_child = v_p1[:cut_p] + v_p2[cut_p:]
     return Citizen(v_child)