1
1
import re
2
+ import phonenumbers
2
3
3
4
4
5
def __clean_csv_headers (header ):
@@ -80,14 +81,19 @@ def volgistics_address(index, street):
80
81
81
82
return result
82
83
84
+ def normalize_phone_number (number ):
85
+ if str (number ) == 'nan' :
86
+ return ""
87
+ parsed_number = phonenumbers .parse (number , "US" )
88
+ return phonenumbers .format_number (parsed_number , phonenumbers .PhoneNumberFormat .NATIONAL )
83
89
84
90
SOURCE_NORMALIZATION_MAPPING = {
85
91
"salesforcecontacts" : {
86
92
"source_id" : "contact_id" ,
87
93
"first_name" : "first_name" ,
88
94
"last_name" : "last_name" ,
89
95
"email" : "email" ,
90
- "mobile" : lambda df : df ["mobile" ].combine_first (df ["phone" ]),
96
+ "mobile" : lambda df : df ["mobile" ].combine_first (df ["phone" ]). apply ( normalize_phone_number ) ,
91
97
"street_and_number" : "mailing_street" ,
92
98
"apartment" : "mailing_street" ,
93
99
"city" : "mailing_city" ,
@@ -109,7 +115,7 @@ def volgistics_address(index, street):
109
115
"first_name" : "firstname" ,
110
116
"last_name" : "lastname" ,
111
117
"email" : "email" ,
112
- "mobile" : "phone" ,
118
+ "mobile" : lambda df : df [ "phone" ]. apply ( normalize_phone_number ) ,
113
119
"street_and_number" : "street" ,
114
120
"apartment" : "apartment" ,
115
121
"city" : "city" ,
@@ -124,7 +130,7 @@ def volgistics_address(index, street):
124
130
"first_name" : "first_name" ,
125
131
"last_name" : "last_name" ,
126
132
"email" : "email" ,
127
- "mobile" : lambda df : df ["cell" ].combine_first (df ["home" ]),
133
+ "mobile" : lambda df : df ["cell" ].combine_first (df ["home" ]). apply ( normalize_phone_number ) ,
128
134
"street_and_number" : lambda df : volgistics_address (1 , df ["street_1" ]),
129
135
"apartment" : lambda df : volgistics_address (0 , df ["street_1" ]),
130
136
"city" : "city" ,
0 commit comments