@@ -83,7 +83,9 @@ class ToolBase:
8383 Keymap to associate with this tool.
8484
8585 ``list[str]``: List of keys that will trigger this tool when a keypress
86- event is emitted on ``self.figure.canvas``.
86+ event is emitted on ``self.figure.canvas``. Note that this attribute is
87+ looked up on the instance, and can therefore be a property (this is used
88+ e.g. by the built-in tools to load the rcParams at instantiation time).
8789 """
8890
8991 description = None
@@ -382,7 +384,7 @@ class ToolQuit(ToolBase):
382384 """Tool to call the figure manager destroy method."""
383385
384386 description = 'Quit the figure'
385- default_keymap = mpl .rcParams ['keymap.quit' ]
387+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.quit' ])
386388
387389 def trigger (self , sender , event , data = None ):
388390 Gcf .destroy_fig (self .figure )
@@ -392,7 +394,7 @@ class ToolQuitAll(ToolBase):
392394 """Tool to call the figure manager destroy method."""
393395
394396 description = 'Quit all figures'
395- default_keymap = mpl .rcParams ['keymap.quit_all' ]
397+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.quit_all' ])
396398
397399 def trigger (self , sender , event , data = None ):
398400 Gcf .destroy_all ()
@@ -402,7 +404,7 @@ class ToolGrid(ToolBase):
402404 """Tool to toggle the major grids of the figure."""
403405
404406 description = 'Toggle major grids'
405- default_keymap = mpl .rcParams ['keymap.grid' ]
407+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.grid' ])
406408
407409 def trigger (self , sender , event , data = None ):
408410 sentinel = str (uuid .uuid4 ())
@@ -417,7 +419,7 @@ class ToolMinorGrid(ToolBase):
417419 """Tool to toggle the major and minor grids of the figure."""
418420
419421 description = 'Toggle major and minor grids'
420- default_keymap = mpl .rcParams ['keymap.grid_minor' ]
422+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.grid_minor' ])
421423
422424 def trigger (self , sender , event , data = None ):
423425 sentinel = str (uuid .uuid4 ())
@@ -432,7 +434,7 @@ class ToolFullScreen(ToolBase):
432434 """Tool to toggle full screen."""
433435
434436 description = 'Toggle fullscreen mode'
435- default_keymap = mpl .rcParams ['keymap.fullscreen' ]
437+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.fullscreen' ])
436438
437439 def trigger (self , sender , event , data = None ):
438440 self .figure .canvas .manager .full_screen_toggle ()
@@ -459,7 +461,7 @@ class ToolYScale(AxisScaleBase):
459461 """Tool to toggle between linear and logarithmic scales on the Y axis."""
460462
461463 description = 'Toggle scale Y axis'
462- default_keymap = mpl .rcParams ['keymap.yscale' ]
464+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.yscale' ])
463465
464466 def set_scale (self , ax , scale ):
465467 ax .set_yscale (scale )
@@ -469,7 +471,7 @@ class ToolXScale(AxisScaleBase):
469471 """Tool to toggle between linear and logarithmic scales on the X axis."""
470472
471473 description = 'Toggle scale X axis'
472- default_keymap = mpl .rcParams ['keymap.xscale' ]
474+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.xscale' ])
473475
474476 def set_scale (self , ax , scale ):
475477 ax .set_xscale (scale )
@@ -623,7 +625,7 @@ class ToolHome(ViewsPositionsBase):
623625
624626 description = 'Reset original view'
625627 image = 'home'
626- default_keymap = mpl .rcParams ['keymap.home' ]
628+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.home' ])
627629 _on_trigger = 'home'
628630
629631
@@ -632,7 +634,7 @@ class ToolBack(ViewsPositionsBase):
632634
633635 description = 'Back to previous view'
634636 image = 'back'
635- default_keymap = mpl .rcParams ['keymap.back' ]
637+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.back' ])
636638 _on_trigger = 'back'
637639
638640
@@ -641,7 +643,7 @@ class ToolForward(ViewsPositionsBase):
641643
642644 description = 'Forward to next view'
643645 image = 'forward'
644- default_keymap = mpl .rcParams ['keymap.forward' ]
646+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.forward' ])
645647 _on_trigger = 'forward'
646648
647649
@@ -657,7 +659,7 @@ class SaveFigureBase(ToolBase):
657659
658660 description = 'Save the figure'
659661 image = 'filesave'
660- default_keymap = mpl .rcParams ['keymap.save' ]
662+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.save' ])
661663
662664
663665class ZoomPanBase (ToolToggleBase ):
@@ -732,7 +734,7 @@ class ToolZoom(ZoomPanBase):
732734
733735 description = 'Zoom to rectangle'
734736 image = 'zoom_to_rect'
735- default_keymap = mpl .rcParams ['keymap.zoom' ]
737+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.zoom' ])
736738 cursor = cursors .SELECT_REGION
737739 radio_group = 'default'
738740
@@ -856,7 +858,7 @@ def _release(self, event):
856858class ToolPan (ZoomPanBase ):
857859 """Pan axes with left mouse, zoom with right."""
858860
859- default_keymap = mpl .rcParams ['keymap.pan' ]
861+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.pan' ])
860862 description = 'Pan axes with left mouse, zoom with right'
861863 image = 'move'
862864 cursor = cursors .MOVE
@@ -921,7 +923,7 @@ def _mouse_move(self, event):
921923
922924class ToolHelpBase (ToolBase ):
923925 description = 'Print tool list, shortcuts and description'
924- default_keymap = mpl .rcParams ['keymap.help' ]
926+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.help' ])
925927 image = 'help'
926928
927929 @staticmethod
@@ -961,7 +963,7 @@ class ToolCopyToClipboardBase(ToolBase):
961963 """Tool to copy the figure to the clipboard."""
962964
963965 description = 'Copy the canvas figure to clipboard'
964- default_keymap = mpl .rcParams ['keymap.copy' ]
966+ default_keymap = property ( lambda self : mpl .rcParams ['keymap.copy' ])
965967
966968 def trigger (self , * args , ** kwargs ):
967969 message = "Copy tool is not available"
0 commit comments