maximal recursion depth reached

Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Felix


<details class='elided'>
<summary title='Show trimmed content'>&#183;&#183;&#183;</summary>

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-5-fd97b705660d> in <module>()
      5             if len(list(partitions(n))) > 0:
      6                 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
----> 7                 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))

<ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
     49     plot.y_range = plot.x_range.clone()
     50
---> 51     show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
    336         controller.open(_config["output_url"] + "/bokeh", new=new_param)
    337     elif output_type == "notebook":
--> 338         session.show(curplot())
    339
    340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
     38         """
     39         import IPython.core.displaypub as displaypub
---> 40         displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
     41
     42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
     58                     modelid = plot_ref["id"],
     59                     modeltype = plot_ref["type"],
---> 60                     all_models = self.serialize_models(objects))
     61
     62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
     80
     81     def serialize_models(self, objects=None, **jsonkwargs):
---> 82         return self.serialize(self.convert_models(objects), **jsonkwargs)
     83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
     66         all = set(to_convert)
     67         for model in to_convert:
---> 68             children = recursively_traverse_plot_object(model)
     69             all.update(children)
     70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159

... and so on recursively ...
/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    146         return children
    147     else:
--> 148         immediate_children = plot_object.references()
    149         children.add(plot_object)
    150         traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
    224         """Returns all PlotObjects that this object has references to
    225         """
--> 226         return traverse_plot_object(self)
    227
    228     #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
    133         children.add(obj)
    134         return obj
--> 135     for prop in plot_object.properties_with_refs():
    136         val = getattr(plot_object, prop)
    137         json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
    547         if not hasattr(cls, "__cached_allprops_with_refs"):
    548             s = accumulate_from_subclasses(cls,
--> 549                                            "__properties_with_refs__")
    550             cls.__cached_allprops_with_refs = s
    551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
    500     s = set()
    501     for c in inspect.getmro(cls):
--> 502         if issubclass(c, HasProps):
    503             s.update(getattr(c, propname))
    504     return s

RuntimeError: maximum recursion depth exceeded while calling a Python object

Hi,

···

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:

Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-5-fd97b705660d> in <module>()
      5             if len(list(partitions(n))) > 0:
      6                 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
----> 7                 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))

<ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
     49     plot.y_range = plot.x_range.clone()
     50
---> 51     show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
    336         controller.open(_config["output_url"] + "/bokeh", new=new_param)
    337     elif output_type == "notebook":
--> 338         session.show(curplot())
    339
    340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
     38         """
     39         import IPython.core.displaypub as displaypub
---> 40         displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
     41
     42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
     58                     modelid = plot_ref["id"],
     59                     modeltype = plot_ref["type"],
---> 60                     all_models = self.serialize_models(objects))
     61
     62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
     80
     81     def serialize_models(self, objects=None, **jsonkwargs):
---> 82         return self.serialize(self.convert_models(objects), **jsonkwargs)
     83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
     66         all = set(to_convert)
     67         for model in to_convert:
---> 68             children = recursively_traverse_plot_object(model)
     69             all.update(children)
     70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159


... and so on recursively ...
/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    146         return children
    147     else:
--> 148         immediate_children = plot_object.references()
    149         children.add(plot_object)
    150         traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
    224         """Returns all PlotObjects that this object has references to
    225         """
--> 226         return traverse_plot_object(self)
    227
    228     #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
    133         children.add(obj)
    134         return obj
--> 135     for prop in plot_object.properties_with_refs():
    136         val = getattr(plot_object, prop)
    137         json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
    547         if not hasattr(cls, "__cached_allprops_with_refs"):
    548             s = accumulate_from_subclasses(cls,
--> 549                                            "__properties_with_refs__")
    550             cls.__cached_allprops_with_refs = s
    551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
    500     s = set()
    501     for c in inspect.getmro(cls):
--> 502         if issubclass(c, HasProps):
    503             s.update(getattr(c, propname))
    504     return s

RuntimeError: maximum recursion depth exceeded while calling a Python object

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

···

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:

Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:

Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-5-fd97b705660d> in <module>()
      5             if len(list(partitions(n))) > 0:
      6                 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
----> 7                 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))

<ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
     49     plot.y_range = plot.x_range.clone()
     50
---> 51     show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
    336         controller.open(_config["output_url"] + "/bokeh", new=new_param)
    337     elif output_type == "notebook":
