Ñò Kc @sÛdZddddgZddkZddkZddkZddkZd„ZeidƒZd „Z d „Z eid ƒZ eid ƒZ eid ƒZ eidƒZeidƒZeidƒZeidƒZeidƒZeidƒZeidƒZeidƒZeidƒZd„ZddkZd„Zd„Zdd„Zd„Zeiidd„ZeidƒZ eiiddd„Z"d „Z#eiid!„Z$e%d"joe$ei&ƒndS(#s6 This module converts code written for numarray to run with numpy Makes the following changes: * Changes import statements import numarray.package --> import numpy.numarray.package as numarray_package with all numarray.package in code changed to numarray_package import numarray --> import numpy.numarray as numarray import numarray.package as --> import numpy.numarray.package as from numarray import --> from numpy.numarray import from numarray.package import --> from numpy.numarray.package import package can be convolve, image, nd_image, mlab, linear_algebra, ma, matrix, fft, random_array * Makes search and replace changes to: - .imaginary --> .imag - .flat --> .ravel() (most of the time) - .byteswapped() --> .byteswap(False) - .byteswap() --> .byteswap(True) - .info() --> numarray.info(self) - .isaligned() --> .flags.aligned - .isbyteswapped() --> (not .dtype.isnative) - .typecode() --> .dtype.char - .iscontiguous() --> .flags.contiguous - .is_c_array() --> .flags.carray and .dtype.isnative - .is_fortran_contiguous() --> .flags.fortran - .is_f_array() --> .dtype.isnative and .flags.farray - .itemsize() --> .itemsize - .nelements() --> .size - self.new(type) --> numarray.newobj(self, type) - .repeat(r) --> .repeat(r, axis=0) - .size() --> .size - self.type() -- numarray.typefrom(self) - .typecode() --> .dtype.char - .stddev() --> .std() - .togglebyteorder() --> numarray.togglebyteorder(self) - .getshape() --> .shape - .setshape(obj) --> .shape=obj - .getflat() --> .ravel() - .getreal() --> .real - .setreal() --> .real = - .getimag() --> .imag - .setimag() --> .imag = - .getimaginary() --> .imag - .setimaginary() --> .imag t convertfilet convertallt converttreet convertsrciÿÿÿÿNc Csfd|}d|}d|}d}|}d|jo|iddƒ}ntid|d||f|ƒ}|i|d|ƒ}|i|d ||fƒ}||jo|i||ƒ}nd}t|ƒ} td|ƒ} xr|i||ƒ} | djoPn| | }||d joqênd || |||f}|| | 7}qê||fS( Ns import %ss import %s as sfrom %s import it.t_s(import\s+[^,\n\r]+,\s*)(%s)s \1%s as %ssimport %s as %st*s%sfrom %s import %s(treplacetretsubtlentfind( tfstrtnametnewnamet importstrt importasstrtfromstrtfromalltname_tindtNlentNlen2tfound((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt changeimports>s4         s([.]flat(\s*?[[=]))cCsL|idƒ}|itid|ƒ}d|| tid||f}|S(Ntimportis%s%s%s%ss!import numpy.numarray as numarray(R trfindtostlinesep(tastrRtstart((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt addimport`s cCsZ|iddƒ}|iddƒ}|iddƒ}|iddƒ}|id d ƒ}|id d ƒ}|id dƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}tid|ƒ}|iddƒ}|id dƒ}|S(!Ns .imaginarys.imags.byteswapped()s.byteswap(False)s .byteswap()s.byteswap(True)s .isaligned()s.flags.aligneds.iscontiguous()s.flags.contiguouss.is_fortran_contiguous()s.flags.fortrans .itemsize()s .itemsizes.size()s.sizes .nelements()s .typecode()s .dtype.chars .stddev()s.std()s .getshape()s.shapes .getflat()s.ravel()s.getreals.reals.getimags .getimaginarys@@@@\2s.flats@@@@(Rt flatindex_reR (Rttmpstr((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt replaceattris(s(\S+)\s*[.]\s*info\s*[(]\s*[)]s%(\S+)\s*[.]\s*new\s*[(]\s*(\S+)\s*[)]s)(\S+)\s*[.]\s*togglebyteorder\s*[(]\s*[)]s(\S+)\s*[.]\s*type\s*[(]\s*[)]s'(\S+)\s*[.]\s*isbyteswapped\s*[(]\s*[)]s$(\S+)\s*[.]\s*is_c_array\s*[(]\s*[)]s$(\S+)\s*[.]\s*is_f_array\s*[(]\s*[)]s((\S+)\s*[.]\s*repeat\s*[(]\s*(\S+)\s*[)]s*(\S+)\s*[.]\s*setshape\s*[(]\s*(\S+)\s*[)]s)(\S+)\s*[.]\s*setreal\s*[(]\s*(\S+)\s*[)]s)(\S+)\s*[.]\s*setimag\s*[(]\s*(\S+)\s*[)]s.(\S+)\s*[.]\s*setimaginary\s*[(]\s*(\S+)\s*[)]cCstid|ƒ\}}tid|ƒ\}}tid|ƒ\}}tid|ƒ\}}||||djot|ƒ}ntid|ƒ}tid|ƒ}t id|ƒ}t id |ƒ}t id |ƒ}t id |ƒ}t id |ƒ}tid |ƒ}|S( Nsnumarray.info(\1)snumarray.newobj(\1, \2)snumarray.togglebyteorder(\1)snumarray.typefrom(\1)isnot \1.dtype.isnatives%\1.dtype.isnative and \1.flags.carrays%\1.dtype.isnative and \1.flags.farrays\1.repeat(\2, axis=0)s \1.shape = \2s \1.real = \2s \1.imag = \2(tinfo_retsubntnew_ret toggle_rettype_reRt isbyte_reR t iscarr_ret isfarr_ret repeat_ret setshape_ret setreal_ret setimag_retsetimaginary_re(Rtn1tn2tn3tn4((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt replaceother‘sc Cs|}t|ddƒ\}}d}d}xgddddddd d d d g D]A}|djod |}nt|||||ƒ\}}qPWt|ƒ}t|ƒ}||joStiitidƒd}ti i ƒi dƒ}d|||f}|dfS|dfS(Ntnumarraysnumpy.numarrayttconvolvetimagetnd_imagetmlabtlinear_algebratmatmatrixtfftt random_arrayRiiÿÿÿÿs %b %d, %Ys8## Automatically adapted for numpy.numarray %s by %s %si( RR"R4Rtpathtsplittsystargvtdatetimetdatettodaytstrftime(tfilestrtsavestrRtbasetnewbaseR R RF((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyR¨s& $    cCs*t|dƒ}|i|ƒ|iƒdS(Ntw(tfiletwritetclose(R RHtfid((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt makenewfile½s icCs”t|ƒ}|iƒ}|iƒt|ƒ\}}|oU|o0tii|ƒ\}}ti||dƒnti|ƒt ||ƒndS(s Convert the filename given from using Numarray to using NumPy Copies the file to filename.orig and then over-writes the file with the updated code s.origN( topentreadRORRR@tsplitexttrenametremoveRQ(tfilenametorigRPRHtchangedRJtext((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyRÂs    cCs|d}t|ƒdS(Ni(R(targsRW((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pytfromargsÔs cCsXtitii|dƒƒ}x3|D]+}|ddjoq%nt||ƒq%WdS(sýConvert all .py files to use numpy.oldnumeric (from Numeric) in the directory given For each file, a backup of .py is made as .py.orig. A new file named .py is then written with the updated code. s*.pyiøÿÿÿssetup.pyN(tglobRR@tjoinR(tdirecRXtfilestafile((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyRØs s(numarray/libnumarray.h)c Cs |djo"titii|dƒƒ}nAg}x7|D]/}|ititii|d|ƒƒƒq<Wxª|D]¢}t|ƒ}|iƒ}|iƒt i d|ƒ\}}|djoU|o0tii |ƒ\} }ti || dƒnti |ƒt||ƒqvqvWdS(sªReplace Numeric/arrayobject.h with numpy/oldnumeric.h in all files in the directory with extension give by list ext (if ext is None, then all files are replaced).Rs*.%ssnumpy/libnumarray.his.origN(tNoneR]RR@R^textendRRRSROt header_reR$RTRURVRQ( R_RZRXR`taextRaRPR tnRJ((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyRæs$ "-     cCs-t|ddƒt|ddgddƒdS(NRXithtc(RR(targtdirnametfnames((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt_funcýscCstii|tdƒdS(s-Convert all .py files in the tree given N(RR@twalkRlRb(R_((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyRst__main__('t__doc__t__all__RBRRR]RtcompileR RR"R#R%R&R'R(R)R*R+R,R-R.R/R4RDRRQRR\R@tcurdirRRdRbRRlRt__name__RC(((s@/usr/lib64/python2.6/site-packages/numpy/numarray/alter_code1.pyt6sD