示例#1
0
 def run(self):
     count = self.db.session.query(Gender).count()
     if count == 0:
         for item in data:
             gender = Gender()
             gender.name = item.get("name")
             self.db.session.add(gender)
示例#2
0
def fill_gender():
    try:
        db.session.add(Gender(name='Male'))
        db.session.add(Gender(name='Female'))
        db.session.commit()
    except:
        db.session.rollback()
示例#3
0
def create_record(args):
    birthday = datetime.datetime.strptime(args.date, "%d%m%Y").date()
    full_name = ' '.join(re.split('(?=[А-ЯA-Z])', args.full_name)[1:])
    gender = Gender.get_by_id(
        1) if args.gender == 'm' or args.gender == 'man' else Gender.get_by_id(
            2)
    Person.create(full_name=full_name, birthday=birthday, gender=gender)
    print(f'{full_name} added.')
示例#4
0
def fill_gender():
    g1 = Gender()
    g1.name = 'Male'
    g2 = Gender()
    g2.name = 'Female'
    try:
        db.session.add(g1)
        db.session.add(g2)
        db.session.commit()
    except:
        db.session.rollback()
示例#5
0
def get_gender_by_id(_id, lang='en'):
    if lang == 'en':
        item = Gender.objects(_id=_id).exclude("_id").exclude("translation")
        item = json.loads(item.to_json())[0]
        return item

    elif lang:
        item = Gender.objects(_id=_id, translation__language=lang).only("translation").exclude("_id")[0]
        item = item2dict(item)
        item = translation_unify(item, lang)
        return item
    else:
        return []
示例#6
0
def get_gender(lang):
    if lang == 'en':
        items = Gender.objects().exclude("translation")
        items = items2dict(items)

    elif lang:
        items = Gender.objects(translation__language=lang).exclude("name")
        items = items2dict(items)
        items = translations_unify(items, lang)
    else:
        items = []

    return items
示例#7
0
def add_million_records(args):
    date_generator = birthday_generator()

    count_records = 1000
    name_generator = full_name_generator()
    gender_list = [Gender.get_by_id(1), Gender.get_by_id(2)]
    create_records(count_records, date_generator, gender_list, name_generator)

    count_special_records = 100
    name_generator = full_name_start_with_f_generator()
    gender_list = [Gender.get_by_id(1)]
    create_records(count_special_records, date_generator, gender_list,
                   name_generator)
示例#8
0
def update_user(payload={}, fields=[]):
    if 'user_id' in payload:
        user_id = payload.pop('user_id')
        # print(payload)

        user = User.objects(pk=user_id)
        if user is not None:
            user = user.first()

            if 'country' in payload:
                payload['country'] = Country(pk=payload['country'])
            if 'gender' in payload and payload['gender'] is not None:
                payload['gender'] = Gender(pk=int(payload['gender']))
            if 'languages' in payload:
                payload['languages'] = [
                    Language(pk=lang) for lang in payload['languages']
                ]
            if 'department' in payload and payload['department'] is not None:
                payload['department'] = Department(
                    pk=int(payload['department']))
            if 'chair' in payload and payload['chair'] is not None:
                payload['chair'] = Chair(pk=int(payload['chair']))
            if 'bio' in payload: payload["bio"] = payload['bio']
            updated = user.update(**payload)
            print(user)
            return updated >= 1, payload
        else:
            print("Not found")
            return False, None
    else:
        print("Not found")
        return False, None
示例#9
0
文件: app.py 项目: tadinve/diags
def add_patient(patient_id):
    from forms import PatientForm
    if patient_id:
        id = int(patient_id.replace('P00', '').replace(
            'P0', '').replace('P', ''))
        patient = Patient.query.get(id)
    else:
        patient = Patient()
    form = PatientForm(obj=patient)
    if form.validate_on_submit():
        if 'photo' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['photo']
        # if user does not select file, browser also
        # submit an empty part without filename
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = uuid.uuid4().hex+'.' + \
                secure_filename(file.filename).split('.')[-1].lower()
            form.photo.data.save(os.path.join(
                app.config['UPLOAD_FOLDER'], 'patients', filename))
            form.populate_obj(patient)
            patient.photo = filename
            patient.gender = Gender(form.gender.data)
            db.session.add(patient)
            db.session.commit()
            url = url_for('patient_profile', patient_id=repr(patient))
            flash(
                'Patient saved with ID: {}, <a href="{}">view patient profile</a>'.format(repr(patient), url))
        return redirect(url_for('add_patient'))
    return render_template('add-patient.html', form=form)
