# Path: incf/countryutils/data.py

# 
# Path: incf/countryutils/transformations.py
# def is_string_type(obj):
# def ccn_to_ccn(code):
# def ccn_to_cca2(code):
# def ccn_to_cca3(code):
# def ccn_to_cn(code):
# def ccn_to_con(code):
# def cn_to_ccn(code):
# def cca2_to_ccn(code):
# def cca3_to_ccn(code):
# def ccn_to_ctca2(code):
# def ctca2_to_ccn(code):
# def ccn_to_ctn(code):
# def cca_to_ccn(code):
# def cca_to_cn(code):
# def cc_to_ccn(code):
# def cc_to_cn(code):
# def cc_to_con(code):
# def cca_to_con(code):
# def cca_to_ctn(code):
# def cca_to_ctca2(code):
# def cn_to_ctca2(code):
# def cn_to_ctn(code):


from incf.countryutils import data
from incf.countryutils import transformations as trafos
            except KeyError:
                raise ValueError("%s is o ISO country code or name" % key)
            self.ccn = self.numeric = code
            self.cn = self.name = trafos.ccn_to_cn(self.ccn)

        self.cca2 = self.alpha2 = trafos.ccn_to_cca2(self.numeric)
        self.cca3 = self.alpha3 = trafos.ccn_to_cca3(self.numeric)
        self.con = self.official_name = trafos.ccn_to_con(self.numeric)
        
        self.ctca2 = trafos.ccn_to_ctca2(self.numeric)
        self.ctn = trafos.ccn_to_ctn(self.numeric)

    @property 
    def continent(self):
        return Continent(self.ctn)


class Continent(object):
    """encapsulating information about a continent
    
    The constructor needs to be passed a two letter continent code
    or name ('AF': 'Africa', 'AN': 'Antarctica', 'AS': 'Asia',
    'EU': 'Europe', 'NA': 'North America', 'OC': 'Oceania',
    'SA': 'South America').

    Raises ValueError if no corresponding continent can be found
    """

    def __init__(self, key):
        """Infer the country from the key"""

# Path: incf/countryutils/data.py

# 
# Path: incf/countryutils/transformations.py
# def is_string_type(obj):
# def ccn_to_ccn(code):
# def ccn_to_cca2(code):
# def ccn_to_cca3(code):
# def ccn_to_cn(code):
# def ccn_to_con(code):
# def cn_to_ccn(code):
# def cca2_to_ccn(code):
# def cca3_to_ccn(code):
# def ccn_to_ctca2(code):
# def ctca2_to_ccn(code):
# def ccn_to_ctn(code):
# def cca_to_ccn(code):
# def cca_to_cn(code):
# def cc_to_ccn(code):
# def cc_to_cn(code):
# def cc_to_con(code):
# def cca_to_con(code):
# def cca_to_ctn(code):
# def cca_to_ctca2(code):
# def cn_to_ctca2(code):
# def cn_to_ctn(code):


# Path: incf/countryutils/datatypes.py
from incf.countryutils import data
from incf.countryutils import transformations as trafos

            except KeyError:
                raise ValueError("%s is o ISO country code or name" % key)
            self.ccn = self.numeric = code
            self.cn = self.name = trafos.ccn_to_cn(self.ccn)

        self.cca2 = self.alpha2 = trafos.ccn_to_cca2(self.numeric)
        self.cca3 = self.alpha3 = trafos.ccn_to_cca3(self.numeric)
        self.con = self.official_name = trafos.ccn_to_con(self.numeric)
        
        self.ctca2 = trafos.ccn_to_ctca2(self.numeric)
        self.ctn = trafos.ccn_to_ctn(self.numeric)

    @property 
    def continent(self):
        return Continent(self.ctn)


class Continent(object):
    """encapsulating information about a continent
    
    The constructor needs to be passed a two letter continent code
    or name ('AF': 'Africa', 'AN': 'Antarctica', 'AS': 'Asia',
    'EU': 'Europe', 'NA': 'North America', 'OC': 'Oceania',
    'SA': 'South America').

    Raises ValueError if no corresponding continent can be found
    """

    def __init__(self, key):
        """Infer the country from the key"""

        if key in data.ctca2_to_ctn: