SF.net SVN: matplotlib: [4731] trunk/toolkits/basemap/lib/matplotlib/ toolkits/basemap/basemap.py
Revision: 4731 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4731&view=rev Author: jswhit Date: 2007-12-14 05:01:36 -0800 (Fri, 14 Dec 2007) Log Message: --- get rid of reference to numerix in docstring Modified Paths: -- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py === --- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-12-13 22:40:33 UTC (rev 4730) +++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-12-14 13:01:36 UTC (rev 4731) @@ -2698,7 +2698,7 @@ points in datain are masked. To avoid this, do the interpolation in two passes, first with order=1 (producing dataout1), then with order=0 (producing dataout2). Then replace all the masked values in dataout1 -with the corresponding elements in dataout2 (using numerix.where). +with the corresponding elements in dataout2 (using numpy.where). This effectively uses nearest neighbor interpolation if any of the four surrounding points in datain are masked, and bilinear interpolation otherwise. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4732] trunk/toolkits/basemap/setup.py
Revision: 4732
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4732&view=rev
Author: jswhit
Date: 2007-12-14 08:28:34 -0800 (Fri, 14 Dec 2007)
Log Message:
---
look in /opt/local for geos lib (macports installs there)
Modified Paths:
--
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/setup.py
===
--- trunk/toolkits/basemap/setup.py 2007-12-14 13:01:36 UTC (rev 4731)
+++ trunk/toolkits/basemap/setup.py 2007-12-14 16:28:34 UTC (rev 4732)
@@ -52,7 +52,7 @@
if GEOS_dir is None:
# if GEOS_dir not set, check a few standard locations.
-GEOS_dirs = ['/usr/local','/sw','/opt',os.path.expanduser('~')]
+GEOS_dirs =
['/usr/local','/sw','/opt','/opt/local',os.path.expanduser('~')]
for direc in GEOS_dirs:
geos_version = check_geosversion(direc)
print 'checking for GEOS lib in %s ' % direc
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4733] branches/transforms
Revision: 4733
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4733&view=rev
Author: mdboom
Date: 2007-12-14 12:07:59 -0800 (Fri, 14 Dec 2007)
Log Message:
---
First pass at symmetrical log plots. Expose xscale() and yscale()
through pyplot.
Modified Paths:
--
branches/transforms/lib/matplotlib/axes.py
branches/transforms/lib/matplotlib/pyplot.py
branches/transforms/lib/matplotlib/scale.py
branches/transforms/lib/matplotlib/ticker.py
Added Paths:
---
branches/transforms/examples/symlog_demo.py
Added: branches/transforms/examples/symlog_demo.py
===
--- branches/transforms/examples/symlog_demo.py (rev 0)
+++ branches/transforms/examples/symlog_demo.py 2007-12-14 20:07:59 UTC (rev
4733)
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+from pylab import *
+
+dt = 1.0
+x = arange(-50.0, 50.0, dt)
+y = arange(0, 100.0, dt)
+
+subplot(311)
+plot(x, y)
+xscale('symlog')
+ylabel('symlogx')
+grid(True)
+gca().xaxis.grid(True, which='minor') # minor grid on too
+
+subplot(312)
+plot(y, x)
+yscale('symlog')
+ylabel('symlogy')
+
+
+subplot(313)
+plot(x, npy.sin(x / 3.0))
+xscale('symlog')
+yscale('symlog')
+grid(True)
+ylabel('symlog both')
+
+savefig('log_demo')
+show()
Property changes on: branches/transforms/examples/symlog_demo.py
___
Name: svn:executable
+ *
Modified: branches/transforms/lib/matplotlib/axes.py
===
--- branches/transforms/lib/matplotlib/axes.py 2007-12-14 16:28:34 UTC (rev
4732)
+++ branches/transforms/lib/matplotlib/axes.py 2007-12-14 20:07:59 UTC (rev
4733)
@@ -741,8 +741,6 @@
self.xaxis.cla()
self.yaxis.cla()
-self.set_xscale('linear')
-self.set_yscale('linear')
self.ignore_existing_data_limits = True
self.callbacks = cbook.CallbackRegistry(('xlim_changed',
'ylim_changed'))
@@ -768,6 +766,8 @@
self.collections = [] # collection.Collection instances
self._autoscaleon = True
+self.set_xscale('linear')
+self.set_yscale('linear')
self.grid(self._gridOn)
props = font_manager.FontProperties(size=rcParams['axes.titlesize'])
@@ -1654,6 +1654,7 @@
", ".join(mscale.get_scale_names()))
return self.xaxis.get_scale()
+# MGDTODO: Update docstring
def set_xscale(self, value, **kwargs):
"""
SET_XSCALE(value)
@@ -1673,6 +1674,7 @@
ACCEPTS: [%(scale)s]
""" % {'scale': ' | '.join([repr(x) for x in
mscale.get_scale_names()])}
self.xaxis.set_scale(value, **kwargs)
+self.autoscale_view()
self._update_transScale()
def get_xticks(self, minor=False):
@@ -1833,6 +1835,7 @@
ACCEPTS: %(scale)s
""" % {'scale': ' | '.join([repr(x) for x in
mscale.get_scale_names()])}
self.yaxis.set_scale(value, **kwargs)
+self.autoscale_view()
self._update_transScale()
def get_yticks(self, minor=False):
@@ -1992,6 +1995,7 @@
lim = self.viewLim.frozen(),
trans = self.transData.frozen(),
trans_inverse = self.transData.inverted().frozen(),
+bbox = self.bbox.frozen(),
x = x,
y = y
)
@@ -2044,9 +2048,11 @@
p = self._pan_start
dx = x - p.x
dy = y - p.y
+if dx == 0 and dy == 0:
+return
if button == 1:
dx, dy = format_deltas(key, dx, dy)
-result = self.bbox.frozen().translated(-dx, -dy) \
+result = p.bbox.translated(-dx, -dy) \
.transformed(p.trans_inverse)
elif button == 3:
try:
Modified: branches/transforms/lib/matplotlib/pyplot.py
===
--- branches/transforms/lib/matplotlib/pyplot.py2007-12-14 16:28:34 UTC
(rev 4732)
+++ branches/transforms/lib/matplotlib/pyplot.py2007-12-14 20:07:59 UTC
(rev 4733)
@@ -12,6 +12,7 @@
from matplotlib.axes import Axes
from matplotlib.projections import PolarAxes
from matplotlib import mlab # for csv2rec in plotfile
+from matplotlib.scale import get_scale_names
from matplotlib import cm
from matplotlib.cm import get_cmap
@@ -726,8 +727,32 @@
return ret
+# MGDTODO: Update docstring
+def xscale(*args, **kwargs):
+"""
+SET_XSCALE(value)
+Set the xscaling: %(scale)s
+""" % {'scale': ' | '.join([repr(x) for x in get_scale_names()])}
+ax = gca()
+ret = ax.set_xscale(*args, **kwargs)
+draw_if_interactive()
+return ret
+
+# MGDTODO: Update docstring
+def yscale(*args, **kwargs):
+"""
+SET_YSCALE(value)
+
+Set the yscaling: %(scale)s
+""" % {'scale': ' | '.jo
SF.net SVN: matplotlib: [4734] branches/transforms/examples/polar_bar.py
Revision: 4734 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4734&view=rev Author: mdboom Date: 2007-12-14 12:08:22 -0800 (Fri, 14 Dec 2007) Log Message: --- Fix minimum value of bars so it looks correct upon zooming. Modified Paths: -- branches/transforms/examples/polar_bar.py Modified: branches/transforms/examples/polar_bar.py === --- branches/transforms/examples/polar_bar.py 2007-12-14 20:07:59 UTC (rev 4733) +++ branches/transforms/examples/polar_bar.py 2007-12-14 20:08:22 UTC (rev 4734) @@ -13,7 +13,7 @@ theta = npy.arange(0.0, 2*npy.pi, 2*npy.pi/N) radii = 10*npy.random.rand(N) width = npy.pi/4*npy.random.rand(N) -bars = ax.bar(theta, radii, width=width, bottom=0.1) +bars = ax.bar(theta, radii, width=width, bottom=0.0) for r,bar in zip(radii, bars): bar.set_facecolor( cm.jet(r/10.)) bar.set_alpha(0.5) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4735] branches/transforms
Revision: 4735
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4735&view=rev
Author: mdboom
Date: 2007-12-14 12:12:18 -0800 (Fri, 14 Dec 2007)
Log Message:
---
Merged revisions 4726-4734 via svnmerge from
http://matplotlib.svn.sf.net/svnroot/matplotlib/trunk/matplotlib
r4726 | jdh2358 | 2007-12-13 13:17:33 -0500 (Thu, 13 Dec 2007) | 2 lines
removed namespace declaration from toolkits __init__
r4728 | mdboom | 2007-12-13 13:30:45 -0500 (Thu, 13 Dec 2007) | 2 lines
Update API_CHANGES and CHANGELOG for stuff since 0.91.1
r4730 | jdh2358 | 2007-12-13 17:40:33 -0500 (Thu, 13 Dec 2007) | 2 lines
noted rec2gtk and recexcel moves in CHANGELOG
Modified Paths:
--
branches/transforms/API_CHANGES
branches/transforms/CHANGELOG
branches/transforms/lib/matplotlib/toolkits/__init__.py
Property Changed:
branches/transforms/
Property changes on: branches/transforms
___
Name: svnmerge-integrated
- /trunk/matplotlib:1-4725
+ /trunk/matplotlib:1-4734
Modified: branches/transforms/API_CHANGES
===
--- branches/transforms/API_CHANGES 2007-12-14 20:08:22 UTC (rev 4734)
+++ branches/transforms/API_CHANGES 2007-12-14 20:12:18 UTC (rev 4735)
@@ -169,6 +169,9 @@
END OF TRANSFORMS REFACTORING
+A warning is issued when an image is drawn on log-scaled
+axes, since it will not log-scale the image data.
+
Moved rec2gtk to matplotlib.toolkits.gtktools
Moved rec2excel to matplotlib.toolkits.exceltools
@@ -182,8 +185,6 @@
Changed cbook.is_file_like to cbook.is_writable_file_like and
corrected behavior.
-Moved mlab.csv2rec -> recutils.csv2rec
-
Added ax kwarg to pyplot.colorbar and Figure.colorbar so that
one can specify the axes object from which space for the colorbar
is to be taken, if one does not want to make the colorbar axes
Modified: branches/transforms/CHANGELOG
===
--- branches/transforms/CHANGELOG 2007-12-14 20:08:22 UTC (rev 4734)
+++ branches/transforms/CHANGELOG 2007-12-14 20:12:18 UTC (rev 4735)
@@ -1,9 +1,16 @@
-2007-12-10 Fix SVG text rendering bug.
+2007-12-13 Moved rec2gtk to matplotlib.toolkits.gtktools and rec2excel
+ to matplotlib.toolkits.exceltools - JDH
-2007-12-10 Increase accuracy of circle and ellipse drawing by using an 8-piece
- bezier approximation, rather than a 4-piece one. Fix PDF, SVG and
- Cairo backends so they can draw paths (meaning ellipses as well).
+2007-12-12 Support alpha-blended text in the Agg and Svg backends -
+ MGD
+2007-12-10 Fix SVG text rendering bug. - MGD
+
+2007-12-10 Increase accuracy of circle and ellipse drawing by using an
+ 8-piece bezier approximation, rather than a 4-piece one.
+ Fix PDF, SVG and Cairo backends so they can draw paths
+ (meaning ellipses as well). - MGD
+
2007-12-07 Issue a warning when drawing an image on a non-linear axis. - MGD
2007-12-06 let widgets.Cursor initialize to the lower x and y bounds
@@ -18,6 +25,10 @@
(This was a regression since 0.90 caused by the refactoring of
font_manager.py) - MGD
+2007-12-05 Support arbitrary rotation of usetex text in Agg backend. - MGD
+
+2007-12-04 Support '|' as a character in mathtext - MGD
+
===
2007-11-27 Released 0.91.1 at revision 4517
Modified: branches/transforms/lib/matplotlib/toolkits/__init__.py
===
--- branches/transforms/lib/matplotlib/toolkits/__init__.py 2007-12-14
20:08:22 UTC (rev 4734)
+++ branches/transforms/lib/matplotlib/toolkits/__init__.py 2007-12-14
20:12:18 UTC (rev 4735)
@@ -1,4 +1,4 @@
-try:
-__import__('pkg_resources').declare_namespace(__name__)
-except ImportError:
-pass # must not have setuptools
+#try:
+#__import__('pkg_resources').declare_namespace(__name__)
+#except ImportError:
+#pass # must not have setuptools
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4736] trunk/toolkits/basemap/setup.py
Revision: 4736
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4736&view=rev
Author: jswhit
Date: 2007-12-14 13:16:38 -0800 (Fri, 14 Dec 2007)
Log Message:
---
took out namespace package stuff (because I don't understand it,
and it apparently is not needed).
Modified Paths:
--
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/setup.py
===
--- trunk/toolkits/basemap/setup.py 2007-12-14 20:12:18 UTC (rev 4735)
+++ trunk/toolkits/basemap/setup.py 2007-12-14 21:16:38 UTC (rev 4736)
@@ -1,4 +1,5 @@
import sys, glob, os
+from distutils.core import setup
major, minor1, minor2, s, tmp = sys.version_info
if major==2 and minor1<=3:
# setuptools monkeypatches distutils.core.Distribution to support
@@ -132,16 +133,6 @@
packages = packages + ['httplib2']
package_dirs['httlib2'] = os.path.join('lib','httplib2')
-if 'setuptools' in sys.modules:
-# Are we running with setuptools?
-# if so, need to specify all the packages in heirarchy
-additional_params = {'namespace_packages' : ['matplotlib.toolkits']}
-packages.extend(['matplotlib', 'matplotlib.toolkits'])
-setup = setuptools.setup
-else:
-additional_params = {}
-from distutils.core import setup
-
# Specify all the required mpl data
pyproj_datafiles = ['data/epsg', 'data/esri', 'data/esri.extra', 'data/GL27',
'data/nad.lst', 'data/nad27', 'data/nad83', 'data/ntv2_out.dist',
'data/other.extra', 'data/pj_out27.dist', 'data/pj_out83.dist',
'data/proj_def.dat', 'data/README', 'data/td_out.dist', 'data/test27',
'data/test83', 'data/testntv2', 'data/testvarious', 'data/world']
boundaryfiles = []
@@ -175,6 +166,5 @@
packages = packages,
package_dir = package_dirs,
ext_modules = extensions,
- package_data = package_data,
- **additional_params
+ package_data = package_data
)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4737] trunk/toolkits/basemap/examples/plotsst.py
Revision: 4737
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4737&view=rev
Author: jswhit
Date: 2007-12-14 16:12:13 -0800 (Fri, 14 Dec 2007)
Log Message:
---
add ice to plot.
Modified Paths:
--
trunk/toolkits/basemap/examples/plotsst.py
Modified: trunk/toolkits/basemap/examples/plotsst.py
===
--- trunk/toolkits/basemap/examples/plotsst.py 2007-12-14 21:16:38 UTC (rev
4736)
+++ trunk/toolkits/basemap/examples/plotsst.py 2007-12-15 00:12:13 UTC (rev
4737)
@@ -1,12 +1,14 @@
from matplotlib.toolkits.basemap import Basemap, NetCDFFile
import pylab, numpy
-# read in sea-surface temperature data
+# read in sea-surface temperature and ice data
# can be a local file, a URL for a remote opendap dataset,
# or (if PyNIO is installed) a GRIB or HDF file.
ncfile =
NetCDFFile('http://nomads.ncdc.noaa.gov:8085/thredds/dodsC/oisst/2007/AVHRR/sst4-navy-eot.20071201.nc')
# read sst. Will automatically create a masked array using
# missing_value variable attribute.
sst = ncfile.variables['sst'][:]
+# read ice.
+ice = ncfile.variables['ice'][:]
# read lats and lons (representing centers of grid boxes).
lats = ncfile.variables['lat'][:]
lons = ncfile.variables['lon'][:]
@@ -30,12 +32,13 @@
# color background of map projection region.
# missing values over land will show up this color.
m.drawmapboundary(fill_color='0.3')
-# plot with pcolor
-im = m.pcolor(x,y,sst,shading='flat',cmap=pylab.cm.gist_ncar)
+# plot ice, then with pcolor
+im1 = m.pcolor(x,y,sst,shading='flat',cmap=pylab.cm.gist_ncar)
+im2 = m.pcolor(x,y,ice,shading='flat',cmap=pylab.cm.gist_gray)
# draw parallels and meridians, but don't bother labelling them.
m.drawparallels(numpy.arange(-90.,120.,30.))
m.drawmeridians(numpy.arange(0.,420.,60.))
# draw horizontal colorbar.
-pylab.colorbar(orientation='horizontal')
+pylab.colorbar(im1,orientation='horizontal')
# display the plot.
pylab.show()
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4738] trunk/toolkits/basemap
Revision: 4738
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4738&view=rev
Author: jswhit
Date: 2007-12-14 18:33:26 -0800 (Fri, 14 Dec 2007)
Log Message:
---
remove setuptools requirement.
Modified Paths:
--
trunk/toolkits/basemap/examples/plotsst.py
trunk/toolkits/basemap/setup-data.py
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/examples/plotsst.py
===
--- trunk/toolkits/basemap/examples/plotsst.py 2007-12-15 00:12:13 UTC (rev
4737)
+++ trunk/toolkits/basemap/examples/plotsst.py 2007-12-15 02:33:26 UTC (rev
4738)
@@ -3,7 +3,7 @@
# read in sea-surface temperature and ice data
# can be a local file, a URL for a remote opendap dataset,
# or (if PyNIO is installed) a GRIB or HDF file.
-ncfile =
NetCDFFile('http://nomads.ncdc.noaa.gov:8085/thredds/dodsC/oisst/2007/AVHRR/sst4-navy-eot.20071201.nc')
+ncfile =
NetCDFFile('http://nomads.ncdc.noaa.gov:8085/thredds/dodsC/oisst/2007/AVHRR/sst4-navy-eot.20071213.nc')
# read sst. Will automatically create a masked array using
# missing_value variable attribute.
sst = ncfile.variables['sst'][:]
@@ -33,7 +33,7 @@
# missing values over land will show up this color.
m.drawmapboundary(fill_color='0.3')
# plot ice, then with pcolor
-im1 = m.pcolor(x,y,sst,shading='flat',cmap=pylab.cm.gist_ncar)
+im1 = m.pcolor(x,y,sst,shading='flat',cmap=pylab.cm.jet)
im2 = m.pcolor(x,y,ice,shading='flat',cmap=pylab.cm.gist_gray)
# draw parallels and meridians, but don't bother labelling them.
m.drawparallels(numpy.arange(-90.,120.,30.))
Modified: trunk/toolkits/basemap/setup-data.py
===
--- trunk/toolkits/basemap/setup-data.py2007-12-15 00:12:13 UTC (rev
4737)
+++ trunk/toolkits/basemap/setup-data.py2007-12-15 02:33:26 UTC (rev
4738)
@@ -1,13 +1,4 @@
import sys, glob, os
-if 'setuptools' in sys.modules:
-# Are we running with setuptools?
-# if so, need to specify all the packages in heirarchy
-additional_params = {'namespace_packages' : ['matplotlib.toolkits']}
-packages.extend(['matplotlib', 'matplotlib.toolkits'])
-setup = setuptools.setup
-else:
-additional_params = {}
-from distutils.core import setup
packages = ['matplotlib.toolkits.basemap.data']
package_dirs = {'':'lib'}
boundaryfiles = glob.glob("lib/matplotlib/toolkits/basemap/data/*_f.dat")
Modified: trunk/toolkits/basemap/setup.py
===
--- trunk/toolkits/basemap/setup.py 2007-12-15 00:12:13 UTC (rev 4737)
+++ trunk/toolkits/basemap/setup.py 2007-12-15 02:33:26 UTC (rev 4738)
@@ -1,16 +1,5 @@
import sys, glob, os
from distutils.core import setup
-major, minor1, minor2, s, tmp = sys.version_info
-if major==2 and minor1<=3:
-# setuptools monkeypatches distutils.core.Distribution to support
-# package_data
-try: import setuptools
-except ImportError:
-raise SystemExit("""
-matplotlib requires setuptools for installation. Please download
-http://peak.telecommunity.com/dist/ez_setup.py and run it (as su if
-you are doing a system wide install) to install the proper version of
-setuptools for your system""")
from distutils.core import Extension
from distutils.util import convert_path
import numpy
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
