aboutsummaryrefslogtreecommitdiff
path: root/generalresearch/models/precision/definitions.py
diff options
context:
space:
mode:
Diffstat (limited to 'generalresearch/models/precision/definitions.py')
-rw-r--r--generalresearch/models/precision/definitions.py322
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]