--> 338         session.show(curplot())
    339
    340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
     38         """
     39         import IPython.core.displaypub as displaypub
---> 40         displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
     41
     42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
     58                     modelid = plot_ref["id"],
     59                     modeltype = plot_ref["type"],
---> 60                     all_models = self.serialize_models(objects))
     61
     62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
     80
     81     def serialize_models(self, objects=None, **jsonkwargs):
---> 82         return self.serialize(self.convert_models(objects), **jsonkwargs)
     83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
     66         all = set(to_convert)
     67         for model in to_convert:
---> 68             children = recursively_traverse_plot_object(model)
     69             all.update(children)
     70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155                     child,
    156                     traversed_ids=traversed_ids,
--> 157                     children=children)
    158         return children
    159


... and so on recursively ...
/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    146         return children
    147     else:
--> 148         immediate_children = plot_object.references()
    149         children.add(plot_object)
    150         traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
    224         """Returns all PlotObjects that this object has references to
    225         """
--> 226         return traverse_plot_object(self)
    227
    228     #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
    133         children.add(obj)
    134         return obj
--> 135     for prop in plot_object.properties_with_refs():
    136         val = getattr(plot_object, prop)
    137         json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
    547         if not hasattr(cls, "__cached_allprops_with_refs"):
    548             s = accumulate_from_subclasses(cls,
--> 549                                            "__properties_with_refs__")
    550             cls.__cached_allprops_with_refs = s
    551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
    500     s = set()
    501     for c in inspect.getmro(cls):
--> 502         if issubclass(c, HasProps):
    503             s.update(getattr(c, propname))
    504     return s

RuntimeError: maximum recursion depth exceeded while calling a Python object

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz

What does python -c "import bokeh; print bokeh.__version__" return?

If you have master installed from github it should be something similar (but maybe not identical) to "0.4.2-182-g758a7aa"

Bryan

···

On Mar 29, 2014, at 12:41 AM, Felix Breuer <[email protected]> wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, <[email protected]> wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a "maximal recursion depth reached" exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you're experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix

---------------------------------------------------------------------------
RuntimeError
                              Traceback (most recent call last)

<ipython-input-5-fd97b705660d> in <module>()
      5 if len(list(partitions(n))) > 0:
      6 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
----> 7 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))

<ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
     49 plot.y_range = plot.x_range.clone()
     50
---> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
    336 controller.open(_config["output_url"] + "/bokeh", new=new_param)
    337 elif output_type == "notebook":
--> 338 session.show(curplot())
    339
    340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
     38
         """

     39 import IPython.core.displaypub as displaypub
---> 40 displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
     41
     42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
     58 modelid = plot_ref["id"],
     59 modeltype = plot_ref["type"],
---> 60 all_models = self.serialize_models(objects)
)

     61
     62 plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
     80
     81 def serialize_models(self, objects=None, **jsonkwargs):
---> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
     83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
     66 all = set(to_convert)
     67 for model in to_convert:
---> 68 children = recursively_traverse_plot_object(model)
     69 all.update(children)
     70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155 child,
    156 traversed_ids=traversed_ids,
--> 157
                     children=children)

    158 return children
    159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    155 child,
    156 traversed_ids=traversed_ids,
--> 157
                     children=children)

    158 return children
    159

... and so on recursively ...

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
    146 return children
    147 else:
--> 148 immediate_children = plot_object.references()
    149 children.add(plot_object)
    150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
    224
         """Returns all PlotObjects that this object has references to

    225
         """

--> 226 return traverse_plot_object(self)
    227
    228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
    133 children.add(obj)
    134 return obj
--> 135 for prop in plot_object.properties_with_refs():
    136 val = getattr(plot_object, prop)
    137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
    547 if not hasattr(cls, "__cached_allprops_with_refs"):
    548 s = accumulate_from_subclasses(
cls,

--> 549
                                            "__properties_with_refs__")

    550 cls.__cached_allprops_with_refs = s
    551 return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
    500 s = set()
    501 for c in inspect.getmro(cls):
--> 502 if issubclass(c, HasProps):
    503 s.update(getattr(c, propname))
    504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

···

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:

What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:

Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:

Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError

                          Traceback (most recent call last)

in ()

  5             if len(list(partitions(n))) > 0:
  6                 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)

----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)

 49     plot.y_range = plot.x_range.clone()
 50

—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)

336         controller.open(_config["output_url"] + "/bokeh", new=new_param)
337     elif output_type == "notebook":

–> 338 session.show(curplot())

339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)

 38
     """
 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})

 41
 42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)

 58                     modelid = plot_ref["id"],
 59                     modeltype = plot_ref["type"],

—> 60 all_models = self.serialize_models(objects)

)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)

 80
 81     def serialize_models(self, objects=None, **jsonkwargs):

—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)

 83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)

 66         all = set(to_convert)
 67         for model in to_convert:

—> 68 children = recursively_traverse_plot_object(model)

 69             all.update(children)
 70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)

155                     child,
156                     traversed_ids=traversed_ids,

–> 157

                 children=children)
158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)

155                     child,
156                     traversed_ids=traversed_ids,

–> 157

                 children=children)
158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)

146         return children
147     else:

–> 148 immediate_children = plot_object.references()

149         children.add(plot_object)
150         traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)

224
     """Returns all PlotObjects that this object has references to
