social-clusters/prepare_dataset/person.py

59 lines
3.0 KiB
Python
Raw Normal View History

2023-06-05 13:02:49 +04:00
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__)