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)
def fill_gender(): try: db.session.add(Gender(name='Male')) db.session.add(Gender(name='Female')) db.session.commit() except: db.session.rollback()
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.')
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()
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 []
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
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)
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
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)
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')
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())
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)
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')
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
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, })
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)
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()
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, })
def create_db_table(args): Person.create_table() Gender.create_table() Gender.create(gender='m') Gender.create(gender='w') print('Table was created')