225
     """

–> 226 return traverse_plot_object(self)

227
228     #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)

133         children.add(obj)
134         return obj

–> 135 for prop in plot_object.properties_with_refs():

136         val = getattr(plot_object, prop)
137         json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)

547         if not hasattr(cls, "__cached_allprops_with_refs"):
548             s = accumulate_from_subclasses(

cls,

–> 549

                                        "__properties_with_refs__")
550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)

500     s = set()
501     for c in inspect.getmro(cls):

–> 502 if issubclass(c, HasProps):

503             s.update(getattr(c, propname))
504     return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Felix,

You can try that, or also could try "conda remove bokeh" before installing again from source. I just did a scan of the source to double check, that function "recursively_traverse_plot_object" has been completely removed, so if you are still seeing the exact same problem it's definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

···

On Mar 29, 2014, at 12:53 AM, Felix Breuer <[email protected]> wrote:

Hm, checking bokeh.__version__ from python gives

   0.4.2-230-geafec45-dirty.

However, under IPython I get

   unknown

as the result of bokeh.__version__.

Don't know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c "import bokeh; print bokeh.__version__" return?

If you have master installed from github it should be something similar (but maybe not identical) to "0.4.2-182-g758a7aa"

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer <[email protected]> wrote:

> Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.
>
> Is there an easy way to check if I have successfully upgraded bokeh?
>
> Felix
>
> On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
> Hi,
>
> On Fri, Mar 28, 2014 at 4:12 PM, <[email protected]> wrote:
> Hello everyone,
>
> I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a "maximal recursion depth reached" exception is thrown. The traceback is reproduced below.
>
> The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.
>
> I am using bokeh 0.4.2.
>
> Any ideas what exactly is going on and how to fix this?
>
> Thanks for bug report. It looks like what you're experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.
>
> [1] https://github.com/continuumio/bokeh/tree/master
>
> Felix
>
>
>
>
> ---------------------------------------------------------------------------
> RuntimeError
> Traceback (most recent call last)
>
> <ipython-input-5-fd97b705660d> in <module>()
> 5 if len(list(partitions(n))) > 0:
> 6 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
> ----> 7 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))
>
>
>
> <ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
> 49 plot.y_range = plot.x_range.clone()
> 50
> ---> 51 show()
>
>
>
> /Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
> 336 controller.open(_config["output_url"] + "/bokeh", new=new_param)
> 337 elif output_type == "notebook":
> --> 338 session.show(curplot())
> 339
> 340 def save(filename=None):
>
>
>
> /Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
> 38
> """
>
> 39 import IPython.core.displaypub as displaypub
> ---> 40 displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
> 41
> 42
>
>
>
> /Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
> 58 modelid = plot_ref["id"],
> 59 modeltype = plot_ref["type"],
> ---> 60 all_models = self.serialize_models(objects)
> )
>
> 61
> 62 plot_div = self._load_template(self.div_template).render(elementid=elementid)
>
>
>
> /Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
> 80
> 81 def serialize_models(self, objects=None, **jsonkwargs):
> ---> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
> 83
>
>
>
> /Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
> 66 all = set(to_convert)
> 67 for model in to_convert:
> ---> 68 children = recursively_traverse_plot_object(model)
> 69 all.update(children)
> 70
>
>
>
> /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> 155 child,
> 156 traversed_ids=traversed_ids,
> --> 157
> children=children)
>
> 158 return children
> 159
>
>
>
> /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> 155 child,
> 156 traversed_ids=traversed_ids,
> --> 157
> children=children)
>
> 158 return children
> 159
>
> ... and so on recursively ...
>
>
> /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> 146 return children
> 147 else:
> --> 148 immediate_children = plot_object.references()
> 149 children.add(plot_object)
> 150 traversed_ids.add(plot_object._id)
>
>
>
> /Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
> 224
> """Returns all PlotObjects that this object has references to
>
> 225
> """
>
> --> 226 return traverse_plot_object(self)
> 227
> 228 #---------------------------------------------------------------------
>
>
>
> /Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
> 133 children.add(obj)
> 134 return obj
> --> 135 for prop in plot_object.properties_with_refs():
> 136 val = getattr(plot_object, prop)
> 137 json_apply(val, check_func, func)
>
>
>
> /Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
> 547 if not hasattr(cls, "__cached_allprops_with_refs"):
> 548 s = accumulate_from_subclasses(
> cls,
>
> --> 549
> "__properties_with_refs__")
>
> 550 cls.__cached_allprops_with_refs = s
> 551 return cls.__cached_allprops_with_refs
>
>
>
> /Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
> 500 s = set()
> 501 for c in inspect.getmro(cls):
> --> 502 if issubclass(c, HasProps):
> 503 s.update(getattr(c, propname))
> 504 return s
>
>
>
> RuntimeError: maximum recursion depth exceeded while calling a Python object
>
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout.
>
> Mateusz
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,
Felix

···

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:

