Skip to content

Commit 64e2833

Browse files
committed
Normalized phone numbers
1 parent ad5f82a commit 64e2833

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/server/datasource_manager.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import re
2+
import phonenumbers
3+
import numpy
24

35

46
def __clean_csv_headers(header):
@@ -80,14 +82,19 @@ def volgistics_address(index, street):
8082

8183
return result
8284

85+
def normalize_phone_number(number):
86+
if str(number) == 'nan':
87+
return ""
88+
parsed_number = phonenumbers.parse(number, "US")
89+
return phonenumbers.format_number(parsed_number, phonenumbers.PhoneNumberFormat.NATIONAL)
8390

8491
SOURCE_NORMALIZATION_MAPPING = {
8592
"salesforcecontacts": {
8693
"source_id": "contact_id",
8794
"first_name": "first_name",
8895
"last_name": "last_name",
8996
"email": "email",
90-
"mobile": lambda df: df["mobile"].combine_first(df["phone"]),
97+
"mobile": lambda df: df["mobile"].combine_first(df["phone"]).apply(normalize_phone_number),
9198
"street_and_number": "mailing_street",
9299
"apartment": "mailing_street",
93100
"city": "mailing_city",
@@ -109,7 +116,7 @@ def volgistics_address(index, street):
109116
"first_name": "firstname",
110117
"last_name": "lastname",
111118
"email": "email",
112-
"mobile": "phone",
119+
"mobile": lambda df: df["phone"].apply(normalize_phone_number),
113120
"street_and_number": "street",
114121
"apartment": "apartment",
115122
"city": "city",
@@ -124,7 +131,7 @@ def volgistics_address(index, street):
124131
"first_name": "first_name",
125132
"last_name": "last_name",
126133
"email": "email",
127-
"mobile": lambda df: df["cell"].combine_first(df["home"]),
134+
"mobile": lambda df: df["cell"].combine_first(df["home"]).apply(normalize_phone_number),
128135
"street_and_number": lambda df: volgistics_address(1, df["street_1"]),
129136
"apartment": lambda df: volgistics_address(0, df["street_1"]),
130137
"city": "city",

src/server/requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ python-Levenshtein-wheels
99
xlrd==1.2.0 # currently used for xlsx, but we should consider adjusting code to openpyxl for xlsx
1010
openpyxl
1111
requests
12-
pytest
12+
pytest
13+
phonenumbers

0 commit comments

Comments
 (0)