from prepare_dataset.career import Career from prepare_dataset.military import Military from prepare_dataset.raw_data import RawData from prepare_dataset.school import School from prepare_dataset.university import University class Person: def __init__(self, raw_person): data = RawData(raw_person) self.id = hash(str(data.id)) self.is_closed = data.is_closed self.deactivated = data.deactivated is not None self.has_photo = data.has_photo == 1 self.followers_count = data.followers_count self.sex = data.get_int('sex') self.bdate = RawData.get_date_st(data.bdate) self.relation = data.get_int('relation') self.country_id = RawData.get_int_st(data.country, 'id') self.country = RawData.get_str_st(data.country, 'title') self.city_id = RawData.get_int_st(data.city, 'id') self.city = RawData.get_str_st(data.city, 'title') self.home_town = data.get_str('home_town') self.status = data.get_str('status') self.site = data.site is not None self.facebook = data.facebook is not None self.twitter = data.twitter is not None self.instagram = data.instagram is not None self.mobile_phone = data.mobile_phone is not None self.activities = data.get_str('activities') self.interests = data.get_str('interests') self.books = data.get_str('books') self.movies = data.get_str('movies') self.music = data.get_str('music') self.tv = data.get_str('tv') self.games = data.get_str('games') self.quotes = data.get_str('quotes') self.about = data.get_str('about') personal = None if data.personal is not None: if len(data.personal) == 1: personal = data.personal[0] if len(data.personal) > 1: raise Exception(f'PERSONAL {data.id}') self.political = RawData.get_int_st(personal, 'political') self.religion = RawData.get_str_st(personal, 'religion') self.inspired_by = RawData.get_str_st(personal, 'inspired_by') self.people_main = RawData.get_int_st(personal, 'people_main') self.life_main = RawData.get_int_st(personal, 'life_main') self.smoking = RawData.get_int_st(personal, 'smoking') self.alcohol = RawData.get_int_st(personal, 'alcohol') self.relatives = RawData.get_collection_st(data.relatives, lambda item: item['type']) self.occupation_type = RawData.get_str_st(data.occupation, 'type') self.occupation_place_name = RawData.get_str_st(data.occupation, 'name') self.universities = RawData.get_collection_st(data.universities, lambda item: University(item).__dict__) self.schools = RawData.get_collection_st(data.schools, lambda item: School(item).__dict__) self.career = RawData.get_collection_st(data.career, lambda item: Career(item).__dict__) self.military = RawData.get_collection_st(data.military, lambda item: Military(item).__dict__)