Skip to content

AttributeError: module 'collections' has no attribute 'Iterable' #354

@rogeriobiondi

Description

@rogeriobiondi

Hello,

I'm trying to run the example from the documentation:

import gmaps
gmaps.configure(api_key='KEY...')
nuclear_power_plants = [
{'name': 'Atucha', 'location': (-34.0, -59.167), 'active_reactors': 1},
{'name': 'Embalse', 'location': (-32.2333, -64.4333), 'active_reactors': 1},
{'name': 'Armenia', 'location': (40.167, 44.133), 'active_reactors': 1},
{'name': 'Br', 'location': (51.217, 5.083), 'active_reactors': 1},
{'name': 'Doel', 'location': (51.333, 4.25), 'active_reactors': 4},
{'name': 'Tihange', 'location': (50.517, 5.283), 'active_reactors': 3}
]
plant_locations = [plant['location'] for plant in nuclear_power_plants]
info_box_template = "<dl><dt>Name</dt><dd>{name}</dd><dt>Number reactors</dt><dd>{active_reactors}</dd></dl>"
plant_info = [info_box_template.format(**plant) for plant in nuclear_power_plants]
marker_layer = gmaps.marker_layer(plant_locations, info_box_content=plant_info)
fig = gmaps.figure()
fig.add_layer(marker_layer)

But receiving the following error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [11], in <cell line: 14>()
     12 info_box_template = "<dl><dt>Name</dt><dd>{name}</dd><dt>Number reactors</dt><dd>{active_reactors}</dd></dl>"
     13 plant_info = [info_box_template.format(**plant) for plant in nuclear_power_plants]
---> 14 marker_layer = gmaps.marker_layer(plant_locations, info_box_content=plant_info)

File ~/.pyenv/versions/3.10.4/envs/teste/lib/python3.10/site-packages/gmaps/marker.py:553, in marker_layer(locations, hover_text, label, info_box_content, display_info_box)
    485 @doc_subst(_doc_snippets)
    486 def marker_layer(
    487         locations, hover_text='', label='',
    488         info_box_content=None, display_info_box=None):
    489     """
    490     Marker layer
    491 
   (...)
    551         A :class:`gmaps.Markers` instance.
    552     """
--> 553     marker_options = _marker_layer_options(
    554         locations, hover_text, label, info_box_content, display_info_box)
    555     markers = [Marker(**option) for option in marker_options]
    556     return Markers(markers=markers)

File ~/.pyenv/versions/3.10.4/envs/teste/lib/python3.10/site-packages/gmaps/marker.py:311, in _marker_layer_options(locations, hover_text, label, info_box_content, display_info_box)
    309 if is_atomic(label):
    310     label = [label] * number_markers
--> 311 if is_atomic(info_box_content):
    312     info_box_content = [info_box_content] * number_markers
    314 marker_options = {
    315     'location': locations_to_list(locations),
    316     'hover_text': hover_text,
    317     'label': label
    318 }

File ~/.pyenv/versions/3.10.4/envs/teste/lib/python3.10/site-packages/gmaps/options.py:40, in is_atomic(elem)
     34 def is_atomic(elem):
     35     """
     36     True if an element is a single atom and false if it's a collection
     37     """
     38     return (
     39         isinstance(elem, string_types) or
---> 40         not isinstance(elem, collections.Iterable)
     41     )

AttributeError: module 'collections' has no attribute 'Iterable'

I'm using the latest gmaps library version 0.9.0 and Python 3.10.4.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions