source: sasview/src/sas/sasgui/plottools/config.py @ 0a413bb

Last change on this file since 0a413bb was a2a1c20, checked in by Paul Kienzle <pkienzle@…>, 7 years ago

make pkg_resources optional

  • Property mode set to 100644
File size: 2.4 KB
Line 
1# This program is public domain
2"""
3Configure plotter for plottools.
4
5This must be imported first in __init__.py for plottools.
6
7If your application uses matplotlib outside plottools, then
8please do the following at the start of your application:
9
10    # Select matplotlib version and backend
11    import sas.sasgui.plottools.config
12
13Note that plottools requires particular versions of matplotlib
14and a particular backend.  As of this writing it is the WXAgg
15backend for matplotlib>=0.98.
16
17The plottools package uses pkg_resources if available to select
18the correct version of matplotlib.  If you need multiple matplotlib
19versions in your path, be sure to use "easy_install -m" for all
20of them.  If a version is installed without "-m" that does not
21meet the requirements, then pkg_resources.require() will fail,
22even if you have installed a suitable version with "-m".  In this
23case you will need to fix up your site-packages directory,
24probably by removing site-packages/matplotlib and the associated
25egg file for that version, and reinstalling with "-m".  You may
26also need to edit site-packages/easy-install.pth.
27"""
28import sys
29
30__all__ = []
31
32plot_version = "0.98"
33plot_backend = "WXAgg"
34
35# Sort out matplotlib version
36import matplotlib
37try:
38    import pkg_resources
39    pkg_resources.require("matplotlib>=" + plot_version)
40except ImportError:
41    from distutils.version import LooseVersion as Version
42    if Version(matplotlib.__version__) < Version(plot_version):
43        msg = "Matplotlib version must be %s or newer" % (plot_version, )
44        raise ImportError(msg)
45
46# Sort out matplotlib backend
47#import matplotlib
48if 'matplotlib.backends' not in sys.modules:
49    # if no backend yet, be sure to use the correct one
50    matplotlib.use(plot_backend)
51elif matplotlib.get_backend() != plot_backend:
52    # if a backend has already been selected, make sure it is the correct one.
53    raise ImportError("Matplotlib not using backend " + plot_backend)
54
55# set global plot style
56param = 'legend.handletextpad'
57if param not in matplotlib.rcParams: param = 'legend.handletextsep'
58matplotlib.rcParams[param] = 0.05
59matplotlib.rcParams['legend.numpoints'] = 1
60
61# this should happen after initial matplotlib configuration
62from .toolbar import NavigationToolBar
63from matplotlib.backends import backend_wxagg
64backend_wxagg.NavigationToolbar2WxAgg = NavigationToolBar
65
66# CRUFT: bumps 0.7.5.6 and older uses wrong toolbar
67backend_wxagg.NavigationToolbar2Wx = NavigationToolBar
Note: See TracBrowser for help on using the repository browser.