SF.net SVN: matplotlib: [4462] trunk/py4science/classes/0712_ncar_agenda. txt
Revision: 4462
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4462&view=rev
Author: fer_perez
Date: 2007-11-27 00:07:07 -0800 (Tue, 27 Nov 2007)
Log Message:
---
Update NCAR agenda
Modified Paths:
--
trunk/py4science/classes/0712_ncar_agenda.txt
Modified: trunk/py4science/classes/0712_ncar_agenda.txt
===
--- trunk/py4science/classes/0712_ncar_agenda.txt 2007-11-27 02:24:22 UTC
(rev 4461)
+++ trunk/py4science/classes/0712_ncar_agenda.txt 2007-11-27 08:07:07 UTC
(rev 4462)
@@ -12,7 +12,7 @@
Day 1 (Friday December 7)
=
-830-900 Installation
+830-900 Installation and configuration (optional)
This half hour will be spent helping with installation issues, before the
real workshop begins. If you've already set things up on your system
(meaning you have ipython, numpy, matplotlib and scipy installed and
@@ -21,11 +21,16 @@
900-905 Introduction
Official start of the workshop, introduce instructors.
-905-945 FP: Python for scientific computing
+905-945 JDH: Python for scientific computing
A high-level overview of the topic of Python in a scientific context.
-950-1045 JDH: Workflow.
+950-1045 FP: Workflow, guided by a simple example: trapezoid integration.
+This section will be used to illustrate basic workflow for students, by having
+them 'type along' a very simple exercise, trapezoid rule integration. We'll
+discuss the basics of numpy arrays and will solve the trapezoid integration
+exercise together.
+
Editor: (X)Emacs, Vi(m), etc.
ipython. Saving and reloading files, interactive use of variables, %run,
@@ -41,97 +46,105 @@
- The open source process: mailing lists, wikis, svn. Python
cookbook. Participate!
-
Basic setup:
- ipython
- matplotlib (latex, etc).
- Modules: import/reload, PYTHONPATH.
+ToDo: Add numerical error measure of trapezoid rule.
+ToDo Add in workflow comparison with scipy's integration. compare timing and
+eror.
+
1045:1100 --- Coffee break ---
-1100:1215 FP: Introductory examples.
+1100:1145 FP: Introductory examples.
-* Qsort: lists, recursion.
+We'll have two exercises, so students who finish the first one early don't get
+bored and can do a second one.
-* Define a simple function: Wallis' product for pi. Illustrates arbitrary
-size integers.
+FFTs: 2-d image denoising via FFT.
-* Define a trapezoid rule integrator: function objects, arrays.
+Numerical integration and root finding: Find t such that
-1215:1315 --- Lunch Break ---
-
-1315:1400 JDH: Basic numpy/pylab
-
-* Record arrays
-
-* Timeseries
-
-1400:1430 FP: Numerical integration and root finding: Find t such that
-
\int_0^t{ f(s) ds} = u
for a known, monotonically increasing f(s) and a fixed u.
+1145:12:30 --- Lunch Break ---
-1430:1500 FP: Univariate polynomials, root finding: poly1d objects,
-convolutions, plotting.
+1300:1400 JDH: Basic numpy/pylab
-1500:1515 --- Coffee break ---
+* Glass2 demo: linear algebra, event handling in interactive plots.
+* Glass1 exercise: simplified version of the above as an exercise.
+* ODEs - Lotka Volterra equations.
-1515:1700: JDH/FP - Optional material (there's a Christmas party)
+1400:1500 JW, Basemap: geographical datasets.
-* Word frequencies: use of dictionaries and text processing.
+1500 --- End of main work for Friday ---
-* Getbibtex: fetching bibliographic information from the net (networking,
- regular expressions, command-line scripting).
+1500:1700: Optional material (there's a Christmas party)
-* Beautiful soup: screen-scraping HTML for data extraction.
+Web-based data sources, tabular data and record arrays, illustrated with Yahoo
+Finance scraping, or PyDAP/OpenDAP.
-* Possible 3d demos (not user exercises) using VPython and VTK/MayaVi.
-
Day 2 (Saturday December 8)
===
-900:945 JDH: Data fitting/smoothing: least squares, cubic splines, polynomial
-fitting. Basic linear algebra.
+900:930 FP: Traits, Mayavi2 demo. Automatic GUI generation, VTK library, the
+MayaVi visualization application. This is a demo of capabilities, not an
+exercise.
-945:1030 FP: FFTs: 2-d image denoising via FFT.
+930:1030 FP - Lightweight tools for low-level code reuse
+f2py: Fortran code wrapping exercise.
+weave: C/C++ inlining exercise.
+
1030:1045 --- Coffee break ---
-1045:1130 JDH: Logistic map
+1045:1200 JDH - Other tools for C/C++ code reuse, demos/slides.
-1130:1200 FP: Bessel functions: special functions library, array manipulations
-to check recursion relation.
-
+* ctypes: easy access to dynamically linked libraries.
+* pyrex: blend of python/C for automatic generation of native code.
+* SWIG: automatic wrapping of C/C++ libraries.
+* Boost.Python: automatic wrapping of C++ libraries with template support.
+* A tour of scipy's code base, which uses several of these techniques.
+
1200:1300 --- Lunch break ---
-1300:
SF.net SVN: matplotlib: [4463] trunk/toolkits/basemap
Revision: 4463 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4463&view=rev Author: jswhit Date: 2007-11-27 05:12:10 -0800 (Tue, 27 Nov 2007) Log Message: --- remove linestyle kwarg from drawparallels and drawmeridians. Modified Paths: -- trunk/toolkits/basemap/API_CHANGES trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py Modified: trunk/toolkits/basemap/API_CHANGES === --- trunk/toolkits/basemap/API_CHANGES 2007-11-27 08:07:07 UTC (rev 4462) +++ trunk/toolkits/basemap/API_CHANGES 2007-11-27 13:12:10 UTC (rev 4463) @@ -1,5 +1,11 @@ -version 0.9.2: width, height keywords added to Basemap.__init__. -version 0.9.1: createfigure method removed. +version 0.9.8: remove linestyle kwarg from drawparallels and drawmeridians. + add fill_color kwarg to drawmapboundary. +version 0.9.7: added lake_color kwarg to fillcontinents. +version 0.9.6: added "labelstyle" keyword to drawparallels and drawmeridians. + added "zorder" kwarg to drawparallels, drawmeridians, + drawcoastlines, drawstates, drawcountries, drawrivers, +version 0.9.2: width, height keywords added to Basemap.__init__. +version 0.9.1: createfigure method removed. version 0.9: creatfigure method deprecated, new set_aspect axes method used to ensure maps have right aspect ratio. pcolormesh, drawlsmask methods added. Modified: trunk/toolkits/basemap/Changelog === --- trunk/toolkits/basemap/Changelog2007-11-27 08:07:07 UTC (rev 4462) +++ trunk/toolkits/basemap/Changelog2007-11-27 13:12:10 UTC (rev 4463) @@ -1,4 +1,7 @@ version 0.9.8 (not yet released) + * remove 'linestyle' kwarg from drawparallels and + drawmeridians (it never did anything anyway since + it was overridden by the 'dashes' kwarg). * modify NetCDFFile to use dap module to read remote datasets over http. Include dap and httplib2 modules. * modify NetCDFFile to automatically apply scale_factor Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py === --- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-27 08:07:07 UTC (rev 4462) +++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-27 13:12:10 UTC (rev 4463) @@ -1356,7 +1356,7 @@ return info def drawparallels(self,circles,color='k',linewidth=1.,zorder=None, \ - linestyle='--',dashes=[1,1],labels=[0,0,0,0],labelstyle=None, \ + dashes=[1,1],labels=[0,0,0,0],labelstyle=None, \ fmt='%g',xoffset=None,yoffset=None,ax=None,**kwargs): """ draw parallels (latitude lines). @@ -1366,7 +1366,6 @@ linewidth - line width for parallels (default 1.) zorder - sets the zorder for parallels (if not specified, uses default zorder for Line2D class). -linestyle - line style for parallels (default '--', i.e. dashed). dashes - dash pattern for parallels (default [1,1], i.e. 1 pixel on, 1 pixel off). labels - list of 4 values (default [0,0,0,0]) that control whether @@ -1461,7 +1460,7 @@ for x,y in zip(xl,yl): # skip if only a point. if len(x) > 1 and len(y) > 1: -l = Line2D(x,y,linewidth=linewidth,linestyle=linestyle) +l = Line2D(x,y,linewidth=linewidth) l.set_color(color) l.set_dashes(dashes) if zorder is not None: @@ -1576,7 +1575,7 @@ self.set_axes_limits(ax=ax) def drawmeridians(self,meridians,color='k',linewidth=1., zorder=None,\ - linestyle='--',dashes=[1,1],labels=[0,0,0,0],labelstyle=None,\ + dashes=[1,1],labels=[0,0,0,0],labelstyle=None,\ fmt='%g',xoffset=None,yoffset=None,ax=None,**kwargs): """ draw meridians (longitude lines). @@ -1586,7 +1585,6 @@ linewidth - line width for meridians (default 1.) zorder - sets the zorder for meridians (if not specified, uses default zorder for Line2D class). -linestyle - line style for meridians (default '--', i.e. dashed). dashes - dash pattern for meridians (default [1,1], i.e. 1 pixel on, 1 pixel off). labels - list of 4 values (default [0,0,0,0]) that control whether @@ -1667,7 +1665,7 @@ for x,y in zip(xl,yl): # skip if only a point. if len(x) > 1 and len(y) > 1: -l = Line2D(x,y,linewidth=linewidth,linestyle=linesty
SF.net SVN: matplotlib: [4464] trunk/toolkits/basemap
Revision: 4464
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4464&view=rev
Author: jswhit
Date: 2007-11-27 08:21:11 -0800 (Tue, 27 Nov 2007)
Log Message:
---
fmt kwarg to drawparallels and drawmeridians can now be a
string formatting function.
Modified Paths:
--
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/examples/customticks.py
trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py
Modified: trunk/toolkits/basemap/Changelog
===
--- trunk/toolkits/basemap/Changelog2007-11-27 13:12:10 UTC (rev 4463)
+++ trunk/toolkits/basemap/Changelog2007-11-27 16:21:11 UTC (rev 4464)
@@ -1,4 +1,7 @@
version 0.9.8 (not yet released)
+ * 'fmt' kwarg to drawparallels and drawmeridians can
+ now be a custom string formatting function (example
+ customticks.py demonstrates usage).
* remove 'linestyle' kwarg from drawparallels and
drawmeridians (it never did anything anyway since
it was overridden by the 'dashes' kwarg).
Modified: trunk/toolkits/basemap/examples/customticks.py
===
--- trunk/toolkits/basemap/examples/customticks.py 2007-11-27 13:12:10 UTC
(rev 4463)
+++ trunk/toolkits/basemap/examples/customticks.py 2007-11-27 16:21:11 UTC
(rev 4464)
@@ -5,19 +5,32 @@
# example showing how to create custom tick labels for a cylindrical
# projection.
-def deg2str(deg, dir='E', fmt="%3.1f"):
+def lat2str(deg):
+fmt = "%d"
min = 60 * (deg - numpy.floor(deg))
deg = numpy.floor(deg)
+dir = 'N'
if deg < 0:
if min != 0.0:
deg += 1.0
min -= 60.0
-if dir=='E':
-dir='W'
-if dir=='N':
-dir='S'
-return (u"%d\N{DEGREE SIGN}" + fmt + "' %s") % (numpy.abs(deg),
numpy.abs(min), dir)
+dir='S'
+return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg), numpy.abs(min),
dir)
+def lon2str(deg):
+min = 60 * (deg - numpy.floor(deg))
+deg = numpy.floor(deg)
+dir = 'E'
+if deg < 0:
+if min != 0.0:
+deg += 1.0
+min -= 60.0
+dir='W'
+return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg), numpy.abs(min),
dir)
+
+# (1) use matplotlib custom tick formatter
+# instead of Basemap labelling methods.
+
# create figure.
fig=pylab.figure()
# create Basemap instance (regular lat/lon projection).
@@ -35,14 +48,34 @@
ax = pylab.gca()
# add custom ticks.
# This only works for projection='cyl'.
-def xformat(x, pos=None): return deg2str(x, 'E', fmt="%2.0f")
+def xformat(x, pos=None): return lon2str(x)
xformatter = FuncFormatter(xformat)
ax.xaxis.set_major_formatter(xformatter)
-def yformat(y, pos=None): return deg2str(y, 'N', fmt="%2.0f")
+def yformat(y, pos=None): return lat2str(y)
yformatter = FuncFormatter(yformat)
ax.yaxis.set_major_formatter(yformatter)
-ax.fmt_xdata = lambda x: deg2str(x, 'E', fmt="%5.3f")
-ax.fmt_ydata = lambda y: deg2str(y, 'N', fmt="%5.3f")
+ax.fmt_xdata = lambda x: lon2str(x)
+ax.fmt_ydata = lambda y: lat2str(y)
ax.grid()
ax.set_title('Hawaii')
+
+# (2) use Basemap labelling methods, but pass a
+# custom formatting function with the 'fmt' keyword.
+
+# create figure.
+fig = pylab.figure()
+# create Basemap instance.
+m = Basemap(llcrnrlon=-156.5,llcrnrlat=18.75,urcrnrlon=-154.5,urcrnrlat=20.5,
+resolution='h',projection='cyl')
+# draw coastlines, fill land and lake areas.
+m.drawcoastlines()
+m.fillcontinents(color='coral',lake_color='aqua')
+# background color will be used for oceans.
+m.drawmapboundary(fill_color='aqua')
+# label meridians and parallels, passing string formatting function
+# with 'fmt' keyword.
+m.drawparallels(numpy.linspace(18,21,7),labels=[1,0,0,0],fmt=lat2str)
+m.drawmeridians(numpy.linspace(-157,-154,7),labels=[0,0,0,1],fmt=lon2str)
+pylab.title('Hawaii')
+
pylab.show()
Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py
===
--- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py
2007-11-27 13:12:10 UTC (rev 4463)
+++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py
2007-11-27 16:21:11 UTC (rev 4464)
@@ -1375,7 +1375,9 @@
but not the right and top.
labelstyle - if set to "+/-", north and south latitudes are labelled
with "+" and "-", otherwise they are labelled with "N" and "S".
-fmt is a format string to format the parallel labels (default '%g').
+fmt can be is a format string to format the parallel labels
+ (default '%g') or a function that takes a latitude value
+ in degrees as it's only argument and returns a formatted string.
xoffset - label offset from edge of map in x-direction
(default is 0.01 ti
SF.net SVN: matplotlib: [4465] trunk/toolkits/basemap/examples/customticks. py
Revision: 4465
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4465&view=rev
Author: jswhit
Date: 2007-11-27 08:25:04 -0800 (Tue, 27 Nov 2007)
Log Message:
---
fix typos
Modified Paths:
--
trunk/toolkits/basemap/examples/customticks.py
Modified: trunk/toolkits/basemap/examples/customticks.py
===
--- trunk/toolkits/basemap/examples/customticks.py 2007-11-27 16:21:11 UTC
(rev 4464)
+++ trunk/toolkits/basemap/examples/customticks.py 2007-11-27 16:25:04 UTC
(rev 4465)
@@ -6,7 +6,6 @@
# projection.
def lat2str(deg):
-fmt = "%d"
min = 60 * (deg - numpy.floor(deg))
deg = numpy.floor(deg)
dir = 'N'
@@ -14,8 +13,8 @@
if min != 0.0:
deg += 1.0
min -= 60.0
-dir='S'
-return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg), numpy.abs(min),
dir)
+dir = 'S'
+return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg),numpy.abs(min),dir)
def lon2str(deg):
min = 60 * (deg - numpy.floor(deg))
@@ -25,8 +24,8 @@
if min != 0.0:
deg += 1.0
min -= 60.0
-dir='W'
-return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg), numpy.abs(min),
dir)
+dir = 'W'
+return (u"%d\N{DEGREE SIGN} %g' %s") % (numpy.abs(deg),numpy.abs(min),dir)
# (1) use matplotlib custom tick formatter
# instead of Basemap labelling methods.
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4466] trunk/toolkits/basemap/examples/customticks. py
Revision: 4466
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4466&view=rev
Author: jswhit
Date: 2007-11-27 08:28:30 -0800 (Tue, 27 Nov 2007)
Log Message:
---
use dashes kwarg
Modified Paths:
--
trunk/toolkits/basemap/examples/customticks.py
Modified: trunk/toolkits/basemap/examples/customticks.py
===
--- trunk/toolkits/basemap/examples/customticks.py 2007-11-27 16:25:04 UTC
(rev 4465)
+++ trunk/toolkits/basemap/examples/customticks.py 2007-11-27 16:28:30 UTC
(rev 4466)
@@ -73,8 +73,8 @@
m.drawmapboundary(fill_color='aqua')
# label meridians and parallels, passing string formatting function
# with 'fmt' keyword.
-m.drawparallels(numpy.linspace(18,21,7),labels=[1,0,0,0],fmt=lat2str)
-m.drawmeridians(numpy.linspace(-157,-154,7),labels=[0,0,0,1],fmt=lon2str)
+m.drawparallels(numpy.linspace(18,21,7),labels=[1,0,0,0],fmt=lat2str,dashes=[2,2])
+m.drawmeridians(numpy.linspace(-157,-154,7),labels=[0,0,0,1],fmt=lon2str,dashes=[2,2])
pylab.title('Hawaii')
pylab.show()
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4467] trunk/toolkits/basemap/lib/matplotlib/ toolkits/basemap/basemap.py
Revision: 4467 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4467&view=rev Author: jswhit Date: 2007-11-27 09:07:38 -0800 (Tue, 27 Nov 2007) Log Message: --- fix bug in drawparallels introduced in last commit Modified Paths: -- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py === --- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-27 16:28:30 UTC (rev 4466) +++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/basemap.py 2007-11-27 17:07:38 UTC (rev 4467) @@ -1519,7 +1519,6 @@ nl = _searchlist(lats,lat) nr = _searchlist(lats[::-1],lat) if nr != -1: nr = len(lons)-nr-1 -latlab = fmt(lat) try: # fmt is a function that returns a formatted string latlab = fmt(lat) except: # fmt is a format string. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4468] trunk/toolkits/basemap
Revision: 4468
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4468&view=rev
Author: jswhit
Date: 2007-11-27 09:34:20 -0800 (Tue, 27 Nov 2007)
Log Message:
---
use PyNIO to read data if the pure python NetCDF reader fails
(PyNIO can read GRIB1+2, HDF4, NetCDF4 and HDFEOS2).
Modified Paths:
--
trunk/toolkits/basemap/examples/plotprecip.py
trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
Modified: trunk/toolkits/basemap/examples/plotprecip.py
===
--- trunk/toolkits/basemap/examples/plotprecip.py 2007-11-27 17:07:38 UTC
(rev 4467)
+++ trunk/toolkits/basemap/examples/plotprecip.py 2007-11-27 17:34:20 UTC
(rev 4468)
@@ -13,7 +13,6 @@
# data from http://www.srh.noaa.gov/rfcshare/precip_analysis_new.php
prcpvar = nc.variables['amountofprecip']
data = 0.01*prcpvar[:]
-data = pylab.clip(data,0,1)
latcorners = nc.variables['lat'][:]
loncorners = -nc.variables['lon'][:]
plottitle = prcpvar.long_name+' for period ending '+prcpvar.dateofdata
Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
===
--- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
2007-11-27 17:07:38 UTC (rev 4467)
+++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
2007-11-27 17:34:20 UTC (rev 4468)
@@ -36,6 +36,11 @@
from dap.client import open as open_remote
from dap.dtypes import ArrayType, GridType, typemap
+has_pynio = True
+try:
+from PyNGL import nio
+except ImportError:
+has_pynio = False
ABSENT = '\x00' * 8
ZERO = '\x00' * 4
@@ -54,14 +59,31 @@
def NetCDFFile(file):
"""NetCDF File reader. API is the same as Scientific.IO.NetCDF.
If 'file' is a URL that starts with 'http', it is assumed
-to be a remote OPenDAP dataest, and the python dap client is used
+to be a remote OPenDAP dataset, and the python dap client is used
to retrieve the data. Only the OPenDAP Array and Grid data
types are recognized. If file does not start with 'http', it
-is assumed to be a local NetCDF file."""
+is assumed to be a local file. If possible, the file will be read
+with a pure python NetCDF reader, otherwise PyNIO
+(http://www.pyngl.ucar.edu/Nio.shtml) will be used (if it is installed).
+PyNIO supports NetCDF version 4, GRIB1, GRIB2, HDF4 and HDFEOS2 files.
+"""
if file.startswith('http'):
return _RemoteFile(file)
else:
-return _LocalFile(file)
+# use pynio if it is installed and the file cannot
+# be read with the pure python netCDF reader. This allows
+# netCDF version 4, GRIB1, GRIB2, HDF4 and HDFEOS files
+# to be read.
+if has_pynio:
+try:
+f = _LocalFile(file)
+except:
+f = nio.open_file(file)
+# otherwise, use the pupynere netCDF 3 pure python reader.
+# (will fail if file is not a netCDF version 3 file).
+else:
+f = _LocalFile(file)
+return f
def _maskandscale(var,datout):
if hasattr(var, 'missing_value') and (datout == var.missing_value).any():
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4469] branches/transforms
Revision: 4469
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4469&view=rev
Author: mdboom
Date: 2007-11-27 09:40:45 -0800 (Tue, 27 Nov 2007)
Log Message:
---
Fix memory leak and increase performance in quadmesh drawing (Agg)
Modified Paths:
--
branches/transforms/lib/matplotlib/collections.py
branches/transforms/src/_backend_agg.cpp
Modified: branches/transforms/lib/matplotlib/collections.py
===
--- branches/transforms/lib/matplotlib/collections.py 2007-11-27 17:34:20 UTC
(rev 4468)
+++ branches/transforms/lib/matplotlib/collections.py 2007-11-27 17:40:45 UTC
(rev 4469)
@@ -163,10 +163,8 @@
xs = self.convert_xunits(self._offsets[:0])
ys = self.convert_yunits(self._offsets[:1])
offsets = zip(xs, ys)
-if len(offsets) == 0:
-offsets = npy.array([], npy.float_)
-else:
-offsets = npy.asarray(offsets, npy.float_)
+
+offsets = npy.asarray(offsets, npy.float_)
self.update_scalarmappable()
@@ -389,10 +387,12 @@
self._bbox = transforms.Bbox.unit()
self._bbox.update_from_data_xy(coordinates.reshape(
((meshWidth + 1) * (meshHeight + 1), 2)))
+
+# By converting to floats now, we can avoid that on every draw.
+self._coordinates = self._coordinates.reshape((meshHeight + 1,
meshWidth + 1, 2))
+self._coordinates = npy.array(self._coordinates, npy.float_)
def get_paths(self, dataTrans=None):
-import pdb
-pdb.set_trace()
if self._paths is None:
self._paths = self.convert_mesh_to_paths(
self._meshWidth, self._meshHeight, self._coordinates)
@@ -402,7 +402,7 @@
def convert_mesh_to_paths(meshWidth, meshHeight, coordinates):
Path = mpath.Path
-c = coordinates.reshape((meshHeight + 1, meshWidth + 1, 2))
+c = coordinates
# We could let the Path constructor generate the codes for us,
# but this is faster, since we know they'll always be the same
codes = npy.array(
@@ -436,10 +436,7 @@
ys = self.convert_yunits(self._offsets[:1])
offsets = zip(xs, ys)
-if len(offsets) == 0:
-offsets = npy.array([], npy.float_)
-else:
-offsets = npy.asarray(offsets, npy.float_)
+offsets = npy.asarray(offsets, npy.float_)
if self.check_update('array'):
self.update_scalarmappable()
Modified: branches/transforms/src/_backend_agg.cpp
===
--- branches/transforms/src/_backend_agg.cpp2007-11-27 17:34:20 UTC (rev
4468)
+++ branches/transforms/src/_backend_agg.cpp2007-11-27 17:40:45 UTC (rev
4469)
@@ -1113,8 +1113,9 @@
inline unsigned vertex(unsigned idx, double* x, double* y) {
size_t m = m_m + offsets[idx][0];
size_t n = m_n + offsets[idx][1];
- *x = *(double*)PyArray_GETPTR3(m_coordinates, m, n, 0);
- *y = *(double*)PyArray_GETPTR3(m_coordinates, m, n, 1);
+ double* pair = (double*)PyArray_GETPTR2(m_coordinates, m, n);
+ *x = *pair++;
+ *y = *pair;
return (idx == 0) ? agg::path_cmd_move_to : agg::path_cmd_line_to;
}
@@ -1130,10 +1131,6 @@
inline unsigned total_vertices() {
return 5;
}
-
-inline bool has_curves() {
- return false;
-}
};
public:
@@ -1146,11 +1143,7 @@
throw Py::ValueError("Invalid coordinates array.");
}
-PyArray_Dims shape;
-npy_intp dims[] = { meshHeight + 1, meshWidth + 1, 2 };
-shape.ptr = dims;
-shape.len = 3;
-m_coordinates = (PyArrayObject*)PyArray_Newshape(coordinates_array,
&shape, PyArray_CORDER);
+m_coordinates = coordinates_array;
}
inline ~QuadMeshGenerator() {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4470] trunk/toolkits/basemap/lib/matplotlib/ toolkits/basemap/pupynere.py
Revision: 4470
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4470&view=rev
Author: jswhit
Date: 2007-11-27 10:05:25 -0800 (Tue, 27 Nov 2007)
Log Message:
---
make automatic masking and rescaling of variable data optional
in NetCDFFile.
Modified Paths:
--
trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
Modified: trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
===
--- trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
2007-11-27 17:40:45 UTC (rev 4469)
+++ trunk/toolkits/basemap/lib/matplotlib/toolkits/basemap/pupynere.py
2007-11-27 18:05:25 UTC (rev 4470)
@@ -56,7 +56,7 @@
_typecodes = dict([[_v,_k] for _k,_v in typemap.items()])
-def NetCDFFile(file):
+def NetCDFFile(file, maskandscale=True):
"""NetCDF File reader. API is the same as Scientific.IO.NetCDF.
If 'file' is a URL that starts with 'http', it is assumed
to be a remote OPenDAP dataset, and the python dap client is used
@@ -66,9 +66,18 @@
with a pure python NetCDF reader, otherwise PyNIO
(http://www.pyngl.ucar.edu/Nio.shtml) will be used (if it is installed).
PyNIO supports NetCDF version 4, GRIB1, GRIB2, HDF4 and HDFEOS2 files.
+Data read from OPenDAP and NetCDF version 3 datasets will
+automatically be converted to masked arrays if the variable has either
+a 'missing_value' or '_FillValue' attribute, and some data points
+are equal to the value specified by that attribute. In addition,
+variables stored as integers that have the 'scale_factor' and
+'add_offset' attribute will automatically be rescaled to floats when
+read. If PyNIO is used, neither of the automatic conversions will
+be performed. To suppress these automatic conversions, set the
+maskandscale keyword to False.
"""
if file.startswith('http'):
-return _RemoteFile(file)
+return _RemoteFile(file,maskandscale)
else:
# use pynio if it is installed and the file cannot
# be read with the pure python netCDF reader. This allows
@@ -76,13 +85,13 @@
# to be read.
if has_pynio:
try:
-f = _LocalFile(file)
+f = _LocalFile(file,maskandscale)
except:
f = nio.open_file(file)
# otherwise, use the pupynere netCDF 3 pure python reader.
# (will fail if file is not a netCDF version 3 file).
else:
-f = _LocalFile(file)
+f = _LocalFile(file,maskandscale)
return f
def _maskandscale(var,datout):
@@ -99,8 +108,9 @@
class _RemoteFile(object):
"""A NetCDF file reader. API is the same as Scientific.IO.NetCDF."""
-def __init__(self, file):
+def __init__(self, file, maskandscale):
self._buffer = open_remote(file)
+self._maskandscale = maskandscale
self._parse()
def read(self, size=-1):
@@ -136,7 +146,7 @@
for k,d in self._buffer.iteritems():
if isinstance(d, GridType) or isinstance(d, ArrayType):
name = k
-self.variables[name] = _RemoteVariable(d)
+self.variables[name] = _RemoteVariable(d,self._maskandscale)
def close(self):
# this is a no-op provided for compatibility
@@ -144,8 +154,9 @@
class _RemoteVariable(object):
-def __init__(self, var):
+def __init__(self, var, maskandscale):
self._var = var
+self._maskandscale = maskandscale
self.dtype = var.type
self.shape = var.shape
self.dimensions = var.dimensions
@@ -157,7 +168,10 @@
# - remove singleton dimensions
# - create a masked array using missing_value or _FillValue attribute
# - apply scale_factor and add_offset to packed integer data
-return _maskandscale(self,datout)
+if self._maskandscale:
+return _maskandscale(self,datout)
+else:
+return datout
def typecode(self):
return _typecodes[self.dtype]
@@ -166,8 +180,9 @@
class _LocalFile(object):
"""A NetCDF file reader. API is the same as Scientific.IO.NetCDF."""
-def __init__(self, file):
+def __init__(self, file, maskandscale):
self._buffer = open(file, 'rb')
+self._maskandscale = maskandscale
self._parse()
def read(self, size=-1):
@@ -295,7 +310,7 @@
# Read offset.
begin = [self._unpack_int, self._unpack_int64][self.version_byte-1]()
-return _LocalVariable(self._buffer.fileno(), nc_type, vsize, begin,
shape, dimensions, attributes, isrec, self._recsize)
+return _LocalVariable(self._buffer.fileno(), nc_type, vsize, begin,
shape, dimensions, attributes, isrec, self._recsize,
maskandscale=self._maskandscale)
def _read_values(self, n, nc_type):
bytes = [1, 1, 2, 4, 4, 8]
@@ -335,7 +3
SF.net SVN: matplotlib: [4471] trunk/toolkits/basemap/Changelog
Revision: 4471 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4471&view=rev Author: jswhit Date: 2007-11-27 10:07:01 -0800 (Tue, 27 Nov 2007) Log Message: --- add maskandscale kwarg to NetCDFFile:wq Modified Paths: -- trunk/toolkits/basemap/Changelog Modified: trunk/toolkits/basemap/Changelog === --- trunk/toolkits/basemap/Changelog2007-11-27 18:05:25 UTC (rev 4470) +++ trunk/toolkits/basemap/Changelog2007-11-27 18:07:01 UTC (rev 4471) @@ -1,4 +1,11 @@ version 0.9.8 (not yet released) + * added 'maskandscale' kwarg to NetCDFFile to + optionally turn off automatic masking and rescaling + of variable data. + * NetCDFFile will try to use PyNIO if it installed + and the file cannot be read with pupynere. This + allows GRIB1,GRIB2,HDF4 and HDFEOS2 files to + be read. * 'fmt' kwarg to drawparallels and drawmeridians can now be a custom string formatting function (example customticks.py demonstrates usage). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4472] trunk/matplotlib/lib/matplotlib/__init__.py
Revision: 4472 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4472&view=rev Author: jdh2358 Date: 2007-11-27 10:34:38 -0800 (Tue, 27 Nov 2007) Log Message: --- tagged version 91.0 for release Modified Paths: -- trunk/matplotlib/lib/matplotlib/__init__.py Modified: trunk/matplotlib/lib/matplotlib/__init__.py === --- trunk/matplotlib/lib/matplotlib/__init__.py 2007-11-27 18:07:01 UTC (rev 4471) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2007-11-27 18:34:38 UTC (rev 4472) @@ -51,11 +51,11 @@ pylab (if pylab is imported). matplotlib is written by John D. Hunter (jdh2358 at -gmail.com). +gmail.com and a host of others). """ from __future__ import generators -__version__ = '0.90.1' +__version__ = '0.91.0' __revision__ = '$Revision$' __date__ = '$Date$' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4473] branches/transforms/src
Revision: 4473
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4473&view=rev
Author: mdboom
Date: 2007-11-27 12:03:48 -0800 (Tue, 27 Nov 2007)
Log Message:
---
Improve speed of quad mesh drawing (by about 25%)
Modified Paths:
--
branches/transforms/src/_backend_agg.cpp
branches/transforms/src/_backend_agg.h
Modified: branches/transforms/src/_backend_agg.cpp
===
--- branches/transforms/src/_backend_agg.cpp2007-11-27 18:34:38 UTC (rev
4472)
+++ branches/transforms/src/_backend_agg.cpp2007-11-27 20:03:48 UTC (rev
4473)
@@ -348,10 +348,13 @@
template
bool should_snap(Path& path, const agg::trans_affine& trans) {
- // If this is a straight horizontal or vertical line, quantize to nearest
+ // If this contains only straight horizontal or vertical lines, quantize to
nearest
// pixels
double x0, y0, x1, y1;
unsigned code;
+ if (path.total_vertices() > 5)
+return false;
+
code = path.vertex(&x0, &y0);
trans.transform(&x0, &y0);
@@ -742,38 +745,20 @@
return Py::Object();
}
-template
-void RendererAgg::_draw_path(PathIteratorType& path, agg::trans_affine trans,
-bool has_clippath, const facepair_t& face,
-const GCAgg& gc, bool check_snap) {
- typedef agg::conv_transform
transformed_path_t;
- typedef conv_quantize quantize_t;
- typedef agg::conv_curve curve_t;
- typedef agg::conv_stroke stroke_t;
- typedef agg::conv_dash dash_t;
+template
+void RendererAgg::_draw_path(path_t& path, bool has_clippath,
+const facepair_t& face, const GCAgg& gc) {
+ typedef agg::conv_stroke stroke_t;
+ typedef agg::conv_dashdash_t;
typedef agg::conv_stroke stroke_dash_t;
typedef agg::pixfmt_amask_adaptor pixfmt_amask_type;
typedef agg::renderer_base
amask_ren_type;
typedef agg::renderer_scanline_aa_solid
amask_aa_renderer_type;
typedef agg::renderer_scanline_bin_solid
amask_bin_renderer_type;
- trans *= agg::trans_affine_scaling(1.0, -1.0);
- trans *= agg::trans_affine_translation(0.0, (double)height);
-
- // Build the transform stack
- bool snap = false;
- if (check_snap)
-snap = should_snap(path, trans);
- transformed_path_t tpath(path, trans);
- quantize_t quantized(tpath, snap);
- // Benchmarking shows that there is no noticable slowdown to always
- // treating paths as having curved segments. Doing so greatly
- // simplifies the code
- curve_t curve(quantized);
-
// Render face
if (face.first) {
-theRasterizer->add_path(curve);
+theRasterizer->add_path(path);
if (gc.isaa) {
if (has_clippath) {
@@ -803,22 +788,21 @@
// Render stroke
if (gc.linewidth != 0.0) {
double linewidth = gc.linewidth;
-if (snap)
+if (!gc.isaa)
linewidth = round(linewidth);
-
if (gc.dashes.size() == 0) {
- stroke_t stroke(curve);
+ stroke_t stroke(path);
stroke.width(linewidth);
stroke.line_cap(gc.cap);
stroke.line_join(gc.join);
theRasterizer->add_path(stroke);
} else {
- dash_t dash(curve);
+ dash_t dash(path);
for (GCAgg::dash_t::const_iterator i = gc.dashes.begin();
i != gc.dashes.end(); ++i) {
double val0 = i->first;
double val1 = i->second;
- if (snap) {
+ if (!gc.isaa) {
val0 = (int)val0 + 0.5;
val1 = (int)val1 + 0.5;
}
@@ -831,7 +815,7 @@
theRasterizer->add_path(stroke);
}
-if (gc.isaa && !(snap)) {
+if (gc.isaa) {
if (has_clippath) {
pixfmt_amask_type pfa(*pixFmt, *alphaMask);
amask_ren_type r(pfa);
@@ -859,6 +843,10 @@
Py::Object
RendererAgg::draw_path(const Py::Tuple& args) {
+ typedef agg::conv_transformtransformed_path_t;
+ typedef conv_quantizequantize_t;
+ typedef agg::conv_curve curve_t;
+
_VERBOSE("RendererAgg::draw_path");
args.verify_length(3, 4);
@@ -878,15 +866,24 @@
set_clipbox(gc.cliprect, theRasterizer);
bool has_clippath = render_clippath(gc.clippath, gc.clippath_trans);
- _draw_path(path, trans, has_clippath, face, gc, true);
+ trans *= agg::trans_affine_scaling(1.0, -1.0);
+ trans *= agg::trans_affine_translation(0.0, (double)height);
+ bool snap = should_snap(path, trans);
+ transformed_path_t tpath(path, trans);
+ quantize_t quantized(tpath, snap);
+ curve_t curve(quantized);
+ if (snap)
+gc.isaa = false;
+ _draw_path(curve, has_clippath, face, gc);
+
return Py::Object();
}
-template
+template
Py::Object
RendererAgg::_draw_path_collection_generic
- (const agg::trans_affine& master_transform,
+ (agg::trans_affine master_transform,
c
SF.net SVN: matplotlib: [4474] trunk/matplotlib
Revision: 4474
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4474&view=rev
Author: cmoad
Date: 2007-11-27 17:31:59 -0800 (Tue, 27 Nov 2007)
Log Message:
---
version bumps
Modified Paths:
--
trunk/matplotlib/API_CHANGES
trunk/matplotlib/CHANGELOG
trunk/matplotlib/license/LICENSE
Modified: trunk/matplotlib/API_CHANGES
===
--- trunk/matplotlib/API_CHANGES2007-11-27 20:03:48 UTC (rev 4473)
+++ trunk/matplotlib/API_CHANGES2007-11-28 01:31:59 UTC (rev 4474)
@@ -1,3 +1,5 @@
+0.91.0 Released
+
Changed cbook.is_file_like to cbook.is_writable_file_like and
corrected behavior.
Modified: trunk/matplotlib/CHANGELOG
===
--- trunk/matplotlib/CHANGELOG 2007-11-27 20:03:48 UTC (rev 4473)
+++ trunk/matplotlib/CHANGELOG 2007-11-28 01:31:59 UTC (rev 4474)
@@ -1,3 +1,6 @@
+===
+2007-11-27 Released 0.91.0 at revision 4244
+
2007-11-13 All backends now support writing to a file-like object, not
just a regular file. savefig() can be passed a file-like
object in place of a file path. - MGD
Modified: trunk/matplotlib/license/LICENSE
===
--- trunk/matplotlib/license/LICENSE2007-11-27 20:03:48 UTC (rev 4473)
+++ trunk/matplotlib/license/LICENSE2007-11-28 01:31:59 UTC (rev 4474)
@@ -1,4 +1,4 @@
-LICENSE AGREEMENT FOR MATPLOTLIB 0.90
+LICENSE AGREEMENT FOR MATPLOTLIB 0.91
--
1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the
@@ -9,30 +9,30 @@
2. Subject to the terms and conditions of this License Agreement, JDH
hereby grants Licensee a nonexclusive, royalty-free, world-wide license
to reproduce, analyze, test, perform and/or display publicly, prepare
-derivative works, distribute, and otherwise use matplotlib 0.90
+derivative works, distribute, and otherwise use matplotlib 0.91
alone or in any derivative version, provided, however, that JDH's
License Agreement and JDH's notice of copyright, i.e., "Copyright (c)
2002-2007 John D. Hunter; All Rights Reserved" are retained in
-matplotlib 0.90 alone or in any derivative version prepared by
+matplotlib 0.91 alone or in any derivative version prepared by
Licensee.
3. In the event Licensee prepares a derivative work that is based on or
-incorporates matplotlib 0.90 or any part thereof, and wants to
+incorporates matplotlib 0.91 or any part thereof, and wants to
make the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
-the changes made to matplotlib 0.90.
+the changes made to matplotlib 0.91.
-4. JDH is making matplotlib 0.90 available to Licensee on an "AS
+4. JDH is making matplotlib 0.91 available to Licensee on an "AS
IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.90
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.91
WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB
-0.90 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
+0.91 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR
LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING
-MATPLOTLIB 0.90, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
+MATPLOTLIB 0.91, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF
THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
@@ -44,6 +44,6 @@
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
-8. By copying, installing or otherwise using matplotlib 0.90,
+8. By copying, installing or otherwise using matplotlib 0.91,
Licensee agrees to be bound by the terms and conditions of this License
Agreement.
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4475] trunk/matplotlib/CHANGELOG
Revision: 4475 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4475&view=rev Author: cmoad Date: 2007-11-27 17:33:15 -0800 (Tue, 27 Nov 2007) Log Message: --- rev typo fixed for 0.91 release Modified Paths: -- trunk/matplotlib/CHANGELOG Modified: trunk/matplotlib/CHANGELOG === --- trunk/matplotlib/CHANGELOG 2007-11-28 01:31:59 UTC (rev 4474) +++ trunk/matplotlib/CHANGELOG 2007-11-28 01:33:15 UTC (rev 4475) @@ -1,5 +1,5 @@ === -2007-11-27 Released 0.91.0 at revision 4244 +2007-11-27 Released 0.91.0 at revision 4474 2007-11-13 All backends now support writing to a file-like object, not just a regular file. savefig() can be passed a file-like This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4476] trunk/matplotlib/setupext.py
Revision: 4476
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4476&view=rev
Author: cmoad
Date: 2007-11-27 18:24:40 -0800 (Tue, 27 Nov 2007)
Log Message:
---
CXX/WrapPython.h was missing from sdist build
Modified Paths:
--
trunk/matplotlib/setupext.py
Modified: trunk/matplotlib/setupext.py
===
--- trunk/matplotlib/setupext.py2007-11-28 01:33:15 UTC (rev 4475)
+++ trunk/matplotlib/setupext.py2007-11-28 02:24:40 UTC (rev 4476)
@@ -980,6 +980,7 @@
deps = ['src/ft2font.cpp', 'src/mplutils.cpp']
deps.extend(glob.glob('CXX/*.cxx'))
deps.extend(glob.glob('CXX/*.c'))
+deps.extend(glob.glob('CXX/*.h'))
module = Extension('matplotlib.ft2font', deps)
add_ft2font_flags(module)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4477] trunk/matplotlib/CHANGELOG
Revision: 4477 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4477&view=rev Author: cmoad Date: 2007-11-27 18:25:06 -0800 (Tue, 27 Nov 2007) Log Message: --- rev bump for new bug Modified Paths: -- trunk/matplotlib/CHANGELOG Modified: trunk/matplotlib/CHANGELOG === --- trunk/matplotlib/CHANGELOG 2007-11-28 02:24:40 UTC (rev 4476) +++ trunk/matplotlib/CHANGELOG 2007-11-28 02:25:06 UTC (rev 4477) @@ -1,5 +1,5 @@ === -2007-11-27 Released 0.91.0 at revision 4474 +2007-11-27 Released 0.91.0 at revision 4477 2007-11-13 All backends now support writing to a file-like object, not just a regular file. savefig() can be passed a file-like This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. - SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 ___ Matplotlib-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
SF.net SVN: matplotlib: [4478] trunk/matplotlib
Revision: 4478
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4478&view=rev
Author: cmoad
Date: 2007-11-27 18:48:38 -0800 (Tue, 27 Nov 2007)
Log Message:
---
reverting WrapPython.h inclusion
Modified Paths:
--
trunk/matplotlib/CHANGELOG
trunk/matplotlib/setupext.py
Modified: trunk/matplotlib/CHANGELOG
===
--- trunk/matplotlib/CHANGELOG 2007-11-28 02:25:06 UTC (rev 4477)
+++ trunk/matplotlib/CHANGELOG 2007-11-28 02:48:38 UTC (rev 4478)
@@ -1,5 +1,5 @@
===
-2007-11-27 Released 0.91.0 at revision 4477
+2007-11-27 Released 0.91.0 at revision 4478
2007-11-13 All backends now support writing to a file-like object, not
just a regular file. savefig() can be passed a file-like
Modified: trunk/matplotlib/setupext.py
===
--- trunk/matplotlib/setupext.py2007-11-28 02:25:06 UTC (rev 4477)
+++ trunk/matplotlib/setupext.py2007-11-28 02:48:38 UTC (rev 4478)
@@ -980,7 +980,6 @@
deps = ['src/ft2font.cpp', 'src/mplutils.cpp']
deps.extend(glob.glob('CXX/*.cxx'))
deps.extend(glob.glob('CXX/*.c'))
-deps.extend(glob.glob('CXX/*.h'))
module = Extension('matplotlib.ft2font', deps)
add_ft2font_flags(module)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell. From the desktop to the data center, Linux is going
mainstream. Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
___
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins
