diff options
Diffstat (limited to 'generalresearch/models/precision/definitions.py')
| -rw-r--r-- | generalresearch/models/precision/definitions.py | 322 |
1 files changed, 322 insertions, 0 deletions
diff --git a/generalresearch/models/precision/definitions.py b/generalresearch/models/precision/definitions.py new file mode 100644 index 0000000..daa6f64 --- /dev/null +++ b/generalresearch/models/precision/definitions.py @@ -0,0 +1,322 @@ +# These were sent to us in an excel file. Copied here because we don't use excel files +# also available here: https://integrations.precisionsample.com/api.html#API%20Lookup%20Document +# https://integrations.precisionsample.com/PS_GetProjects_API_Lookup_values.xlsx + +from generalresearch.locales import Localelator + +locales = Localelator() + +COUNTRY_CODE_TO_ISO = { + "15": "au", + "38": "ca", + "229": "uk", + "231": "us", + "492": "af", + "493": "ax", + "494": "al", + "495": "dz", + "496": "as", + "497": "ad", + "498": "ao", + "499": "ai", + "500": "aq", + "501": "ag", + "502": "ar", + "503": "am", + "504": "aw", + "505": "at", + "506": "az", + "507": "bs", + "508": "bh", + "509": "bd", + "510": "bb", + "511": "by", + "512": "be", + "513": "bz", + "514": "bj", + "515": "bm", + "516": "bt", + "517": "bo", + "518": "bq", + "519": "ba", + "520": "bw", + "521": "bv", + "522": "br", + "523": "io", + "524": "bn", + "525": "bg", + "526": "bf", + "527": "bi", + "528": "kh", + "529": "cm", + "530": "cv", + "531": "ky", + "532": "cf", + "533": "td", + "534": "cl", + "535": "cn", + "536": "cx", + "537": "cc", + "538": "co", + "539": "km", + "540": "cg", + "541": "cd", + "542": "ck", + "543": "cr", + "544": "ci", + "545": "hr", + "546": "cu", + "547": "cw", + "548": "cy", + "549": "cz", + "550": "dk", + "551": "dj", + "552": "dm", + "553": "do", + "554": "ec", + "555": "eg", + "556": "sv", + "557": "gq", + "558": "er", + "559": "ee", + "560": "et", + "561": "fk", + "562": "fo", + "563": "fj", + "564": "fi", + "565": "fr", + "566": "gf", + "567": "pf", + "568": "tf", + "569": "ga", + "570": "gm", + "571": "ge", + "572": "de", + "573": "gh", + "574": "gi", + "575": "gr", + "576": "gl", + "577": "gd", + "578": "gp", + "579": "gu", + "580": "gt", + "581": "gg", + "582": "gn", + "583": "gw", + "584": "gy", + "585": "ht", + "586": "hm", + "587": "va", + "588": "hn", + "589": "hk", + "590": "hu", + "591": "is", + "592": "in", + "593": "id", + "594": "ir", + "595": "iq", + "596": "ie", + "597": "im", + "598": "il", + "599": "it", + "600": "jm", + "601": "jp", + "602": "je", + "603": "jo", + "604": "kz", + "605": "ke", + "606": "ki", + "607": "kp", + "608": "kr", + "609": "xk", + "610": "kw", + "611": "kg", + "612": "la", + "613": "lv", + "614": "lb", + "615": "ls", + "616": "lr", + "617": "ly", + "618": "li", + "619": "lt", + "620": "lu", + "621": "mo", + "622": "mk", + "623": "mg", + "624": "mw", + "625": "my", + "626": "mv", + "627": "ml", + "628": "mt", + "629": "mh", + "630": "mq", + "631": "mr", + "632": "mu", + "633": "yt", + "634": "mx", + "635": "fm", + "636": "md", + "637": "mc", + "638": "mn", + "639": "me", + "640": "ms", + "641": "ma", + "642": "mz", + "643": "mm", + "644": "na", + "645": "nr", + "646": "np", + "647": "nl", + "648": "an", + "649": "nc", + "650": "nz", + "651": "ni", + "652": "ne", + "653": "ng", + "654": "nu", + "655": "nf", + "656": "mp", + "657": "no", + "658": "om", + "659": "pk", + "660": "pw", + "661": "ps", + "662": "pa", + "663": "pg", + "664": "py", + "665": "pe", + "666": "ph", + "667": "pn", + "668": "pl", + "669": "pt", + "670": "pr", + "671": "qa", + "672": "re", + "673": "ro", + "674": "ru", + "675": "rw", + "676": "bl", + "677": "sh", + "678": "kn", + "679": "lc", + "680": "mf", + "681": "pm", + "682": "vc", + "683": "ws", + "684": "sm", + "685": "st", + "686": "sa", + "687": "sn", + "688": "rs", + "689": "sc", + "690": "sl", + "691": "sg", + "692": "sx", + "693": "sk", + "694": "si", + "695": "sb", + "696": "so", + "697": "za", + "698": "gs", + "699": "ss", + "700": "es", + "701": "lk", + "702": "sd", + "703": "sr", + "704": "sj", + "705": "sz", + "706": "se", + "707": "ch", + "708": "sy", + "709": "tw", + "710": "tj", + "711": "tz", + "712": "th", + "713": "tl", + "714": "tg", + "715": "tk", + "716": "to", + "717": "tt", + "718": "tn", + "719": "tr", + "720": "tm", + "721": "tc", + "722": "tv", + "723": "ug", + "724": "ua", + "725": "ae", + "726": "um", + "727": "uy", + "728": "uz", + "729": "vu", + "730": "ve", + "731": "vn", + "732": "vg", + "733": "vi", + "734": "wf", + "735": "eh", + "736": "ye", + "737": "zm", + "738": "zw", + "1196": "kr", + "1197": "kr", + "3501": "al", + "3502": "ay", + "3503": "eg", + "3504": "gl", + "3505": "mi", + "3506": "md", + "3507": "ni", + "3508": "ri", + "3509": "sc", + "3510": "sa", + "3511": "sh", + "3512": "sm", + "3513": "so", + "3514": "sp", + "3515": "wl", +} +COUNTRY_CODE_TO_ISO["229"] = "gb" # uk is not a valid country +# Filter to use only valid countries +COUNTRY_CODE_TO_ISO = { + k: v for k, v in COUNTRY_CODE_TO_ISO.items() if v in locales.get_all_countries() +} + +COUNTRY_ISO_TO_CODE = {v: k for k, v in COUNTRY_CODE_TO_ISO.items()} + +LANGUAGE_CODE_TO_ISO = { + "114282": "eng", + "114283": "fre", + "114284": "spa", + "114285": "ger", + "114286": "por", + "114287": "rus", + "114288": "ita", + "114289": "dut", + "114290": "jpn", + "114291": "chi", + "114292": "kor", + "131616": "ara", + "131617": "swe", + "136675": "pol", + "137223": "tha", + "137224": "ind", + "137225": "vie", +} +LANGUAGE_ISO_TO_CODE = {v: k for k, v in LANGUAGE_CODE_TO_ISO.items()} + + +def country_code_to_iso(code: int | str) -> str: + return COUNTRY_CODE_TO_ISO[str(code)] + + +def country_iso_to_code(country_iso: str) -> str: + return COUNTRY_ISO_TO_CODE[country_iso] + + +def language_code_to_iso(code: int | str) -> str: + return LANGUAGE_CODE_TO_ISO[str(code)] + + +def language_iso_to_code(language_iso: str) -> str: + return LANGUAGE_ISO_TO_CODE[language_iso] |
