Skip to content

Commit 14b3671

Browse files
author
Martin Journois
committed
Fix python3 stuff in test_image_overlay
1 parent c3ede82 commit 14b3671

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

folium/features.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
"""
88
from jinja2 import Template
99
import json
10+
import base64
1011

1112
from .utilities import color_brewer, _parse_size, legend_scaler, _locations_mirror, _locations_tolist, write_png,\
1213
mercator_transform
14+
from .six import text_type, binary_type
1315

1416
from .element import Element, Figure, JavascriptLink, CssLink, Div, MacroElement
1517
from .map import Map, TileLayer, Icon, Marker, Popup
@@ -576,16 +578,17 @@ def __init__(self, image, bounds, opacity=1., attribution=None, origin='upper',
576578
else:
577579
fileformat = 'png'
578580
self.url = "data:image/{};base64,{}".format(fileformat,
579-
image.read().encode('base64'))
580-
elif hasattr(image,'__iter__'):
581+
base64.b64encode(image.read()).decode('utf-8'))
582+
elif (not (isinstance(image,text_type) or isinstance(image,binary_type))) and hasattr(image,'__iter__'):
581583
# We got an array-like object
582584
if mercator_project:
583585
data = mercator_transform(image,
584586
[bounds[0][0], bounds[1][0]],
585587
origin=origin)
586588
else:
587589
data = image
588-
self.url = "data:image/png;base64," +write_png(data, origin=origin, colormap=colormap).encode('base64')
590+
self.url = "data:image/png;base64," +\
591+
base64.b64encode(write_png(data, origin=origin, colormap=colormap)).decode('utf-8')
589592
else:
590593
# We got an url
591594
self.url = json.loads(json.dumps(image))

folium/utilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ def write_png(data, origin='upper', colormap=None):
411411
assert array.shape == (height,width,nblayers)
412412

413413
if nblayers==1:
414-
array = np.array(map(colormap,array.ravel()))
414+
array = np.array(list(map(colormap,array.ravel())))
415415
nblayers = array.shape[1]
416416
if nblayers not in [3,4]:
417417
raise ValueError("colormap must provide colors of"

tests/test_folium.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from jinja2 import Environment, PackageLoader
1616
import vincent
1717
import folium
18+
import base64
1819
from folium.six import PY3
1920
from folium.plugins import ScrollZoomToggler, MarkerCluster
2021
from folium.element import Html
@@ -656,7 +657,7 @@ def test_image_overlay(self):
656657
#with open('data.png', 'wb') as f:
657658
# f.write(png_str)
658659
png = "data:image/png;base64,{}".format
659-
inline_image_url = png(png_str.encode('base64').decode('utf-8'))
660+
inline_image_url = png(base64.b64encode(png_str).decode('utf-8'))
660661

661662
image_tpl = self.env.get_template('image_layer.js')
662663
image_name = 'Image_Overlay'

0 commit comments

Comments
 (0)