What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

  $ conda install bokeh # will grab deps too
        $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

  $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do "conda remove bokeh" before I do "python setup.py develop" or "python setup.py install"

Bryan

···

On Mar 29, 2014, at 11:57 AM, Felix Breuer <[email protected]> wrote:

When installing bokeh from git via

   python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,
Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:
Felix,

You can try that, or also could try "conda remove bokeh" before installing again from source. I just did a scan of the source to double check, that function "recursively_traverse_plot_object" has been completely removed, so if you are still seeing the exact same problem it's definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer <[email protected]> wrote:

> Hm, checking bokeh.__version__ from python gives
>
> 0.4.2-230-geafec45-dirty.
>
> However, under IPython I get
>
> unknown
>
> as the result of bokeh.__version__.
>
> Don't know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.
>
> Felix
>
>
> On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
> What does python -c "import bokeh; print bokeh.__version__" return?
>
> If you have master installed from github it should be something similar (but maybe not identical) to "0.4.2-182-g758a7aa"
>
> Bryan
>
> On Mar 29, 2014, at 12:41 AM, Felix Breuer <[email protected]> wrote:
>
> > Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.
> >
> > Is there an easy way to check if I have successfully upgraded bokeh?
> >
> > Felix
> >
> > On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
> > Hi,
> >
> > On Fri, Mar 28, 2014 at 4:12 PM, <[email protected]> wrote:
> > Hello everyone,
> >
> > I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a "maximal recursion depth reached" exception is thrown. The traceback is reproduced below.
> >
> > The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.
> >
> > I am using bokeh 0.4.2.
> >
> > Any ideas what exactly is going on and how to fix this?
> >
> > Thanks for bug report. It looks like what you're experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.
> >
> > [1] https://github.com/continuumio/bokeh/tree/master
> >
> > Felix
> >
> >
> >
> >
> > ---------------------------------------------------------------------------
> > RuntimeError
> > Traceback (most recent call last)
> >
> > <ipython-input-5-fd97b705660d> in <module>()
> > 5 if len(list(partitions(n))) > 0:
> > 6 print "n = %d, m = %d, k = %d, i = %d" % (n,m,k,i)
> > ----> 7 show_partitions(n,m,title="n = %d, m = %d, k = %d, i = %d" % (n,m,k,i))
> >
> >
> >
> > <ipython-input-4-351574fe308f> in show_partitions(n, m, small_circles, title)
> > 49 plot.y_range = plot.x_range.clone()
> > 50
> > ---> 51 show()
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
> > 336 controller.open(_config["output_url"] + "/bokeh", new=new_param)
> > 337 elif output_type == "notebook":
> > --> 338 session.show(curplot())
> > 339
> > 340 def save(filename=None):
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
> > 38
> > """
> >
> > 39 import IPython.core.displaypub as displaypub
> > ---> 40 displaypub.publish_display_data('bokeh', {'text/html': self.dumps(*objects)})
> > 41
> > 42
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
> > 58 modelid = plot_ref["id"],
> > 59 modeltype = plot_ref["type"],
> > ---> 60 all_models = self.serialize_models(objects)
> > )
> >
> > 61
> > 62 plot_div = self._load_template(self.div_template).render(elementid=elementid)
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
> > 80
> > 81 def serialize_models(self, objects=None, **jsonkwargs):
> > ---> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
> > 83
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
> > 66 all = set(to_convert)
> > 67 for model in to_convert:
> > ---> 68 children = recursively_traverse_plot_object(model)
> > 69 all.update(children)
> > 70
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> > 155 child,
> > 156 traversed_ids=traversed_ids,
> > --> 157
> > children=children)
> >
> > 158 return children
> > 159
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> > 155 child,
> > 156 traversed_ids=traversed_ids,
> > --> 157
> > children=children)
> >
> > 158 return children
> > 159
> >
> > ... and so on recursively ...
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
> > 146 return children
> > 147 else:
> > --> 148 immediate_children = plot_object.references()
> > 149 children.add(plot_object)
> > 150 traversed_ids.add(plot_object._id)
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
> > 224
> > """Returns all PlotObjects that this object has references to
> >
> > 225
> > """
> >
> > --> 226 return traverse_plot_object(self)
> > 227
> > 228 #---------------------------------------------------------------------
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
> > 133 children.add(obj)
> > 134 return obj
> > --> 135 for prop in plot_object.properties_with_refs():
> > 136 val = getattr(plot_object, prop)
> > 137 json_apply(val, check_func, func)
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
> > 547 if not hasattr(cls, "__cached_allprops_with_refs"):
> > 548 s = accumulate_from_subclasses(
> > cls,
> >
> > --> 549
> > "__properties_with_refs__")
> >
> > 550 cls.__cached_allprops_with_refs = s
> > 551 return cls.__cached_allprops_with_refs
> >
> >
> >
> > /Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
> > 500 s = set()
> > 501 for c in inspect.getmro(cls):
> > --> 502 if issubclass(c, HasProps):
> > 503 s.update(getattr(c, propname))
> > 504 return s
> >
> >
> >
> > RuntimeError: maximum recursion depth exceeded while calling a Python object
> >
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> > To post to this group, send email to [email protected].
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout.
> >
> > Mateusz
> >
> > --
> > You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> > To post to this group, send email to [email protected].
> > To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
> > For more options, visit https://groups.google.com/a/continuum.io/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

···

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

···

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

···

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

If you are installing from source just do:

python setup.py install --deploy

and check again…

···

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh
Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)
Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean
discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy
installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

···

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected]e wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

···

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061
Merge: 5a6751e 2d8ac3d
Author: Damin Avila [email protected]

Merge pull request #476 from damianavila/setup2

Supersede: Templated setup.py.
···

Date: Wed Apr 2 23:20:13 2014 -0300

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

OK, git is picking up the last master version, the problem has to be in another place… probably your environments… can you describe exactly how do you build it? So I can reproduce the issue…

···

On Thu, Apr 3, 2014 at 4:58 AM, Felix Breuer [email protected] wrote:

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061
Merge: 5a6751e 2d8ac3d

Author: Damin Avila [email protected]
Date: Wed Apr 2 23:20:13 2014 -0300

Merge pull request #476 from damianavila/setup2


Supersede: Templated setup.py.

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/bf2c5c18-b414-4faa-b512-f30e814f962a%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hello Damian,

here is how to reproduce the issue. Start from the Vagrant virtual machine specified here:

https://github.com/fbreuer/ipython-vagrant

This includes bokeh and ipython as available via pip. After provisioning is done, ssh into the machine and run

sudo pip uninstall bokeh
git clone https://github.com/ContinuumIO/bokeh.git
cd bokeh
sudo python setup.py install --deploy

You will see the error I posted earlier:

Installing bokeh…
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

Hope this helps,
Felix

···

On Thursday, April 3, 2014 2:24:54 PM UTC+2, Damian Avila wrote:

OK, git is picking up the last master version, the problem has to be in another place… probably your environments… can you describe exactly how do you build it? So I can reproduce the issue…

On Thu, Apr 3, 2014 at 4:58 AM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061
Merge: 5a6751e 2d8ac3d

Author: Damin Avila [email protected]
Date: Wed Apr 2 23:20:13 2014 -0300

Merge pull request #476 from damianavila/setup2


Supersede: Templated setup.py.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/bf2c5c18-b414-4faa-b512-f30e814f962a%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hello again,

without the Vagrant overhead, here is how to get to a test case from a basic Ubuntu 13.10 system such as the “puppetlabs/ubuntu-13.10-64-nocm” Vagrant box:

apt-get update
apt-get upgrade -y
apt-get install -y build-essential git python-dev python-pip supervisor libevent-dev redis-server libzmq-dev
cp /vagrant/_config/ipython_notebook.conf /etc/supervisor/conf.d/
pip install redis bokeh pyzmq tornado ipython
sudo pip uninstall bokeh
git clone https://github.com/ContinuumIO/bokeh.git
cd bokeh
sudo python setup.py install --deploy

error: option --deploy not recognized

Felix

···

On Thursday, April 3, 2014 8:06:17 PM UTC+2, Felix Breuer wrote:

OK, git is picking up the last master version, the problem has to be in another place… probably your environments… can you describe exactly how do you build it? So I can reproduce the issue…

On Thu, Apr 3, 2014 at 4:58 AM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061
Merge: 5a6751e 2d8ac3d

Author: Damin Avila [email protected]
Date: Wed Apr 2 23:20:13 2014 -0300

Merge pull request #476 from damianavila/setup2


Supersede: Templated setup.py.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/bf2c5c18-b414-4faa-b512-f30e814f962a%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hello Damian,

here is how to reproduce the issue. Start from the Vagrant virtual machine specified here:

https://github.com/fbreuer/ipython-vagrant

This includes bokeh and ipython as available via pip. After provisioning is done, ssh into the machine and run

sudo pip uninstall bokeh
git clone https://github.com/ContinuumIO/bokeh.git
cd bokeh
sudo python setup.py install --deploy

You will see the error I posted earlier:

Installing bokeh…
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

Hope this helps,
Felix

On Thursday, April 3, 2014 2:24:54 PM UTC+2, Damian Avila wrote:

Felix, try using the develop option, I mean:

python setup.py develop --deploy

I was thinking in develop, but I wrote install… grrr… sorry about that… give it a try a let me know…

···

On Thu, Apr 3, 2014 at 3:06 PM, Felix Breuer [email protected] wrote:

Hello Damian,

here is how to reproduce the issue. Start from the Vagrant virtual machine specified here:

https://github.com/fbreuer/ipython-vagrant

This includes bokeh and ipython as available via pip. After provisioning is done, ssh into the machine and run

sudo pip uninstall bokeh
git clone https://github.com/ContinuumIO/bokeh.git
cd bokeh
sudo python setup.py install --deploy

You will see the error I posted earlier:

Installing bokeh…
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’

warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

Hope this helps,
Felix

On Thursday, April 3, 2014 2:24:54 PM UTC+2, Damian Avila wrote:

OK, git is picking up the last master version, the problem has to be in another place… probably your environments… can you describe exactly how do you build it? So I can reproduce the issue…

On Thu, Apr 3, 2014 at 4:58 AM, Felix Breuer [email protected] wrote:

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061

Merge: 5a6751e 2d8ac3d

Author: Damin Avila [email protected]

Date: Wed Apr 2 23:20:13 2014 -0300

Merge pull request #476 from damianavila/setup2


Supersede: Templated setup.py.

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’

warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/bf2c5c18-b414-4faa-b512-f30e814f962a%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a9b637f4-be46-49b2-88a4-cbad460163f9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

felix:bokeh/ |master ✗|$ python setup.py develop --deploy
deploying bokehjs…
ERROR: could not deploy bokehjs

No further output is provided. I also tried:

felix:bokeh/ |master ✗|$ python setup.py develop
Traceback (most recent call last):
File “setup.py”, line 198, in
shutil.copy(app, join(SERVER, ‘static’, ‘js’))
File “/Users/felix/anaconda/envs/clean/lib/python2.7/shutil.py”, line 119, in copy
copyfile(src, dst)
File “/Users/felix/anaconda/envs/clean/lib/python2.7/shutil.py”, line 82, in copyfile
with open(src, ‘rb’) as fsrc:
IOError: [Errno 2] No such file or directory: ‘bokehjs/build/js/bokeh.js’

Both of these errors persisted even after I did

felix:bokeh/ |master ✗|$ cd bokehjs/
felix:bokehjs/ npm install -g grunt-cli
felix:bokehjs/ |master ✗|$ npm install
felix:bokehjs/ |master ✗|$ grunt build

which all finished successfully.

Felix

···

On Friday, April 4, 2014 1:32:30 PM UTC+2, Damian Avila wrote:

Felix, try using the develop option, I mean:

python setup.py develop --deploy

I was thinking in develop, but I wrote install… grrr… sorry about that… give it a try a let me know…

On Thu, Apr 3, 2014 at 3:06 PM, Felix Breuer [email protected] wrote:

warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

On Thursday, April 3, 2014 2:24:54 PM UTC+2, Damian Avila wrote:

OK, git is picking up the last master version, the problem has to be in another place… probably your environments… can you describe exactly how do you build it? So I can reproduce the issue…

On Thu, Apr 3, 2014 at 4:58 AM, Felix Breuer [email protected] wrote:

I tried the same thing again today, with same effects. Output of git show --summary is

felix:bokeh/ |master ✓|$ git show --summary
commit 68457a7a552fca25e08fb1407dfadf78e950c061

Merge: 5a6751e 2d8ac3d

Author: Damin Avila [email protected]

Date: Wed Apr 2 23:20:13 2014 -0300

Merge pull request #476 from damianavila/setup2


Supersede: Templated setup.py.

On Wednesday, April 2, 2014 8:27:05 PM UTC+2, Damian Avila wrote:

This is weird, current master support --deploy option since at least one week: https://github.com/ContinuumIO/bokeh/blob/master/setup.py#L41

git clone is picking up an old version???

what is the output of git show --summary?

On Wed, Apr 2, 2014 at 2:57 PM, Felix Breuer [email protected] wrote:

On Wednesday, April 2, 2014 7:25:05 PM UTC+2, Damian Avila wrote:

If you are installing from source just do:

python setup.py install --deploy

and check again…

On Wed, Apr 2, 2014 at 2:17 PM, Felix Breuer [email protected] wrote:

Okay, IPython is now picking up bokeh version 0.4.2-232-g0cec716 as it should, even though I have no idea what I did do differently.

However, now the plots stopped working as I get the error message:

Javascript error adding output!
./base: Unknown Collection BasicTickFormatter
See your browser Javascript console for more details.

The Javascript console unfortunately does not provide much more details:

Kernel started: 60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 110)

Starting WebSockets: ws://127.0.0.1:8888/kernels/60c66b37-2dac-438b-a386-46a3a2af57a2

kernel.js (line 143)

cfadb543-321c-493a-b216-29ee6e340270 Plot e2c29f78-93be-42bb-aab3-44da5749d356

jquery.min.js (line 8)

calling require source/column_data_source

jquery.min.js (line 86)

calling require range/data_range1d

jquery.min.js (line 86)

./base: Unknown Collection BasicTickFormatter

outputarea.js (line 338)

Javascript error adding output! ./base: Unknown Collection BasicTickFormatter

I tried starting bokeh-server with options -d -v -s -j and various subsets thereof, but did not achieve a different behavior or more information on the problem. On github I found a related issue recommending that I should “redeploy”, however I do not know what is meant by that.

Thanks,
Felix

On Tuesday, April 1, 2014 11:31:34 AM UTC+2, Bryan Van de ven wrote:

Felix is it possible that python and ipython are in different environments? Maybe ipython is only installed in the root env and that’s what gets picked up on your path? (Has happened to me)

On Apr 1, 2014, at 10:20, Felix Breuer [email protected] wrote:

Bryan,

I keep running into the strange phenomenon that IPython and Python “see” a different version of bokeh. I cannot get IPython to pick up on a version of bokeh installed via python setup.py install, even under a clean conda environment.

I will next try the same thing on a virtual machine and try to come up with a reproducible test case, possibly via Vagrant.

Felix

On Saturday, March 29, 2014 12:08:46 PM UTC+1, Bryan Van de ven wrote:

Felix,

The list of dependencies has a few platform specific cases. You can find them all listed in REQUIRES in setup.py.
If you are using conda, I would suggest:

    $ conda install bokeh # will grab deps too

    $ conda remove bokeh

Suddenly seems like an option to install a packages reps but not the package itself would be good. (Maybe it already exists) You can also use pip normally with the requirements.txt file:

    $ pip install -r requirements.txt

which would work in a conda env, for instance.

I typically just do “conda remove bokeh” before I do “python setup.py develop” or “python setup.py install”

Bryan

On Mar 29, 2014, at 11:57 AM, Felix Breuer [email protected] wrote:

When installing bokeh from git via

python setup.py install

into an activated conda environment, how can I make sure that all the dependencies are installed?

Thanks,

Felix

On Saturday, March 29, 2014 1:00:45 AM UTC+1, Bryan Van de ven wrote:

Felix,

You can try that, or also could try “conda remove bokeh” before installing again from source. I just did a scan of the source to double check, that function “recursively_traverse_plot_object” has been completely removed, so if you are still seeing the exact same problem it’s definitely not picking up the source install version. Let us know how things go tomorrow.

Bryan

On Mar 29, 2014, at 12:53 AM, Felix Breuer [email protected] wrote:

Hm, checking bokeh.version from python gives

0.4.2-230-geafec45-dirty.

However, under IPython I get

unknown

as the result of bokeh.version.

Don’t know what is going on there. I can try setting up a fresh conda environment and test there, but that will have to wait until tomorrow.

Felix

On Saturday, March 29, 2014 12:44:12 AM UTC+1, Bryan Van de ven wrote:
What does python -c “import bokeh; print bokeh.version” return?

If you have master installed from github it should be something similar (but maybe not identical) to “0.4.2-182-g758a7aa”

Bryan

On Mar 29, 2014, at 12:41 AM, Felix Breuer [email protected] wrote:

Hm, I just cloned the git repo, did python setup.py install and then restarted the notebook server: the same problem still shows.

Is there an easy way to check if I have successfully upgraded bokeh?

Felix

On Friday, March 28, 2014 9:31:34 PM UTC+1, Mateusz Paprocki wrote:
Hi,

On Fri, Mar 28, 2014 at 4:12 PM, [email protected] wrote:
Hello everyone,

I am using bokeh to generate plots within an IPython Notebook. When the total number of plots that I have produced grows large (~50) and the larger of the plots contain many objects (say ~1000 circles), then a “maximal recursion depth reached” exception is thrown. The traceback is reproduced below.

The curious thing is that, even though the recursion seems tied to the objects contained within a given plot, this error only gets thrown when there are many plots in the notebook. Just plotting the last polt (which throws the exception) on its own works fine.

I am using bokeh 0.4.2.

Any ideas what exactly is going on and how to fix this?

Thanks for bug report. It looks like what you’re experiencing is a know bug in Bokeh <= 0.4.2, which was fixed in development version [1]. You can either use this or wait for 0.5 release scheduled for next week. It would be great if you could give us feedback whether development version works for you.

[1] https://github.com/continuumio/bokeh/tree/master

Felix


RuntimeError
Traceback (most recent call last)

in ()
5 if len(list(partitions(n))) > 0:
6 print “n = %d, m = %d, k = %d, i = %d” % (n,m,k,i)
----> 7 show_partitions(n,m,title=“n = %d, m = %d, k = %d, i = %d” % (n,m,k,i))

in show_partitions(n, m, small_circles, title)
49 plot.y_range = plot.x_range.clone()
50
—> 51 show()

/Library/Python/2.7/site-packages/bokeh/plotting.pyc in show(browser, new)
336 controller.open(_config[“output_url”] + “/bokeh”, new=new_param)
337 elif output_type == “notebook”:
–> 338 session.show(curplot())
339
340 def save(filename=None):

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in show(self, *objects)
38
“”"

 39         import IPython.core.displaypub as displaypub

—> 40 displaypub.publish_display_data(‘bokeh’, {‘text/html’: self.dumps(*objects)})
41
42

/Library/Python/2.7/site-packages/bokeh/session/notebook_sessions.pyc in dumps(self, *objects)
58 modelid = plot_ref[“id”],
59 modeltype = plot_ref[“type”],
—> 60 all_models = self.serialize_models(objects)
)

 61
 62         plot_div = self._load_template(self.div_template).render(elementid=elementid)

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in serialize_models(self, objects, **jsonkwargs)
80
81 def serialize_models(self, objects=None, **jsonkwargs):
—> 82 return self.serialize(self.convert_models(objects), **jsonkwargs)
83

/Library/Python/2.7/site-packages/bokeh/session/base_json_session.pyc in convert_models(self, to_convert)
66 all = set(to_convert)
67 for model in to_convert:
—> 68 children = recursively_traverse_plot_object(model)
69 all.update(children)
70

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
155 child,
156 traversed_ids=traversed_ids,
–> 157
children=children)

158         return children
159

… and so on recursively …

/Library/Python/2.7/site-packages/bokeh/objects.pyc in recursively_traverse_plot_object(plot_object, traversed_ids, children)
146 return children
147 else:
–> 148 immediate_children = plot_object.references()
149 children.add(plot_object)
150 traversed_ids.add(plot_object._id)

/Library/Python/2.7/site-packages/bokeh/objects.pyc in references(self)
224
“”"Returns all PlotObjects that this object has references to

225
     """

