SourceForge logo
SourceForge logo
Menu

matplotlib-checkins — Commit notification. DO NOT POST to this list, just subscribe to it.

You can subscribe to this list here.

2007 Jan
Feb
Mar
Apr
May
Jun
Jul
(115)
Aug
(120)
Sep
(137)
Oct
(170)
Nov
(461)
Dec
(263)
2008 Jan
(120)
Feb
(74)
Mar
(35)
Apr
(74)
May
(245)
Jun
(356)
Jul
(240)
Aug
(115)
Sep
(78)
Oct
(225)
Nov
(98)
Dec
(271)
2009 Jan
(132)
Feb
(84)
Mar
(74)
Apr
(56)
May
(90)
Jun
(79)
Jul
(83)
Aug
(296)
Sep
(214)
Oct
(76)
Nov
(82)
Dec
(66)
2010 Jan
(46)
Feb
(58)
Mar
(51)
Apr
(77)
May
(58)
Jun
(126)
Jul
(128)
Aug
(64)
Sep
(50)
Oct
(44)
Nov
(48)
Dec
(54)
2011 Jan
(68)
Feb
(52)
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
(1)
2018 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec

Showing results of 5455

<< < 1 .. 3 4 5 6 7 .. 219 > >> (Page 5 of 219)
From: <js...@us...> - 2011年01月05日 16:29:59
Revision: 8890
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8890&view=rev
Author: jswhit
Date: 2011年01月05日 16:29:53 +0000 (2011年1月05日)
Log Message:
-----------
fix colorbar tick labels.
Modified Paths:
--------------
 trunk/toolkits/basemap/examples/plotprecip.py
Modified: trunk/toolkits/basemap/examples/plotprecip.py
===================================================================
--- trunk/toolkits/basemap/examples/plotprecip.py	2011年01月05日 15:59:33 UTC (rev 8889)
+++ trunk/toolkits/basemap/examples/plotprecip.py	2011年01月05日 16:29:53 UTC (rev 8890)
@@ -57,7 +57,7 @@
 l, b, w, h = pos.bounds
 cax = plt.axes([l+w+0.025, b, 0.025, h]) # setup colorbar axes
 # draw colorbar.
-plt.colorbar(cs, cax, format='%g', ticks=clevs, drawedges=False) 
+cb = plt.colorbar(cs, cax, format='%g', ticks=clevs, drawedges=False) 
 plt.axes(ax) # make the original axes current again
 # plot title
 plt.title(plottitle+'- contourf',fontsize=10)
@@ -85,11 +85,11 @@
 # using im2, not im (hack to prevent colors from being
 # too compressed at the low end on the colorbar - results
 # from highly nonuniform colormap)
-plt.colorbar(im2, cax, format='%d') # draw colorbar
+cb = plt.colorbar(im2, cax, format='%d') # draw colorbar
 plt.axes(ax) # make the original axes current again
 # reset colorbar tick labels (hack to get
-cax.set_yticks(np.linspace(0,1,len(clevs)))
-cax.set_yticklabels(['%g' % clev for clev in clevs])
+cb.set_ticks(np.linspace(clevs[0],clevs[-1],len(clevs)))
+cb.set_ticklabels(['%g' % clev for clev in clevs])
 # plot title
 plt.title(plottitle+' - imshow',fontsize=10)
 plt.show() # display onscreen.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2011年01月05日 15:59:40
Revision: 8889
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8889&view=rev
Author: jdh2358
Date: 2011年01月05日 15:59:33 +0000 (2011年1月05日)
Log Message:
-----------
fix rc file defaults issue for docs; python 2.4 compliance for formlayout
Modified Paths:
--------------
 branches/v1_0_maint/doc/matplotlibrc
 branches/v1_0_maint/lib/matplotlib/__init__.py
 branches/v1_0_maint/lib/matplotlib/backends/qt4_editor/formlayout.py
Modified: branches/v1_0_maint/doc/matplotlibrc
===================================================================
--- branches/v1_0_maint/doc/matplotlibrc	2011年01月05日 15:43:30 UTC (rev 8888)
+++ branches/v1_0_maint/doc/matplotlibrc	2011年01月05日 15:59:33 UTC (rev 8889)
@@ -232,7 +232,7 @@
 
 ### FIGURE
 # See http://matplotlib.sourceforge.net/matplotlib.figure.html#Figure
-figure.figsize : 6, 4 # figure size in inches
+figure.figsize : 5.5, 4.5 # figure size in inches
 #figure.dpi : 80 # figure dots per inch
 #figure.facecolor : 0.75 # figure facecolor; 0.75 is scalar gray
 #figure.edgecolor : white # figure edgecolor
Modified: branches/v1_0_maint/lib/matplotlib/__init__.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/__init__.py	2011年01月05日 15:43:30 UTC (rev 8888)
+++ branches/v1_0_maint/lib/matplotlib/__init__.py	2011年01月05日 15:59:33 UTC (rev 8889)
@@ -762,6 +762,7 @@
 
 # this is the instance used by the matplotlib classes
 rcParams = rc_params()
+rcParamsOrig = rcParams.copy()
 
 rcParamsDefault = RcParams([ (key, default) for key, (default, converter) in \
 defaultParams.iteritems() ])
@@ -843,11 +844,19 @@
 
 def rcdefaults():
 """
- Restore the default rc params - the ones that were created at
- matplotlib load time.
+ Restore the default rc params - these are not the params loaded by
+ the rc file, but mpl's internal params. See rc_file_defaults for
+ reloading the default params from the rc file
 """
 rcParams.update(rcParamsDefault)
 
+def rc_file_defaults():
+ """
+ Restore the default rc params from the original matplotlib rc that
+ was loaded
+ """
+ rcParams.update(rcParamsOrig)
+
 _use_error_msg = """ This call to matplotlib.use() has no effect
 because the the backend has already been chosen;
 matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
Modified: branches/v1_0_maint/lib/matplotlib/backends/qt4_editor/formlayout.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/backends/qt4_editor/formlayout.py	2011年01月05日 15:43:30 UTC (rev 8888)
+++ branches/v1_0_maint/lib/matplotlib/backends/qt4_editor/formlayout.py	2011年01月05日 15:59:33 UTC (rev 8889)
@@ -272,7 +272,11 @@
 field.setCurrentIndex(selindex)
 elif isinstance(value, bool):
 field = QCheckBox(self)
- field.setCheckState(Qt.Checked if value else Qt.Unchecked)
+ if value:
+ field.setCheckState(Qt.Checked)
+ else:
+ field.setCheckedState(Qt.Unchecked)
+ 
 elif isinstance(value, float):
 field = QLineEdit(repr(value), self)
 elif isinstance(value, int):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <lee...@us...> - 2011年01月05日 15:43:36
Revision: 8888
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8888&view=rev
Author: leejjoon
Date: 2011年01月05日 15:43:30 +0000 (2011年1月05日)
Log Message:
-----------
gridspec.GridSpecBase.__getitem__ checks its index (original patch from Paul Ivanov)
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/gridspec.py
Modified: trunk/matplotlib/lib/matplotlib/gridspec.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/gridspec.py	2011年01月05日 15:43:01 UTC (rev 8887)
+++ trunk/matplotlib/lib/matplotlib/gridspec.py	2011年01月05日 15:43:30 UTC (rev 8888)
@@ -145,6 +145,8 @@
 else:
 if k1 < 0:
 k1 += nrows
+ if k1 >= nrows or k1 < 0 :
+ raise IndexError("index out of range")
 row1, row2 = k1, k1+1
 
 
@@ -153,6 +155,8 @@
 else:
 if k2 < 0:
 k2 += ncols
+ if k2 >= ncols or k2 < 0 :
+ raise IndexError("index out of range")
 col1, col2 = k2, k2+1
 
 
@@ -167,6 +171,8 @@
 else:
 if key < 0:
 key += total
+ if key >= total or key < 0 :
+ raise IndexError("index out of range")
 num1, num2 = key, None
 
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8887
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8887&view=rev
Author: leejjoon
Date: 2011年01月05日 15:43:01 +0000 (2011年1月05日)
Log Message:
-----------
improve demo_axes_hbox_divider.py
Modified Paths:
--------------
 trunk/matplotlib/examples/axes_grid/demo_axes_hbox_divider.py
Modified: trunk/matplotlib/examples/axes_grid/demo_axes_hbox_divider.py
===================================================================
--- trunk/matplotlib/examples/axes_grid/demo_axes_hbox_divider.py	2011年01月05日 13:31:24 UTC (rev 8886)
+++ trunk/matplotlib/examples/axes_grid/demo_axes_hbox_divider.py	2011年01月05日 15:43:01 UTC (rev 8887)
@@ -3,7 +3,7 @@
 from mpl_toolkits.axes_grid1.axes_divider import HBoxDivider
 import mpl_toolkits.axes_grid1.axes_size as Size
 
-def make_heights_equal(fig, ax1, ax2, pad):
+def make_heights_equal(fig, rect, ax1, ax2, pad):
 # pad in inches
 
 h1, v1 = Size.AxesX(ax1), Size.AxesY(ax1)
@@ -12,7 +12,7 @@
 pad_v = Size.Scaled(1)
 pad_h = Size.Fixed(pad)
 
- my_divider = HBoxDivider(fig, 111,
+ my_divider = HBoxDivider(fig, rect,
 horizontal=[h1, pad_h, h2],
 vertical=[v1, pad_v, v2])
 
@@ -33,9 +33,10 @@
 
 ax1.imshow(arr1, interpolation="nearest")
 ax2.imshow(arr2, interpolation="nearest")
+
+ rect = 111 # subplot param for combined axes
+ make_heights_equal(fig1, rect, ax1, ax2, pad=0.5) # pad in inches
 
- make_heights_equal(fig1, ax1, ax2, pad=0.5)
- 
 for ax in [ax1, ax2]:
 ax.locator_params(nbins=4)
 
@@ -43,6 +44,9 @@
 ax3 = plt.axes([0.5, 0.5, 0.001, 0.001], frameon=False)
 ax3.xaxis.set_visible(False)
 ax3.yaxis.set_visible(False)
- ax3.annotate("Location of two axes are adjusted\n so that they have an equal height\n while maintaining their aspect ratios", (0.5, 0.5),
+ ax3.annotate("Location of two axes are adjusted\n so that they have equal heights\n while maintaining their aspect ratios", (0.5, 0.5),
 xycoords="axes fraction", va="center", ha="center",
- bbox=dict(fc="w"))
+ bbox=dict(boxstyle="round, pad=1", fc="w"))
+
+ plt.show()
+ 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2011年01月05日 13:31:30
Revision: 8886
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8886&view=rev
Author: mdehoon
Date: 2011年01月05日 13:31:24 +0000 (2011年1月05日)
Log Message:
-----------
Replace MacOS.WMAvailable, as the MacOS module is not available with 64-bit Pythons, and deprecated for Python 3.
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/backends/backend_macosx.py
 branches/v1_0_maint/src/_macosx.m
Modified: branches/v1_0_maint/lib/matplotlib/backends/backend_macosx.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/backends/backend_macosx.py	2011年01月04日 22:43:44 UTC (rev 8885)
+++ branches/v1_0_maint/lib/matplotlib/backends/backend_macosx.py	2011年01月05日 13:31:24 UTC (rev 8886)
@@ -2,7 +2,6 @@
 
 import os
 import numpy
-import MacOS
 
 from matplotlib._pylab_helpers import Gcf
 from matplotlib.backend_bases import RendererBase, GraphicsContextBase,\
@@ -229,7 +228,7 @@
 """
 Create a new figure manager instance
 """
- if not MacOS.WMAvailable():
+ if not _macosx.verify_main_display():
 import warnings
 warnings.warn("Python is not installed as a framework. The MacOSX backend may not work correctly if Python is not installed as a framework. Please see the Python documentation for more information on installing Python as a framework on Mac OS X")
 FigureClass = kwargs.pop('FigureClass', Figure)
Modified: branches/v1_0_maint/src/_macosx.m
===================================================================
--- branches/v1_0_maint/src/_macosx.m	2011年01月04日 22:43:44 UTC (rev 8885)
+++ branches/v1_0_maint/src/_macosx.m	2011年01月05日 13:31:24 UTC (rev 8886)
@@ -4399,16 +4399,6 @@
 return Py_None;
 }
 
-static char show__doc__[] = "Show all the figures and enter the main loop.\nThis function does not return until all Matplotlib windows are closed,\nand is normally not needed in interactive sessions.";
-
-static PyObject*
-show(PyObject* self)
-{
- if(nwin > 0) [NSApp run];
- Py_INCREF(Py_None);
- return Py_None;
-}
-
 @implementation Window
 - (Window*)initWithContentRect:(NSRect)rect styleMask:(unsigned int)mask backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation withManager: (PyObject*)theManager
 {
@@ -5139,11 +5129,32 @@
 }
 @end
 
+
+static PyObject*
+show(PyObject* self)
+{
+ if(nwin > 0) [NSApp run];
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+static PyObject*
+verify_main_display(PyObject* self)
+{
+ CGDirectDisplayID display = CGMainDisplayID();
+ if (display == 0) {
+ PyErr_SetString(PyExc_RuntimeError, "Failed to obtain the display ID of the main display");
+ return NULL;
+ }
+ Py_INCREF(Py_True);
+ return Py_True;
+}
+
 static struct PyMethodDef methods[] = {
 {"show",
 (PyCFunction)show,
 METH_NOARGS,
- show__doc__
+ "Show all the figures and enter the main loop.\nThis function does not return until all Matplotlib windows are closed,\nand is normally not needed in interactive sessions."
 },
 {"choose_save_file",
 (PyCFunction)choose_save_file,
@@ -5155,11 +5166,17 @@
 METH_VARARGS,
 "Sets the active cursor."
 },
+ {"verify_main_display",
+ (PyCFunction)verify_main_display,
+ METH_NOARGS,
+ "Verifies if the main display can be found. This function fails if Python is not built as a framework."
+ },
 {NULL, NULL, 0, NULL}/* sentinel */
 };
 
 void init_macosx(void)
 { PyObject *m;
+
 import_array();
 
 if (PyType_Ready(&GraphicsContextType) < 0) return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2011年01月04日 22:43:50
Revision: 8885
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8885&view=rev
Author: jswhit
Date: 2011年01月04日 22:43:44 +0000 (2011年1月04日)
Log Message:
-----------
added 'celestial' keyword
Modified Paths:
--------------
 trunk/toolkits/basemap/Changelog
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog	2011年01月04日 20:52:42 UTC (rev 8884)
+++ trunk/toolkits/basemap/Changelog	2011年01月04日 22:43:44 UTC (rev 8885)
@@ -1,4 +1,8 @@
 version 1.0.1 (not yet released).
+ * added 'celestial' keyword - if True astronomical convention for
+ longitude is used (negative for 'east', positive for 'west').
+ celestial=True implies resolution=None (no continents or
+ coastlines).
 * improve placement of labels for parallels for pseudo-cylindrical
 projections like mollweide, hammer.
 * added support for Hammer projection (required adding inverse
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2011年01月04日 20:52:48
Revision: 8884
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8884&view=rev
Author: efiring
Date: 2011年01月04日 20:52:42 +0000 (2011年1月04日)
Log Message:
-----------
Finance: change volume to float; close 3108059
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/finance.py
Modified: branches/v1_0_maint/lib/matplotlib/finance.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/finance.py	2011年01月04日 20:36:21 UTC (rev 8883)
+++ branches/v1_0_maint/lib/matplotlib/finance.py	2011年01月04日 20:52:42 UTC (rev 8884)
@@ -38,7 +38,7 @@
 ('close', np.float),
 ('high', np.float),
 ('low', np.float),
- ('volume', np.int),
+ ('volume', np.float),
 ('aclose', np.float)])
 
 
@@ -57,7 +57,7 @@
 by the adjusted close, regardless of whether you choose adjusted
 = True|False.
 
- 
+
 *asobject*
 If False (default for compatibility with earlier versions)
 return a list of tuples containing
@@ -101,7 +101,7 @@
 dt = datetime.date(*[int(val) for val in datestr.split('-')])
 dnum = date2num(dt)
 open, high, low, close = [float(val) for val in vals[1:5]]
- volume = int(vals[5])
+ volume = float(vals[5])
 aclose = float(vals[6])
 
 results.append((dt, dt.year, dt.month, dt.day,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8883
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8883&view=rev
Author: jswhit
Date: 2011年01月04日 20:36:21 +0000 (2011年1月04日)
Log Message:
-----------
make celestial=True imply resolution=None, labelstyle="+/=" by default.
Modified Paths:
--------------
 trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 20:24:12 UTC (rev 8882)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 20:36:21 UTC (rev 8883)
@@ -257,6 +257,7 @@
 ``N``, ``NW``, and ``W``.
 celestial use astronomical conventions for longitude (i.e.
 negative longitudes to the east of 0). Default False.
+ Implies ``resolution=None``.
 ax set default axes instance
 (default None - matplotlib.pyplot.gca() may be used
 to get the current axes instance).
@@ -773,7 +774,10 @@
 
 # set defaults for area_thresh.
 self.resolution = resolution
- if area_thresh is None and resolution is not None:
+ # celestial=True implies resolution=None (no coastlines).
+ if self.celestial:
+ self.resolution=None
+ if area_thresh is None and self.resolution is not None:
 if resolution == 'c':
 area_thresh = 10000.
 elif resolution == 'l':
@@ -857,7 +861,7 @@
 # currently only used in is_land method.
 self.landpolygons=[]
 self.lakepolygons=[]
- if resolution is not None and len(self.coastpolygons) > 0:
+ if self.resolution is not None and len(self.coastpolygons) > 0:
 #self.islandinlakepolygons=[]
 #self.lakeinislandinlakepolygons=[]
 x, y = zip(*self.coastpolygons)
@@ -1840,6 +1844,9 @@
 associated with each parallel. Deleting an item from the
 dictionary removes the corresponding parallel from the plot.
 """
