diff options
Diffstat (limited to 'entities/person.py')
-rw-r--r-- | entities/person.py | 152 |
1 files changed, 76 insertions, 76 deletions
diff --git a/entities/person.py b/entities/person.py index a5aa396..b315aac 100644 --- a/entities/person.py +++ b/entities/person.py @@ -1,76 +1,76 @@ -import json
-
-from entities.basic_entity import BasicEntity
-
-
-class Person(BasicEntity):
- def __init__(self, name, date_of_birth, name_in_langs, bio_data, comments_list, profession):
- """
-
- :param name:
- :param date_of_birth:
- :param name_in_langs: Mapping of the persons's name in various languages, as a dictionary. For example:
- {
- "latin": "George"
- "heb": "[george in hebrew]"
- }
- """
- self.name = name
- years_parts = date_of_birth.split('-')
- if (len(years_parts) == 2):
- self.birth_year = years_parts[0]
- self.death_year = years_parts[1]
- else:
- self.birth_year = date_of_birth.strip()
- self.death_year = ''
- self.name_in_langs = name_in_langs
- '''
- place_of_birth = list()
- place_of_death = list()
- profession = list()
- for comment in bio_data:
- encoded_comment = ''.join(comment).strip()
- if encoded_comment.startswith(u"מקום לידה: "):
- place_of_birth.append(encoded_comment.partition(u"מקום לידה: ")[2])
- if encoded_comment.startswith(u"מקום פטירה: "):
- place_of_death.append(encoded_comment.partition(u"מקום פטירה: ")[2])
- if encoded_comment.startswith(u"מקצוע: "):
- profession.append(encoded_comment.partition(u"מקום פטירה: ")[2])
-
- self.place_of_birth = place_of_birth
- self.place_of_death = place_of_death
- self.profession = profession
- '''
- bio_data_dict = dict()
- for elem in bio_data:
- elem_splitted = elem.split(":")
- if len(elem_splitted) == 2:
- bio_data_key = elem_splitted[0]
- bio_data_value = elem_splitted[1]
- if bio_data_key in bio_data_dict:
- bio_data_dict.get(bio_data_key).append(bio_data_value)
- else:
- bio_data_dict.update(
- {bio_data_key: [bio_data_value]}
- )
- else:
- bio_data_dict.update({elem: ''})
- self.bio_data = bio_data_dict
- self.comments_list = comments_list
- self.profession = profession
-
- CSV_FIELDS = ["name", "biodata", "comments"]
- TYPE = 'PERSON'
-
- def print_entity(self):
- print("Name = " + self.name)
- print("Birth year = " + self.birth_year)
- print("Death year = " + self.death_year)
- print("Names in langs = " + str(self.name_in_langs))
- print("Bio Data = " + str(self.bio_data))
- print("Comments = " + str(self.comments_list))
- print("Profession = " + str(self.profession))
-
- def to_csv_dict(self):
- return {'name': self.name, 'biodata': self.bio_data,
- 'comments': json.dumps(self.comments_list, ensure_ascii=False)}
+import json + +from entities.basic_entity import BasicEntity + + +class Person(BasicEntity): + def __init__(self, name, date_of_birth, name_in_langs, bio_data, comments_list, profession): + """ + + :param name: + :param date_of_birth: + :param name_in_langs: Mapping of the persons's name in various languages, as a dictionary. For example: + { + "latin": "George" + "heb": "[george in hebrew]" + } + """ + self.name = name + years_parts = date_of_birth.split('-') + if (len(years_parts) == 2): + self.birth_year = years_parts[0] + self.death_year = years_parts[1] + else: + self.birth_year = date_of_birth.strip() + self.death_year = '' + self.name_in_langs = name_in_langs + ''' + place_of_birth = list() + place_of_death = list() + profession = list() + for comment in bio_data: + encoded_comment = ''.join(comment).strip() + if encoded_comment.startswith(u"מקום לידה: "): + place_of_birth.append(encoded_comment.partition(u"מקום לידה: ")[2]) + if encoded_comment.startswith(u"מקום פטירה: "): + place_of_death.append(encoded_comment.partition(u"מקום פטירה: ")[2]) + if encoded_comment.startswith(u"מקצוע: "): + profession.append(encoded_comment.partition(u"מקום פטירה: ")[2]) + + self.place_of_birth = place_of_birth + self.place_of_death = place_of_death + self.profession = profession + ''' + bio_data_dict = dict() + for elem in bio_data: + elem_splitted = elem.split(":") + if len(elem_splitted) == 2: + bio_data_key = elem_splitted[0] + bio_data_value = elem_splitted[1] + if bio_data_key in bio_data_dict: + bio_data_dict.get(bio_data_key).append(bio_data_value) + else: + bio_data_dict.update( + {bio_data_key: [bio_data_value]} + ) + else: + bio_data_dict.update({elem: ''}) + self.bio_data = bio_data_dict + self.comments_list = comments_list + self.profession = profession + + CSV_FIELDS = ["name", "biodata", "comments"] + TYPE = 'PERSON' + + def print_entity(self): + print("Name = " + self.name) + print("Birth year = " + self.birth_year) + print("Death year = " + self.death_year) + print("Names in langs = " + str(self.name_in_langs)) + print("Bio Data = " + str(self.bio_data)) + print("Comments = " + str(self.comments_list)) + print("Profession = " + str(self.profession)) + + def to_csv_dict(self): + return {'name': self.name, 'biodata': self.bio_data, + 'comments': json.dumps(self.comments_list, ensure_ascii=False)} |