–> 226 return traverse_plot_object(self)
227
228 #---------------------------------------------------------------------

/Library/Python/2.7/site-packages/bokeh/objects.pyc in traverse_plot_object(plot_object)
133 children.add(obj)
134 return obj
–> 135 for prop in plot_object.properties_with_refs():
136 val = getattr(plot_object, prop)
137 json_apply(val, check_func, func)

/Library/Python/2.7/site-packages/bokeh/properties.pyc in properties_with_refs(cls)
547 if not hasattr(cls, “__cached_allprops_with_refs”):
548 s = accumulate_from_subclasses(
cls,

–> 549
properties_with_refs”)

550             cls.__cached_allprops_with_refs = s
551         return cls.__cached_allprops_with_refs

/Library/Python/2.7/site-packages/bokeh/properties.pyc in accumulate_from_subclasses(cls, propname)
500 s = set()
501 for c in inspect.getmro(cls):
–> 502 if issubclass(c, HasProps):
503 s.update(getattr(c, propname))
504 return s

RuntimeError: maximum recursion depth exceeded while calling a Python object


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/45759ca6-9c09-40a9-b1b6-fdeb1c04f609%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Mateusz


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ea75b03e-ab89-463b-a71e-2cd9c2dad63d%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1a003872-0452-4c85-8239-12f79a8d61e1%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.


