SF.net SVN: matplotlib:[6466] trunk/matplotlib/src/_backend_agg.cpp

2008-12-02 Thread mdboom
Revision: 6466
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6466&view=rev
Author:   mdboom
Date: 2008-12-02 15:27:23 + (Tue, 02 Dec 2008)

Log Message:
---
Remove one-pixel offset in clipbox code.

Modified Paths:
--
trunk/matplotlib/src/_backend_agg.cpp

Modified: trunk/matplotlib/src/_backend_agg.cpp
===
--- trunk/matplotlib/src/_backend_agg.cpp   2008-12-01 19:35:39 UTC (rev 
6465)
+++ trunk/matplotlib/src/_backend_agg.cpp   2008-12-02 15:27:23 UTC (rev 
6466)
@@ -312,8 +312,8 @@
 
   double l, b, r, t;
   if (py_convert_bbox(cliprect.ptr(), l, b, r, t)) {
-rasterizer.clip_box(int(mpl_round(l)) + 1, height - int(mpl_round(b)),
-int(mpl_round(r)), height - int(mpl_round(t)));
+rasterizer.clip_box(int(mpl_round(l)), height - int(mpl_round(b)),
+int(mpl_round(r)), height - int(mpl_round(t)));
   }
 
   _VERBOSE("RendererAgg::set_clipbox done");


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6467] trunk/matplotlib/lib/matplotlib/backends/ backend_agg.py

2008-12-02 Thread mdboom
Revision: 6467
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6467&view=rev
Author:   mdboom
Date: 2008-12-02 15:32:07 + (Tue, 02 Dec 2008)

Log Message:
---
Be more conservative about chunking large paths -- filled paths shouldn't be 
chunked -- or at least would require a more complex algorithm.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/backends/backend_agg.py

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_agg.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2008-12-02 
15:27:23 UTC (rev 6466)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2008-12-02 
15:32:07 UTC (rev 6467)
@@ -79,7 +79,7 @@
 def draw_path(self, gc, path, transform, rgbFace=None):
 nmax = rcParams['agg.path.chunksize'] # here at least for testing
 npts = path.vertices.shape[0]
-if nmax > 100 and npts > nmax and path.should_simplify:
+if nmax > 100 and npts > nmax and path.should_simplify and rgbFace is 
None:
 nch = npy.ceil(npts/float(nmax))
 chsize = int(npy.ceil(npts/nch))
 i0 = npy.arange(0, npts, chsize)


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6468] trunk/matplotlib/lib/matplotlib

2008-12-02 Thread jdh2358
Revision: 6468
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6468&view=rev
Author:   jdh2358
Date: 2008-12-02 15:40:44 + (Tue, 02 Dec 2008)

Log Message:
---
added gregor's wx enter/leave patch - fixed figure_enter problem

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/backend_bases.py
trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
trunk/matplotlib/lib/matplotlib/backends/backend_wx.py

Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===
--- trunk/matplotlib/lib/matplotlib/backend_bases.py2008-12-02 15:32:07 UTC 
(rev 6467)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py2008-12-02 15:40:44 UTC 
(rev 6468)
@@ -791,9 +791,6 @@
 'process the figure/axes enter leave events'
 if LocationEvent.lastevent is not None:
 last = LocationEvent.lastevent
-if last.canvas!=self.canvas:
-# process figure enter/leave event
-self.canvas.callbacks.process('figure_enter_event', self)
 if last.inaxes!=self.inaxes:
 # process axes enter/leave events
 if last.inaxes is not None:
@@ -803,8 +800,6 @@
 
 else:
 # process a figure enter event
-self.canvas.callbacks.process('figure_enter_event', self)
-# process an axes enter event if we are over an axes
 if self.inaxes is not None:
 self.canvas.callbacks.process('axes_enter_event', self)
 
@@ -952,8 +947,6 @@
 'pick_event',
 'idle_event',
 'figure_enter_event',
-# todo: we only process this when a mouse enters a different
-# figure -- we need to connect to the GUI leavel event
 'figure_leave_event',
 'axes_enter_event',
 'axes_leave_event'
