Skip to content

Commit 6719db4

Browse files
committed
Merge pull request #95 from apatil/master
popups allow unicode
2 parents 8f2df62 + 12335bd commit 6719db4

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
0.1.4.dev
22
~~~~~~~~~
3+
- Popups allow unicode. @apatil
34
- Support for https protocol. @apatil
45
- Custom popup width. @ocefpaf
56
- Support multiPolyLine. @scari
67
- Added max and min zoom keywords. @Paradoxeuh
78

9+
810
Bug Fixes
911

1012
- Remove margins from leaflet-tiles (Fixes #64). @lennart0901

folium/folium.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
from folium import utilities
2323
from folium.six import text_type, binary_type, iteritems
2424

25+
import sys
26+
2527

2628
ENV = Environment(loader=PackageLoader('folium', 'templates'))
2729

@@ -616,10 +618,21 @@ def _popup_render(self, popup=None, mk_name=None, count=None,
616618
if not popup_on:
617619
return 'var no_pop = null;'
618620
else:
619-
if isinstance(popup, str):
621+
if sys.version_info >= (3,0):
622+
utype, stype = str, bytes
623+
else:
624+
utype, stype = unicode, str
625+
626+
if isinstance(popup, (utype, stype)):
620627
popup_temp = self.env.get_template('simple_popup.js')
628+
if isinstance(popup, utype):
629+
popup_txt = popup.encode('ascii', 'xmlcharrefreplace')
630+
else:
631+
popup_txt = popup
632+
if sys.version_info >= (3,0):
633+
popup_txt = popup_txt.decode()
621634
return popup_temp.render({'pop_name': mk_name + str(count),
622-
'pop_txt': json.dumps(popup),
635+
'pop_txt': json.dumps(str(popup_txt)),
623636
'width': width})
624637
elif isinstance(popup, tuple):
625638
#Update template with JS libs
@@ -653,6 +666,8 @@ def _popup_render(self, popup=None, mk_name=None, count=None,
653666
'max_width': max_width,
654667
'json_out': json_out,
655668
'vega_id': vega_id})
669+
else:
670+
raise TypeError("Unrecognized popup type: {!r}".format(popup))
656671

657672
@iter_obj('geojson')
658673
def geo_json(self, geo_path=None, geo_str=None, data_out='data.json',

0 commit comments

Comments
 (0)