You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a39f881a-a5c6-451a-8e40-9b8658f5ae8f%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/47188705-fd51-4331-96bc-d0159b318cfe%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/aeaf1f82-8d41-4f00-a33b-870e478d9cf5%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thank for the quick reply! But again, I seem to be missing something:

felix:sources/ $ git clone https://github.com/ContinuumIO/bokeh

Cloning into ‘bokeh’…
remote: Reusing existing pack: 32938, done.
remote: Counting objects: 63, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 33001 (delta 33), reused 0 (delta 0)

Receiving objects: 100% (33001/33001), 81.06 MiB | 871.00 KiB/s, done.
Resolving deltas: 100% (17966/17966), done.
Checking connectivity… done.
felix:sources/ $ cd bokeh/
felix:bokeh/ |master ✓|$ source activate clean

discarding /Users/felix/anaconda/envs/clean/bin from PATH
prepending /Users/felix/anaconda/envs/clean/bin to PATH
felix:bokeh/ |master ✓|$ python setup.py build

felix:bokeh/ |master ✓|$ python setup.py install --deploy

installing bokeh, bokeh.pth was not found, so we did not clean it
/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’

warnings.warn(msg)

/Users/felix/anaconda/envs/clean/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘install_requires’
warnings.warn(msg)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]
or: setup.py --help-commands
or: setup.py cmd --help

error: option --deploy not recognized

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/6ae0ec2e-1558-45a8-879b-9f11c0447c6c%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/bf2c5c18-b414-4faa-b512-f30e814f962a%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hello Damian,

here is how to reproduce the issue. Start from the Vagrant virtual machine specified here:

https://github.com/fbreuer/ipython-vagrant

This includes bokeh and ipython as available via pip. After provisioning is done, ssh into the machine and run

sudo pip uninstall bokeh
git clone https://github.com/ContinuumIO/bokeh.git
cd bokeh
sudo python setup.py install --deploy

You will see the error I posted earlier:

Installing bokeh…
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: ‘zip_safe’
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires’Hope this helps,
Felix

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a9b637f4-be46-49b2-88a4-cbad460163f9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.