def _normalize(self): # Derived values - used to make downstream queries quicker self.datetime = datetime.utcfromtimestamp(self.time_stamp) try: r = Ref(self.ref) self.context_refs = [r.normal() for r in r.all_context_refs()] self.categories = r.index.categories self.authors = getattr(r.index, "authors", []) self.is_sheet = r.index.title == "Sheet" if self.is_sheet: self.sheet_id = r.sections[0] if not self.secondary and not self.is_sheet and getattr( self, "language", None) != "hebrew" and r.is_empty("en"): # logically, this would be on frontend, but easier here. self.language = "hebrew" except SheetNotFoundError: self.context_refs = [self.ref] self.categories = ["_unlisted"] self.authors = [] self.is_sheet = True except InputError: # Ref failed to resolve self.context_refs = [self.ref] self.categories = [] self.authors = [] self.is_sheet = False except KeyError: # is_text_translated() stumbled on a bad version state pass