+ # if celestial=True, don't use "N" and "S" labels.
+ if labelstyle is None and self.celestial:
+ labelstyle="+/-"
 # get current axes instance (if none specified).
 ax = ax or self._check_ax()
 # don't draw meridians past latmax, always draw parallel at latmax.
@@ -2135,6 +2142,9 @@
 associated with each meridian. Deleting an item from the
 dictionary removes the correpsonding meridian from the plot.
 """
+ # if celestial=True, don't use "E" and "W" labels.
+ if labelstyle is None and self.celestial:
+ labelstyle="+/-"
 # get current axes instance (if none specified).
 ax = ax or self._check_ax()
 # don't draw meridians past latmax, always draw parallel at latmax.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2011年01月04日 20:24:18
Revision: 8882
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8882&view=rev
Author: efiring
Date: 2011年01月04日 20:24:12 +0000 (2011年1月04日)
Log Message:
-----------
Bugfix: invert_xaxis and invert_yaxis now notify observers. Closes 3123226
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py	2011年01月04日 14:16:36 UTC (rev 8881)
+++ branches/v1_0_maint/lib/matplotlib/axes.py	2011年01月04日 20:24:12 UTC (rev 8882)
@@ -2263,7 +2263,7 @@
 def invert_xaxis(self):
 "Invert the x-axis."
 left, right = self.get_xlim()
- self.viewLim.intervalx = (right, left)
+ self.set_xlim(right, left)
 
 def xaxis_inverted(self):
 'Returns True if the x-axis is inverted.'
@@ -2471,7 +2471,7 @@
 def invert_yaxis(self):
 "Invert the y-axis."
 bottom, top = self.get_ylim()
- self.viewLim.intervaly = (top, bottom)
+ self.set_ylim(top, bottom)
 
 def yaxis_inverted(self):
 'Returns True if the y-axis is inverted.'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8881
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8881&view=rev
Author: jswhit
Date: 2011年01月04日 14:16:36 +0000 (2011年1月04日)
Log Message:
-----------
get parallels to label on correct side when celestial=True
Modified Paths:
--------------
 trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 14:05:31 UTC (rev 8880)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 14:16:36 UTC (rev 8881)
@@ -893,10 +893,17 @@
 sequences, or numpy arrays.
 """
 if self.celestial and not inverse:
- x = -x
+ try:
+ x = -x
+ except TypeError:
+ x = [-xx for xx in x]
 xout,yout = self.projtran(x,y,inverse=inverse)
 if self.celestial and inverse:
- xout = -xout
+ try:
+ xout = -xout
+ except:
+ xout = [-xx for xx in xout]
+ return xout,yout
 
 
 def makegrid(self,nx,ny,returnxy=False):
@@ -1937,7 +1944,10 @@
 if side == 'l':
 if self.projection in _pseudocyl:
 lats = np.linspace(-89.99,89,99,nmax)
- lons = (self.projparams['lon_0']-180.)*np.ones(len(lats),lats.dtype)
+ if self.celestial:
+ lons = (self.projparams['lon_0']+180.)*np.ones(len(lats),lats.dtype)
+ else:
+ lons = (self.projparams['lon_0']-180.)*np.ones(len(lats),lats.dtype)
 xx, yy = self(lons, lats)
 else:
 xx = self.llcrnrx*np.ones(yy.shape,yy.dtype)
@@ -1946,7 +1956,10 @@
 else:
 if self.projection in _pseudocyl:
 lats = np.linspace(-89.99,89,99,nmax)
- lons = (self.projparams['lon_0']+180.)*np.ones(len(lats),lats.dtype)
+ if self.celestial:
+ lons = (self.projparams['lon_0']-180.)*np.ones(len(lats),lats.dtype)
+ else:
+ lons = (self.projparams['lon_0']+180.)*np.ones(len(lats),lats.dtype)
 xx, yy = self(lons, lats)
 else:
 xx = self.urcrnrx*np.ones(yy.shape,yy.dtype)
@@ -2016,7 +2029,10 @@
 t = None
 if side == 'l':
 if self.projection in _pseudocyl:
- xlab,ylab = self(lon_0-179.9,lat)
+ if self.celestial:
+ xlab,ylab = self(lon_0+179.9,lat)
+ else:
+ xlab,ylab = self(lon_0-179.9,lat)
 else:
 xlab = self.llcrnrx
 xlab = xlab-xoffset
@@ -2031,7 +2047,10 @@
 t=ax.text(xlab,yy[n],latlab,horizontalalignment='right',verticalalignment='center',**kwargs)
 elif side == 'r':
 if self.projection in _pseudocyl:
- xlab,ylab = self(lon_0+179.9,lat)
+ if self.celestial:
+ xlab,ylab = self(lon_0-179.9,lat)
+ else:
+ xlab,ylab = self(lon_0+179.9,lat)
 else:
 xlab = self.urcrnrx
 xlab = xlab+xoffset
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8880
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8880&view=rev
Author: jswhit
Date: 2011年01月04日 14:05:31 +0000 (2011年1月04日)
Log Message:
-----------
beginnings of support for astronomical conventions for longitude (via 'celestial'
keyword).
Modified Paths:
--------------
 trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 00:45:25 UTC (rev 8879)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py	2011年01月04日 14:05:31 UTC (rev 8880)
@@ -255,6 +255,8 @@
 Allowed values are
 ``C``, ``SW``, ``S``, ``SE``, ``E``, ``NE``,
 ``N``, ``NW``, and ``W``.
+ celestial use astronomical conventions for longitude (i.e.
+ negative longitudes to the east of 0). Default False.
 ax set default axes instance
 (default None - matplotlib.pyplot.gca() may be used
 to get the current axes instance).
@@ -443,6 +445,7 @@
 boundinglat=None,
 fix_aspect=True,
 anchor='C',
+ celestial=False,
 ax=None):
 # docstring is added after __init__ method definition
 
@@ -451,6 +454,8 @@
 self.fix_aspect = fix_aspect
 # where to put plot in figure (default is 'C' or center)
 self.anchor = anchor
+ # geographic or celestial coords?
+ self.celestial = celestial
 # map projection.
 self.projection = projection
 
@@ -887,8 +892,13 @@
 Input arguments lon, lat can be either scalar floats,
 sequences, or numpy arrays.
 """
- return self.projtran(x,y,inverse=inverse)
+ if self.celestial and not inverse:
+ x = -x
+ xout,yout = self.projtran(x,y,inverse=inverse)
+ if self.celestial and inverse:
+ xout = -xout
 
+
 def makegrid(self,nx,ny,returnxy=False):
 """
 return arrays of shape (ny,nx) containing lon,lat coordinates of
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2011年01月04日 00:45:31
Revision: 8879
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8879&view=rev
Author: efiring
Date: 2011年01月04日 00:45:25 +0000 (2011年1月04日)
Log Message:
-----------
apply patch by Paul Ivanov to move twinx second axis offset to the RHS
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py	2011年01月03日 21:53:09 UTC (rev 8878)
+++ branches/v1_0_maint/lib/matplotlib/axes.py	2011年01月04日 00:45:25 UTC (rev 8879)
@@ -7378,6 +7378,7 @@
 frameon=False)
 ax2.yaxis.tick_right()
 ax2.yaxis.set_label_position('right')
+ ax2.yaxis.set_offset_position('right')
 self.yaxis.tick_left()
 ax2.xaxis.set_visible(False)
 return ax2
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8878
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8878&view=rev
Author: weathergod
Date: 2011年01月03日 21:53:09 +0000 (2011年1月03日)
Log Message:
-----------
Significant speedups to plot_surface function in mplot3d. Thanks to Justin Peel!
Modified Paths:
--------------
 trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2011年01月03日 21:36:37 UTC (rev 8877)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2011年01月03日 21:53:09 UTC (rev 8878)