示例#10
0
def convert_gender():
    torch_net = Gender()

    caffe_net = caffe.Net('gender.prototxt', "gender.caffemodel", caffe.TEST)
    caffe_params = caffe_net.params

    mappings = {
        'conv1_1': torch_net.conv[0].conv1,
        'conv1_2': torch_net.conv[0].conv2,
        'conv2_1': torch_net.conv[1].conv1,
        'conv2_2': torch_net.conv[1].conv2,
        'conv3_1': torch_net.conv[2].conv1,
        'conv3_2': torch_net.conv[2].conv2,
        'conv3_3': torch_net.conv[2].conv3,
        'conv4_1': torch_net.conv[3].conv1,
        'conv4_2': torch_net.conv[3].conv2,
        'conv4_3': torch_net.conv[3].conv3,
        'conv5_1': torch_net.conv[4].conv1,
        'conv5_2': torch_net.conv[4].conv2,
        'conv5_3': torch_net.conv[4].conv3,
        'fc6': torch_net.fc1[0],
        'fc7': torch_net.fc2[0],
        'fc8-2': torch_net.cls,
    }

    for k, layer in mappings.items():
        layer.weight.data.copy_(torch.from_numpy(caffe_params[k][0].data))
        layer.bias.data.copy_(torch.from_numpy(caffe_params[k][1].data))
    torch.save(torch_net, 'pth/gender.pth')
示例#11
0
    def test_patch_movie(self, headers):

        a = Actor(name='Lars Larsson', age=38, gender=Gender('M'))
        a.insert()

        m = Movie(title='Genesis II', date_release='20200320', actors=[a])
        m.insert()

        #
        # change date_release
        #
        res = self.client().patch(f'/movies/{m.id}', headers=headers,
                                                      data=json.dumps({
                                                            'title': 'Genesis II',
                                                            'date_release': '20200328',
                                                            'actors_id': [a.id]
                                                      }),
                                                      content_type='application/json')
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
        self.assertEqual(m.id, data['movie_id'])

        # 
        # check date is changed
        #
        m1 = Movie.query.filter(Movie.id == m.id).one_or_none()
        self.assertEqual(m1.date_release, datetime.datetime.strptime('20200328', '%Y%m%d').date())
示例#12
0
    def test_patch_actor(self, headers):

        a = Actor(name='Lars Larsson', age=38, gender=Gender('M'))
        a.insert()
        a_id = a.id

        #
        # change age to 40
        #
        res = self.client().patch(f'/actors/{a_id}', headers=headers,
                                                     data=json.dumps({
                                                        'name': 'Lars Larsson',
                                                        'age': 40,
                                                        'gender': 'M'
                                                     }),
                                                     content_type='application/json')
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
        self.assertEqual(a_id, data['actor_id'])

        #
        # check age is changed
        #
        a = Actor.query.filter(Actor.id == a_id).one_or_none()
        self.assertEqual(a.age, 40)
示例#13
0
def show_selection_results(args):
    persons = Person.select().order_by(
        Person.full_name).where((Person.full_name.startswith('F'))
                                & (Person.gender == Gender.get_by_id(1)))
    if persons:
        print(f'Total persons: {len(persons)}')
    else:
        print('No math')
示例#14
0
class UserProfile(Resource):
    profile_args = {
        'gender':
        fields.Str(required=True,
                   validate=validate.OneOf(Gender.get_enum_labels())),
        'phone':
        fields.Str(required=True),
        'birthday':
        fields.Date(required=True)
    }

    @jwt_required
    def get(self):
        current_user = get_jwt_identity()
        user = UserModel.find_by_username(current_user)
        if user:
            return {
                'username': user.username,
                'email': user.email,
                'phone': user.phone,
                'gender': user.gender,
                'birthday': str(user.birthday)
            }
        else:
            return {'message': 'user not found'}, 404

    @jwt_required
    @use_args(profile_args)
    def post(self, args):
        current_user = get_jwt_identity()
        user = UserModel.find_by_username(current_user)

        if user:
            try:
                if args:
                    user.birthday = args.get('birthday')
                    user.phone = args.get('phone')
                    user.gender = args.get('gender')
                    user.save_to_db()
                    return {
                        'message':
                        'user {}: profile has been updated.'.format(
                            user.username)
                    }
                else:
                    return {'message': 'wrong parameters'}, 400
            except (Exception, ):
                return {'message': 'Something went wrong'}, 500

        else:
            return {'message': 'user not found'}, 404
