Skip to content

Commit

Permalink
Merge pull request #1470 from szjozsef/main
Browse files Browse the repository at this point in the history
split mnc ranges to individual entries
  • Loading branch information
jwhitlock committed Jan 5, 2021
2 parents 3882309 + f7b48f0 commit d78caeb
Show file tree
Hide file tree
Showing 4 changed files with 149 additions and 14 deletions.
4 changes: 2 additions & 2 deletions ichnaea/tests/test_geocode.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ def test_single(self):
assert set([r.code for r in regions]) == set(["DE"])

def test_multiple(self):
assert set(GEOCODER.regions_for_mcc(311)) == {"AS", "GU", "US"}
assert set(GEOCODER.regions_for_mcc(311)) == {"AS", "GU", "US", "VI"}
regions = GEOCODER.regions_for_mcc(311, metadata=True)
assert set([r.code for r in regions]) == {"AS", "GU", "US"}
assert set([r.code for r in regions]) == {"AS", "GU", "US", "VI"}

def test_filtered(self):
# AX / Aland Islands is not in the GENC list
Expand Down
2 changes: 1 addition & 1 deletion mobile_codes/json/countries.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@
["Venezuela, Bolivarian Republic of", "VE", "VEN", "862", "734"],
["Viet Nam", "VN", "VNM", "704", "452"],
["Virgin Islands, British", "VG", "VGB", "092", "348"],
["Virgin Islands, U.S.", "VI", "VIR", "850", null],
["Virgin Islands, U.S.", "VI", "VIR", "850", ["310", "311"]],
["Wallis and Futuna", "WF", "WLF", "876", "543"],
["Western Sahara", "EH", "ESH", "732", "604"],
["Yemen", "YE", "YEM", "887", "421"],
Expand Down
94 changes: 92 additions & 2 deletions mobile_codes/json/mnc_operators.json
Original file line number Diff line number Diff line change
Expand Up @@ -1067,7 +1067,7 @@
["310", "380", "AT&T", "AT&T Mobility"],
["310", "390", "Cellular One of East Texas", "TX-11 Acquisition, LLC"],
["310", "400", "IT&E Wireless", "IT&E Overseas, Inc"],
["310", "410", "AT&T", "AT&T Mobility"],
["310", "410", "AT&T", "Liberty"],
["310", "420", "Cincinnati Bell", "Cincinnati Bell Wireless"],
["310", "430", "GCI", "GCI Communications Corp."],
["310", "440", "", "Numerex"],
Expand Down Expand Up @@ -1457,7 +1457,97 @@
["314", "010", "", "Boingo Wireless Inc."],
["314", "020", "", "Spectrum Wireless Holdings, LLC"],
["314", "030", "", "Baicells Technologies North America Inc."],
["314", "100 - 190", "", "Reserved for Public Safety"],
["314", "100", "", "Reserved for Public Safety"],
["314", "101", "", "Reserved for Public Safety"],
["314", "102", "", "Reserved for Public Safety"],
["314", "103", "", "Reserved for Public Safety"],
["314", "104", "", "Reserved for Public Safety"],
["314", "105", "", "Reserved for Public Safety"],
["314", "106", "", "Reserved for Public Safety"],
["314", "107", "", "Reserved for Public Safety"],
["314", "108", "", "Reserved for Public Safety"],
["314", "109", "", "Reserved for Public Safety"],
["314", "110", "", "Reserved for Public Safety"],
["314", "111", "", "Reserved for Public Safety"],
["314", "112", "", "Reserved for Public Safety"],
["314", "113", "", "Reserved for Public Safety"],
["314", "114", "", "Reserved for Public Safety"],
["314", "115", "", "Reserved for Public Safety"],
["314", "116", "", "Reserved for Public Safety"],
["314", "117", "", "Reserved for Public Safety"],
["314", "118", "", "Reserved for Public Safety"],
["314", "119", "", "Reserved for Public Safety"],
["314", "120", "", "Reserved for Public Safety"],
["314", "121", "", "Reserved for Public Safety"],
["314", "122", "", "Reserved for Public Safety"],
["314", "123", "", "Reserved for Public Safety"],
["314", "124", "", "Reserved for Public Safety"],
["314", "125", "", "Reserved for Public Safety"],
["314", "126", "", "Reserved for Public Safety"],
["314", "127", "", "Reserved for Public Safety"],
["314", "128", "", "Reserved for Public Safety"],
["314", "129", "", "Reserved for Public Safety"],
["314", "130", "", "Reserved for Public Safety"],
["314", "131", "", "Reserved for Public Safety"],
["314", "132", "", "Reserved for Public Safety"],
["314", "133", "", "Reserved for Public Safety"],
["314", "134", "", "Reserved for Public Safety"],
["314", "135", "", "Reserved for Public Safety"],
["314", "136", "", "Reserved for Public Safety"],
["314", "137", "", "Reserved for Public Safety"],
["314", "138", "", "Reserved for Public Safety"],
["314", "139", "", "Reserved for Public Safety"],
["314", "140", "", "Reserved for Public Safety"],
["314", "141", "", "Reserved for Public Safety"],
["314", "142", "", "Reserved for Public Safety"],
["314", "143", "", "Reserved for Public Safety"],
["314", "144", "", "Reserved for Public Safety"],
["314", "145", "", "Reserved for Public Safety"],
["314", "146", "", "Reserved for Public Safety"],
["314", "147", "", "Reserved for Public Safety"],
["314", "148", "", "Reserved for Public Safety"],
["314", "149", "", "Reserved for Public Safety"],
["314", "150", "", "Reserved for Public Safety"],
["314", "151", "", "Reserved for Public Safety"],
["314", "152", "", "Reserved for Public Safety"],
["314", "153", "", "Reserved for Public Safety"],
["314", "154", "", "Reserved for Public Safety"],
["314", "155", "", "Reserved for Public Safety"],
["314", "156", "", "Reserved for Public Safety"],
["314", "157", "", "Reserved for Public Safety"],
["314", "158", "", "Reserved for Public Safety"],
["314", "159", "", "Reserved for Public Safety"],
["314", "160", "", "Reserved for Public Safety"],
["314", "161", "", "Reserved for Public Safety"],
["314", "162", "", "Reserved for Public Safety"],
["314", "163", "", "Reserved for Public Safety"],
["314", "164", "", "Reserved for Public Safety"],
["314", "165", "", "Reserved for Public Safety"],
["314", "166", "", "Reserved for Public Safety"],
["314", "167", "", "Reserved for Public Safety"],
["314", "168", "", "Reserved for Public Safety"],
["314", "169", "", "Reserved for Public Safety"],
["314", "170", "", "Reserved for Public Safety"],
["314", "171", "", "Reserved for Public Safety"],
["314", "172", "", "Reserved for Public Safety"],
["314", "173", "", "Reserved for Public Safety"],
["314", "174", "", "Reserved for Public Safety"],
["314", "175", "", "Reserved for Public Safety"],
["314", "176", "", "Reserved for Public Safety"],
["314", "177", "", "Reserved for Public Safety"],
["314", "178", "", "Reserved for Public Safety"],
["314", "179", "", "Reserved for Public Safety"],
["314", "180", "", "Reserved for Public Safety"],
["314", "181", "", "Reserved for Public Safety"],
["314", "182", "", "Reserved for Public Safety"],
["314", "183", "", "Reserved for Public Safety"],
["314", "184", "", "Reserved for Public Safety"],
["314", "185", "", "Reserved for Public Safety"],
["314", "186", "", "Reserved for Public Safety"],
["314", "187", "", "Reserved for Public Safety"],
["314", "188", "", "Reserved for Public Safety"],
["314", "189", "", "Reserved for Public Safety"],
["314", "190", "", "Reserved for Public Safety"],
["315", "010", "CBRS", "Citizens Broadband Radio Service"],
["316", "010", "Nextel", "Nextel Communications"],
["316", "011", "Southern LINC", "Southern Communications Services"],
Expand Down
63 changes: 54 additions & 9 deletions mobile_codes/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,12 @@ def parse_wikipedia(source_dir):
if mnc.span is not None:
i_tag = mnc.span
i_tag.decompose()
mnc = mnc.text.strip().strip("\n").replace("\n", "")
mnc = (
mnc.text.strip()
.strip("\n")
.replace("\n", "")
.replace(" ", "")
)
if operator.div is not None:
i_tag = operator.div
i_tag.decompose()
Expand All @@ -140,15 +145,55 @@ def parse_wikipedia(source_dir):
i_tag = brand.span
i_tag.decompose()
brand = brand.text.strip().strip("\n").replace("\n", "")
operators.append(
MNCOperatorISO(
mcc=mcc,
mnc=mnc,
brand=brand,
operator=operator,
iso=iso,
if "-" in mnc:
mncb = mnc.split("-")[0]
mncb_len = len(mncb)
mnce = mnc.split("-")[1]
mnce_len = len(mnce)
if mncb_len == mnce_len:
for mnc_ in range(int(mncb), int(mnce)):
mnc = "%0*d" % (mncb_len, mnc_)
operators.append(
MNCOperatorISO(
mcc=mcc,
mnc=mnc,
brand=brand,
operator=operator,
iso=iso,
)
)
# because range does not include the stop element, we add it here
operators.append(
MNCOperatorISO(
mcc=mcc,
mnc=mnce,
brand=brand,
operator=operator,
iso=iso,
)
)
else:
print("don't know how to deal with this range: " + mnc)
operators.append(
MNCOperatorISO(
mcc=mcc,
mnc=mnc,
brand=brand,
operator=operator,
iso=iso,
)
)
else:
operators.append(
MNCOperatorISO(
mcc=mcc,
mnc=mnc,
brand=brand,
operator=operator,
iso=iso,
)
)
)

else:
break
i += 1
Expand Down

0 comments on commit d78caeb

Please sign in to comment.