@@ -696,7 +696,6 @@
 had_data = self.has_data()
 
 rows, cols = Z.shape
- tX, tY, tZ = np.transpose(X), np.transpose(Y), np.transpose(Z)
 rstride = kwargs.pop('rstride', 10)
 cstride = kwargs.pop('cstride', 10)
 
@@ -719,21 +718,27 @@
 fcolors = self._shade_colors_lightsource(Z, cmap, lightsource)
 
 polys = []
- normals = []
+ # Only need these vectors to shade if there is no cmap
+ if cmap is None and shade :
+ totpts = int(np.ceil(float(rows - 1) / rstride) *
+ np.ceil(float(cols - 1) / cstride))
+ v1 = np.empty((totpts, 3))
+ v2 = np.empty((totpts, 3))
+ # This indexes the vertex points
+ which_pt = 0
+
+
 #colset contains the data for coloring: either average z or the facecolor
 colset = []
- for rs in np.arange(0, rows-1, rstride):
- for cs in np.arange(0, cols-1, cstride):
+ for rs in xrange(0, rows-1, rstride):
+ for cs in xrange(0, cols-1, cstride): 
 ps = []
- corners = []
- for a, ta in [(X, tX), (Y, tY), (Z, tZ)]:
- ztop = a[rs][cs:min(cols, cs+cstride+1)]
- zleft = ta[min(cols-1, cs+cstride)][rs:min(rows, rs+rstride+1)]
- zbase = a[min(rows-1, rs+rstride)][cs:min(cols, cs+cstride+1):]
- zbase = zbase[::-1]
- zright = ta[cs][rs:min(rows, rs+rstride+1):]
- zright = zright[::-1]
- corners.append([ztop[0], ztop[-1], zbase[0], zbase[-1]])
+ for a in (X, Y, Z) :
+ ztop = a[rs,cs:min(cols, cs+cstride+1)]
+ zleft = a[rs+1:min(rows, rs+rstride+1),
+ min(cols-1, cs+cstride)]
+ zbase = a[min(rows-1, rs+rstride), cs:min(cols, cs+cstride+1):][::-1]
+ zright = a[rs:min(rows-1, rs+rstride):, cs][::-1]
 z = np.concatenate((ztop, zleft, zbase, zright))
 ps.append(z)
 
@@ -741,13 +746,8 @@
 # are removed here.
 ps = zip(*ps)
 lastp = np.array([])
- ps2 = []
- avgzsum = 0.0
- for p in ps:
- if p != lastp:
- ps2.append(p)
- lastp = p
- avgzsum += p[2]
+ ps2 = [ps[0]] + [ps[i] for i in xrange(1, len(ps)) if ps[i] != ps[i-1]]
+ avgzsum = sum(p[2] for p in ps2)
 polys.append(ps2)
 
 if fcolors is not None:
@@ -758,9 +758,13 @@
 # Only need vectors to shade if no cmap
 if cmap is None and shade:
 i1, i2, i3 = 0, int(len(ps2)/3), int(2*len(ps2)/3)
- v1 = np.array(ps2[i1]) - np.array(ps2[i2])
- v2 = np.array(ps2[i2]) - np.array(ps2[i3])
- normals.append(np.cross(v1, v2))
+ v1[which_pt] = np.array(ps2[i1]) - np.array(ps2[i2])
+ v2[which_pt] = np.array(ps2[i2]) - np.array(ps2[i3])
+ which_pt += 1
+ if cmap is None and shade:
+ normals = np.cross(v1, v2)
+ else :
+ normals = []
 
 polyc = art3d.Poly3DCollection(polys, *args, **kwargs)
 
@@ -808,12 +812,8 @@
 *color* can also be an array of the same length as *normals*.
 '''
 
- shade = []
- for n in normals:
- n = n / proj3d.mod(n)
- shade.append(np.dot(n, [-1, -1, 0.5]))
-
- shade = np.array(shade)
+ shade = np.array([np.dot(n / proj3d.mod(n), [-1, -1, 0.5])
+ for n in normals])
 mask = ~np.isnan(shade)
 
 if len(shade[mask]) > 0:
@@ -821,11 +821,10 @@
 if art3d.iscolor(color):
 color = color.copy()
 color[3] = 1
- colors = [color * (0.5 + norm(v) * 0.5) for v in shade]
+ colors = np.outer(0.5 + norm(shade) * 0.5, color)
 else:
- colors = [np.array(colorConverter.to_rgba(c)) * \
- (0.5 + norm(v) * 0.5) \
- for c, v in zip(color, shade)]
+ colors = colorConverter.to_rgba_array(color) * \
+ (0.5 + 0.5 * norm(shade)[:, np.newaxis])
 else:
 colors = color.copy()
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <wea...@us...> - 2011年01月03日 21:36:44
Revision: 8877
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8877&view=rev
Author: weathergod
Date: 2011年01月03日 21:36:37 +0000 (2011年1月03日)
Log Message:
-----------
Added the ability for 3d plots to display the axis ticker offsets.
This should address bug 3137231.
Modified Paths:
--------------
 trunk/matplotlib/CHANGELOG
 trunk/matplotlib/lib/mpl_toolkits/mplot3d/axis3d.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG	2011年01月03日 20:34:57 UTC (rev 8876)
+++ trunk/matplotlib/CHANGELOG	2011年01月03日 21:36:37 UTC (rev 8877)
@@ -1,3 +1,5 @@
+2011年01月03日 Added display of ticker offset to 3d plots. - BVR
+
 2011年01月03日 Turn off tick labeling on interior subplots for
 pyplots.subplots when sharex/sharey is True. - JDH
 
Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axis3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axis3d.py	2011年01月03日 20:34:57 UTC (rev 8876)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axis3d.py	2011年01月03日 21:36:37 UTC (rev 8877)
@@ -96,8 +96,10 @@
 self.gridlines = art3d.Line3DCollection([], )
 self.axes._set_artist_props(self.gridlines)
 self.axes._set_artist_props(self.label)
+ self.axes._set_artist_props(self.offsetText)
 # Need to be able to place the label at the correct location
 self.label._transform = self.axes.transData
+ self.offsetText._transform = self.axes.transData
 
 def get_tick_positions(self):
 majorLocs = self.major.locator()
@@ -205,6 +207,7 @@
 edgep2 = edgep1.copy()
 edgep2[juggled[1]] = get_flip_min_max(edgep2, juggled[1], mins, maxs)
 pep = proj3d.proj_trans_points([edgep1, edgep2], renderer.M)
+ centpt = proj3d.proj_transform(centers[0], centers[1], centers[2], renderer.M)
 self.line.set_data((pep[0][0], pep[0][1]), (pep[1][0], pep[1][1]))
 self.line.draw(renderer)
 
@@ -243,6 +246,75 @@
 self.label.set_ha('center')
 self.label.draw(renderer)
 
+
+ # Draw Offset text
+ 
+ # Which of the two edge points do we want to
+ # use for locating the offset text?
+ if juggled[2] == 2 :
+ outeredgep = edgep1
+ outerindex = 0
+ else :
+ outeredgep = edgep2
+ outerindex = 1
+
+ pos = copy.copy(outeredgep)
+ pos = move_from_center(pos, centers, labeldeltas, axmask)
+ olx, oly, olz = proj3d.proj_transform(pos[0], pos[1], pos[2], renderer.M)
+ self.offsetText.set_text( self.major.formatter.get_offset() )
+ self.offsetText.set_position( (olx, oly) )
+ angle = art3d.norm_text_angle(math.degrees(math.atan2(dy, dx)))
+ self.offsetText.set_rotation(angle)
+ # Must set rotation mode to "anchor" so that
+ # the alignment point is used as the "fulcrum" for rotation.
+ self.offsetText.set_rotation_mode('anchor')
+
+ #-----------------------------------------------------------------------
+ # Note: the following statement for determining the proper alignment of
+ # the offset text. This was determined entirely by trial-and-error
+ # and should not be in any way considered as "the way". There are
+ # still some edge cases where alignment is not quite right, but
+ # this seems to be more of a geometry issue (in other words, I
+ # might be using the wrong reference points).
+ #
+ # (TT, FF, TF, FT) are the shorthand for the tuple of
+ # (centpt[info['tickdir']] <= peparray[info['tickdir'], outerindex],
+ # centpt[index] <= peparray[index, outerindex])
+ #
+ # Three-letters (e.g., TFT, FTT) are short-hand for the array
+ # of bools from the variable 'highs'.
+ # ---------------------------------------------------------------------
+ if centpt[info['tickdir']] > peparray[info['tickdir'], outerindex] :
+ # if FT and if highs has an even number of Trues
+ if (centpt[index] <= peparray[index, outerindex]
+ and ((len(highs.nonzero()[0]) % 2) == 0)) :
+ # Usually, this means align right, except for the FTT case,
+ # in which offset for axis 1 and 2 are aligned left.
+ if highs.tolist() == [False, True, True] and index in (1, 2) :
+ align = 'left'
+ else :
+ align = 'right'
+ else :
+ # The FF case
+ align = 'left'
+ else :
+ # if TF and if highs has an even number of Trues
+ if (centpt[index] > peparray[index, outerindex]
+ and ((len(highs.nonzero()[0]) % 2) == 0)) :
+ # Usually mean align left, except if it is axis 2
+ if index == 2 :
+ align = 'right'
+ else :
+ align = 'left'
+ else :
+ # The TT case
+ align = 'right'
+
+ self.offsetText.set_va('center')
+ self.offsetText.set_ha(align)
+ self.offsetText.draw(renderer)
+
+ # Draw grid lines
 if len(xyz0) > 0:
 # Grid points at end of one plane
 xyz1 = copy.deepcopy(xyz0)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2011年01月03日 20:35:05
Revision: 8876
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8876&view=rev
Author: jdh2358
Date: 2011年01月03日 20:34:57 +0000 (2011年1月03日)
Log Message:
-----------
update pytz to 2010o
Modified Paths:
--------------
 branches/v1_0_maint/examples/animation/animation_blit_gtk.py
 branches/v1_0_maint/examples/animation/animation_blit_gtk2.py
 branches/v1_0_maint/lib/pytz/__init__.py
 branches/v1_0_maint/lib/pytz/tests/test_tzinfo.py
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Bamako
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Cairo
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Casablanca
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Conakry
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Dar_es_Salaam
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Kampala
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Mogadishu
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Nairobi
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Nouakchott
 branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Timbuktu
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Catamarca
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/ComodRivadavia
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Cordoba
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Jujuy
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/La_Rioja
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Mendoza
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Rio_Gallegos
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Salta
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/San_Juan
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/San_Luis
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Tucuman
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Ushuaia
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Asuncion
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Cambridge_Bay
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Cancun
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Caracas
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Catamarca
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Chicago
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Chihuahua
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Cordoba
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Goose_Bay
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Hermosillo
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Indiana/Knox
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Indiana/Tell_City
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Iqaluit
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Jujuy
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Knox_IN
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Managua
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Mazatlan
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Mendoza
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Menominee
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Merida
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Montevideo
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Ojinaga
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Pangnirtung
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Rankin_Inlet
 branches/v1_0_maint/lib/pytz/zoneinfo/America/Rosario
 branches/v1_0_maint/lib/pytz/zoneinfo/America/St_Johns
 branches/v1_0_maint/lib/pytz/zoneinfo/Antarctica/Casey
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Aqtau
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Colombo
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Dili
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Gaza
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Harbin
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Ho_Chi_Minh
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Hong_Kong
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Irkutsk
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Jayapura
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Jerusalem
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Krasnoyarsk
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Magadan
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Makassar
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Manila
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Omsk
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Phnom_Penh
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Pyongyang
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh87
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh88
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh89
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Saigon
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Seoul
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Taipei
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tbilisi
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tehran
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tel_Aviv
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Ujung_Pandang
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Vientiane
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Vladivostok
 branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Yakutsk
 branches/v1_0_maint/lib/pytz/zoneinfo/Atlantic/Stanley
 branches/v1_0_maint/lib/pytz/zoneinfo/Canada/Newfoundland
 branches/v1_0_maint/lib/pytz/zoneinfo/Egypt
 branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Helsinki
 branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Mariehamn
 branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Moscow
 branches/v1_0_maint/lib/pytz/zoneinfo/Hongkong
 branches/v1_0_maint/lib/pytz/zoneinfo/Iran
 branches/v1_0_maint/lib/pytz/zoneinfo/Israel
 branches/v1_0_maint/lib/pytz/zoneinfo/Mexico/BajaSur
 branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh87
 branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh88
 branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh89
 branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Apia
 branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Fiji
 branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Kosrae
 branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Truk
 branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Yap
 branches/v1_0_maint/lib/pytz/zoneinfo/ROC
 branches/v1_0_maint/lib/pytz/zoneinfo/ROK
 branches/v1_0_maint/lib/pytz/zoneinfo/US/Central
 branches/v1_0_maint/lib/pytz/zoneinfo/US/Indiana-Starke
 branches/v1_0_maint/lib/pytz/zoneinfo/W-SU
 branches/v1_0_maint/lib/pytz/zoneinfo/localtime
 branches/v1_0_maint/lib/pytz/zoneinfo/zone.tab
 branches/v1_0_maint/src/_gtkagg.cpp
Modified: branches/v1_0_maint/examples/animation/animation_blit_gtk.py
===================================================================
--- branches/v1_0_maint/examples/animation/animation_blit_gtk.py	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/examples/animation/animation_blit_gtk.py	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -29,15 +29,28 @@
 # for profiling
 tstart = time.time()
 
+def on_draw(event):
+ background = canvas.copy_from_bbox(ax.bbox)
+ if on_draw.background is None:
+ gobject.idle_add(update_line)
+
+ on_draw.background = background
+
+on_draw.background = None
+
+fig.canvas.mpl_connect('draw_event', on_draw)
+
 def update_line(*args):
- print 'you are here', update_line.cnt
- if update_line.background is None:
- update_line.background = canvas.copy_from_bbox(ax.bbox)
+ if on_draw.background is None:
+ return True
 
+ print 'frame', update_line.cnt
+
 # restore the clean slate background
- canvas.restore_region(update_line.background)
+ canvas.restore_region(on_draw.background)
 # update the data
 line.set_ydata(np.sin(x+update_line.cnt/10.0))
+
 # just draw the animated artist
 ax.draw_artist(line)
 
@@ -54,15 +67,7 @@
 return True
 
 update_line.cnt = 0
-update_line.background = None
 
 
-def start_anim(event):
- gobject.idle_add(update_line)
- canvas.mpl_disconnect(start_anim.cid)
 
-start_anim.cid = canvas.mpl_connect('draw_event', start_anim)
-
-
-
 plt.show()
Modified: branches/v1_0_maint/examples/animation/animation_blit_gtk2.py
===================================================================
--- branches/v1_0_maint/examples/animation/animation_blit_gtk2.py	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/examples/animation/animation_blit_gtk2.py	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -20,9 +20,9 @@
 
 class UpdateLine(object):
 def get_bg_bbox(self):
- 
+
 return self.ax.bbox.padded(-3)
- 
+
 def __init__(self, canvas, ax):
 self.cnt = 0
 self.canvas = canvas
@@ -31,8 +31,8 @@
 self.prev_time = time.time()
 self.start_time = self.prev_time
 self.prev_pixel_offset = 0.
- 
 
+
 self.x0 = 0
 self.phases = np.random.random_sample((20,)) * np.pi * 2
 self.line, = ax.plot([], [], "-", animated=True, lw=2)
@@ -70,7 +70,7 @@
 # restore the clean slate background
 self.canvas.restore_region(self.background1)
 
- # restore subregion (x1+dx, y1, x2, y2) of the second bg 
+ # restore subregion (x1+dx, y1, x2, y2) of the second bg
 # in a offset position (x1-dx, y1)
 x1, y1, x2, y2 = self.background2.get_extents()
 self.canvas.restore_region(self.background2,
@@ -82,18 +82,18 @@
 def on_draw(self, *args):
 self.save_bg()
 return False
- 
+
 def update_line(self, *args):
 
 if self.background1 is None:
 return True
- 
+
 cur_time = time.time()
 pixel_offset = int((cur_time - self.start_time)*100.)
 dx_pixel = pixel_offset - self.prev_pixel_offset
 self.prev_pixel_offset = pixel_offset
 dx_data = self.get_dx_data(dx_pixel) #cur_time - self.prev_time)
- 
+
 x0 = self.x0
 self.x0 += dx_data
 self.prev_time = cur_time
@@ -109,7 +109,7 @@
 
 self.line.set_color(self.color_cycle.next())
 
- # now plot line segment within [x0, x0+dx_data], 
+ # now plot line segment within [x0, x0+dx_data],
 # Note that we're only plotting a line between [x0, x0+dx_data].
 xx = np.array([x0, self.x0])
 self.line.set_xdata(xx)
Modified: branches/v1_0_maint/lib/pytz/__init__.py
===================================================================
--- branches/v1_0_maint/lib/pytz/__init__.py	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/lib/pytz/__init__.py	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -9,7 +9,7 @@
 '''
 
 # The Olson database is updated several times a year.