示例#15
0
def update_actor(payload, actor_id):
    #
    # Endpoint to update actor. name, age, gender must be provided. movies_id is optional,
    # if provided, endpoint will check the existence of them. Actor can only be updated
    # if all the movies_id exist
    #
    body = request.get_json()

    if not body:
        abort(400)
    else:
        name = body.get('name')
        age = body.get('age')
        gender = body.get('gender')
        movies_id = list(set(body.get('movies_id', [])))

    if name is None or age is None or gender is None:
        abort(400)
    else:
        # determine all the movies exist
        movies = check_movies_exist(movies_id)
        #print(movies)
        if movies is not None or movies_id == []:
            #print(f'{name} {age} {gender} {movies}')
            try:
                actor = Actor.query.filter(Actor.id == actor_id).one_or_none()
            except:
                abort(422)
            if actor:
                try:
                    actor.name = name
                    actor.age = age
                    actor.gender = Gender(gender)
                    actor.movies = movies
                    actor.update()
                except:
                    abort(422)
            else:
                #print('1')
                # The actor that going to be modified does not exist
                abort(404)
        else:
            #print('2')
            # Some or all movies_id do not exist
            abort(404)

    return jsonify({
        'success': True,
        'actor_id': actor.id,
    })
示例#16
0
    def test_add_movie(self, headers):

        a = Actor(name='Lars Larsson', age=38, gender=Gender('M'))
        a.insert()
        
        res = self.client().post('/movies', headers=headers,
                                            data=json.dumps({
                                                'title': 'Genesis II',
                                                'date_release': '20200328',
                                                'actors_id': [a.id]
                                            }),
                                            content_type='application/json')
        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(data['success'], True)
        m_id = data['movie_id']
        m = Movie.query.filter(Movie.id == m_id).one_or_none()
        self.assertIsNotNone(m)
示例#17
0
    def setUp(self):

        #self.app = create_app(os.environ['TEST_DATABASE_URL'])
        self.app = APP
        setup_db(self.app, os.environ['TEST_DATABASE_URL'])
        #create_app(os.environ['TEST_DATABASE_URL'])
        self.client = self.app.test_client
        self.assistant_jwt = os.environ['ASSISTANT_JWT']
        self.director_jwt = os.environ['DIRECTOR_JWT']
        self.producer_jwt = os.environ['PRODUCER_JWT']

        #
        # Add one actor and movie for test
        #
        a = Actor(name='Kenneth Torkel', age='30', gender=Gender('M'))
        a.insert()

        m = Movie(title='Genesis', date_release='20200328', actors=[a])
        m.insert()
示例#18
0
def add_actor(payload):
    #
    # Endpoint to add actor. name, age, gender must be provided. movies_id is optional,
    # if provided, endpoint will check the existence of them. Actor can only be added
    # if all the movies_id exist
    #

    body = request.get_json()

    if not body:
        abort(400)
    else:
        name = body.get('name')
        age = body.get('age')
        gender = body.get('gender')
        movies_id = list(set(body.get('movies_id', [])))

    if name is None or age is None or gender is None:
        abort(400)
    else:
        # determine all the movies exist
        movies = check_movies_exist(movies_id)
        #print(movies)
        if movies is not None or movies_id == []:
            try:
                #print(f'{name} {age} {gender} {movies}')
                actor = Actor(name=name, age=age, gender=Gender(gender))
                actor.movies = movies
                actor.insert()
            except:
                # processing error
                abort(422)
        else:
            # input error, some or all movies do not exist
            abort(404)

    return jsonify({
        'success': True,
        'actor_id': actor.id,
    })
示例#19
0
def create_db_table(args):
    Person.create_table()
    Gender.create_table()
    Gender.create(gender='m')
    Gender.create(gender='w')
    print('Table was created')