def test_field_metadata(): expected = { 'field_id': 3, 'title': 'Verbal interview duration', 'availability': 0, 'stability': 0, 'private': 0, 'value_type': 11, 'base_type': 0, 'item_type': 0, 'strata': 2, 'instanced': 1, 'arrayed': 0, 'sexed': 0, 'units': 'seconds', 'main_category': 152, 'encoding_id': 0, 'instance_id': 2, 'instance_min': 0, 'instance_max': 3, 'array_min': 0, 'array_max': 0, 'notes': 'Time taken for interview', 'debut': '2012-01-05', 'version': '2019-09-05', 'num_participants': 501673, 'item_count': 561869, 'showcase_order': 0.0 } assert helpers.get_field_metadata(3) == expected assert helpers.get_field_metadata(999999) is None
if __name__ == '__main__': df_output = pd.DataFrame() df_output['eid'] = helpers.gen_fake_ids(TOTAL_PATIENTS) # User has supplied field list if args.field is not None: all_field_ids = helpers.get_field_ids() fields_to_process = set(all_field_ids).intersection(set(args.field)) assert len(fields_to_process) > 0, "Fields not found in lookup file." else: fields_to_process = helpers.get_field_ids() for field_id in tqdm(fields_to_process): r = helpers.get_field_metadata(field_id) if args.verbose is True: print(r) field_title = r['title'] field_data_type = r['value_type'] field_encoding_id = r['encoding_id'] # Check if a field is instanced # i.e. it has been collected at different # recruitment instances. field_instance_max = r.get('instance_max') if field_instance_max == 0: field_instance_max = 1