def main(): '''Calls the API, calls the transform method, and print the transformed data ''' host = os.environ['PEOPLE_SERVICE_HOST'] original_data = PeopleServiceClient(host).get_people() if original_data != None: transformed_data = Transformer().transform(original_data) for gender, cats in transformed_data.iteritems(): print gender for cat in cats: print '\t' + cat
def test_key_selector_should_work(self): person = '''{ "name": "Bob", "gender": "Male", "age": 23 }''' self.assertEqual(Transformer().key_selector(json.loads(person)), 'Male')
def test_cats_name_should_be_sorted(self): people = '''[{ "name": "Bob", "gender": "Male", "age": 23, "pets": [{ "name": "Arfield", "type": "Cat" }, { "name": "Fido", "type": "Dog" }] }, { "name": "Jennifer", "gender": "Male", "age": 18, "pets": [{ "name": "Garfield", "type": "Cat" }] }]''' cats = Transformer().transform(json.loads(people))['Male'] self.assertEqual('Arfield', cats[0]) self.assertEqual('Garfield', cats[1])
def test_resolve_empty_pets_should_work(self): person = '''[{ "name": "Aries", "gender": "Male", "age": 32, "pets": [] }]''' pets = Transformer().resolve_pets(json.loads(person)) self.assertEqual(0, len(pets))
def test_resolve_cat_name_with_lower_case_should_work(self): pets = '''[{ "name": "Garfield", "type": "cat" }, { "name": "Fido", "type": "Dog" }]''' pets = Transformer().resolve_cat_name(json.loads(pets)) self.assertEqual(1, len(pets)) self.assertEqual('Garfield', pets[0])
def test_flatten_should_work(self): pets = '''[[{ "name": "Garfield", "type": "cat" }, { "name": "Fido", "type": "Dog" }],[{ "name": "Momo", "type": "Dog" }]]''' pets = Transformer().flatten(json.loads(pets)) self.assertEqual(3, len(pets))
def test_resolve_pets_should_work(self): person = '''[{ "name": "Bob", "gender": "Male", "age": 23, "pets": [{ "name": "Garfield", "type": "Cat" }, { "name": "Fido", "type": "Dog" }] }]''' pets = Transformer().resolve_pets(json.loads(person)) self.assertEqual(2, len(pets))
def test_resolve_cat_name_with_empty_list_should_work(self): pets = [] pets = Transformer().resolve_cat_name(pets) self.assertEqual(0, len(pets))
def test_flatten_empty_should_work(self): pets = [] pets = Transformer().flatten(pets) self.assertEqual(0, len(pets))
def fit(self, model_path): model = Transformer() model.load_state_dict(torch.load(model_path)) self.model = model.eval() return self