-OLSON_VERSION = '2010h'
+OLSON_VERSION = '2010o'
 VERSION = OLSON_VERSION
 # Version format for a patch release - only one so far.
 #VERSION = OLSON_VERSION + '.2'
@@ -358,7 +358,7 @@
 return FixedOffset, (self._minutes, )
 
 def dst(self, dt):
- return None
+ return ZERO
 
 def tzname(self, dt):
 return None
@@ -387,12 +387,16 @@
 pytz.FixedOffset(-330)
 >>> one.utcoffset(datetime.datetime.now())
 datetime.timedelta(-1, 66600)
+ >>> one.dst(datetime.datetime.now())
+ datetime.timedelta(0)
 
 >>> two = FixedOffset(1380)
 >>> two
 pytz.FixedOffset(1380)
 >>> two.utcoffset(datetime.datetime.now())
 datetime.timedelta(0, 82800)
+ >>> two.dst(datetime.datetime.now())
+ datetime.timedelta(0)
 
 The datetime.timedelta must be between the range of -1 and 1 day,
 non-inclusive.
@@ -530,6 +534,7 @@
 'America/Atikokan',
 'America/Atka',
 'America/Bahia',
+ 'America/Bahia_Banderas',
 'America/Barbados',
 'America/Belem',
 'America/Belize',
@@ -956,6 +961,7 @@
 'Pacific/Apia',
 'Pacific/Auckland',
 'Pacific/Chatham',
+ 'Pacific/Chuuk',
 'Pacific/Easter',
 'Pacific/Efate',
 'Pacific/Enderbury',
@@ -981,6 +987,7 @@
 'Pacific/Pago_Pago',
 'Pacific/Palau',
 'Pacific/Pitcairn',
+ 'Pacific/Pohnpei',
 'Pacific/Ponape',
 'Pacific/Port_Moresby',
 'Pacific/Rarotonga',
@@ -1095,6 +1102,7 @@
 'America/Asuncion',
 'America/Atikokan',
 'America/Bahia',
+ 'America/Bahia_Banderas',
 'America/Barbados',
 'America/Belem',
 'America/Belize',
@@ -1155,6 +1163,7 @@
 'America/Maceio',
 'America/Managua',
 'America/Manaus',
+ 'America/Marigot',
 'America/Martinique',
 'America/Matamoros',
 'America/Mazatlan',
@@ -1195,6 +1204,8 @@
 'America/Santo_Domingo',
 'America/Sao_Paulo',
 'America/Scoresbysund',
+ 'America/Shiprock',
+ 'America/St_Barthelemy',
 'America/St_Johns',
 'America/St_Kitts',
 'America/St_Lucia',
@@ -1220,8 +1231,10 @@
 'Antarctica/McMurdo',
 'Antarctica/Palmer',
 'Antarctica/Rothera',
+ 'Antarctica/South_Pole',
 'Antarctica/Syowa',
 'Antarctica/Vostok',
+ 'Arctic/Longyearbyen',
 'Asia/Aden',
 'Asia/Almaty',
 'Asia/Amman',
@@ -1331,6 +1344,7 @@
 'Europe/Athens',
 'Europe/Belgrade',
 'Europe/Berlin',
+ 'Europe/Bratislava',
 'Europe/Brussels',
 'Europe/Bucharest',
 'Europe/Budapest',
@@ -1338,35 +1352,46 @@
 'Europe/Copenhagen',
 'Europe/Dublin',
 'Europe/Gibraltar',
+ 'Europe/Guernsey',
 'Europe/Helsinki',
+ 'Europe/Isle_of_Man',
 'Europe/Istanbul',
+ 'Europe/Jersey',
 'Europe/Kaliningrad',
 'Europe/Kiev',
 'Europe/Lisbon',
+ 'Europe/Ljubljana',
 'Europe/London',
 'Europe/Luxembourg',
 'Europe/Madrid',
 'Europe/Malta',
+ 'Europe/Mariehamn',
 'Europe/Minsk',
 'Europe/Monaco',
 'Europe/Moscow',
 'Europe/Oslo',
 'Europe/Paris',
+ 'Europe/Podgorica',
 'Europe/Prague',
 'Europe/Riga',
 'Europe/Rome',
 'Europe/Samara',
+ 'Europe/San_Marino',
+ 'Europe/Sarajevo',
 'Europe/Simferopol',
+ 'Europe/Skopje',
 'Europe/Sofia',
 'Europe/Stockholm',
 'Europe/Tallinn',
 'Europe/Tirane',
 'Europe/Uzhgorod',
 'Europe/Vaduz',
+ 'Europe/Vatican',
 'Europe/Vienna',
 'Europe/Vilnius',
 'Europe/Volgograd',
 'Europe/Warsaw',
+ 'Europe/Zagreb',
 'Europe/Zaporozhye',
 'Europe/Zurich',
 'GMT',
@@ -1384,6 +1409,7 @@
 'Pacific/Apia',
 'Pacific/Auckland',
 'Pacific/Chatham',
+ 'Pacific/Chuuk',
 'Pacific/Easter',
 'Pacific/Efate',
 'Pacific/Enderbury',
@@ -1409,14 +1435,13 @@
 'Pacific/Pago_Pago',
 'Pacific/Palau',
 'Pacific/Pitcairn',
- 'Pacific/Ponape',
+ 'Pacific/Pohnpei',
 'Pacific/Port_Moresby',
 'Pacific/Rarotonga',
 'Pacific/Saipan',
 'Pacific/Tahiti',
 'Pacific/Tarawa',
 'Pacific/Tongatapu',
- 'Pacific/Truk',
 'Pacific/Wake',
 'Pacific/Wallis',
 'US/Alaska',
Modified: branches/v1_0_maint/lib/pytz/tests/test_tzinfo.py
===================================================================
--- branches/v1_0_maint/lib/pytz/tests/test_tzinfo.py	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/lib/pytz/tests/test_tzinfo.py	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -16,7 +16,7 @@
 
 # I test for expected version to ensure the correct version of pytz is
 # actually being tested.
-EXPECTED_VERSION='2010h'
+EXPECTED_VERSION='2010o'
 
 fmt = '%Y-%m-%d %H:%M:%S %Z%z'
 
@@ -44,6 +44,7 @@
 dt.hour, dt.minute, dt.second,
 dt.tzname(), offset)
 
+
 class BasicTest(unittest.TestCase):
 
 def testVersion(self):
@@ -643,6 +644,28 @@
 '2004-10-31 02:00:00 CET+0100'
 )
 
+
+class CommonTimezonesTestCase(unittest.TestCase):
+ def test_bratislava(self):
+ # Bratislava is the default timezone for Slovakia, but our
+ # heuristics where not adding it to common_timezones. Ideally,
+ # common_timezones should be populated from zone.tab at runtime,
+ # but I'm hesitant to pay the startup cost as loading the list
+ # on demand whilst remaining backwards compatible seems
+ # difficult.
+ self.failUnless('Europe/Bratislava' in pytz.common_timezones)
+ self.failUnless('Europe/Bratislava' in pytz.common_timezones_set)
+
+ def test_us_eastern(self):
+ self.failUnless('US/Eastern' in pytz.common_timezones)
+ self.failUnless('US/Eastern' in pytz.common_timezones_set)
+
+ def test_belfast(self):
+ # Belfast uses London time.
+ self.failUnless('Europe/Belfast' in pytz.all_timezones_set)
+ self.failIf('Europe/Belfast' in pytz.common_timezones)
+ self.failIf('Europe/Belfast' in pytz.common_timezones_set)
+
 def test_suite():
 suite = unittest.TestSuite()
 suite.addTest(doctest.DocTestSuite('pytz'))
@@ -651,6 +674,7 @@
 suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(test_tzinfo))
 return suite
 