@@ -1216,7 +1209,18 @@
 self.callbacks.process('figure_leave_event', LocationEvent.lastevent)
 LocationEvent.lastevent = None
 
+def enter_notify_event(self, guiEvent=None):
+"""
+Backend derived classes should call this function when entering
+canvas
 
+*guiEvent*
+the native UI event that generated the mpl event
+
+"""
+event = Event('figure_enter_event', self, guiEvent)
+self.callbacks.process('figure_enter_event', event)
+
 def idle_event(self, guiEvent=None):
 'call when GUI is idle'
 s = 'idle_event'

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-12-02 
15:32:07 UTC (rev 6467)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_gtk.py 2008-12-02 
15:40:44 UTC (rev 6468)
@@ -147,6 +147,7 @@
   gdk.EXPOSURE_MASK   |
   gdk.KEY_PRESS_MASK  |
   gdk.KEY_RELEASE_MASK|
+  gdk.ENTER_NOTIFY_MASK   |
   gdk.LEAVE_NOTIFY_MASK   |
   gdk.POINTER_MOTION_MASK |
   gdk.POINTER_MOTION_HINT_MASK)
@@ -171,6 +172,7 @@
 self.connect('key_release_event',self.key_release_event)
 self.connect('motion_notify_event',  self.motion_notify_event)
 self.connect('leave_notify_event',   self.leave_notify_event)
+self.connect('enter_notify_event',   self.enter_notify_event)
 
 self.set_events(self.__class__.event_mask)
 
@@ -243,6 +245,9 @@
 def leave_notify_event(self, widget, event):
 FigureCanvasBase.leave_notify_event(self, event)
 
+def enter_notify_event(self, widget, event):
+FigureCanvasBase.enter_notify_event(self, event)
+
 def _get_key(self, event):
 if event.keyval in self.keyvald:
 key = self.keyvald[event.keyval]

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py  2008-12-02 
15:32:07 UTC (rev 6467)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py  2008-12-02 
15:40:44 UTC (rev 6468)
@@ -1263,10 +1263,10 @@
 FigureCanvasBase.motion_notify_event(self, x, y, guiEvent=evt)
 
 def _onLeave(self, evt):
-"""Mouse has left the window; fake a motion event."""
+"""Mouse has left the window."""
 
 evt.Skip()
-FigureCanvasBase.motion_notify_event(self, -1, -1, guiEvent=evt)
+FigureCanvasBase.leave_notify_event(self, guiEvent = evt)
 
 
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge

SF.net SVN: matplotlib:[6469] trunk/matplotlib/lib/matplotlib/transforms.py

2008-12-02 Thread mdboom
Revision: 6469
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6469&view=rev
Author:   mdboom
Date: 2008-12-02 15:52:39 + (Tue, 02 Dec 2008)

Log Message:
---
Minor formatting changes.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/transforms.py

Modified: trunk/matplotlib/lib/matplotlib/transforms.py
===
--- trunk/matplotlib/lib/matplotlib/transforms.py   2008-12-02 15:40:44 UTC 
(rev 6468)
+++ trunk/matplotlib/lib/matplotlib/transforms.py   2008-12-02 15:52:39 UTC 
(rev 6469)
@@ -313,7 +313,8 @@
 return [min(self.get_points()[:, 0]),
 min(self.get_points()[:, 1])]
 min = property(_get_min, None, None, """
-(property) :attr:`min` is the bottom-left corner of the bounding 
box.""")
+(property) :attr:`min` is the bottom-left corner of the bounding
+box.""")
 
 def _get_max(self):
 return [max(self.get_points()[:, 0]),
@@ -324,41 +325,44 @@
 def _get_intervalx(self):
 return self.get_points()[:, 0]
 intervalx = property(_get_intervalx, None, None, """
-(property) :attr:`intervalx` is the pair of *x* coordinates that 
define the
-bounding box. It is not guaranteed to be sorted from left to right.""")
+(property) :attr:`intervalx` is the pair of *x* coordinates that define
+the bounding box. It is not guaranteed to be sorted from left to
+right.""")
 
 def _get_intervaly(self):
 return self.get_points()[:, 1]
 intervaly = property(_get_intervaly, None, None, """
-(property) :attr:`intervaly` is the pair of *y* coordinates that 
define the
-bounding box.  It is not guaranteed to be sorted from bottom to 
top.""")
+(property) :attr:`intervaly` is the pair of *y* coordinates that define
+the bounding box.  It is not guaranteed to be sorted from bottom to
+top.""")
 
 def _get_width(self):
 points = self.get_points()
 return points[1, 0] - points[0, 0]
 width = property(_get_width, None, None, """
