gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / geopy / util.py @ 564
History | View | Annotate | Download (2.26 KB)
1 |
"""
|
---|---|
2 |
Utils.
|
3 |
"""
|
4 |
|
5 |
import logging |
6 |
from geopy.compat import py3k |
7 |
|
8 |
if not py3k: # pragma: no cover |
9 |
NUMBER_TYPES = (int, long, float) |
10 |
else: # pragma: no cover |
11 |
NUMBER_TYPES = (int, float) # long -> int in Py3k |
12 |
try:
|
13 |
from decimal import Decimal |
14 |
NUMBER_TYPES = NUMBER_TYPES + (Decimal, ) |
15 |
except ImportError: # pragma: no cover |
16 |
pass
|
17 |
|
18 |
|
19 |
__version__ = "1.11.0"
|
20 |
|
21 |
|
22 |
class NullHandler(logging.Handler): |
23 |
"""
|
24 |
No output.
|
25 |
"""
|
26 |
|
27 |
def emit(self, record): |
28 |
pass
|
29 |
|
30 |
logger = logging.getLogger('geopy') # pylint: disable=C0103 |
31 |
logger.setLevel(logging.CRITICAL) |
32 |
|
33 |
|
34 |
def pairwise(seq): |
35 |
"""
|
36 |
Pair an iterable, e.g., (1, 2, 3, 4) -> ((1, 2), (3, 4))
|
37 |
"""
|
38 |
for i in range(0, len(seq) - 1): |
39 |
yield (seq[i], seq[i + 1]) |
40 |
|
41 |
|
42 |
if not py3k: |
43 |
def join_filter(sep, seq, pred=bool): |
44 |
"""
|
45 |
Join with a filter.
|
46 |
"""
|
47 |
return sep.join([unicode(i) for i in seq if pred(i)]) |
48 |
else:
|
49 |
def join_filter(sep, seq, pred=bool): |
50 |
"""
|
51 |
Join with a filter.
|
52 |
"""
|
53 |
return sep.join([str(i) for i in seq if pred(i)]) |
54 |
|
55 |
|
56 |
if not py3k: |
57 |
def decode_page(page): |
58 |
"""
|
59 |
Return unicode string of geocoder results.
|
60 |
|
61 |
Nearly all services use JSON, so assume UTF8 encoding unless the
|
62 |
response specifies otherwise.
|
63 |
"""
|
64 |
if hasattr(page, 'read'): # urllib |
65 |
# note getparam in py2
|
66 |
encoding = page.headers.getparam("charset") or "utf-8" |
67 |
return unicode(page.read(), encoding=encoding) |
68 |
else: # requests? |
69 |
encoding = page.headers.get("charset", "utf-8") |
70 |
return unicode(page.content, encoding=encoding) |
71 |
else:
|
72 |
def decode_page(page): |
73 |
"""
|
74 |
Return unicode string of geocoder results.
|
75 |
|
76 |
Nearly all services use JSON, so assume UTF8 encoding unless the
|
77 |
response specifies otherwise.
|
78 |
"""
|
79 |
if hasattr(page, 'read'): # urllib |
80 |
# note get_param in py3
|
81 |
encoding = page.headers.get_param("charset") or "utf-8" |
82 |
return str(page.read(), encoding=encoding) |
83 |
else: # requests? |
84 |
encoding = page.headers.get("charset") or "utf-8" |
85 |
return str(page.content, encoding=encoding) |
86 |
|
87 |
|
88 |
def get_version(): |
89 |
from geopy.version import GEOPY_VERSION |
90 |
return str(GEOPY_VERSION) |
91 |
|
92 |
|