+
 if __name__ == '__main__':
 unittest.main(defaultTest='test_suite')
 
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Bamako
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Cairo
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Casablanca
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Conakry
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Dar_es_Salaam
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Kampala
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Mogadishu
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Nairobi
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Nouakchott
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Africa/Timbuktu
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Catamarca
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/ComodRivadavia
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Cordoba
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Jujuy
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/La_Rioja
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Mendoza
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Rio_Gallegos
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Salta
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/San_Juan
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/San_Luis
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Tucuman
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Argentina/Ushuaia
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Asuncion
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Cambridge_Bay
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Cancun
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Caracas
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Catamarca
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Chicago
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Chihuahua
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Cordoba
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Goose_Bay
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Hermosillo
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Indiana/Knox
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Indiana/Tell_City
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Iqaluit
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Jujuy
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Knox_IN
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Managua
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Mazatlan
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Mendoza
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Menominee
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Merida
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Montevideo
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Ojinaga
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Pangnirtung
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Rankin_Inlet
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/Rosario
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/America/St_Johns
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Antarctica/Casey
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Aqtau
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Colombo
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Dili
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Gaza
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Harbin
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Ho_Chi_Minh
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Hong_Kong
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Irkutsk
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Jayapura
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Jerusalem
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Krasnoyarsk
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Magadan
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Makassar
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Manila
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Omsk
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Phnom_Penh
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Pyongyang
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh87
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh88
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Riyadh89
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Saigon
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Seoul
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Taipei
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tbilisi
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tehran
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Tel_Aviv
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Ujung_Pandang
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Vientiane
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Vladivostok
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Asia/Yakutsk
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Atlantic/Stanley
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Canada/Newfoundland
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Egypt
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Helsinki
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Mariehamn
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Europe/Moscow
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Hongkong
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Iran
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Israel
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Mexico/BajaSur
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh87
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh88
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Mideast/Riyadh89
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Apia
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Fiji
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Kosrae
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Truk
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/Pacific/Yap
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/ROC
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/ROK
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/US/Central
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/US/Indiana-Starke
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/W-SU
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/localtime
===================================================================
(Binary files differ)
Modified: branches/v1_0_maint/lib/pytz/zoneinfo/zone.tab
===================================================================
--- branches/v1_0_maint/lib/pytz/zoneinfo/zone.tab	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/lib/pytz/zoneinfo/zone.tab	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -1,5 +1,5 @@
 # <pre>
-# @(#)zone.tab	8.35
+# @(#)zone.tab	8.38
 # This file is in the public domain, so clarified as of
 # 2009年05月17日 by Arthur David Olson.
 #
@@ -41,7 +41,7 @@
 AQ	-6736+06253	Antarctica/Mawson	Mawson Station, Holme Bay
 AQ	-6835+07758	Antarctica/Davis	Davis Station, Vestfold Hills
 AQ	-6617+11031	Antarctica/Casey	Casey Station, Bailey Peninsula
-AQ	-7824+10654	Antarctica/Vostok	Vostok Station, S Magnetic Pole
+AQ	-7824+10654	Antarctica/Vostok	Vostok Station, Lake Vostok
 AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
 AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
 AQ	-5430+15857	Antarctica/Macquarie	Macquarie Island Station, Macquarie Island
@@ -177,8 +177,8 @@
 FI	+6010+02458	Europe/Helsinki
 FJ	-1808+17825	Pacific/Fiji
 FK	-5142-05751	Atlantic/Stanley
-FM	+0725+15147	Pacific/Truk	Truk (Chuuk) and Yap
-FM	+0658+15813	Pacific/Ponape	Ponape (Pohnpei)
+FM	+0725+15147	Pacific/Chuuk	Chuuk (Truk) and Yap
+FM	+0658+15813	Pacific/Pohnpei	Pohnpei (Ponape)
 FM	+0519+16259	Pacific/Kosrae	Kosrae
 FO	+6201-00646	Atlantic/Faroe
 FR	+4852+00220	Europe/Paris
@@ -288,6 +288,7 @@
 MX	+2904-11058	America/Hermosillo	Mountain Standard Time - Sonora
 MX	+3232-11701	America/Tijuana	US Pacific Time - Baja California near US border
 MX	+3018-11452	America/Santa_Isabel	Mexican Pacific Time - Baja California away from US border
+MX	+2048-10515	America/Bahia_Banderas	Mexican Central Time - Bahia de Banderas
 MY	+0310+10142	Asia/Kuala_Lumpur	peninsular Malaysia
 MY	+0133+11020	Asia/Kuching	Sabah & Sarawak
 MZ	-2558+03235	Africa/Maputo