-(property) The width of the bounding box.  It may be negative if 
:attr:`x1` <
-:attr:`x0`.""")
+(property) The width of the bounding box.  It may be negative if
+:attr:`x1` < :attr:`x0`.""")
 
 def _get_height(self):
 points = self.get_points()
 return points[1, 1] - points[0, 1]
 height = property(_get_height, None, None, """
-(property) The height of the bounding box.  It may be negative if 
:attr:`y1` <
-:attr:`y0`.""")
+(property) The height of the bounding box.  It may be negative if
+:attr:`y1` < :attr:`y0`.""")
 
 def _get_size(self):
 points = self.get_points()
 return points[1] - points[0]
 size = property(_get_size, None, None, """
-(property) The width and height of the bounding box.  May be negative, 
in the same
-way as :attr:`width` and :attr:`height`.""")
+(property) The width and height of the bounding box.  May be negative,
+in the same way as :attr:`width` and :attr:`height`.""")
 
 def _get_bounds(self):
 x0, y0, x1, y1 = self.get_points().flatten()
 return (x0, y0, x1 - x0, y1 - y0)
 bounds = property(_get_bounds, None, None, """
-(property) Returns (:attr:`x0`, :attr:`y0`, :attr:`width`, 
:attr:`height`).""")
+(property) Returns (:attr:`x0`, :attr:`y0`, :attr:`width`,
+:attr:`height`).""")
 
 def _get_extents(self):
 return self.get_points().flatten().copy()
@@ -788,7 +792,8 @@
- when False, include the existing bounds of the :class:`Bbox`.
- when None, use the last value passed to :meth:`ignore`.
 """
