def METHOD_NAME(self, poi):
    poi_attributes = poi.get("data", {}).get("general")
    if poi_attributes:
        item = DictParser.parse(poi_attributes)
        item["street"] = None
        # 'locale' is inconsistent, sometimes it's is city, sometimes it's region - skip it
        if address := poi_attributes.get("address"):
            item["street_address"] = address.get("street")
            item["addr_full"] = address.get("fullAddress")
            if coordinates := address.get("mapPosition", {}).get("coordinates"):
                if len(coordinates) != 0:
                    item["lat"] = coordinates[1]
                    item["lon"] = coordinates[0]
        if contacts := poi_attributes.get("contacts"):
            item["email"] = contacts.get("email")
            item["website"] = contacts.get("website")
            if phones := contacts.get("phones"):
                item["phone"] = "; ".join([phone["value"] for phone in phones])
        item["image"] = poi_attributes.get("image", {}).get("url")
        self.parse_category(item, poi_attributes)
        self.parse_hours(item, poi_attributes)
        self.parse_museum_types(item, poi_attributes)
        yield item