Exception not handled in widgetlock()
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el problema con el ejemplo mínimo de Jupyter y, a continuación, inspecciona ipympl/backend_nbagg.py y matplotlib/widgets.py en torno al manejo del bloqueo del widget que se muestra en el traceback. Confirma el comportamiento esperado cuando una operación de zoom o desplazamiento intenta adquirir un bloqueo ocupado y añade cobertura que demuestre que la interacción ya no produce un ValueError no capturado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the issue
I want to use a selector matplotlib.widgets.RectangleSelector , it is incompatible with zoom and pan
So I try to call widget lock to prevent user from using zoom in the same time.
minimum code:
%matplotlib ipympl
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
ax.plot([0,1],[0,1])
fig.canvas.widgetlock(ax) # get the widget lock
if you then hit the zoom or pan matplotlib button, which also try to get the lock, you get
ValueError Traceback (most recent call last)
File ~/spike/venvOW/lib/python3.9/site-packages/ipympl/backend_nbagg.py:279, in Canvas._handle_message(self, object, content, buffers)
276 self.manager.handle_json(content)
278 else:
--> 279 self.manager.handle_json(content)
...
File ~/spike/venvOW/lib/python3.9/site-packages/matplotlib/widgets.py:42, in LockDraw.__call__(self, o)
40 """Reserve the lock for *o*."""
41 if not self.available(o):
---> 42 raise ValueError('already locked')
43 self._owner = o
ValueError: already locked
Alternatively, I could use the right click for the selector, but I have not found a way to restrict zoom and pan to left click only.
Versions
3.9.7 (default, Sep 16 2021, 13:09:58)
[GCC 7.5.0]
ipympl version: 0.8.8
Selected Jupyter core packages...
IPython : 8.0.1
ipykernel : 6.9.1
ipywidgets : 7.6.5
jupyter_client : 7.1.2
jupyter_core : 4.9.2
jupyter_server : 1.13.5
jupyterlab : not installed
nbclient : 0.5.11
nbconvert : 6.4.2
nbformat : 5.1.3
notebook : 6.4.8
qtconsole : 5.2.2
traitlets : 5.1.1
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 1.7k
- Forks
- 234
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de matplotlib/ipympl
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
matplotlib/ipympl#623 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
matplotlib/ipympl#622 · 13 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
matplotlib/ipympl#612 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
matplotlib/ipympl#611 · 4 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
matplotlib/ipympl#609 · 7 comentarios ·
Todos los issues de matplotlib/ipympl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pastelsky/bundlephobia#1122 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jellyfin/jellyfin-web#8540 ·