-warnings.warn("update_from_data requires a memory copy -- please 
replace with update_from_data_xy")
+warnings.warn(
+"update_from_data requires a memory copy -- please replace with 
update_from_data_xy")
 xy = np.hstack((x.reshape((len(x), 1)), y.reshape((len(y), 1
 return self.update_from_data_xy(xy, ignore)
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6470] trunk/matplotlib/lib/matplotlib/backends

2008-12-02 Thread dsdale
Revision: 6470
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6470&view=rev
Author:   dsdale
Date: 2008-12-02 17:07:57 + (Tue, 02 Dec 2008)

Log Message:
---
Pass qt* enter and leave events to FigureCanvasBase

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/backends/backend_qt.py
trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt.py  2008-12-02 
15:52:39 UTC (rev 6469)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt.py  2008-12-02 
17:07:57 UTC (rev 6470)
@@ -102,6 +102,12 @@
 w,h = self.get_width_height()
 self.resize( w, h )
 
+def enterEvent(self, event):
+FigureCanvasBase.enter_notify_event(self, event)
+
+def leaveEvent(self, event):
+FigureCanvasBase.leave_notify_event(self, event)
+
 def mousePressEvent( self, event ):
 x = event.pos().x()
 # flipy so y=0 is bottom of canvas

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-12-02 
15:52:39 UTC (rev 6469)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-12-02 
17:07:57 UTC (rev 6470)
@@ -105,8 +105,12 @@
 def __timerEvent(self, event):
 # hide until we can test and fix
 self.mpl_idle_event(event)
-
+
+def enterEvent(self, event):
+FigureCanvasBase.enter_notify_event(self, event)
+
 def leaveEvent(self, event):
+print event
 FigureCanvasBase.leave_notify_event(self, event)
 
 def mousePressEvent( self, event ):


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6471] trunk/matplotlib

2008-12-02 Thread dsdale
Revision: 6471
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6471&view=rev
Author:   dsdale
Date: 2008-12-02 17:11:07 + (Tue, 02 Dec 2008)

Log Message:
---
improved checks for external dependencies

Modified Paths:
--
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/__init__.py

Modified: trunk/matplotlib/CHANGELOG
===
--- trunk/matplotlib/CHANGELOG  2008-12-02 17:07:57 UTC (rev 6470)
+++ trunk/matplotlib/CHANGELOG  2008-12-02 17:11:07 UTC (rev 6471)
@@ -1,3 +1,7 @@
+2008-12-02 Improve checks for external dependencies, using subprocess 
+   (instead of deprecated popen*) and distutils (for version
+   checking) - DSD
+
 2008-11-30 Reimplementaion of the legend which supports baseline alignement,
   multi-column, and expand mode. - JJL
 

Modified: trunk/matplotlib/lib/matplotlib/__init__.py
===
--- trunk/matplotlib/lib/matplotlib/__init__.py 2008-12-02 17:07:57 UTC (rev 
6470)
+++ trunk/matplotlib/lib/matplotlib/__init__.py 2008-12-02 17:11:07 UTC (rev 
6471)
@@ -93,8 +93,9 @@
 __revision__ = '$Revision$'
 __date__ = '$Date$'
 
-import os, re, shutil, sys, warnings
+import os, re, shutil, subprocess, sys, warnings
 import distutils.sysconfig
+import distutils.version
 
 
 NEWCONFIG = False
@@ -256,10 +257,10 @@
 
 def checkdep_dvipng():
 try:
-stdin, stdout = os.popen4('dvipng -version')
-line = stdout.readlines()[1]
+s = subprocess.Popen(['dvipng','-version'], stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+line = s.stdout.readlines()[1]
 v = line.split()[-1]
-float(v)
 return v
 except (IndexError, ValueError):
 return None
@@ -267,47 +268,45 @@
 def checkdep_ghostscript():
 try:
 if sys.platform == 'win32':
-command = 'gswin32c --version'
+command_args = ['gswin32c', '--version']
 else:
-command = 'gs --version'
-stdin, stdout = os.popen4(command)
-v = stdout.read()[:-1]
-vtest = '.'.join(v.split('.')[:2]) # deal with version numbers like 
'7.07.1'
-float(vtest)
-return vtest
+command_args = ['gs', '--version']
+s = subprocess.Popen(command_args, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+v = s.stdout.read()[:-1]
+return v
 except (IndexError, ValueError):
 return None
 
 def checkdep_tex():
 try:
-stdin, stdout = os.popen4('tex -version')
-line = stdout.readlines()[0]
+s = subprocess.Popen(['tex','-version'], stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+line = s.stdout.readlines()[0]
 pattern = '3\.1\d+'
 match = re.search(pattern, line)
 v = match.group(0)
-float(v)
 return v
 except (IndexError, ValueError, AttributeError):
 return None
 
 def checkdep_pdftops():
 try:
-stdin, stdout = os.popen4('pdftops -v')
-for line in stdout.readlines():
+s = subprocess.Popen(['pdftops','-v'], stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+for line in s.stderr:
 if 'version' in line:
 v = line.split()[-1]
-float(v)
 return v
 except (IndexError, ValueError, UnboundLocalError):
 return None
 
 def compare_versions(a, b):
-"return True if a is greater than b"
+"return True if a is greater than or equal to b"
 if a:
-a = [int(i) for i in a.split('.')]
-b = [int(i) for i in b.split('.')]
-if a[0]>b[0]: return True
-elif (a[0]==b[0]) and (a[1]>=b[1]): return True
+a = distutils.version.LooseVersion(a)
+b = distutils.version.LooseVersion(b)
+if a>=b: return True
 else: return False
 else: return False
 
@@ -330,8 +329,13 @@
 
 if s == 'xpdf':
 pdftops_req = '3.0'
+pdftops_req_alt = '0.9' # poppler version numbers, ugh
 pdftops_v = checkdep_pdftops()
-if compare_versions(pdftops_v, pdftops_req): pass
+if compare_versions(pdftops_v, pdftops_req):
+pass
+elif compare_versions(pdftops_v, pdftops_req_alt) and not \
+compare_versions(pdftops_v, '1.0'):
+pass
 else:
 flag = False
 warnings.warn(('matplotlibrc ps.usedistiller can not be set to '


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes

SF.net SVN: matplotlib:[6472] trunk/matplotlib/lib/matplotlib/pyplot.py

2008-12-02 Thread ryanmay
Revision: 6472
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6472&view=rev
Author:   ryanmay
Date: 2008-12-02 17:53:45 + (Tue, 02 Dec 2008)

Log Message:
---
Add information to docstring for pyplot.subplot()

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/pyplot.py

Modified: trunk/matplotlib/lib/matplotlib/pyplot.py
===
--- trunk/matplotlib/lib/matplotlib/pyplot.py   2008-12-02 17:11:07 UTC (rev 
6471)
+++ trunk/matplotlib/lib/matplotlib/pyplot.py   2008-12-02 17:53:45 UTC (rev 
6472)
@@ -588,11 +588,6 @@
 
 ``subplot(111)`` is the default axis.
 
-The background color of the subplot can be specified via keyword
-argument *axisbg*, which takes a color string as value, as in::
-
-  subplot(211, axisbg='y')
-
 New subplots that overlap old will delete the old axes.  If you do
 not want this behavior, use
 :meth:`matplotlib.figure.Figure.add_subplot` or the
@@ -602,11 +597,35 @@
   plot([1,2,3])  # implicitly creates subplot(111)
   subplot(211)   # overlaps, subplot(111) is killed
   plot(rand(12), rand(12))
+  subplot(212, axisbg='y') # creates 2nd subplot with yellow background
 
+Keyword arguments:
+
+  *axisbg*:
+The background color of the subplot, which can be any valid
+color specifier.  See :module:`matplotlib.colors` for more
+information.
+
+  *polar*:
+A boolean flag indicating whether the subplot plot should be
+a polar projection.  Defaults to False.
+
+  *projection*:
+A string giving the name of a custom projection to be used
+for the subplot. This projection must have been previously
+registered. See :func:`matplotlib.projections.register_projection`
+
 .. seealso::
 :func:`~matplotlib.pyplot.axes`:
 For additional information on :func:`axes` and
 :func:`subplot` keyword arguments.
+
+:file:`examples/pylab_examples/polar_scatter.py`
+
+**Example:**
+
+.. plot:: mpl_examples/pylab_examples/subplot_demo.py
+
 """
 
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6473] trunk/matplotlib/lib/matplotlib/transforms.py

2008-12-02 Thread mdboom
Revision: 6473
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6473&view=rev
Author:   mdboom
Date: 2008-12-02 17:54:44 + (Tue, 02 Dec 2008)

Log Message:
---
Fix axhline etc. with non-linear scales.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/transforms.py

Modified: trunk/matplotlib/lib/matplotlib/transforms.py
===
--- trunk/matplotlib/lib/matplotlib/transforms.py   2008-12-02 17:53:45 UTC 
(rev 6472)
+++ trunk/matplotlib/lib/matplotlib/transforms.py   2008-12-02 17:54:44 UTC 
(rev 6473)
@@ -1237,6 +1237,7 @@
 of the same dimensions.
 """
 pass_through = True
+is_affine = False
 
 def __init__(self, child):
 """
@@ -1288,10 +1289,6 @@
 self.invalidate()
 self._invalid = 0
 
-def _get_is_affine(self):
-return self._child.is_affine
-is_affine = property(_get_is_affine)
-
 def _get_is_separable(self):
 return self._child.is_separable
 is_separable = property(_get_is_separable)


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6474] trunk/matplotlib/lib/matplotlib/quiver.py

2008-12-02 Thread ryanmay
Revision: 6474
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6474&view=rev
Author:   ryanmay
Date: 2008-12-02 17:55:15 + (Tue, 02 Dec 2008)

Log Message:
---
Begin and end docstrings on newlines.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/quiver.py

Modified: trunk/matplotlib/lib/matplotlib/quiver.py
===
--- trunk/matplotlib/lib/matplotlib/quiver.py   2008-12-02 17:54:44 UTC (rev 
6473)
+++ trunk/matplotlib/lib/matplotlib/quiver.py   2008-12-02 17:55:15 UTC (rev 
6474)
@@ -745,7 +745,8 @@
 %s""" % _barbs_doc
 
 def _find_tails(self, mag, rounding=True, half=5, full=10, flag=50):
-'''Find how many of each of the tail pieces is necessary.  Flag
+'''
+Find how many of each of the tail pieces is necessary.  Flag
 specifies the increment for a flag, barb for a full barb, and half for
 half a barb. Mag should be the magnitude of a vector (ie. >= 0).
 
@@ -777,7 +778,8 @@
 
 def _make_barbs(self, u, v, nflags, nbarbs, half_barb, empty_flag, length,
 pivot, sizes, fill_empty, flip):
-'''This function actually creates the wind barbs.  *u* and *v*
+'''
+This function actually creates the wind barbs.  *u* and *v*
 are components of the vector in the *x* and *y* directions,
 respectively.
 
@@ -817,7 +819,8 @@
 
 This function returns list of arrays of vertices, defining a polygon 
for
 each of the wind barbs.  These polygons have been rotated to properly
-align with the vector direction.'''
+align with the vector direction.
+'''
 
 #These control the spacing and size of barb elements relative to the
 #length of the shaft


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6475] trunk/matplotlib/src

2008-12-02 Thread mdboom
Revision: 6475
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6475&view=rev
Author:   mdboom
Date: 2008-12-02 19:51:10 + (Tue, 02 Dec 2008)

Log Message:
---
suppress gcc-4.3 warnings

Modified Paths:
--
trunk/matplotlib/src/_backend_agg.cpp
trunk/matplotlib/src/_image.cpp

Modified: trunk/matplotlib/src/_backend_agg.cpp
===
--- trunk/matplotlib/src/_backend_agg.cpp   2008-12-02 17:55:15 UTC (rev 
6474)
+++ trunk/matplotlib/src/_backend_agg.cpp   2008-12-02 19:51:10 UTC (rev 
6475)
@@ -1216,8 +1216,8 @@
 
   private:
 inline unsigned vertex(unsigned idx, double* x, double* y) {
-  size_t m = m_m + ((idx   & 0x2) >> 1);
-  size_t n = m_n + ((idx+1 & 0x2) >> 1);
+  size_t m = m_m + ((idx & 0x2) >> 1);
+  size_t n = m_n + (((idx+1) & 0x2) >> 1);
   double* pair = (double*)PyArray_GETPTR2(m_coordinates, n, m);
   *x = *pair++;
   *y = *pair;
@@ -1336,11 +1336,15 @@
   throw Py::RuntimeError(e);
 }
   } catch (...) {
-if (free_edgecolors) Py_XDECREF(edgecolors_obj.ptr());
+if (free_edgecolors) {
+  Py_XDECREF(edgecolors_obj.ptr());
+}
 throw;
   }
 
-  if (free_edgecolors) Py_XDECREF(edgecolors_obj.ptr());
+  if (free_edgecolors) {
+Py_XDECREF(edgecolors_obj.ptr());
+  }
 
   return Py::Object();
 }

Modified: trunk/matplotlib/src/_image.cpp
===
--- trunk/matplotlib/src/_image.cpp 2008-12-02 17:55:15 UTC (rev 6474)
+++ trunk/matplotlib/src/_image.cpp 2008-12-02 19:51:10 UTC (rev 6475)
@@ -1327,20 +1327,27 @@
 void _pcolor_cleanup(PyArrayObject* x, PyArrayObject* y,  PyArrayObject *d,
 unsigned int * rowstarts ,unsigned 
int*colstarts ,
 float *acols , float *arows) {
-if (x)
+if (x) {
   Py_XDECREF(x);
-if (y)
+}
+if (y) {
   Py_XDECREF(y);
-if(d)
+}
+if(d) {
   Py_XDECREF(d);
-if(rowstarts)
+}
+if(rowstarts) {
   PyMem_Free(rowstarts);
-if(colstarts)
+}
+if(colstarts) {
   PyMem_Free(colstarts);
-if(acols)
+}
+if(acols) {
   PyMem_Free(acols);
-if(arows)
+}
+if(arows) {
   PyMem_Free(arows);
+}
 return;
 }
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6476] trunk/matplotlib/lib/matplotlib/figure.py

2008-12-02 Thread mdboom
Revision: 6476
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6476&view=rev
Author:   mdboom
Date: 2008-12-02 20:08:53 + (Tue, 02 Dec 2008)

Log Message:
---
Replace axes when current one is of the wrong projection type.  This lets 
"subplot(111); polar()" work.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/figure.py

Modified: trunk/matplotlib/lib/matplotlib/figure.py
===
--- trunk/matplotlib/lib/matplotlib/figure.py   2008-12-02 19:51:10 UTC (rev 
6475)
+++ trunk/matplotlib/lib/matplotlib/figure.py   2008-12-02 20:08:53 UTC (rev 
6476)
@@ -656,13 +656,8 @@
 %(Axes)s
 """
 
-key = self._make_key(*args, **kwargs)
-if key in self._seen:
-ax = self._seen[key]
-self.sca(ax)
-return ax
+kwargs = kwargs.copy()
 
-
 if not len(args): return
 
 if isinstance(args[0], SubplotBase):
@@ -680,8 +675,18 @@
 projection = 'polar'
 
 projection_class = get_projection_class(projection)
-a = subplot_class_factory(projection_class)(self, *args, **kwargs)
 
+key = self._make_key(*args, **kwargs)
+if key in self._seen:
+ax = self._seen[key]
+if isinstance(ax, projection_class):
+self.sca(ax)
+return ax
+else:
+self.axes.remove(ax)
+self._axstack.remove(ax)
+
+a = subplot_class_factory(projection_class)(self, *args, **kwargs)
 self.axes.append(a)
 self._axstack.push(a)
 self.sca(a)
@@ -891,7 +896,20 @@
 %(Axes)s
 """
 ax = self._axstack()
-if ax is not None: return ax
+if ax is not None:
+ispolar = kwargs.get('polar', False)
+projection = kwargs.get('projection', None)
+if ispolar:
+if projection is not None and projection != 'polar':
+raise ValueError(
+"polar=True, yet projection='%s'. " +
+"Only one of these arguments should be supplied." %
+projection)
+projection = 'polar'
+
+projection_class = get_projection_class(projection)
+if isinstance(ax, projection_class):
+return ax
 return self.add_subplot(111, **kwargs)
 gca.__doc__ = dedent(gca.__doc__) % artist.kwdocd
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6477] trunk/matplotlib/lib/matplotlib/projections/ polar.py

2008-12-02 Thread mdboom
Revision: 6477
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6477&view=rev
Author:   mdboom
Date: 2008-12-02 20:09:44 + (Tue, 02 Dec 2008)

Log Message:
---
Round theta ticks to the nearest degree, rather than truncating.

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/projections/polar.py

Modified: trunk/matplotlib/lib/matplotlib/projections/polar.py
===
--- trunk/matplotlib/lib/matplotlib/projections/polar.py2008-12-02 
20:08:53 UTC (rev 6476)
+++ trunk/matplotlib/lib/matplotlib/projections/polar.py2008-12-02 
20:09:44 UTC (rev 6477)
@@ -137,14 +137,14 @@
 def __call__(self, x, pos=None):
 # \u00b0 : degree symbol
 if rcParams['text.usetex'] and not rcParams['text.latex.unicode']:
-return r"$%d^\circ$" % ((x / npy.pi) * 180.0)
+return r"$%0.0f^\circ$" % ((x / npy.pi) * 180.0)
 else:
 # we use unicode, rather than mathtext with \circ, so
 # that it will work correctly with any arbitrary font
 # (assuming it has a degree sign), whereas $5\circ$
 # will only work correctly with one of the supported
 # math fonts (Computer Modern and STIX)
-return u"%d\u00b0" % ((x / npy.pi) * 180.0)
+return u"%0.0f\u00b0" % ((x / npy.pi) * 180.0)
 
 class RadialLocator(Locator):
 """


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6478] trunk/matplotlib/lib/matplotlib/backends/ backend_qt4.py

2008-12-02 Thread dsdale
Revision: 6478
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6478&view=rev
Author:   dsdale
Date: 2008-12-02 22:04:41 + (Tue, 02 Dec 2008)

Log Message:
---
removed lingering print statement

Modified Paths:
--
trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py
===
--- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-12-02 
20:09:44 UTC (rev 6477)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-12-02 
22:04:41 UTC (rev 6478)
@@ -110,7 +110,6 @@
 FigureCanvasBase.enter_notify_event(self, event)
 
 def leaveEvent(self, event):
-print event
 FigureCanvasBase.leave_notify_event(self, event)
 
 def mousePressEvent( self, event ):


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins


SF.net SVN: matplotlib:[6479] trunk/matplotlib

2008-12-02 Thread leejjoon
Revision: 6479
  http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6479&view=rev
Author:   leejjoon
Date: 2008-12-02 22:27:38 + (Tue, 02 Dec 2008)

Log Message:
---
Fixed a bug in the new legend class that didn't allowed a tuple of coordinate 
vlaues as loc

Modified Paths:
--
trunk/matplotlib/CHANGELOG
trunk/matplotlib/lib/matplotlib/legend.py

Modified: trunk/matplotlib/CHANGELOG
===
--- trunk/matplotlib/CHANGELOG  2008-12-02 22:04:41 UTC (rev 6478)
+++ trunk/matplotlib/CHANGELOG  2008-12-02 22:27:38 UTC (rev 6479)
@@ -1,3 +1,6 @@
+2008-12-02 Fixed a bug in the new legend class that didn't allowed 
+   a tuple of coordinate vlaues as loc. -JJL
+
 2008-12-02 Improve checks for external dependencies, using subprocess 
(instead of deprecated popen*) and distutils (for version
checking) - DSD

Modified: trunk/matplotlib/lib/matplotlib/legend.py
===
--- trunk/matplotlib/lib/matplotlib/legend.py   2008-12-02 22:04:41 UTC (rev 
6478)
+++ trunk/matplotlib/lib/matplotlib/legend.py   2008-12-02 22:27:38 UTC (rev 
6479)
@@ -61,6 +61,9 @@
   'upper center' : 9,
   'center'   : 10,
 
+loc can be a tuple of the noramilzed coordinate values with
+respect its parent.
+   
 Return value is a sequence of text, line instances that make
 up the legend
 """
@@ -100,7 +103,7 @@
  axespad = None,   # deprecated; use borderaxespad
 
  # spacing & pad defined as a fractionof the font-size 
- borderpad = None, # the fractional whitespace inside the 
legend border
+ borderpad = None, # the whitespace inside the legend 
border
  labelspacing=None, #the vertical space between the legend 
entries
  handlelength=None, # the length of the legend handles
  handletextpad=None, # the pad between the legend handle and 
text
@@ -119,11 +122,11 @@
 
 Optional keyword arguments:
 
-   =
+   =
 KeywordDescription
-   =
+   =
 
-loca location code
+loca location code or a tuple of coordinates
 numpoints  the number of points in the legend line
 prop   the font property
 markerscalethe relative size of legend markers vs. original
@@ -284,14 +287,22 @@
 a.set_transform(self.get_transform())
 
 def _findoffset_best(self, width, height, xdescent, ydescent):
-"Heper function to locate the legend"
+"Heper function to locate the legend at its best position"
 ox, oy = self._find_best_position(width, height)
 return ox+xdescent, oy+ydescent
 
 def _findoffset_loc(self, width, height, xdescent, ydescent):
-"Heper function to locate the legend"
-bbox = Bbox.from_bounds(0, 0, width, height)
-x, y = self._get_anchored_bbox(self._loc, bbox, self.parent.bbox)
+"Heper function to locate the legend using the location code"
+
+if iterable(self._loc) and len(self._loc)==2:
+# when loc is a tuple of axes(or figure) coordinates.
+fx, fy = self._loc
+bbox = self.parent.bbox
+x, y = bbox.x0 + bbox.width * fx, bbox.y0 + bbox.height * fy
+else:
+bbox = Bbox.from_bounds(0, 0, width, height)
+x, y = self._get_anchored_bbox(self._loc, bbox, self.parent.bbox)
+
 return x+xdescent, y+ydescent
 
 def draw(self, renderer):


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins