Backend class to factor out common code. · matplotlib/matplotlib@1c3da14 · GitHub
Skip to content

Commit 1c3da14

Browse files
committed
Backend class to factor out common code.
1 parent 6ce2f06 commit 1c3da14

26 files changed

Lines changed: 470 additions & 841 deletions

lib/matplotlib/backend_bases.py

Lines changed: 103 additions & 46 deletions

lib/matplotlib/backends/backend_agg.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
from collections import OrderedDict
3030
from math import radians, cos, sin
3131
from matplotlib import verbose, rcParams, __version__
32-
from matplotlib.backend_bases import (RendererBase, FigureManagerBase,
33-
FigureCanvasBase)
32+
from matplotlib.backend_bases import (
33+
_Backend, FigureCanvasBase, FigureManagerBase, RendererBase)
3434
from matplotlib.cbook import maxdict, restrict_dict
3535
from matplotlib.figure import Figure
3636
from matplotlib.font_manager import findfont, get_font
@@ -397,24 +397,6 @@ def post_processing(image, dpi):
397397
gc, l + ox, height - b - h + oy, img)
398398

399399

400-
def new_figure_manager(num, *args, **kwargs):
401-
"""
402-
Create a new figure manager instance
403-
"""
404-
FigureClass = kwargs.pop('FigureClass', Figure)
405-
thisFig = FigureClass(*args, **kwargs)
406-
return new_figure_manager_given_figure(num, thisFig)
407-
408-
409-
def new_figure_manager_given_figure(num, figure):
410-
"""
411-
Create a new figure manager instance for the given figure.
412-
"""
413-
canvas = FigureCanvasAgg(figure)
414-
manager = FigureManagerBase(canvas, num)
415-
return manager
416-
417-
418400
class FigureCanvasAgg(FigureCanvasBase):
419401
"""
420402
The canvas the figure renders into. Calls the draw and print fig
@@ -609,4 +591,7 @@ def print_tif(self, filename_or_obj, *args, **kwargs):
609591
print_tiff = print_tif
610592

611593

612-
FigureCanvas = FigureCanvasAgg
594+
@_Backend.export
595+
class _BackendAgg(_Backend):
596+
FigureCanvas = FigureCanvasAgg
597+
FigureManager = FigureManagerBase

lib/matplotlib/backends/backend_cairo.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@
5252
del _version_required
5353

5454
from matplotlib.backend_bases import (
55-
RendererBase, GraphicsContextBase, FigureManagerBase, FigureCanvasBase)
56-
from matplotlib.figure import Figure
57-
from matplotlib.mathtext import MathTextParser
58-
from matplotlib.path import Path
59-
from matplotlib.transforms import Bbox, Affine2D
55+
_Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase,
56+
RendererBase)
57+
from matplotlib.figure import Figure
58+
from matplotlib.mathtext import MathTextParser
59+
from matplotlib.path import Path
60+
from matplotlib.transforms import Bbox, Affine2D
6061
from matplotlib.font_manager import ttfFontProperty
6162

6263

@@ -549,4 +550,7 @@ def _save(self, fo, fmt, **kwargs):
549550
fo.close()
550551

551552

552-
FigureCanvas = FigureCanvasCairo
553+
@_Backend.export
554+
class _BackendCairo(_Backend):
555+
FigureCanvas = FigureCanvasCairo
556+
FigureManager = FigureManagerBase

lib/matplotlib/backends/backend_gdk.py

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
from matplotlib import rcParams
2525
from matplotlib._pylab_helpers import Gcf
2626
from matplotlib.backend_bases import (
27-
RendererBase, GraphicsContextBase, FigureManagerBase, FigureCanvasBase)
27+
_Backend, FigureCanvasBase, FigureManagerBase, GraphicsContextBase,
28+
RendererBase)
2829
from matplotlib.cbook import restrict_dict, warn_deprecated
2930
from matplotlib.figure import Figure
3031
from matplotlib.mathtext import MathTextParser
@@ -381,24 +382,6 @@ def set_linewidth(self, w):
381382
self.gdkGC.line_width = max(1, int(np.round(pixels)))
382383

383384

384-
def new_figure_manager(num, *args, **kwargs):
385-
"""
386-
Create a new figure manager instance
387-
"""
388-
FigureClass = kwargs.pop('FigureClass', Figure)
389-
thisFig = FigureClass(*args, **kwargs)
390-
return new_figure_manager_given_figure(num, thisFig)
391-
392-
393-
def new_figure_manager_given_figure(num, figure):
394-
"""
395-
Create a new figure manager instance for the given figure.
396-
"""
397-
canvas = FigureCanvasGDK(figure)
398-
manager = FigureManagerBase(canvas, num)
399-
return manager
400-
401-
402385
class FigureCanvasGDK (FigureCanvasBase):
403386
def __init__(self, figure):
404387
FigureCanvasBase.__init__(self, figure)
@@ -452,3 +435,9 @@ def _print_image(self, filename, format, *args, **kwargs):
452435
options['quality'] = str(options['quality'])
453436

454437
pixbuf.save(filename, format, options=options)
438+
439+
440+
@_Backend.export
441+
class _BackendGDK(_Backend):
442+
FigureCanvas = FigureCanvasGDK
443+
FigureManager = FigureManagerBase

lib/matplotlib/backends/backend_gtk.py

Lines changed: 19 additions & 42 deletions

0 commit comments

Comments
 (0)