Gets a country from its name

        Args:
            country_name: country name

        Returns: Country

def get_country_by_name(self, country_name: str) -> typing.Optional['Country']:
        """
        Gets a country from its name

        Args:
            country_name: country name

        Returns: Country
        """
        VALID_STR.validate(country_name, 'get_country_by_name', exc=ValueError)
        if country_name not in self._countries_by_name.keys():
            for country in self.countries:

                if country.country_name == country_name:
                    self._countries_by_name[country_name] = country
                    return country
            raise ValueError(country_name)
        else:
            return self._countries_by_name[country_name]