Modified: branches/v1_0_maint/src/_gtkagg.cpp
===================================================================
--- branches/v1_0_maint/src/_gtkagg.cpp	2011年01月03日 19:00:11 UTC (rev 8875)
+++ branches/v1_0_maint/src/_gtkagg.cpp	2011年01月03日 20:34:57 UTC (rev 8876)
@@ -136,6 +136,7 @@
 {
 init_pygobject();
 init_pygtk();
+
 import_array();
 //suppress unused warning by creating in two lines
 static _gtkagg_module* _gtkagg = NULL;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8875
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8875&view=rev
Author: jdh2358
Date: 2011年01月03日 19:00:11 +0000 (2011年1月03日)
Log Message:
-----------
added developer commit history example for annual purge
Added Paths:
-----------
 trunk/matplotlib/examples/misc/developer_commit_history.py
Added: trunk/matplotlib/examples/misc/developer_commit_history.py
===================================================================
--- trunk/matplotlib/examples/misc/developer_commit_history.py	 (rev 0)
+++ trunk/matplotlib/examples/misc/developer_commit_history.py	2011年01月03日 19:00:11 UTC (rev 8875)
@@ -0,0 +1,44 @@
+"""
+report how many days it has been since each developer committed. You
+must do an
+
+svn log > log.txt
+
+and place the output next to this file before running
+
+"""
+import os, datetime
+
+import matplotlib.cbook as cbook
+
+todate = cbook.todate('%Y-%m-%d')
+today = datetime.date.today()
+if not os.path.exists('log.txt'):
+ print('You must place the "svn log" output into a file "log.txt"')
+ raise SystemExit
+
+parse = False
+
+lastd = dict()
+for line in file('log.txt'):
+ if line.startswith('--------'):
+ parse = True
+ continue
+
+ if parse:
+ parts = [part.strip() for part in line.split('|')]
+ developer = parts[1]
+ dateparts = parts[2].split(' ')
+ ymd = todate(dateparts[0])
+
+
+ if developer not in lastd:
+ lastd[developer] = ymd
+
+ parse = False
+
+dsu = [((today - lastdate).days, developer) for developer, lastdate in lastd.items()]
+
+dsu.sort()
+for timedelta, developer in dsu:
+ print('%s : %d'%(developer, timedelta))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2011年01月03日 18:43:55
Revision: 8874
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8874&view=rev
Author: jdh2358
Date: 2011年01月03日 18:43:48 +0000 (2011年1月03日)
Log Message:
-----------
turn off redundant tick labeling in pyplot.subplots
Modified Paths:
--------------
 trunk/matplotlib/CHANGELOG
 trunk/matplotlib/lib/matplotlib/pyplot.py
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG	2011年01月03日 14:53:20 UTC (rev 8873)
+++ trunk/matplotlib/CHANGELOG	2011年01月03日 18:43:48 UTC (rev 8874)
@@ -1,3 +1,6 @@
+2011年01月03日 Turn off tick labeling on interior subplots for
+ pyplots.subplots when sharex/sharey is True. - JDH
+
 2010年12月29日 Implment axes_divider.HBox and VBox. -JJL
 
 2010年11月22日 Fixed error with Hammer projection. - BVR
Modified: trunk/matplotlib/lib/matplotlib/pyplot.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pyplot.py	2011年01月03日 14:53:20 UTC (rev 8873)
+++ trunk/matplotlib/lib/matplotlib/pyplot.py	2011年01月03日 18:43:48 UTC (rev 8874)
@@ -684,10 +684,14 @@
 Number of columns of the subplot grid. Defaults to 1.
 
 sharex : bool
- If True, the X axis will be shared amongst all subplots.
+ If True, the X axis will be shared amongst all subplots. If
+ True and you have multiple rows, the x tick labels on all but
+ the last row of plots will have visible set to False
 
- sharex : bool
- If True, the Y axis will be shared amongst all subplots.
+ sharey : bool
+ If True, the Y axis will be shared amongst all subplots. If
+ True and you have multiple columns, the y tick labels on all but
+ the first column of plots will have visible set to False
 
 squeeze : bool
 
@@ -760,19 +764,39 @@
 for i in range(1, nplots):
 axarr[i] = fig.add_subplot(nrows, ncols, i+1, **subplot_kw)
 
+
+
+ # returned axis array will be always 2-d, even if nrows=ncols=1
+ axarr = axarr.reshape(nrows, ncols)
+
+
+ # turn off redundant tick labeling
+ if sharex and nrows>1:
+ # turn off all but the bottom row
+ for ax in axarr[:-1,:].flat:
+ for label in ax.get_xticklabels():
+ label.set_visible(False)
+
+
+ if sharey and ncols>1:
+ # turn off all but the first column
+ for ax in axarr[:,1:].flat:
+ for label in ax.get_yticklabels():
+ label.set_visible(False)
+
 if squeeze:
 # Reshape the array to have the final desired dimension (nrow,ncol),
 # though discarding unneeded dimensions that equal 1. If we only have
 # one subplot, just return it instead of a 1-element array.
 if nplots==1:
- return fig, axarr[0]
+ ret = fig, axarr[0,0]
 else:
- return fig, axarr.reshape(nrows, ncols).squeeze()
- else:
- # returned axis array will be always 2-d, even if nrows=ncols=1
- return fig, axarr.reshape(nrows, ncols)
+ ret = fig, axarr.squeeze()
 
 
+ return ret
+
+
 from gridspec import GridSpec
 def subplot2grid(shape, loc, rowspan=1, colspan=1, **kwargs):
 """
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2011年01月03日 14:53:26
Revision: 8873
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8873&view=rev
Author: mdboom
Date: 2011年01月03日 14:53:20 +0000 (2011年1月03日)
Log Message:
-----------
[3143748] Math domain error in ticker.py is_decade()
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/ticker.py
Modified: trunk/matplotlib/lib/matplotlib/ticker.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/ticker.py	2011年01月03日 13:45:21 UTC (rev 8872)
+++ trunk/matplotlib/lib/matplotlib/ticker.py	2011年01月03日 14:53:20 UTC (rev 8873)
@@ -1193,7 +1193,7 @@
 return False
 if x == 0.0:
 return True
- lx = np.log(x)/np.log(base)
+ lx = np.log(np.abs(x))/np.log(base)
 return is_close_to_int(lx)
 
 def is_close_to_int(x):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <md...@us...> - 2011年01月03日 13:45:27
Revision: 8872
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8872&view=rev
Author: mdehoon
Date: 2011年01月03日 13:45:21 +0000 (2011年1月03日)
Log Message:
-----------
Making the necessary changes for Python 3.
Modified Paths:
--------------
 trunk/matplotlib/src/_macosx.m
Modified: trunk/matplotlib/src/_macosx.m
===================================================================
--- trunk/matplotlib/src/_macosx.m	2011年01月02日 22:46:13 UTC (rev 8871)
+++ trunk/matplotlib/src/_macosx.m	2011年01月03日 13:45:21 UTC (rev 8872)
@@ -5,6 +5,17 @@
 #include "numpy/arrayobject.h"
 #include "path_cleanup.h"
 
+/* Must define Py_TYPE for Python 2.5 or older */
+#ifndef Py_TYPE
+# define Py_TYPE(o) ((o)->ob_type)
+#endif
+
+/* Must define PyVarObject_HEAD_INIT for Python 2.5 or older */
+#ifndef PyVarObject_HEAD_INIT
+#define PyVarObject_HEAD_INIT(type, size) \
+ PyObject_HEAD_INIT(type) size,
+#endif
+
 /* Proper way to check for the OS X version we are compiling for, from
 http://developer.apple.com/documentation/DeveloperTools/Conceptual/cross_development */
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
@@ -488,14 +499,18 @@
 ngc--;
 if (ngc==0) _dealloc_atsui();
 
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 #endif
 
 static PyObject*
 GraphicsContext_repr(GraphicsContext* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("GraphicsContext object %p wrapping the Quartz 2D graphics context %p", (void*)self, (void*)(self->cr));
+#else
 return PyString_FromFormat("GraphicsContext object %p wrapping the Quartz 2D graphics context %p", (void*)self, (void*)(self->cr));
+#endif
 }
 
 static PyObject*
@@ -2236,6 +2251,9 @@
 #else
 ATSFontRef font = 0;
 #endif
+#if PY_MAJOR_VERSION >= 3
+ PyObject* ascii = NULL;
+#endif
 
 const int k = (strcmp(italic, "italic") ? 0 : 2)
 + (strcmp(weight, "bold") ? 0 : 1);
@@ -2416,8 +2434,14 @@
 for (i = 0; i < n; i++)
 {
 PyObject* item = PyList_GET_ITEM(family, i);
+#if PY_MAJOR_VERSION >= 3
+ ascii = PyUnicode_AsASCIIString(item);
+ if(!ascii) return 0;
+ temp = PyBytes_AS_STRING(ascii);
+#else
 if(!PyString_Check(item)) return 0;
 temp = PyString_AS_STRING(item);
+#endif
 for (j = 0; j < NMAP; j++)
 { if (!strcmp(map[j].name, temp))
 { temp = psnames[map[j].index][k];
@@ -2444,6 +2468,10 @@
 name = temp;
 break;
 }
+#if PY_MAJOR_VERSION >= 3
+ Py_DECREF(ascii);
+ ascii = NULL;
+#endif
 }
 if(!font)
 { string = CFStringCreateWithCString(kCFAllocatorDefault,
@@ -2459,6 +2487,9 @@
 #ifndef COMPILING_FOR_10_5
 CGContextSelectFont(cr, name, size, kCGEncodingMacRoman);
 #endif
+#if PY_MAJOR_VERSION >= 3
+ Py_XDECREF(ascii);
+#endif
 return font;
 }
 
@@ -2958,11 +2989,19 @@
 CGDataProviderRef provider;
 double rect[4] = {0.0, 0.0, self->size.width, self->size.height};
 
+#if PY_MAJOR_VERSION >= 3
+ if (!PyBytes_Check(image))
+ {
+ PyErr_SetString(PyExc_RuntimeError, "image is not a byte array");
+ return NULL;
+ }
+#else
 if (!PyString_Check(image))
 {
 PyErr_SetString(PyExc_RuntimeError, "image is not a string");
 return NULL;
 }
+#endif
 
 const size_t bytesPerComponent = 1;
 const size_t bitsPerComponent = 8 * bytesPerComponent;
@@ -2978,8 +3017,13 @@
 }
 
 Py_INCREF(image);
+#if PY_MAJOR_VERSION >= 3
+ n = PyByteArray_GET_SIZE(image);
+ data = PyByteArray_AS_STRING(image);
+#else
 n = PyString_GET_SIZE(image);
 data = PyString_AsString(image);
+#endif
 
 provider = CGDataProviderCreateWithData(image,
 data,
@@ -3161,8 +3205,7 @@
 "set_joinstyle, etc.).\n";
 
 static PyTypeObject GraphicsContextType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.GraphicsContext", /*tp_name*/
 sizeof(GraphicsContext), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -3247,14 +3290,19 @@
 [self->view setCanvas: NULL];
 [self->view release];
 }
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 
 static PyObject*
 FigureCanvas_repr(FigureCanvas* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("FigureCanvas object %p wrapping NSView %p",
+ (void*)self, (void*)(self->view));
+#else
 return PyString_FromFormat("FigureCanvas object %p wrapping NSView %p",
 (void*)self, (void*)(self->view));
+#endif
 }
 
 static PyObject*
@@ -3588,8 +3636,7 @@
 "A FigureCanvas object wraps a Cocoa NSView object.\n";
 
 static PyTypeObject FigureCanvasType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.FigureCanvas", /*tp_name*/
 sizeof(FigureCanvas), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -3720,8 +3767,13 @@
 static PyObject*
 FigureManager_repr(FigureManager* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("FigureManager object %p wrapping NSWindow %p",
+ (void*) self, (void*)(self->window));
+#else
 return PyString_FromFormat("FigureManager object %p wrapping NSWindow %p",
 (void*) self, (void*)(self->window));
+#endif
 }
 
 static void
@@ -3734,7 +3786,7 @@
 [window close];
 [pool release];
 }
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 
 static PyObject*
@@ -3765,8 +3817,7 @@
 "A FigureManager object wraps a Cocoa NSWindow object.\n";
 
 static PyTypeObject FigureManagerType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.FigureManager", /*tp_name*/
 sizeof(FigureManager), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -4101,13 +4152,17 @@
 NavigationToolbar_dealloc(NavigationToolbar *self)
 {
 [self->handler release];
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 
 static PyObject*
 NavigationToolbar_repr(NavigationToolbar* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("NavigationToolbar object %p", (void*)self);
+#else
 return PyString_FromFormat("NavigationToolbar object %p", (void*)self);
+#endif
 }
 
 static char NavigationToolbar_doc[] =
@@ -4214,7 +4269,11 @@
 {
 if(states[i]==1)
 {
+#if PY_MAJOR_VERSION >= 3
+ PyList_SET_ITEM(list, j, PyLong_FromLong(i));
+#else
 PyList_SET_ITEM(list, j, PyInt_FromLong(i));
+#endif
 j++;
 }
 }
@@ -4237,8 +4296,7 @@
 };
 
 static PyTypeObject NavigationToolbarType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.NavigationToolbar", /*tp_name*/
 sizeof(NavigationToolbar), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -4623,13 +4681,17 @@
 NavigationToolbar2_dealloc(NavigationToolbar2 *self)
 {
 [self->handler release];
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 
 static PyObject*
 NavigationToolbar2_repr(NavigationToolbar2* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("NavigationToolbar2 object %p", (void*)self);
+#else
 return PyString_FromFormat("NavigationToolbar2 object %p", (void*)self);
+#endif
 }
 
 static char NavigationToolbar2_doc[] =
@@ -4662,8 +4724,7 @@
 };
 
 static PyTypeObject NavigationToolbar2Type = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.NavigationToolbar2", /*tp_name*/
 sizeof(NavigationToolbar2), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -5539,14 +5600,19 @@
 CFRelease(self->timer);
 self->timer = NULL;
 }
- self->ob_type->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
 }
 
 static PyObject*
 Timer_repr(Timer* self)
 {
+#if PY_MAJOR_VERSION >= 3
+ return PyUnicode_FromFormat("Timer object %p wrapping CFRunLoopTimerRef %p",
+ (void*) self, (void*)(self->timer));
+#else
 return PyString_FromFormat("Timer object %p wrapping CFRunLoopTimerRef %p",
 (void*) self, (void*)(self->timer));
+#endif
 }
 
 static char Timer_doc[] =
@@ -5657,8 +5723,7 @@
 };
 
 static PyTypeObject TimerType = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
+ PyVarObject_HEAD_INIT(NULL, 0)
 "_macosx.Timer", /*tp_name*/
 sizeof(Timer), /*tp_basicsize*/
 0, /*tp_itemsize*/
@@ -5722,23 +5787,52 @@
 {NULL, NULL, 0, NULL}/* sentinel */
 };
 
+#if PY_MAJOR_VERSION >= 3
+
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ "_macosx",
+ "Mac OS X native backend",
+ -1,
+ methods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
+PyObject* PyInit__macosx(void)
+
+#else
+
 void init_macosx(void)
-{ PyObject *m;
+#endif
+{ PyObject *module;
 
 import_array();
 
- if (PyType_Ready(&GraphicsContextType) < 0) return;
- if (PyType_Ready(&FigureCanvasType) < 0) return;
- if (PyType_Ready(&FigureManagerType) < 0) return;
- if (PyType_Ready(&NavigationToolbarType) < 0) return;
- if (PyType_Ready(&NavigationToolbar2Type) < 0) return;
- if (PyType_Ready(&TimerType) < 0) return;
+ if (PyType_Ready(&GraphicsContextType) < 0
+ || PyType_Ready(&FigureCanvasType) < 0
+ || PyType_Ready(&FigureManagerType) < 0
+ || PyType_Ready(&NavigationToolbarType) < 0
+ || PyType_Ready(&NavigationToolbar2Type) < 0
+ || PyType_Ready(&TimerType) < 0)
+#if PY_MAJOR_VERSION >= 3
+ return NULL;
+#else
+ return;
+#endif
 
- m = Py_InitModule4("_macosx",
- methods,
- "Mac OS X native backend",
- NULL,
- PYTHON_API_VERSION);
+#if PY_MAJOR_VERSION >= 3
+ module = PyModule_Create(&moduledef);
+ if (module==NULL) return NULL;
+#else
+ module = Py_InitModule4("_macosx",
+ methods,
+ "Mac OS X native backend",
+ NULL,
+ PYTHON_API_VERSION);
+#endif
 
 Py_INCREF(&GraphicsContextType);
 Py_INCREF(&FigureCanvasType);
@@ -5746,12 +5840,12 @@
 Py_INCREF(&NavigationToolbarType);
 Py_INCREF(&NavigationToolbar2Type);
 Py_INCREF(&TimerType);
- PyModule_AddObject(m, "GraphicsContext", (PyObject*) &GraphicsContextType);
- PyModule_AddObject(m, "FigureCanvas", (PyObject*) &FigureCanvasType);
- PyModule_AddObject(m, "FigureManager", (PyObject*) &FigureManagerType);
- PyModule_AddObject(m, "NavigationToolbar", (PyObject*) &NavigationToolbarType);
- PyModule_AddObject(m, "NavigationToolbar2", (PyObject*) &NavigationToolbar2Type);
- PyModule_AddObject(m, "Timer", (PyObject*) &TimerType);
+ PyModule_AddObject(module, "GraphicsContext", (PyObject*) &GraphicsContextType);
+ PyModule_AddObject(module, "FigureCanvas", (PyObject*) &FigureCanvasType);
+ PyModule_AddObject(module, "FigureManager", (PyObject*) &FigureManagerType);
+ PyModule_AddObject(module, "NavigationToolbar", (PyObject*) &NavigationToolbarType);
+ PyModule_AddObject(module, "NavigationToolbar2", (PyObject*) &NavigationToolbar2Type);
+ PyModule_AddObject(module, "Timer", (PyObject*) &TimerType);
 
 PyOS_InputHook = wait_for_stdin;
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <jd...@us...> - 2011年01月02日 22:46:21
Revision: 8871
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8871&view=rev
Author: jdh2358
Date: 2011年01月02日 22:46:13 +0000 (2011年1月02日)
Log Message:
-----------
added freestanding dist support for sample_data
Added Paths:
-----------
 trunk/sample_data/MANIFEST.in
 trunk/sample_data/README.txt
 trunk/sample_data/setup.py
Added: trunk/sample_data/MANIFEST.in
===================================================================
--- trunk/sample_data/MANIFEST.in	 (rev 0)
+++ trunk/sample_data/MANIFEST.in	2011年01月02日 22:46:13 UTC (rev 8871)
@@ -0,0 +1,5 @@
+include *.png *.jpg *.csv *.dat *.npy *.xrc *.ima
+include setup.py MANIFEST.in MANIFEST
+recursive-include axes_grid *
+recursive-include testdir *
+
Added: trunk/sample_data/README.txt
===================================================================
--- trunk/sample_data/README.txt	 (rev 0)
+++ trunk/sample_data/README.txt	2011年01月02日 22:46:13 UTC (rev 8871)
@@ -0,0 +1,2 @@
+This is the sample data needed for some of matplotlib's examples and
+docs. See matplotlib.cbook.get_sample_data for more info.
Added: trunk/sample_data/setup.py
===================================================================
--- trunk/sample_data/setup.py	 (rev 0)
+++ trunk/sample_data/setup.py	2011年01月02日 22:46:13 UTC (rev 8871)
@@ -0,0 +1,9 @@
+from distutils.core import setup
+
+setup(name='mpl_sampledata',
+ version='1.0.1rc',
+ description='matplotlib sample data',
+ author='John Hunter',
+ author_email='jd...@gm...',
+ url='http://matplotlib.sf.net',
+ )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8870
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8870&view=rev
Author: jdh2358
Date: 2011年01月02日 17:53:33 +0000 (2011年1月02日)
Log Message:
-----------
bumped version number to 1.0.1rc
Modified Paths:
--------------
 branches/v1_0_maint/lib/matplotlib/__init__.py
Modified: branches/v1_0_maint/lib/matplotlib/__init__.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/__init__.py	2011年01月02日 15:09:27 UTC (rev 8869)
+++ branches/v1_0_maint/lib/matplotlib/__init__.py	2011年01月02日 17:53:33 UTC (rev 8870)
@@ -99,7 +99,7 @@
 """
 from __future__ import generators
 
-__version__ = '1.0.0'
+__version__ = '1.0.1rc1'
 __revision__ = '$Revision$'
 __date__ = '$Date$'
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8869
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8869&view=rev
Author: jswhit
Date: 2011年01月02日 15:09:27 +0000 (2011年1月02日)
Log Message:
-----------
move center of map show contintents filled correctly
Modified Paths:
--------------
 trunk/toolkits/basemap/examples/wiki_example.py
Modified: trunk/toolkits/basemap/examples/wiki_example.py
===================================================================
--- trunk/toolkits/basemap/examples/wiki_example.py	2010年12月30日 16:14:19 UTC (rev 8868)
+++ trunk/toolkits/basemap/examples/wiki_example.py	2011年01月02日 15:09:27 UTC (rev 8869)
@@ -4,13 +4,13 @@
 # set up orthographic map projection with
 # perspective of satellite looking down at 50N, 100W.
 # use low resolution coastlines.
-map = Basemap(projection='ortho',lat_0=50,lon_0=-100,resolution='l')
+map = Basemap(projection='ortho',lat_0=45,lon_0=-100,resolution='l')
 # draw coastlines, country boundaries, fill continents.
 map.drawcoastlines(linewidth=0.25)
 map.drawcountries(linewidth=0.25)
-map.fillcontinents(color='coral')
+map.fillcontinents(color='coral',lake_color='aqua')
 # draw the edge of the map projection region (the projection limb)
-map.drawmapboundary()
+map.drawmapboundary(fill_color='aqua')
 # draw lat/lon grid lines every 30 degrees.
 map.drawmeridians(np.arange(0,360,30))
 map.drawparallels(np.arange(-90,90,30))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2010年12月30日 16:14:25
Revision: 8868
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8868&view=rev
Author: jswhit
Date: 2010年12月30日 16:14:19 +0000 (2010年12月30日)
Log Message:
-----------
detect projection out of range, set error flag.
Modified Paths:
--------------
 trunk/toolkits/basemap/src/PJ_hammer.c
Modified: trunk/toolkits/basemap/src/PJ_hammer.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_hammer.c	2010年12月30日 13:09:06 UTC (rev 8867)
+++ trunk/toolkits/basemap/src/PJ_hammer.c	2010年12月30日 16:14:19 UTC (rev 8868)
@@ -2,6 +2,7 @@
 	double w; \
 	double m, rm;
 #define PJ_LIB__
+# define EPS 1.0e-10
 # include	<projects.h>
 PROJ_HEAD(hammer, "Hammer & Eckert-Greifendorff")
 	"\n\tMisc Sph, \n\tW= M=";
@@ -15,9 +16,15 @@
 }
 INVERSE(s_inverse); /* spheroid */
 double z;
