Skip to content

Commit 78b57e1

Browse files
committed
Do load-on-demand for geocoder entrypoints.
The geocoding metadata is large, and many library users don't use it, so only load it (by doing import .geocoder) if it's needed.
1 parent 7ae8ba2 commit 78b57e1

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

python/phonenumbers/__init__.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,28 @@
115115
truncate_too_long_number,)
116116
from .shortnumberutil import connects_to_emergency_number, is_emergency_number
117117
from .phonenumbermatcher import PhoneNumberMatch, PhoneNumberMatcher, Leniency
118-
from .geocoder import (area_description_for_number, country_name_for_number,
119-
description_for_number, description_for_valid_number)
118+
119+
120+
# The geodata occupies a lot of space, so only perform the import on first use
121+
# of geocoder functionality.
122+
def area_description_for_number(*args, **kwargs):
123+
from .geocoder import area_description_for_number as real_fn
124+
return real_fn(*args, **kwargs)
125+
126+
127+
def country_name_for_number(*args, **kwargs):
128+
from .geocoder import country_name_for_number as real_fn
129+
return real_fn(*args, **kwargs)
130+
131+
132+
def description_for_number(*args, **kwargs):
133+
from .geocoder import description_for_number as real_fn
134+
return real_fn(*args, **kwargs)
135+
136+
137+
def description_for_valid_number(*args, **kwargs):
138+
from .geocoder import description_for_valid_number as real_fn
139+
return real_fn(*args, **kwargs)
120140

121141

122142
# Version number is taken from the upstream libphonenumber version

0 commit comments

Comments
 (0)