def get_entry(self, Report): delimiter = ',' photo_filename = '' photo_source = '' date_str = Report.get_date() tgeu_date_str = date_str try: dt = datetime.strptime(date_str, '%Y-%m-%d') # 2017-11-20 tgeu_date_str = dt.strftime('%d-%b-%Y') # 20-Nov-2017 except ValueError: dt = None birthdate = '' source_ref = 'tgeu/' + tgeu_date_str + '/' + Report.get_name() location = self.get_location_from_location_string( Report.get_location()) state = self.get_state_from_location_string(Report.get_location()) country = self.get_country_from_location_string(Report.get_location()) latitude = '' longitude = '' category = self.get_category_from_cause(Report.get_cause()) description = Report.get_remarks() + '\n\n' + Report.get_source() tweet = '' text = (self.quote_if_necessary(Report.get_name()) + delimiter + self.quote_if_necessary(Report.get_age()) + delimiter + self.quote_if_necessary(birthdate) + delimiter + self.quote_if_necessary(photo_filename) + delimiter + self.quote_if_necessary(photo_source) + delimiter + self.quote_if_necessary(date_str) + delimiter + self.quote_if_necessary(source_ref) + delimiter + self.quote_if_necessary(location) + delimiter + self.quote_if_necessary(state) + delimiter + self.quote_if_necessary(country) + delimiter + self.quote_if_necessary(latitude) + delimiter + self.quote_if_necessary(longitude) + delimiter + self.quote_if_necessary(category) + delimiter + self.quote_if_necessary(Report.get_cause()) + delimiter + self.quote_if_necessary(description) + delimiter + self.quote_if_necessary(tweet) + delimiter) return text
def read(self, pathname): f = open(pathname, encoding="utf-8") reports = [] last_property = '' report = None for line in f: if (line[:1] == '#'): space_pos = line.find(' ', 2) if (space_pos > 0): line = 'Name:' + line[ space_pos:] # Handles the case where the name is something like "# 1 Juliana Ferreira " tokens = line.split(":") if (len(tokens) >= 2): #print('{} = {}'.format(tokens[0], tokens[1]) ) property = tokens[0].lower() value = tokens[1] if (len(tokens) >= 3): value = value + ':' + tokens[2] value = value.strip() last_property = property if (property == 'name'): if (value == 'N.N.'): value = 'Name Unknown' report = None report = Report() reports.append(report) report.set_name(value) elif (property == 'age'): if (value != 'not reported'): report.set_age(value) elif (property == 'date of death'): date_value = self.parse_date(value) report.set_date(date_value) elif (property == 'location of death'): report.set_location(value) elif (property == 'cause of death'): report.set_cause(value) elif (property == 'remarks'): report.set_remarks(value) elif ((property == 'source') or (property == 'sources')): report.set_source(value) elif (last_property == 'remarks'): if (len(tokens) == 1): value = tokens[0] suffix = value.strip() if ((len(suffix) > 0) and (report != None)): remarks = report.get_remarks() + ' ' + suffix report.set_remarks(remarks) elif (((last_property == 'source') or (last_property == 'sources')) and (report != None)): if (len(tokens) == 1): value = tokens[0] suffix = value.strip() if ((len(suffix) > 0) and (report != None)): source = report.get_source() + ' ' + suffix report.set_source(source) f.close() return reports