-	z = sqrt(1. - (0.5 * P->w * xy.x) * (0.5 * P->w * xy.x) - (0.5 * xy.y) * (0.5 * xy.y));
-	lp.lam = aatan2(P->w * xy.x * z,2. * z * z - 1)/P->w;
-	lp.phi = aasin(z * xy.y);
+	z = sqrt(1. - 0.25*P->w*P->w*xy.x*xy.x - 0.25*xy.y*xy.y);
+	if (fabs(2.*z*z-1.) < EPS) {
+ lp.lam = HUGE_VAL;
+ lp.phi = HUGE_VAL;
+ pj_errno = -14;
+	} else {
+	 lp.lam = aatan2(P->w * xy.x * z,2. * z * z - 1)/P->w;
+	 lp.phi = aasin(z * xy.y);
+ }
 	return (lp);
 }
 FREEUP; if (P) pj_dalloc(P); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2010年12月30日 13:09:14
Revision: 8867
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8867&view=rev
Author: jswhit
Date: 2010年12月30日 13:09:06 +0000 (2010年12月30日)
Log Message:
-----------
add more checks for undefined projection values.
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_proj.c
 trunk/toolkits/basemap/src/_proj.pyx
Modified: trunk/toolkits/basemap/src/_proj.c
===================================================================
--- trunk/toolkits/basemap/src/_proj.c	2010年12月30日 12:57:05 UTC (rev 8866)
+++ trunk/toolkits/basemap/src/_proj.c	2010年12月30日 13:09:06 UTC (rev 8867)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.13 on Tue Nov 30 10:44:02 2010 */
+/* Generated by Cython 0.13 on Thu Dec 30 06:06:48 2010 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -279,7 +279,7 @@
 
 /* Type declarations */
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":12
+/* "/Users/jsw/python/basemap/src/_proj.pyx":12
 * pj_set_searchpath(1, &searchpath)
 * 
 * cdef class Proj: # <<<<<<<<<<<<<<
@@ -407,11 +407,12 @@
 /* Implementation of _proj */
 static PyObject *__pyx_builtin_RuntimeError;
 static char __pyx_k_3[] = "Buffer lengths not the same";
-static char __pyx_k_6[] = "x,y and z must be same size";
-static char __pyx_k_7[] = "1.8.8";
-static char __pyx_k_8[] = "Proj.__reduce__ (line 32)";
-static char __pyx_k_9[] = "Proj._fwd (line 36)";
-static char __pyx_k_10[] = "Proj._inv (line 85)";
+static char __pyx_k_4[] = "projection undefined";
+static char __pyx_k_7[] = "x,y and z must be same size";
+static char __pyx_k_8[] = "1.8.7";
+static char __pyx_k_9[] = "Proj.__reduce__ (line 32)";
+static char __pyx_k_10[] = "Proj._fwd (line 36)";
+static char __pyx_k_11[] = "Proj._inv (line 94)";
 static char __pyx_k__u[] = "u";
 static char __pyx_k__v[] = "v";
 static char __pyx_k__x[] = "x";
@@ -446,10 +447,11 @@
 static char __pyx_k__pjinitstring[] = "pjinitstring";
 static char __pyx_k__proj_version[] = "proj_version";
 static PyObject *__pyx_kp_u_10;
+static PyObject *__pyx_kp_u_11;
 static PyObject *__pyx_kp_s_3;
-static PyObject *__pyx_kp_s_6;
+static PyObject *__pyx_kp_s_4;
 static PyObject *__pyx_kp_s_7;
-static PyObject *__pyx_kp_u_8;
+static PyObject *__pyx_kp_s_8;
 static PyObject *__pyx_kp_u_9;
 static PyObject *__pyx_n_s__Proj;
 static PyObject *__pyx_n_s__RuntimeError;
@@ -486,10 +488,10 @@
 static PyObject *__pyx_n_s__y;
 static PyObject *__pyx_k_1;
 static PyObject *__pyx_k_2;
-static PyObject *__pyx_k_4;
 static PyObject *__pyx_k_5;
+static PyObject *__pyx_k_6;
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":7
+/* "/Users/jsw/python/basemap/src/_proj.pyx":7
 * #c_numpy.import_array()
 * 
 * def set_datapath(datapath): # <<<<<<<<<<<<<<
@@ -504,7 +506,7 @@
 __Pyx_RefNannySetupContext("set_datapath");
 __pyx_self = __pyx_self;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":9
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":9
 * def set_datapath(datapath):
 * cdef char *searchpath
 * searchpath = PyString_AsString(datapath) # <<<<<<<<<<<<<<
@@ -513,7 +515,7 @@
 */
 __pyx_v_searchpath = PyString_AsString(__pyx_v_datapath);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":10
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":10
 * cdef char *searchpath
 * searchpath = PyString_AsString(datapath)
 * pj_set_searchpath(1, &searchpath) # <<<<<<<<<<<<<<
@@ -528,7 +530,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":14
+/* "/Users/jsw/python/basemap/src/_proj.pyx":14
 * cdef class Proj:
 * cdef projPJ projpj
 * cdef public object proj_version # <<<<<<<<<<<<<<
@@ -582,7 +584,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":16
+/* "/Users/jsw/python/basemap/src/_proj.pyx":16
 * cdef public object proj_version
 * cdef char *pjinitstring
 * cdef public object srs # <<<<<<<<<<<<<<
@@ -636,7 +638,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":18
+/* "/Users/jsw/python/basemap/src/_proj.pyx":18
 * cdef public object srs
 * 
 * def __new__(self, projstring): # <<<<<<<<<<<<<<
@@ -685,7 +687,7 @@
 return -1;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":20
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":20
 * def __new__(self, projstring):
 * # setup proj initialization string.
 * self.srs = projstring # <<<<<<<<<<<<<<
@@ -698,7 +700,7 @@
 __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs = __pyx_v_projstring;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":21
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":21
 * # setup proj initialization string.
 * self.srs = projstring
 * self.pjinitstring = PyString_AsString(self.srs) # <<<<<<<<<<<<<<
@@ -707,7 +709,7 @@
 */
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->pjinitstring = PyString_AsString(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":23
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":23
 * self.pjinitstring = PyString_AsString(self.srs)
 * # initialize projection
 * self.projpj = pj_init_plus(self.pjinitstring) # <<<<<<<<<<<<<<
@@ -716,7 +718,7 @@
 */
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj = pj_init_plus(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->pjinitstring);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":24
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":24
 * # initialize projection
 * self.projpj = pj_init_plus(self.pjinitstring)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -726,7 +728,7 @@
 __pyx_t_1 = (pj_errno != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":25
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":25
 * self.projpj = pj_init_plus(self.pjinitstring)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
@@ -750,7 +752,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":26
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":26
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100. # <<<<<<<<<<<<<<
@@ -777,7 +779,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":28
+/* "/Users/jsw/python/basemap/src/_proj.pyx":28
 * self.proj_version = PJ_VERSION/100.
 * 
 * def __dealloc__(self): # <<<<<<<<<<<<<<
@@ -789,7 +791,7 @@
 static void __pyx_pf_5_proj_4Proj___dealloc__(PyObject *__pyx_v_self) {
 __Pyx_RefNannySetupContext("__dealloc__");
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":30
 * def __dealloc__(self):
 * """destroy projection definition"""
 * pj_free(self.projpj) # <<<<<<<<<<<<<<
@@ -801,7 +803,7 @@
 __Pyx_RefNannyFinishContext();
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":32
+/* "/Users/jsw/python/basemap/src/_proj.pyx":32
 * pj_free(self.projpj)
 * 
 * def __reduce__(self): # <<<<<<<<<<<<<<
@@ -818,7 +820,7 @@
 PyObject *__pyx_t_3 = NULL;
 __Pyx_RefNannySetupContext("__reduce__");
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":34
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":34
 * def __reduce__(self):
 * """special method that allows pyproj.Proj instance to be pickled"""
 * return (self.__class__,(self.srs,)) # <<<<<<<<<<<<<<
@@ -859,7 +861,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":36
+/* "/Users/jsw/python/basemap/src/_proj.pyx":36
 * return (self.__class__,(self.srs,))
 * 
 * def _fwd(self, object lons, object lats, radians=False, errcheck=False): # <<<<<<<<<<<<<<
@@ -961,7 +963,7 @@
 return NULL;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":50
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":50
 * cdef void *londata, *latdata
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0: # <<<<<<<<<<<<<<
@@ -971,7 +973,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenx)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":51
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":51
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -984,7 +986,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":52
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":52
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &bufleny) <> 0: # <<<<<<<<<<<<<<
@@ -994,7 +996,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_bufleny)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":53
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":53
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &bufleny) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1007,7 +1009,7 @@
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":55
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":55
 * raise RuntimeError
 * # process data in buffer
 * if buflenx != bufleny: # <<<<<<<<<<<<<<
@@ -1017,7 +1019,7 @@
 __pyx_t_1 = (__pyx_v_buflenx != __pyx_v_bufleny);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":56
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":56
 * # process data in buffer
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
@@ -1039,7 +1041,7 @@
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":57
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":57
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize # <<<<<<<<<<<<<<
@@ -1058,7 +1060,7 @@
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_ndim = __pyx_t_5;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":58
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":58
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize
 * lonsdata = <double *>londata # <<<<<<<<<<<<<<
@@ -1067,7 +1069,7 @@
 */
 __pyx_v_lonsdata = ((double *)__pyx_v_londata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":59
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":59
 * ndim = buflenx/_doublesize
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata # <<<<<<<<<<<<<<
@@ -1076,7 +1078,7 @@
 */
 __pyx_v_latsdata = ((double *)__pyx_v_latdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":60
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":60
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
@@ -1086,12 +1088,12 @@
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":62
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":62
 * for i from 0 <= i < ndim:
 * # if inputs are nan's, return big number.
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]: # <<<<<<<<<<<<<<
 * lonsdata[i]=1.e30; latsdata[i]=1.e30
- * continue
+ * if errcheck:
 */
 __pyx_t_1 = ((__pyx_v_lonsdata[__pyx_v_i]) != (__pyx_v_lonsdata[__pyx_v_i]));
 if (!__pyx_t_1) {
@@ -1102,19 +1104,51 @@
 }
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":63
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":63
 * # if inputs are nan's, return big number.
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
 * lonsdata[i]=1.e30; latsdata[i]=1.e30 # <<<<<<<<<<<<<<
- * continue
- * if radians:
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
 (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":64
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":64
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
 * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
+ * continue
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":65
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * continue
+ * if radians:
+ */
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":66
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * continue # <<<<<<<<<<<<<<
 * if radians:
 * projlonlatin.u = lonsdata[i]
@@ -1124,17 +1158,17 @@
 }
 __pyx_L11:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":65
- * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":67
+ * raise RuntimeError('projection undefined')
 * continue
 * if radians: # <<<<<<<<<<<<<<
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i]
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":66
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":68
 * continue
 * if radians:
 * projlonlatin.u = lonsdata[i] # <<<<<<<<<<<<<<
@@ -1143,7 +1177,7 @@
 */
 __pyx_v_projlonlatin.u = (__pyx_v_lonsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":67
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":69
 * if radians:
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i] # <<<<<<<<<<<<<<
@@ -1151,51 +1185,51 @@
 * projlonlatin.u = _dg2rad*lonsdata[i]
 */
 __pyx_v_projlonlatin.v = (__pyx_v_latsdata[__pyx_v_i]);
- goto __pyx_L12;
+ goto __pyx_L13;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":69
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":71
 * projlonlatin.v = latsdata[i]
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i] # <<<<<<<<<<<<<<
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __pyx_v_projlonlatin.u = __pyx_t_8;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":70
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":72
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i] # <<<<<<<<<<<<<<
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 */
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_projlonlatin.v = __pyx_t_8;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":71
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":73
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj) # <<<<<<<<<<<<<<
@@ -1204,14 +1238,14 @@
 */
 __pyx_v_projxyout = pj_fwd(__pyx_v_projlonlatin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":72
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":74
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 __pyx_t_1 = (pj_errno != 0);
 __pyx_t_6 = __pyx_t_1;
@@ -1220,86 +1254,178 @@
 }
 if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":73
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":75
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ __pyx_t_2 = 0;
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L13;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L14;
 }
