def METHOD_NAME(self, zipcode):
    code = zipcode[0:2]
    # https://fr.wikipedia.org/wiki/Liste_des_communes_de_France_dont_le_code_postal_ne_correspond_pas_au_d%C3%A9partement  # noqa
    special_zipcodes = {
        "42620": "03",
        "05110": "04",
        "05130": "04",
        "05160": "04",
        "06260": "04",
        "48250": "07",
        "43450": "15",
        "33220": "24",
        "05700": "26",
        "73670": "38",
        "01410": "39",
        "01590": "39",
        "52100": "51",
        "21340": "71",
        "01200": "74",
        "13780": "83",
        "37160": "86",
        "94390": "91",
    }
    if zipcode in special_zipcodes:
        return special_zipcodes[zipcode]
    if code == "97":
        code = zipcode[0:3]
    elif code == "20":
        try:
            zipcode = int(zipcode)
        except ValueError:
            return "20"
        if 20000 <= zipcode < 20200:
            # Corse du Sud / 2A
            code = "2A"
        elif 20200 <= zipcode <= 20620:
            code = "2B"
        else:
            code = "20"
    return code