@cached_property
    def countries(self):
        my_countries = countries.CountryList()

        try:
            country_data = self.get_metric_raw_value("altmetric_com", "demographics")["geo"]["twitter"]
            for country in country_data:
                my_countries.add_from_metric(
                    country,
                    "altmetric_com:tweets",
                    country_data[country]
                )
        except (KeyError, TypeError):
            pass

        country_data = self.get_metric_raw_value("mendeley", "countries")
        try:
            for country in country_data:
                my_countries.add_from_metric(
                    country,
                    "mendeley:readers",
                    country_data[country]
                )
        except (KeyError, TypeError):
            pass

        country_data = self.get_metric_raw_value("impactstory", "countries")
        try:
            for country in country_data:
                my_countries.add_from_metric(
                    country,
                    "impactstory:views",
                    country_data[country]
                )
        except (KeyError, __HOLE__):
            pass

        return my_countries
dataset/ETHPy150Open Impactstory/total-impact-webapp/totalimpactwebapp/product.py/Product.countries