- __pyx_L13:;
+ __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":76
- * # since HUGE_VAL can be 'inf',
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":79
 * # change it to a real (but very large) number.
- * if projxyout.u == HUGE_VAL: # <<<<<<<<<<<<<<
+ * # also check for NaNs.
+ * if projxyout.u == HUGE_VAL or\ # <<<<<<<<<<<<<<
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ */
+ __pyx_t_6 = (__pyx_v_projxyout.u == HUGE_VAL);
+ if (!__pyx_t_6) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":80
+ * # also check for NaNs.
+ * if projxyout.u == HUGE_VAL or\
+ * projxyout.u != projxyout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_7 = (__pyx_v_projxyout.u != __pyx_v_projxyout.u);
+ __pyx_t_1 = __pyx_t_7;
+ } else {
+ __pyx_t_1 = __pyx_t_6;
+ }
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":81
+ * if projxyout.u == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * lonsdata[i] = 1.e30
+ */
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":82
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * lonsdata[i] = 1.e30
 * else:
 */
- __pyx_t_6 = (__pyx_v_projxyout.u == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L16;
+ }
+ __pyx_L16:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":77
- * # change it to a real (but very large) number.
- * if projxyout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":83
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * lonsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * lonsdata[i] = projxyout.u
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
- goto __pyx_L14;
+ goto __pyx_L15;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":79
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":85
 * lonsdata[i] = 1.e30
 * else:
 * lonsdata[i] = projxyout.u # <<<<<<<<<<<<<<
- * if projxyout.v == HUGE_VAL:
- * latsdata[i] = 1.e30
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_v_projxyout.u;
 }
- __pyx_L14:;
+ __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":80
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":86
 * else:
 * lonsdata[i] = projxyout.u
- * if projxyout.v == HUGE_VAL: # <<<<<<<<<<<<<<
+ * if projxyout.v == HUGE_VAL or\ # <<<<<<<<<<<<<<
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ */
+ __pyx_t_1 = (__pyx_v_projxyout.v == HUGE_VAL);
+ if (!__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":87
+ * lonsdata[i] = projxyout.u
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_6 = (__pyx_v_projxyout.u != __pyx_v_projxyout.u);
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":88
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * latsdata[i] = 1.e30
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":89
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * latsdata[i] = 1.e30
 * else:
 */
- __pyx_t_6 = (__pyx_v_projxyout.v == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L18;
+ }
+ __pyx_L18:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":81
- * lonsdata[i] = projxyout.u
- * if projxyout.v == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":90
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * latsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * latsdata[i] = projxyout.v
 */
 (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
- goto __pyx_L15;
+ goto __pyx_L17;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":83
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":92
 * latsdata[i] = 1.e30
 * else:
 * latsdata[i] = projxyout.v # <<<<<<<<<<<<<<
@@ -1308,7 +1434,7 @@
 */
 (__pyx_v_latsdata[__pyx_v_i]) = __pyx_v_projxyout.v;
 }
- __pyx_L15:;
+ __pyx_L17:;
 __pyx_L9_continue:;
 }
 
@@ -1326,7 +1452,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":85
+/* "/Users/jsw/python/basemap/src/_proj.pyx":94
 * latsdata[i] = projxyout.v
 * 
 * def _inv(self, object x, object y, radians=False, errcheck=False): # <<<<<<<<<<<<<<
@@ -1365,8 +1491,8 @@
 if (unlikely(__pyx_kwds)) {
 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[4] = {0,0,0,0};
- values[2] = __pyx_k_4;
- values[3] = __pyx_k_5;
+ values[2] = __pyx_k_5;
+ values[3] = __pyx_k_6;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
@@ -1384,7 +1510,7 @@
 values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
 if (likely(values[1])) kw_args--;
 else {
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 2:
 if (kw_args > 0) {
@@ -1398,15 +1524,15 @@
 }
 }
 if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 __pyx_v_x = values[0];
 __pyx_v_y = values[1];
 __pyx_v_radians = values[2];
 __pyx_v_errcheck = values[3];
 } else {
- __pyx_v_radians = __pyx_k_4;
- __pyx_v_errcheck = __pyx_k_5;
+ __pyx_v_radians = __pyx_k_5;
+ __pyx_v_errcheck = __pyx_k_6;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 4:
 __pyx_v_errcheck = PyTuple_GET_ITEM(__pyx_args, 3);
@@ -1421,14 +1547,14 @@
 }
 goto __pyx_L4_argument_unpacking_done;
 __pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_proj.Proj._inv");
 __Pyx_RefNannyFinishContext();
 return NULL;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":99
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":108
 * cdef double *xdatab, *ydatab
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0: # <<<<<<<<<<<<<<
@@ -1438,7 +1564,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_x, (&__pyx_v_xdata), (&__pyx_v_buflenx)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":100
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":109
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1446,12 +1572,12 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L6;
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":101
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":110
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0: # <<<<<<<<<<<<<<
@@ -1461,7 +1587,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_y, (&__pyx_v_ydata), (&__pyx_v_bufleny)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":102
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":111
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1469,12 +1595,12 @@
 * # (for numpy/regular python arrays).
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L7;
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":105
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":114
 * # process data in buffer
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny: # <<<<<<<<<<<<<<
@@ -1484,48 +1610,48 @@
 __pyx_t_1 = (__pyx_v_buflenx != __pyx_v_bufleny);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":106
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":115
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 */
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_3));
 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
- __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L8;
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":107
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":116
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize # <<<<<<<<<<<<<<
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 */
- __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_ndim = __pyx_t_5;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":108
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":117
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata # <<<<<<<<<<<<<<
@@ -1534,7 +1660,7 @@
 */
 __pyx_v_xdatab = ((double *)__pyx_v_xdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":109
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":118
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata # <<<<<<<<<<<<<<
@@ -1543,7 +1669,7 @@
 */
 __pyx_v_ydatab = ((double *)__pyx_v_ydata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":110
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":119
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
@@ -1553,12 +1679,12 @@
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":112
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":121
 * for i from 0 <= i < ndim:
 * # if inputs are nan's, return big number.
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]: # <<<<<<<<<<<<<<
 * xdatab[i]=1.e30; ydatab[i]=1.e30
- * continue
+ * if errcheck:
 */
 __pyx_t_1 = ((__pyx_v_xdatab[__pyx_v_i]) != (__pyx_v_xdatab[__pyx_v_i]));
 if (!__pyx_t_1) {
@@ -1569,19 +1695,51 @@
 }
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":113
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":122
 * # if inputs are nan's, return big number.
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
 * xdatab[i]=1.e30; ydatab[i]=1.e30 # <<<<<<<<<<<<<<
- * continue
- * projxyin.u = xdatab[i]
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 */
 (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
 (__pyx_v_ydatab[__pyx_v_i]) = 1.e30;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":114
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":123
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
 * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
+ * continue
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":124
+ * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * continue
+ * projxyin.u = xdatab[i]
+ */
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":125
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * continue # <<<<<<<<<<<<<<
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i]
@@ -1591,8 +1749,8 @@
 }
 __pyx_L11:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":115
- * xdatab[i]=1.e30; ydatab[i]=1.e30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":126
+ * raise RuntimeError('projection undefined')
 * continue
 * projxyin.u = xdatab[i] # <<<<<<<<<<<<<<
 * projxyin.v = ydatab[i]
@@ -1600,7 +1758,7 @@
 */
 __pyx_v_projxyin.u = (__pyx_v_xdatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":116
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":127
 * continue
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i] # <<<<<<<<<<<<<<
@@ -1609,7 +1767,7 @@
 */
 __pyx_v_projxyin.v = (__pyx_v_ydatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":117
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":128
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj) # <<<<<<<<<<<<<<
@@ -1618,14 +1776,14 @@
 */
 __pyx_v_projlonlatout = pj_inv(__pyx_v_projxyin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":118
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":129
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 __pyx_t_1 = (pj_errno != 0);
 __pyx_t_6 = __pyx_t_1;
@@ -1634,62 +1792,108 @@
 }
 if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":119
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":130
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ __pyx_t_2 = 0;
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L12;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L13;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":122
- * # since HUGE_VAL can be 'inf',
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":134
 * # change it to a real (but very large) number.
- * if projlonlatout.u == HUGE_VAL: # <<<<<<<<<<<<<<
+ * # also check for NaNs.
+ * if projlonlatout.u == HUGE_VAL or \ # <<<<<<<<<<<<<<
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck:
+ */
+ __pyx_t_6 = (__pyx_v_projlonlatout.u == HUGE_VAL);
+ if (!__pyx_t_6) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":135
+ * # also check for NaNs.
+ * if projlonlatout.u == HUGE_VAL or \
+ * projlonlatout.u != projlonlatout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_7 = (__pyx_v_projlonlatout.u != __pyx_v_projlonlatout.u);
+ __pyx_t_1 = __pyx_t_7;
+ } else {
+ __pyx_t_1 = __pyx_t_6;
+ }
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":136
+ * if projlonlatout.u == HUGE_VAL or \
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30
+ */
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":137
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * xdatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_6 = (__pyx_v_projlonlatout.u == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L15;
+ }
+ __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":123
- * # change it to a real (but very large) number.
- * if projlonlatout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":138
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30 # <<<<<<<<<<<<<<
 * elif radians:
 * xdatab[i] = projlonlatout.u
 */
 (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
- goto __pyx_L13;
+ goto __pyx_L14;
 }
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":124
- * if projlonlatout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":139
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30
 * elif radians: # <<<<<<<<<<<<<<
 * xdatab[i] = projlonlatout.u
 * else:
 */
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_6) {
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":125
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":140
 * xdatab[i] = 1.e30
 * elif radians:
 * xdatab[i] = projlonlatout.u # <<<<<<<<<<<<<<
@@ -1697,63 +1901,109 @@
 * xdatab[i] = _rad2dg*projlonlatout.u
 */
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_v_projlonlatout.u;
- goto __pyx_L13;
+ goto __pyx_L14;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":127
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":142
 * xdatab[i] = projlonlatout.u
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u # <<<<<<<<<<<<<<
- * if projlonlatout.v == HUGE_VAL:
- * ydatab[i] = 1.e30
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v:
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_t_8;
 }
- __pyx_L13:;
+ __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":128
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":143
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u
- * if projlonlatout.v == HUGE_VAL: # <<<<<<<<<<<<<<
+ * if projlonlatout.v == HUGE_VAL or \ # <<<<<<<<<<<<<<
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck:
+ */
+ __pyx_t_1 = (__pyx_v_projlonlatout.v == HUGE_VAL);
+ if (!__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":144
+ * xdatab[i] = _rad2dg*projlonlatout.u
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_6 = (__pyx_v_projlonlatout.v != __pyx_v_projlonlatout.v);
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":145
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * ydatab[i] = 1.e30
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":146
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * ydatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_6 = (__p...
 
[truncated message content]
From: <js...@us...> - 2010年12月30日 12:57:11
Revision: 8866
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8866&view=rev
Author: jswhit
Date: 2010年12月30日 12:57:05 +0000 (2010年12月30日)
Log Message:
-----------
update
Modified Paths:
--------------
 trunk/toolkits/basemap/Changelog
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog	2010年12月30日 12:53:23 UTC (rev 8865)
+++ trunk/toolkits/basemap/Changelog	2010年12月30日 12:57:05 UTC (rev 8866)
@@ -1,7 +1,8 @@
 version 1.0.1 (not yet released).
 * improve placement of labels for parallels for pseudo-cylindrical
 projections like mollweide, hammer.
- * added support for Hammer-Aitoff projection.
+ * added support for Hammer projection (required adding inverse
+ projection to proj4 src in src/PJ_hammer.c).
 * updated src/pj_mutex.c from proj4 svn to fix a threading bug
 on Windows.
 * if you try to transform NaNs to/from map projection coords, 1.e30 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Showing results of 5455

<< < 1 .. 3 4 5 6 7 .. 219 > >> (Page 5 of 219)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /