Python-list digest, Vol 1 #4292 - 14 msgs

Marco Soeima msoeima at netcabo.pt
Wed Dec 20 21:11:29 CET 2000


* python-list-request at python.org (python-list-request at python.org) [20/12/00 20:11]:

Content-Description: Masthead (Python-list digest, Vol 1 #4292)
> Send Python-list mailing list submissions to
> 	python-list at python.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://www.python.org/mailman/listinfo/python-list
> or, via email, send a message with subject or body 'help' to
> 	python-list-request at python.org
> 
> You can reach the person managing the list at
> 	python-list-admin at python.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Python-list digest..."
> 

Content-Description: Today's Topics (14 msgs)
> Today's Topics:
> 
>    1. ANNOUNCE: soundex.py (Skip Montanaro)
>    2. DCOracle-1.3.2 makefile problem .er. opportunity? (tim at 2wave.net)
>    3. Re: Problems compiling on Sunos5 (Andreas Jung)
>    4. RE: while true: !!! (Tim Peters)
>    5. Re: dynamic function call (Steve Holden)
>    6. Python in embedded systems? (Grant Edwards)
>    7. object deletion order question (howard at eegsoftware.com)
>    8. Running pdflatex from Python (Brian Elmegaard)
>    9. Re: Catching Database Exceptions (Sybase) (Thomas Gagne)
>   10. Import problem (David Allen)
>   11. Re: Q: dynamic function call (Robert Roy)
>   12. Threads - Newbie Questions (David Lees)
>   13. Re: Running pdflatex from Python (Fredrik Lundh)
>   14. Re: object deletion order question (Fredrik Lundh)

> From: Skip Montanaro <skip at mojam.com>
> Reply-To: skip at mojam.com (Skip Montanaro)
> To: python-list at python.org, python-announce-list at python.org
> Subject: ANNOUNCE: soundex.py
> Date: Wed, 20 Dec 2000 12:44:58 -0600 (CST)
> Message-ID: <14912.65066.958523.18862 at beluga.mojam.com>
> 
> Python 2.0 no longer ships with a soundex module.  Sometime ago, Tim Peters
> and Fred Drake each cooked up replacements written in Python.  I merged them
> together into a single module which is available from 
> 
>     http://musi-cal.mojam.com/~skip/python/
> 
> If you have any questions or comments on the module, please send them my
> way.
> 
> -- 
> Skip Montanaro (skip at mojam.com)
> Support the Mojam.com Affiliates Program: http://www.mojam.com/affl/
> (847)971-7098
> 

> From: tim at 2wave.net
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: DCOracle-1.3.2 makefile problem .er. opportunity?
> Date: Wed, 20 Dec 2000 18:22:14 GMT
> Message-ID: <91qtcd$dic$1 at nnrp1.deja.com>
> Organization: Deja.com
> 
> Hi
> 
> I'm no makefile expert, I'm afraid, and am trying to build DCOracle-
> 1.3.2 in Linux 7 (for Oracle 8.1.6), and not succeeding :-(. I've
> followed the makefile instructions provided, and get to the problem
> below. I haven't found any references to others having this problem on
> comp.lang.python, so I wonder if any of you who have been down this
> path before recognise the error - and point me in directions which
> might overcome it!
> 
> ------------------------------
> root> makefile -f Makefile.pre.in boot
> rm -f *.o *~
> rm -f *.a tags TAGS config.c Makefile.pre python sedscript
> rm -f *.so *.sl so_locations
> VERSION=`python -c "import sys; print sys.version[:3]"`;
> installdir=`python -c "import sys; print sys.prefix"`;
> exec_installdir=`python -c "import sys; print sys.exec_prefix"`;
> make -f ./Makefile.pre.in VPATH=. srcdir=.
>      VERSION=$VERSION
>      installdir=$installdir
>      exec_installdir=$exec_installdir
>      Makefile
> make[1]: Entering directory `/home/tim/rpms/DCOracle-1.3.2/src'
> make[1]: *** No rule to make target'/usr/lib/python1.5/config/Makefile'
> needed by 'sedscript'. Stop.
> make[1]: Leaving directory `/home/tim/rpms/DCOracle-1.3.2/src'
> 
> ------------------------------------------------
> 
> Thanks
> 
> Tim
> 
> 
> Sent via Deja.com
> http://www.deja.com/

> From: Andreas Jung <andreas at andreas-jung.com>
> Reply-To: Andreas Jung <andreas at andreas-jung.com>
> To: Venkatesh Prasad Ranganath <rvprasad at cis.ksu.edu>
> Cc: python-list at python.org
> Subject: Re: Problems compiling on Sunos5
> Date: Wed, 20 Dec 2000 20:02:34 +0100
> Message-ID: <20001220200234.A5081 at yetix.sz-sb.de>
> User-Agent: Mutt/1.3.12i
> 
> On Wed, Dec 20, 2000 at 11:34:15AM -0600, Venkatesh Prasad Ranganath wrote:
> > Hi,
> > 
> > I am trying to compile Python 2.0 on Sunos 5.  I am able to compile but many
> > functions are not being supported.  When I execute configure, the list of
> > functions checked by configure are reported as not supported but all those
> > functions are available.  For example, strftime() is reported as not available.
> > 
> > Is this a problem with the configure script or something I have to specify when
> > configuring.  My configure command was as follows
> > 
> > configure --with-threads=/usr/lib --with-cycle-gc --without-libdb
> 
> Usually you should not care about the functions available or not. When
> "make" works correctly  and you have a running Python interpreter
> after the termination of "make" ...be happy...and "make install".
> I have never seen any real problems with the installation of Python
> under Solaris.
> 
> Andreas
>  
> 

> From: "Tim Peters" <tim.one at home.com>
> To: <python-list at python.org>
> Subject: RE: while true: !!!
> Date: Wed, 20 Dec 2000 14:11:55 -0500
> Message-ID: <LNBBLJKPBEHFEDALKOLCCEMMIEAA.tim.one at home.com>
> 
> [gbreed at cix.compulink.co.uk]
> > ...
> > If you want to empty a sequence, but preserve the type, try
> > filter(lambda x:0, asequence).
> 
> Picking a nit:  that returns an empty list, regardless of type(asequence).
> To get an empty sequence of the same type, do
> 
>     asequence[:0]
> 
> or even
> 
>     asequence * 0
> 
> there's-only-one-way-to-do-it-ly y'rs  - tim
> 
> 

> From: "Steve Holden" <sholden at holdenweb.com>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Re: dynamic function call
> Date: Wed, 20 Dec 2000 14:10:39 -0500
> Message-ID: <Fw706.1805$WA2.28069 at e420r-atl2.usenetserver.com>
> Organization: WebUseNet Corp  http://www.usenetserver.com - Home of the fastest NNTP servers on the Net.
> 
> Hwanjo Yu <hwanjoyu at uiuc.edu> wrote in message
> news:Ko606.141$G66.2664 at vixen.cso.uiuc.edu...
> > Hi,
> >
> > Is there any way to bind a function name at runtime ?
> > For instance, we don't know the function name to call, but we know the
> > function name is saved in a variable, "fname".
> > How to call it in this case ?
> > Thanks in advance.
> >
> You just use the variable fname instead of the function name!  For example:
> 
> >>> def myfun(x):
> ...  print "x is", x
> ...
> >>> yourfun = myfun
> >>> yourfun('This is cool')
> x is This is cool
> 
> The "def" statement simply binds the function name to its compiled code
> body.  If you "assign" the functin to another variable, the same call
> mechanism can be used on that binding too.
> 
> regards
>  Steve
> 
> 
> 
> 

> From: grante at visi.com (Grant Edwards)
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Python in embedded systems?
> Date: Wed, 20 Dec 2000 19:12:58 GMT
> Message-ID: <_w706.11237$TU6.1069571 at ptah.visi.com>
> User-Agent: slrn/0.9.6.2 (Linux)
> 
> Has anybody heard of a Python interpreter being used in an
> embedded system to provide user scripting capabilities?
> 
> At some point in the future, I might be looking for a small,
> safe, interpreted langauge to put into an embedded system. It
> needs to be something easy for a non EE/CS to grasp.
> Resource-wise, Forth would be a good choice except I think it's
> a difficult first language for non programmers.
> 
> I'd love to use Python, but I don't know if it will fit into
> the embedded system environment -- I probably can't allocate
> more than about 1MB of memory for the scripting feature.
> 
> I've seen some nice compact Scheme implimentations, but that
> too is probably not a good choice for something that will be
> used by somebody with no CS background.
> 
> I'm really hoping to avoid using some sort of BASIC, the Web
> server I'm running as a JavaScript subset interpreter, so maybe
> I can figure out how to use that for non-web stuff.
> 
> -- 
> Grant Edwards                   grante             Yow!  Are we on STRIKE yet?
>                                   at               
>                                visi.com            

> From: howard at eegsoftware.com
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: object deletion order question
> Date: Wed, 20 Dec 2000 19:13:40 GMT
> Message-ID: <3a41016d.3397213 at news-server.socal.rr.com>
> Organization: Road Runner
> 
> While locating a crash in a Windows Python extension I am working on
>     ( a Python wrap around a DirectX game library called CDX)
> I discovered my problem as being the order in which Python objects
> were being deleted.  
> 
> In this case, I had created a Sound object and a series of SoundBuffer
> objects.  INSIDE DirectX, deleting the Sound object implicitly
> releases the SoundBuffer objects.  When Python terminated (or at other
> deletions), it called the delete method of the SoundBuffer  objects
> after deleting the Sound objects, leaving DirectX calling into unknown
> data space (I know..it's a Microsoft tradition).
> 
> I patched around this problem by managing a list of buffer objects
> attached to a Sound object (explicitly specifying such objects) and
> deleting them explicitly.
> 
> However, that led my to question:
>         What ordering does Python use for object deletions? 
> 
> I somehow *assumed* that deletion was the reverse order of creation
> (in a global sense) but clearly my problem was a case of
> first-created, first-deleted.  Of course, I realize (now) I should not
> have *assumed* ANY deletion order.  
> 
> For a "good" fix, I will probably have to build some linkage between
> the two 'independent' classes in the C++ code rather than rely on
> working around the problem in Python code.
> Howard Lightstone
> EEGSoftware
> howard at eegsoftware.com

> From: Brian Elmegaard <be at et.dtu.dk>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Running pdflatex from Python
> Date: Wed, 20 Dec 2000 21:13:17 +0100
> Message-ID: <3A4112DD.E8B59F3F at et.dtu.dk>
> Organization: Department of Energy Engineering, Technical University of Denmark
> 
> This is posted to comp.lang.python and miktex at dsts.dk
> 
> When I try to run pdflatex (miktex 1.20e) from a Python script with
> popen("pdflatex "+filename) under win98 SE I get a fault in kernel32.dll. 
> 
> This does not happen for pure latex.
> 
> I would like to know if this also happens on other machines or only on mine.
> 
> 
> 
> -- 
> Brian Elmegaard (be at et.dtu.dk) http://www.et.dtu.dk/energysystems 
> Dept. of Energy Engineering, Technical University of Denmark, 
> Phone +45 4525 4169  Fax +45 4593 5215
> :) http://www.rk-speed.dk http://fiduso.dk http://sunsite.auc.dk/dk-tug

> From: Thomas Gagne <tgagne at ix.netcom.com>
> Newsgroups: comp.lang.python
> Reply-To: tgagne at eFinNet.com
> To: python-list at python.org
> CC: Dave Cole <djc at object-craft.com.au>
> Subject: Re: Catching Database Exceptions (Sybase)
> Date: Wed, 20 Dec 2000 13:21:28 -0500
> Message-ID: <3A40F8A8.8CD9A563 at ix.netcom.com>
> Organization: eFinNet, Corp.
> 
> Just to keep checking..
> 
> .. I deliberately used a procedure I know didn't exist.  This time it seems as
> though it tried to test the exceptions:
> 
> Traceback (innermost last):
>   File ".//floater.py", line 50, in ?
>     except Warning, env:
> NameError: Warning
> 
> The DB API 2.0 documentation suggested that all database warnings and errors
> should be subclasses of Error and Warning.  Is there something I'm supposed to
> be importing to make this work, or to define these objects?
> 
> --
> .tom
> 
> 
> 

> From: "David Allen" <s2mdalle at titan.vcu.edu>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Import problem
> Date: Wed, 20 Dec 2000 09:24:23 +0500
> Message-ID: <91r1j3$94h$1 at bob.news.rcn.net>
> Organization: Souls, Unlimited
> User-Agent:  Pan/0.9.1 (Unix)
> 
> I have a module that uses a particular object.  So
> at the top of the file, I import that object.  But
> for some reason, trying to create instances of that
> object always fails with a NameError.  Here's the
> error message:
> 
> Unhandled exception in thread:
> Traceback (innermost last):
>   File "./TkGui.py", line 285, in downloadThread
>     contentKey = self.createContentFrame(request)
>   File "./TkGui.py", line 350, in createContentFrame
>     resp = conn.getResource(resource, self.messageBar)
>   File "./GopherConnection.py", line 79, in getResource
>     resp = GopherResponse()
> NameError: GopherResponse
> 
> Now, to verify that I'm not smoking crack, here
> are the first few lines of GopherConnection.py:
> 
> from GopherResponse      import *
> from GopherResource      import *
> from ResourceInformation import *
> 
> And just in case you think I'm crazy and that
> GopherResponse isn't defined in GopherResponse.py,
> here are the first few lines of that file:
> 
> 
> from GopherObject        import *
> from GopherResource      import *
> from ResourceInformation import *
> 
> class GopherResponse(GopherObject):
> 	... code ...
> 
> So here's the issue - I'm importing a module, but
> things in its namespace aren't coming in.
> 
> As far as I can come up with, the only idea I have
> on why this might be happening is because many of
> the objects use each other, so you get a situation
> where many things import many other things, and you
> may be getting a chicken and egg situation with
> the importer.  But I thought python's importer was
> brigher than that.
> 
> What else can cause this?  How is it that you can
> from modulename import * and then NOT have access
> to the things in that namespace?  Alternatively,
> why does this case not work, when, say, I can use
> module X in module Y and it works fine?  
> 
> Any help on figuring this out would be much appreciated.
> -- 
> David Allen
> http://opop.nols.com/
> ----------------------------------------
> It's 5:50 AM...do you know where your stack pointer is?

> From: Robert Roy <rjroy at NO-SPAM.magma.ca>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Re: Q: dynamic function call
> Date: Wed, 20 Dec 2000 19:34:30 GMT
> Message-ID: <e1124tgv39ria0drqf3c76c5sr2g2ekg26 at 4ax.com>
> Organization: Excite at Home - The Leader in Broadband http://home.com/faster
> 
> On Wed, 20 Dec 2000 11:56:28 -0600, "Hwanjo Yu" <hwanjoyu at uiuc.edu>
> wrote:
> 
> >Hi,
> >
> >Is there any way to bind a function name at runtime ?
> >For instance, we don't know the function name to call, but we know the
> >function name is saved in a variable, "fname".
> >How to call it in this case ?
> >Thanks in advance.
> >
> Functions are first-class objects in python so it is no big deal to
> assign them to other names and then call them. There are also several
> ways to resolve names at runtime. Here are few quick examples of how
> this could be done.
> 
> Bob
> #########
> # this is the function we will play with
> def cb(name):
>     print 'callback:', name
>     
> # this gets passed the function
> def foo(name, callback):
>     callback(name)
> 
> #this gets passed the function name
> def bar(name, callbackname):
>     globals()[callbackname](name)
> 
> # call foo 
> foo('joe',cb)
> 
> #bind cb to c and call
> c=cb
> c('ralph')
> 
> # use eval to run from function name
> eval('cb')('called from eval')
> 
> # find the function in the locals dictionary
> locals()['cb']('called from locals')
> 
> #find the function in the globals dictionary
> globals()['cb']('called from globals')
> 
> # call bar
> bar('cb called from globals in function', 'cb')
> # note that we bound to c earlier so can call it as well
> bar('c called from globals in function', 'c')
> 
> 
> 

> From: David Lees <DavidL at NONOraqiaMAPS.com>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Threads - Newbie Questions
> Date: Wed, 20 Dec 2000 14:42:41 -0500
> Message-ID: <3A410BB1.AAB6BE3C at NONOraqiaMAPS.com>
> Organization: HarvardNET
> 
> I am now starting to play with Python threads.  Could someone refer me
> to documentation other than the Library reference for some simple
> examples?
> 
> My specific questions are:
> 1. I am passing the lock as an argument to each thread.  Is this the
> proper way to do it?
> 
> 2. What is the 'kwargs' - optional keyword arguments refered to in the
> Library Reference for start_new_thread?
> 
> Python is definitely cool.  I am starting to get the hang of it, with a
> lot of help from this group.
> 
> Thanks in advance.
> 
> david lees
> 
> Here is my initial code:
> 
> import time, thread
> 
> def TestProcess(x,n,lk):
>     print 'Process %d is starting' % n
>     #time.sleep(1)
>     lk.acquire()
>     print 'Acquired process %d ' % n
>     lk.release()
>     
> lx=thread.allocate_lock()
> lx.acquire()
> 
> for i in range(100):
>     thread.start_new(TestProcess,(0,i,lx))
> 
> time.sleep(3)
> 
> print 'Threads started, about to release lock'
> lx.release()

> From: "Fredrik Lundh" <fredrik at effbot.org>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Re: Running pdflatex from Python
> Date: Wed, 20 Dec 2000 19:45:20 GMT
> Message-ID: <k%706.701$AH6.70148 at newsc.telia.net>
> Organization: Telia Internet
> 
> Brian Elmegaard wrote:
> > This is posted to comp.lang.python and miktex at dsts.dk
> >
> > When I try to run pdflatex (miktex 1.20e) from a Python script with
> > popen("pdflatex "+filename) under win98 SE I get a fault in kernel32.dll.
> >
> > This does not happen for pure latex.
> 
> perhaps you're using an evil version of Norton Antivirus 2000?
> 
>     http://www.python.org/2.0/
> 
>     "Incompatibility warning: Norton Antivirus 2000 can cause blue
>     screen crashes on Windows 98 when a function in the os.popen*()
>     family is invoked. To prevent this problem, disable Norton Antivirus
>     when using Python. (Confirmed on Windows 98 Second Edition with
>     Norton Antivirus version 6.10.20. The same Norton Antivirus version
>     doesn't have this problem on Windows 2000. Norton Antivirus
>     version 5 on Windows 98SE doesn't have this problem either.)"
> 
> </F>
> 
> 

> From: "Fredrik Lundh" <fredrik at effbot.org>
> Newsgroups: comp.lang.python
> To: python-list at python.org
> Subject: Re: object deletion order question
> Date: Wed, 20 Dec 2000 19:45:19 GMT
> Message-ID: <j%706.700$AH6.70137 at newsc.telia.net>
> Organization: Telia Internet
> 
> howard at eegsoftware.com wrote:
> > However, that led my to question:
> >         What ordering does Python use for object deletions?
> 
> any order it likes.  it may remove an object as soon as
> possible, or never at all.
> 
> > When Python terminated (or at other deletions), it called the
> > delete method of the SoundBuffer  objects after deleting the
> > Sound objects, leaving DirectX calling into unknown data space
> > (I know..it's a Microsoft tradition).
> 
> Direct X uses reference counting just like Python.  if you mess
> up the reference count in Python, it'll crash as well.
> 
> avoiding this is easy, of course.  just make sure you keep the
> reference counts in sync:
> 
> -- use Python wrappers for all reference-counted Direct X
>    objects (e.g. SoundObject, SoundBufferObject)
> 
> -- only access Direct X objects via the Python wrappers
>    (e.g. through an LPDIRECTSOUND member in the Sound
>    object class)
> 
> -- add a PyObject (or better, SoundObject) pointer to the
>    SoundBuffer wrapper class, and make it point to the Sound
>    object when you create the buffer (don't forget to call
>    Py_INCREF on it)
> 
> -- only destroy Direct X objects in the Python wrapper's
>    dealloc method.  in the SoundBuffer wrapper, make sure
>    you decrement the pointer to the Sound object.
> 
> if you do this, the sound object will never be destroyed before
> any of its sound buffers.
> 
> > Of course, I realize (now) I should not have *assumed* ANY
> > deletion order.
> 
> why are you asking when you've already figured it out ;-)
> 
> </F>
> 
> 
> 
> 


Content-Description: Digest Footer
> -- 
> http://www.python.org/mailman/listinfo/python-list





More information about the Python-list mailing list