Cookie expiration time

2007-12-17 Thread dmitry . ema
Hi All !
  I'm using httplib2 library in my python script for interactions with
remote web-server. Remote server responses me cookies with the set
expiration time. I'd like to extend this time.  Does anybody know how
can I do it using this library ?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: looping list?

2007-12-17 Thread Gabriel Genellina
En Thu, 13 Dec 2007 06:07:46 -0300, datulaida ali  
<[EMAIL PROTECTED]> escribi�:

> i'm trying to insert value into list according to the key (ASCII) that i
> generate..
>
> example :
>
> win = 95, so must insert into list[95]
> and = 70, so must insert into list[70]
>
> this is my coding..

The indentation is lost so I can't see exactly what you are doing.
But looks like you got a list too long (twice the size). Instead of a  
list, why don't use a dictionary?

> list = []

Using list as a name is not a good idea, hides the builtin "list" type.
I'll use "data" instead: data = {}

> for i in range (100):
> if i == key :
> list.append([i,word])
>
> else :
> list.append([0])

data[key] = word

> print list

for key,word in sorted(data.items()):
   print key,word

(All remaining slots are 0; you may build a true list from that)

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Re: programming container object

2007-12-17 Thread Paul McGuire
On Dec 17, 1:18 am, "bambam" <[EMAIL PROTECTED]> wrote:
> I wish to create a generic container object, devlist, such that
>
> devlist.method(arguments)
>
> runs as
>
> for each dev in devlist.pool:
> dev.method(arguments)
>
> and
> s = devlist.method(arguments)
>
> runs as
>
> for each dev in devlist.pool:
> s.append(dev.method(arguments))
>
> ...but it is outside my ability to do so.
>
> Can anyone provide an example of how to do that?
>
> Thanks,
> Steve

Ok, I'll take a stab at it.

-- Paul

class DevList(object):
def __init__(self, objs):
self.devpool = objs

def __getattribute__(self,attrname):
if attrname == "devpool":
return object.__getattribute__(self,attrname)
def ret(*args):
return [ getattr(p,attrname)(*args) for p in
self.devpool ]
return ret


dl = DevList([1,2,3])
print dl.__str__()

prints:

['1', '2', '3']
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to generate pdf file from an html page??

2007-12-17 Thread abhishek
On Dec 16, 10:21 pm, Zentrader <[EMAIL PROTECTED]> wrote:
> I'm sure it can be done but there is no reason to reinvent the wheel
> unless it's for a programming exercise.  You can use pdftohtml and run
> it from a Python program if you want.http://pdftohtml.sourceforge.net/

Hi Zentrader, thanks for your help.
-- 
http://mail.python.org/mailman/listinfo/python-list


free video lessons on 12 computer Science Courses

2007-12-17 Thread AK444
Hi Guys,  Good news is that as many as 12 courses from top
universities are providing free video lessons  
http://freevideolectures.com/ComputerScience/
on all the basic courses. All you need to have is Real Player
installed on your PC.

I think it is useful to you
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: programming container object

2007-12-17 Thread Steven D'Aprano
On Mon, 17 Dec 2007 18:18:11 +1100, bambam wrote:

> I wish to create a generic container object, devlist, such that
> 
> devlist.method(arguments)
> 
> runs as
> 
> for each dev in devlist.pool:
> dev.method(arguments)
> 
> and
> s = devlist.method(arguments)
> 
> runs as
> 
> for each dev in devlist.pool:
> s.append(dev.method(arguments))
> 
> ...but it is outside my ability to do so.
> 
> Can anyone provide an example of how to do that?



If I've understood you correctly, I don't think it can be done.

It looks to me that you want:

s = instance.method()

and 

instance.method()

to do completely different things. This is a bad idea and a recipe for 
confusion. In any case, it is not possible, because the instance method 
cannot know whether its result is being assigned to a name or just thrown 
away.

I may have misunderstood what you are trying to do. Please feel free to 
explain in more detail, perhaps with an example.

By the way, the correct way to get the result you want is to have 
devlist.method() work as in your first example, and then do this:

s.extend(devlist.method())



-- 
Steven.
-- 
http://mail.python.org/mailman/listinfo/python-list


Announcement: pacparser - a c library to parse proxy auto-config (pac) files

2007-12-17 Thread Manu Garg
Hi Folks,

I am very pleased to announce the release of "pacparser" - a C library
to parse proxy auto-config (PAC) scripts. Needless to say, PAC files
are now a widely accepted method for proxy configuration management
and almost all popular browsers support them. The idea behind
pacparser is to make it easy to add this PAC file parsing capability
to other programs. It comes as a shared C library with a clear API.
You can use it to make any C or python (using ctypes) program PAC
scripts intelligent.

For documentation and available packages, please visit project home page at:
http://code.google.com/p/pacparser

For the ones who like to start with source code, here is the link to
direct download for source code:
http://pacparser.googlecode.com/files/pacparser-1.0.0.tar.gz.

Cheers :-),
Manu
--
Manu Garg
http://www.manugarg.com
"Journey is the destination of the life."
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Finite State Machine GUI editor in python?

2007-12-17 Thread Alexander Schliep
"Hendrik van Rooyen" <[EMAIL PROTECTED]> writes:


> I am looking for a similar front end, going from pretty pictures of 
> state diagrams to some sort of state machine descriptor language 
> or specification file, and I am not very fussy about the format of 
> the output at this stage.

In case nothing better comes up and you want to code it yourself: Our
Hidden Markov Model library GHMM (http://ghmm.org) has a graphical
editor with XML output.

Maybe http://networkx.lanl.gov/ or other general Python graph packages
have what you want. Also check out http://www.graphviz.org/

Best,
Alexander
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: programming container object

2007-12-17 Thread Diez B. Roggisch
Steven D'Aprano wrote:

> On Mon, 17 Dec 2007 18:18:11 +1100, bambam wrote:
> 
>> I wish to create a generic container object, devlist, such that
>> 
>> devlist.method(arguments)
>> 
>> runs as
>> 
>> for each dev in devlist.pool:
>> dev.method(arguments)
>> 
>> and
>> s = devlist.method(arguments)
>> 
>> runs as
>> 
>> for each dev in devlist.pool:
>> s.append(dev.method(arguments))
>> 
>> ...but it is outside my ability to do so.
>> 
>> Can anyone provide an example of how to do that?
> 
> 
> 
> If I've understood you correctly, I don't think it can be done.
> 
> It looks to me that you want:
> 
> s = instance.method()
> 
> and
> 
> instance.method()
> 
> to do completely different things. This is a bad idea and a recipe for
> confusion. In any case, it is not possible, because the instance method
> cannot know whether its result is being assigned to a name or just thrown
> away.

This isn't entirely correct - there _are_ ways to know.

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/284742

Now if it is _desirable_ to use this as "clever" optimization scheme is a
subject worth discussing - I certainly wouldn't do it...

Diez
-- 
http://mail.python.org/mailman/listinfo/python-list


Imports in Packages

2007-12-17 Thread tjhnson
While working within a package...what is the 'best practice' way to do
your imports.

a/__init__.py
a/one.py
a/two.py
a/b/__init__.py
a/b/cat.py
a/b/dog.py
a/c/cow.py
Suppose I am working in a/c/cow.py and I need something from a/b/
dog.py.  If a/b/__init__.py contains what I need from dog.py, should I
do:

"from a.b import desiredfunction"

or

"from a.b.dog import desiredfunction"

What are your reasons for preferring one over the other (performance,
readability, portability)?  Also, the same can be said of functions
from other packages...

I know that

>>> from math import cos
>>> x = cos(3)

is preferred for performance reasons over

>>> import math
>>> x = math.cos(3)

because of the required lookup.  Does this mean that that I should
import as far down as possible as well?  For example, "from a.b.c.mod
import func"  versus  "from a import fun".
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: programming container object

2007-12-17 Thread Hrvoje Niksic
"Diez B. Roggisch" <[EMAIL PROTECTED]> writes:

>> In any case, it is not possible, because the instance method cannot
>> know whether its result is being assigned to a name or just thrown
>> away.
>
> This isn't entirely correct - there _are_ ways to know.
>
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/284742

Not by using the public API, though.  The above recipe relies on a
number of CPython's implementation details, and will stop working if
any of this changes.  (I'm sure you're aware of that, but it might not
be obvious to some readers.)

It also doesn't work when the function is called from C code, or when
the unpacking is done in a separate step.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: OpenOpt install

2007-12-17 Thread dmitrey
Use
python setup.py install

Regards, D

On Dec 16, 2:27 pm, Neal Becker <[EMAIL PROTECTED]> wrote:
> What do I need to do?  I have numpy, scipy (Fedora F8)
>
>  cdopenopt/
> [EMAIL PROTECTED] python setup.py build
> running build
> running config_cc
> unifing config_cc, config, build_clib, build_ext, build commands --compiler 
> options
> running config_fc
> unifing config_fc, config, build_clib, build_ext, build commands --fcompiler 
> options
> running build_py
> creating build
> creating build/lib
> creating build/lib/scikits
> copying scikits/__init__.py -> build/lib/scikits
> creating build/lib/scikits/openopt
> copying scikits/openopt/__init__.py -> build/lib/scikits/openopt
> copying scikits/openopt/info.py -> build/lib/scikits/openopt
> copying scikits/openopt/oo.py -> build/lib/scikits/openopt
> Traceback (most recent call last):
>   File "setup.py", line 101, in 
> import scikits
> ImportError: No module named scikits

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: why this error?

2007-12-17 Thread Gabriel Genellina
En Mon, 17 Dec 2007 02:45:34 -0300, python.jiang <[EMAIL PROTECTED]>  
escribi�:

> thanks all first. but i had one class bellow to get object info what  
> user had inputed when run application. because the problem that i had  
> showed yestoday, i must write the code so hard to understand.
> can any friend tell me one way to solve this problem?
> thanks!!

You can import a module using __import__, and from the returned module  
object obtain all the info you want using getattr.
Don't use eval - write your code as if such function didn't exist.
And don't use global variables either - you have defined a class, use its  
attributes and methods!

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Re: in-client web server

2007-12-17 Thread [EMAIL PROTECTED]
I've done something reasonably similar using CherryPy as the
webserver.  The main application I wrote stored data in a sqlite3
database.  A separate thread then ran the CherryPy server process.
Each web browser call is mapped (by CherryPy) to a class method which
dealt with connecting to the sqlite3 database, collecting the
appropriate data and then generating the page.  You can have much
tighter integration between the webserver and the application if
required.  I found cherrytemplate to be a usable and lightweight HTML
page templating system that was appropriate for what I wanted but
there are lots of others.

I haven't gone down the full AJAX/DHTML line with CherryPy but from
what I've seen of it, it seems quite capable of delivering.  Neither
have I come across any issues with firewalls or proxy configurations -
I just set CherryPy to bind to 127.0.0.1 at a suitably high port
number and it's always worked so far.

  Matthew.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: free video lessons on 12 computer Science Courses

2007-12-17 Thread MonkeeSage
On Dec 17, 3:13 am, AK444 <[EMAIL PROTECTED]> wrote:
> Hi Guys,  Good news is that as many as 12 courses from top
> universities are providing free video lessons  
> http://freevideolectures.com/ComputerScience/
> on all the basic courses. All you need to have is Real Player
> installed on your PC.
>
> I think it is useful to you

Lots of fun A/V at the Berkeley webcast page also:

http://webcast.berkeley.edu/courses.php?semesterid=21

Regards,
Jordan
-- 
http://mail.python.org/mailman/listinfo/python-list


Deleting lines from a file

2007-12-17 Thread Horacius ReX
Hi,

I need to write a program which reads an external text file. Each time
it reads, then it needs to delete some lines, for instance from second
line to 55th line. The file is really big, so what do you think is the
fastest method to delete specific lines in a text file ?

Thanks

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Diez B. Roggisch
Horacius ReX wrote:

> Hi,
> 
> I need to write a program which reads an external text file. Each time
> it reads, then it needs to delete some lines, for instance from second
> line to 55th line. The file is really big, so what do you think is the
> fastest method to delete specific lines in a text file ?

Not using a file but a database instead. If that's not possible, you can't
do anything but open/read/filter/write - filesystems (at least not the
known ones) don't support random deletion.

Diez
-- 
http://mail.python.org/mailman/listinfo/python-list


arrays in lists

2007-12-17 Thread Peter Stahlir
Hi!

I have a list of arrays and want to find an array with list.index(x).
Is that possible. I get an
ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()


For example:
from numpy import array
a = array([1])
b = array([2])
c = [a,b]
d = c.index(a)

Thank you.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Larry Bates
Horacius ReX wrote:
> Hi,
> 
> I need to write a program which reads an external text file. Each time
> it reads, then it needs to delete some lines, for instance from second
> line to 55th line. The file is really big, so what do you think is the
> fastest method to delete specific lines in a text file ?
> 
> Thanks
> 
One way would be to "mark" the lines as being deleted by either:

1) replacing them with some known character sequence that you treat as deleted.
This assumes that the lines are long enough.

or

2) by keeping a separate dictionary that holds line numbers and deleteflag. 
Pickle and dump this dictionary before program execution ends.  Load it at 
program execution beginning.

deletedFlags={1:False, 2: True, ...}

def load():
 pFiles="deletedLines.toc"
 fp=open(pFiles, 'wb')
 deletedFlags=pickle.dump(fp)
 fp.close()


def dump(deletedFlags):
 pFiles="deletedLines.toc"
 fp=open(pFiles, 'rb')
 pickle.dump(deletedFlags, fp)
 fp.close()

Caveats:

1) you must write EXACTLY the same number of bytes (padded with spaces, etc.) 
on 
top of deleted lines.  This method doesn't work if any of the lines
are so short they don't support your  flag string.

2) You must be very careful to maintain consistency of the deletedFlags 
dictionary and the data file (by using try/except/finally around your entire 
process).

Personally I would employ method #2 and periodically "pack" the file with a 
separate process.  That could run unattended (e.g. at night). Or, if I did this 
a lot, I would use a database instead.

-Larry
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Michael Bentley

On Dec 17, 2007, at 5:34 AM, Horacius ReX wrote:

> I need to write a program which reads an external text file. Each time
> it reads, then it needs to delete some lines, for instance from second
> line to 55th line. The file is really big, so what do you think is the
> fastest method to delete specific lines in a text file ?

AFAIK, there really isn't much you can do to *speed* the reading and  
writing of the large text file.  But maybe you can avoid doing it too  
much.  If you must make many changes it might help to just keep a list  
of lines to consider "deleted" -- and write the modified file out later.

hth,
Michael

---
"I use tuples simply because of their mellifluous appellation." --Neil  
Cerutti



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Horacius ReX
and regardless of the speed, what do you think would be the best
method to do this ?





Michael Bentley wrote:
> On Dec 17, 2007, at 5:34 AM, Horacius ReX wrote:
>
> > I need to write a program which reads an external text file. Each time
> > it reads, then it needs to delete some lines, for instance from second
> > line to 55th line. The file is really big, so what do you think is the
> > fastest method to delete specific lines in a text file ?
>
> AFAIK, there really isn't much you can do to *speed* the reading and
> writing of the large text file.  But maybe you can avoid doing it too
> much.  If you must make many changes it might help to just keep a list
> of lines to consider "deleted" -- and write the modified file out later.
>
> hth,
> Michael
>
> ---
> "I use tuples simply because of their mellifluous appellation." --Neil
> Cerutti
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: arrays in lists

2007-12-17 Thread bcroq
On 17 déc, 14:05, "Peter Stahlir" <[EMAIL PROTECTED]>
wrote:
> For example:
> from numpy import array
> a = array([1])
> b = array([2])
> c = [a,b]
> d = c.index(a)

No problem here, Python 2.4.4
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: int vs long

2007-12-17 Thread Nick Craig-Wood
Gabriel Genellina <[EMAIL PROTECTED]> wrote:
>  En Sun, 16 Dec 2007 20:28:02 -0300, Troels Thomsen <"nej  
>  tak..."@bag.python.org> escribi?:
> 
> >
> > The readFile function from the win32 package aparently really expect an
> > integer :
> >
> > def inWaiting(self):
> > """Returns the number of bytes waiting to be read"""
> > flags, comstat = ClearCommError(self.__handle)
> > return comstat.cbInQue
> >
> > ReadFile(h, s.inWaiting())
> >
> > My code crashes because inWaiting returns a long, not an int
> 
>  That's very strange. The cbInQue field is a DWORD in C, seen as an int in  
>  Python. How do you know it returns a long?
> 
> > Why is that different on my machine and my collegues ? Have I or he
> > installed a wrong version of a package?
> > CPython 2.5.
> 
>  And pywin32 build 210, I presume.
> 
> > Was not expecting int<->long type problems in excactly python language.
> > Is that because we are navigating so close to the win32 api that the  
> > types
> > are more strictly enforced ?
> 
>  Somewhat. At the API level, function arguments have to be converted to  
>  native C types, like ReadFile expecting a DWORD. Any number greater than  
>  2**32 won't fit, but I can't think how such thing could happen looking at  
>  those few posted code lines.

Actually any number >= 2**31 won't fit in a python int.

  >>> 2**31
  2147483648L

According to my headers DWORD is defined like this

  typedef unsigned long DWORD;

So you might see longs returned when you expected ints if the result
was >= 0x800.

-- 
Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Tim Chase
> I need to write a program which reads an external text file. Each time
> it reads, then it needs to delete some lines, for instance from second
> line to 55th line. The file is really big, so what do you think is the
> fastest method to delete specific lines in a text file ?

Generally, with files that are "really big", you either want to 
edit them in place (which takes a database-type structure), or 
you need to stream through the file a line/window at a time, 
dumping the output to a temporary output file.  The *nix tool for 
this job is sed:

   sed '2,55d' infile.txt > outfile.txt

(it doesn't get much more consise than this).

That's about the same as the following in Python

   out = file('outfile.txt', 'w')
   for i, line in enumerate(file('infile.txt')):
 if 1 < i < 54: continue
 out.write(line)
   out.close()

If you want it "in place", sed will do the output file and 
renaming for you with

   sed -i '2,55d' file.txt

whereas in the Python variant, you'd have to then use the 
os.rename call to move outfile.txt to infile.txt

The Python version is a bit more flexible, as you can add other 
logic to change your bounds.  Not that sed isn't flexible, but it 
starts getting unreadible very quickly as logic grows.

-tkc


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Neil Cerutti
On 2007-12-17, Gabriel Genellina <[EMAIL PROTECTED]> wrote:
> On 16 dic, 06:40, Lie <[EMAIL PROTECTED]> wrote:
>> [btw, off topic, in music, isn't 1/4 and 2/8 different? I'm not very
>> keen of music though, so correct me if I'm wrong.]
>
> As a time signature 1/4 has no sense, but 3/4 and 6/8 are
> different things. In the standard musical notation both numbers
> are written one above the other, and no "division" line is
> used. Note that they just *look* like a fraction when written
> in text form, like here, because it's not easy to write one
> above the other. 3/4 is read as "three by four", not "three
> quarters" -at least in my country- so there is even less
> confussion.

Time signatures are crap. They should have switched to a number
over a note value a long time ago; we could have easily avoided
abominable travesties like the time signature on the 2nd
movement of Beethoven's 9th (B needed four over dotted quarter). If
music notation had been invented by a computer scientist we
wouldn't be stuck in the current mess in which 6/8 means two
completely different meters (3 over quarter, or 2 over dotted
quarter).

And... er... Python doesn't need a time signature data type. But
rationals would be quite nifty. ;-)

-- 
Neil Cerutti
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Diez B. Roggisch
Horacius ReX wrote:

> and regardless of the speed, what do you think would be the best
> method to do this ?

Without more information about the contents of the file and who's reading
them, we can't say more.

if the reader is not under your control & doesn't deal with deletion-marks
or anything such in the file, you can't do anything but really delete the
lines.

If you can control it, it depends on how you process the file - has it fixed
line length, or not, and so forth. Because you need to use seek to position
the file-pointer to the proper location in the file to write a deletion
mark, but to do so you of course need to determine it first - and that will
need to be done in a two-pass apporach most probably.

Diez
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Finite State Machine GUI editor in python?

2007-12-17 Thread MonkeeSage
On Dec 16, 1:55 am, "Hendrik van Rooyen" <[EMAIL PROTECTED]> wrote:
> I have spent some time googling and on wiki and came up with
> pyFSA in python. It may end up being useful, but it is not directly
> what I am looking for, as there is no GUI that I can see.
>
> I know about SMC, but it is not Python, and I can't find the gui.
>
> This looks good, but it seems to be in a Latin based language
> and I am linguistically challenged:
>
> http://www.ucse.edu.ar/fma/sepa/edt.htm
>
> I am looking for a similar front end, going from pretty pictures of
> state diagrams to some sort of state machine descriptor language
> or specification file, and I am not very fussy about the format of
> the output at this stage.
>
> Does anyone know of such an animal that is FOSS? - if written in
> Python it will be a bonus!
>
> It will also help if its in a language I can understand.  : - (
>
> - Hendrik

This looks interesting (and GPL'd :)

http://www46.homepage.villanova.edu/timothy.m.white/ [java]

Regards,
Jordan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Vladimir Rusinov
On 12/17/07, Horacius ReX <[EMAIL PROTECTED]> wrote:
>
> and regardless of the speed, what do you think would be the best
> method to do this ?
>

use sqlite

-- 
Vladimir Rusinov
GreenMice Solutions: IT-решения на базе Linux
http://greenmice.info/
-- 
http://mail.python.org/mailman/listinfo/python-list

Static linking of python and pyqt

2007-12-17 Thread Markus Dahlbokum
Hello,

I'm trying to link python statically with qt and pyqt. I've tried this in 
several ways but never succeeded. At the moment the final make runs without 
errors but I get import errors when accessing pyqt.
How can I solve this problem?

Markus

# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /opt/python-2.4.4/lib/python2.4/site.pyc 
matches /opt/python-2.4.4/lib/python2.4/site.py
import site # precompiled from /opt/python-2.4.4/lib/python2.4/site.pyc
# /opt/python-2.4.4/lib/python2.4/os.pyc 
matches /opt/python-2.4.4/lib/python2.4/os.py
import os # precompiled from /opt/python-2.4.4/lib/python2.4/os.pyc
import posix # builtin
# /opt/python-2.4.4/lib/python2.4/posixpath.pyc 
matches /opt/python-2.4.4/lib/python2.4/posixpath.py
import posixpath # precompiled 
from /opt/python-2.4.4/lib/python2.4/posixpath.pyc
# /opt/python-2.4.4/lib/python2.4/stat.pyc 
matches /opt/python-2.4.4/lib/python2.4/stat.py
import stat # precompiled from /opt/python-2.4.4/lib/python2.4/stat.pyc
# /opt/python-2.4.4/lib/python2.4/UserDict.pyc 
matches /opt/python-2.4.4/lib/python2.4/UserDict.py
import UserDict # precompiled 
from /opt/python-2.4.4/lib/python2.4/UserDict.pyc
# /opt/python-2.4.4/lib/python2.4/copy_reg.pyc 
matches /opt/python-2.4.4/lib/python2.4/copy_reg.py
import copy_reg # precompiled 
from /opt/python-2.4.4/lib/python2.4/copy_reg.pyc
# /opt/python-2.4.4/lib/python2.4/types.pyc 
matches /opt/python-2.4.4/lib/python2.4/types.py
import types # precompiled from /opt/python-2.4.4/lib/python2.4/types.pyc
# /opt/python-2.4.4/lib/python2.4/warnings.pyc 
matches /opt/python-2.4.4/lib/python2.4/warnings.py
import warnings # precompiled 
from /opt/python-2.4.4/lib/python2.4/warnings.pyc
# /opt/python-2.4.4/lib/python2.4/linecache.pyc 
matches /opt/python-2.4.4/lib/python2.4/linecache.py
import linecache # precompiled 
from /opt/python-2.4.4/lib/python2.4/linecache.pyc
import encodings # directory /opt/python-2.4.4/lib/python2.4/encodings
# /opt/python-2.4.4/lib/python2.4/encodings/__init__.pyc 
matches /opt/python-2.4.4/lib/python2.4/encodings/__init__.py
import encodings # precompiled 
from /opt/python-2.4.4/lib/python2.4/encodings/__init__.pyc
# /opt/python-2.4.4/lib/python2.4/codecs.pyc 
matches /opt/python-2.4.4/lib/python2.4/codecs.py
import codecs # precompiled from /opt/python-2.4.4/lib/python2.4/codecs.pyc
import _codecs # builtin
# /opt/python-2.4.4/lib/python2.4/encodings/aliases.pyc 
matches /opt/python-2.4.4/lib/python2.4/encodings/aliases.py
import encodings.aliases # precompiled 
from /opt/python-2.4.4/lib/python2.4/encodings/aliases.pyc
# /opt/python-2.4.4/lib/python2.4/encodings/utf_8.pyc 
matches /opt/python-2.4.4/lib/python2.4/encodings/utf_8.py
import encodings.utf_8 # precompiled 
from /opt/python-2.4.4/lib/python2.4/encodings/utf_8.pyc
Python 2.4.4 (#1, Dec  7 2007, 11:16:51)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import QtCore
import QtCore # builtin
import sip # builtin
Traceback (most recent call last):
  File "", line 1, in ?
SystemError: _PyImport_FixupExtension: module QtCore not loaded
>>> import sys
>>> print sys.builtin_module_names
('QtCore', 'QtGui', '__builtin__', '__main__', '_codecs', '_sre', '_symtable', 
'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sip', 
'sys', 'thread', 'time', 'xxsubtype', 'zipimport')
>>>
# clear __builtin__._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2
# clear sys.exitfunc
# clear sys.exc_type
# clear sys.exc_value
# clear sys.exc_traceback
# clear sys.last_type
# clear sys.last_value
# clear sys.last_traceback
# clear sys.path_hooks
# clear sys.path_importer_cache
# clear sys.meta_path
# restore sys.stdin
# restore sys.stdout
# restore sys.stderr
# cleanup __main__
# cleanup[1] site
# cleanup[1] encodings
# cleanup[1] _codecs
# cleanup[1] zipimport
# cleanup[1] PyQt4.QtCore
# cleanup[1] warnings
# cleanup[1] encodings.utf_8
# cleanup[1] codecs
# cleanup[1] types
# cleanup[1] signal
# cleanup[1] linecache
# cleanup[1] posix
# cleanup[1] encodings.aliases
# cleanup[1] exceptions
# cleanup[2] copy_reg
# cleanup[2] sip
# cleanup[2] posixpath
# cleanup[2] os.path
# cleanup[2] stat
# cleanup[2] UserDict
# cleanup[2] os
# cleanup sys
# cleanup __builtin__
# cleanup ints: 7 unfreed ints in 1 out of 3 blocks
# cleanup floats
-- 
http://mail.python.org/mailman/listinfo/python-list


checking for negative values in a list

2007-12-17 Thread vimal
hi all,
-- 
http://mail.python.org/mailman/listinfo/python-list


checking for negative values in a list

2007-12-17 Thread vimal
hi all,

i am new to python guys.
   hope u will help me with this

   i have a list of numbers

  say a = [1,-1,3,-2,4,-6]

  how should i check for negative values in the list
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: programming container object

2007-12-17 Thread Paul McGuire
On Dec 17, 2:31 am, Paul McGuire <[EMAIL PROTECTED]> wrote:
> On Dec 17, 1:18 am, "bambam" <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > I wish to create a generic container object, devlist, such that
>
> > devlist.method(arguments)
>
> > runs as
>
> > for each dev in devlist.pool:
> > dev.method(arguments)
>
> > and
> > s = devlist.method(arguments)
>
> > runs as
>
> > for each dev in devlist.pool:
> > s.append(dev.method(arguments))
>
> > ...but it is outside my ability to do so.
>
> > Can anyone provide an example of how to do that?
>
> > Thanks,
> > Steve
>
> Ok, I'll take a stab at it.
>
> -- Paul
>
> class DevList(object):
> def __init__(self, objs):
> self.devpool = objs
>
> def __getattribute__(self,attrname):
> if attrname == "devpool":
> return object.__getattribute__(self,attrname)
> def ret(*args):
> return [ getattr(p,attrname)(*args) for p in
> self.devpool ]
> return ret
>
> dl = DevList([1,2,3])
> print dl.__str__()
>
> prints:
>
> ['1', '2', '3']- Hide quoted text -
>
> - Show quoted text -

Here's some expanded demo code for the previously-posted DevList
class:

from math import sqrt

class NumberWrapper(object):
def __init__(self,value=0):
self.value = value

def inverse(self):
if self.value != 0:
return 1.0/self.value
else:
return None

def sqrt(self):
return sqrt(self.value)

def incrBy(self,offset):
self.value += offset
return self.value

dl = DevList([NumberWrapper(i) for i in range(5)])
print dl.sqrt()
print dl.inverse()
print dl.incrBy(10)
print dl.sqrt()
print dl.inverse()

prints:

[0.0, 1.0, 1.4142135623730951, 1.7320508075688772, 2.0]
[None, 1.0, 0.5, 0.1, 0.25]
[10, 11, 12, 13, 14]
[3.1622776601683795, 3.3166247903553998, 3.4641016151377544,
3.6055512754639891, 3.7416573867739413]
[0.10001, 0.090909090909090912, 0.083329,
0.076923076923076927, 0.071428571428571425]

-- Paul
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: checking for negative values in a list

2007-12-17 Thread Marc 'BlackJack' Rintsch
On Mon, 17 Dec 2007 06:20:23 -0800, vimal wrote:

>i have a list of numbers
> 
>   say a = [1,-1,3,-2,4,-6]
> 
>   how should i check for negative values in the list

In [6]: a = [1, -1, 3, -2, 4, -6]

In [7]: any(n < 0 for n in a)
Out[7]: True

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: checking for negative values in a list

2007-12-17 Thread Tim Chase
> i am new to python guys.
>i have a list of numbers
> 
>   say a = [1,-1,3,-2,4,-6]
> 
>   how should i check for negative values in the list

I'm not sure if this is a homework problem, as it seems to be a 
fairly simple programming problem whether you know Python or not.

If you're using 2.5 or more recent, you should be able to do 
something like

   if any(x < 0 for x in a):
 yep()
   else:
 nope()

If "a" is small, you could do

   if [x for x in a if x < 0]:
 yep()
   else:
 nope()

Or you could write your own function:

   def has_negatives(iterable):
 for x in iterable:
   if x < 0: return True
 return False

   if has_negatives(a):
 yep()
   else:
 nope()

-tkc


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: checking for negative values in a list

2007-12-17 Thread vimal
thanks for your help Tim and Marc.
:)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: free video lessons on 12 computer Science Courses

2007-12-17 Thread MonkeeSage
On Dec 17, 6:12 am, MonkeeSage <[EMAIL PROTECTED]> wrote:
> On Dec 17, 3:13 am, AK444 <[EMAIL PROTECTED]> wrote:
>
> > Hi Guys,  Good news is that as many as 12 courses from top
> > universities are providing free video lessons  
> > http://freevideolectures.com/ComputerScience/
> > on all the basic courses. All you need to have is Real Player
> > installed on your PC.
>
> > I think it is useful to you
>
> Lots of fun A/V at the Berkeley webcast page also:
>
> http://webcast.berkeley.edu/courses.php?semesterid=21
>
> Regards,
> Jordan

And not forgetting Sussman-Abelson lectures...

http://www.archive.org/details/mit_ocw_sicp

Regards,
Jordan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deleting lines from a file

2007-12-17 Thread Michael Bentley

On Dec 17, 2007, at 6:25 AM, Horacius ReX wrote:

> and regardless of the speed, what do you think would be the best
> method to do this ?


The first thing I'd look into is reading the whole file into memory,  
making all the deletions, and finally writing it out.  But you said  
the file is big, so here's a quick stab at it (with multiple read  
passes and a single write):

import string
rm = []

#first pass through file -- mark some lines for deletion
for line, text in enumerate(file('words')):
 if text[0] in string.uppercase:
 rm.append(line)

#second pass -- mark lines with 'e' for deletion
for line, text in enumerate(file('words')):
 if line in rm:
 print 'skipping %s' % line
 continue
 if 'e' in text:
 rm.append(line)

# now write the modified file
print 'Writing %d of %d lines' % (len(rm), line)
outFile = file('newWords', 'w')
for line, text in enumerate(file('words')):
 if line not in rm:
 outFile.write(text)

hth,
Michael

---
Simplicity is the ultimate sophistication. -Leonardo da Vinci



-- 
http://mail.python.org/mailman/listinfo/python-list


Debugging pipe IPC

2007-12-17 Thread Jim B. Wilson
I have the mother (of all) application(s, written in C++) that 
occasionally outsources certain tasks to a child Python script.  The 
mother fork/execs (or equivalent) the child and then begins serving the 
child's requests.

The child/client sends requests on its stdout and receives responses on 
stdin.  The interaction is facilitated by a Pyrex extension which handles 
the lower-level aspects of the conversation and exposes a few functions 
and classes to the script.

This part works peachy keen, but debugging has so far been via 
print>>stderr-and-scratch-head.

On a contemplative bike ride one day, I imagined how neat it would be to 
run interactively.  On returning, I began to experiment with rebinding 
sys.stdin and sys.stdout to /dev/tty, using the "-i" command-line switch, 
etc. to see if I could devise a child that prompted me with ">>>" and 
allowed me to compose/test small snippets on the terminal.  So far, no 
joy.

Is this possible?  If so, can someone nudge me toward a solution or 
better yet a recipe?

Jim Wilson
Gainesville, FL





-- 
http://mail.python.org/mailman/listinfo/python-list


Free LINUX Tips and Triks - Building Interactive Movie With Ming

2007-12-17 Thread rada . lambretha
Free LINUX Tips and Triks - Building Interactive Movie With Ming

001. Linux What are the benefits of Linux
002. Which Linux distribution should I use
003. Linux redhat network programming
004. LINUX Using Open Source APIs to Save Time
005. LINUX TIPS - Uploading a File with a Simple Program Using libcurl
006. LINUX TIPS - Using the libcurl Library C Programming
007. LINUX TIPS - Building a Simple Flash Movie with Ming
008. LINUX TIPS - Building Interactive Movies with Ming
009. Configuring Linux as a Firewall

 and many more articles. You can read and download at
http://www.network.79br.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to generate pdf file from an html page??

2007-12-17 Thread Grant Edwards
On 2007-12-16, abhishek <[EMAIL PROTECTED]> wrote:

> Hi everyone, I am trying to generate a PDF printable format file from
> an html page. Is there a way to do this using python. If yes then
> which library and functions are required and if no then reasons why it
> cant be done.

Here's one way:

--html2pdf.py
#!/usr/bin/python
import os,sys

inputFilename,outputFilename = sys.argv[1:3]

os.system("w3m -dump %s | a2ps -B --borders=no | ps2pdf - %s" % 
(inputFilename,outputFilename))
-

-- 
Grant Edwards   grante Yow! Someone in DAYTON,
  at   Ohio is selling USED
   visi.comCARPETS to a SERBO-CROATIAN
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Greg Lindstrom
> > As a time signature 1/4 has no sense,


You've never played and Grainger, have you? :-)
--greg
-- 
http://mail.python.org/mailman/listinfo/python-list

is it possible to install 2 Python versions on windows XP ?

2007-12-17 Thread Stef Mientki
hello,

I'm currently using Python 2.4,
and I don't dare to switch to 2.5,
because I depend heavily on Scipy, which is based on 2.4

To test some other Python programs I need Python version 2.5.
I've tried to install 2.5 in the past,
but got a lot of trouble trying to uninstall it to go back to 2.4.

Is there a safe way to install Python 2.5,
without affecting the Python 2.4 version and  the windows registry,
on windows XP ?

thanks,
Stef Mientki
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: is it possible to install 2 Python versions on windows XP ?

2007-12-17 Thread Dan
On Dec 17, 11:07 am, Stef Mientki <[EMAIL PROTECTED]>
wrote:
> hello,
>
> I'm currently using Python 2.4,
> and I don't dare to switch to 2.5,
> because I depend heavily on Scipy, which is based on 2.4
>
> To test some other Python programs I need Python version 2.5.
> I've tried to install 2.5 in the past,
> but got a lot of trouble trying to uninstall it to go back to 2.4.
>
> Is there a safe way to install Python 2.5,
> without affecting the Python 2.4 version and  the windows registry,
> on windows XP ?
>
> thanks,
> Stef Mientki

I'm currently running 2.3 and 2.5 on the same XP system with no
problems. As I remember the installs didn't effect each other at all.

-Dan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: opposite of zip()?

2007-12-17 Thread Rich Harkins
[EMAIL PROTECTED] wrote:
> Given a bunch of arrays, if I want to create tuples, there is
> zip(arrays). What if I want to do the opposite: break a tuple up and
> append the values to given arrays:
>map(append, arrays, tupl)
> except there is no unbound append() (List.append() does not exist,
> right?).
> 

list.append does exist (try the lower-case flavor).

> Without append(), I am forced to write a (slow) explicit loop:
>   for (a, v) in zip(arrays, tupl):
>   a.append(v)
> 

Except that isn't technically the opposite of zip.  The opposite would
be a tuple of single-dimensional tuples:

def unzip(zipped):
"""
Given a sequence of size-sized sequences, produce a tuple of tuples
that represent each index within the zipped object.

Example:
>>> zipped = zip((1, 2, 3), (4, 5, 6))
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> unzip(zipped)
((1, 2, 3), (4, 5, 6))
"""
if len(zipped) < 1:
raise ValueError, 'At least one item is required for unzip.'
indices = range(len(zipped[0]))
return tuple(tuple(pair[index] for pair in zipped)
 for index in indices)

This is probably not the most efficient hunk of code for this but this
would seem to be the correct behavior for the opposite of zip and it
should scale well.

Modifying the above with list.extend would produce a variant closer to
what I think you're asking for:

def unzip_extend(dests, zipped):
"""
Appends the unzip versions of zipped into dests.  This avoids an
unnecessary allocation.

Example:
>>> zipped = zip((1, 2, 3), (4, 5, 6))
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> dests = [[], []]
>>> unzip_extend(dests, zipped)
>>> dests
[[1, 2, 3], [4, 5, 6]]
"""
if len(zipped) < 1:
raise ValueError, 'At least one item is required for unzip.'
for index in range(len(zipped[0])):
dests[index].extend(pair[index] for pair in zipped)

This should perform pretty well, as extend with a comprehension is
pretty fast.  Not that it's truly meaningful, here's timeit on my 2GHz
laptop:

bash-3.1$ python -m timeit -s 'import unzip; zipped=zip(range(1024),
range(1024))' 'unzip.unzip_extend([[], []], zipped)'
1000 loops, best of 3: 510 usec per loop

By comparison, here's the unzip() version above:

bash-3.1$ python -m timeit -s 'import unzip; zipped=zip(range(1024),
range(1024))' 'unzip.unzip(zipped)'
1000 loops, best of 3: 504 usec per loop

Rich

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: is it possible to install 2 Python versions on windows XP ?

2007-12-17 Thread Tim Golden
Dan wrote:
> On Dec 17, 11:07 am, Stef Mientki <[EMAIL PROTECTED]>
> wrote:
>> hello,
>>
>> I'm currently using Python 2.4,
>> and I don't dare to switch to 2.5,
>> because I depend heavily on Scipy, which is based on 2.4
>>
>> To test some other Python programs I need Python version 2.5.
>> I've tried to install 2.5 in the past,
>> but got a lot of trouble trying to uninstall it to go back to 2.4.
>>
>> Is there a safe way to install Python 2.5,
>> without affecting the Python 2.4 version and  the windows registry,
>> on windows XP ?
>>
>> thanks,
>> Stef Mientki
> 
> I'm currently running 2.3 and 2.5 on the same XP system with no
> problems. As I remember the installs didn't effect each other at all.

Generally, subsequent installs will offer the possibility of
associating themselves with the .py extension. I just deselect
this on the .msi options screen -- or go back in and reset the
association later if I need to -- and I have run about 5 different
versions for compatibility testing without any problems. I'm
currently running 2.2, 2.4, 2.5 and the svn head. 2.5 is the
default (ie associated with .py files and with its scripts folder
on the system PATH).

TJG
-- 
http://mail.python.org/mailman/listinfo/python-list


"Suite of the imaginary beings" now complete for free download!

2007-12-17 Thread ubumusic
You can dowload the complete Suite from Ubú's new blog:
http://ubumusic.blogspot.com/
Thanks, & greetings
-- 
http://mail.python.org/mailman/listinfo/python-list


ANN: Leo 4.4.6 beta 1 released

2007-12-17 Thread Edward K Ream
Leo 4.4.6 beta 1 is available at:
http://sourceforge.net/project/showfiles.php?group_id=3458&package_id=29106

Leo 4.4.6 fixes several recently reported bugs, all minor.

Leo is a text editor, data organizer, project manager and much more. See:
http://webpages.charter.net/edreamleo/intro.html

The highlights of Leo 4.4.6:

- Fixes all known bugs.
- Added @auto importers for javascript and xml files.
- Added find-next-clone and toggle-sparse-move commands.

Links:
--
Leo:  http://webpages.charter.net/edreamleo/front.html
Home: http://sourceforge.net/projects/leo/
Download: http://sourceforge.net/project/showfiles.php?group_id=3458
CVS:  http://leo.tigris.org/source/browse/leo/
Quotes:   http://webpages.charter.net/edreamleo/testimonials.html

Edward K. Ream   email:  [EMAIL PROTECTED]
Leo: http://webpages.charter.net/edreamleo/front.html




-- 
http://mail.python.org/mailman/listinfo/python-list


Re: opposite of zip()?

2007-12-17 Thread Matt Nordhoff
Rich Harkins wrote:
> [EMAIL PROTECTED] wrote:
>> Given a bunch of arrays, if I want to create tuples, there is
>> zip(arrays). What if I want to do the opposite: break a tuple up and
>> append the values to given arrays:
>>map(append, arrays, tupl)
>> except there is no unbound append() (List.append() does not exist,
>> right?).
>>
> 
> list.append does exist (try the lower-case flavor).
> 
>> Without append(), I am forced to write a (slow) explicit loop:
>>   for (a, v) in zip(arrays, tupl):
>>   a.append(v)
>>
> 
> Except that isn't technically the opposite of zip.  The opposite would
> be a tuple of single-dimensional tuples:
> 
> def unzip(zipped):
> """
> Given a sequence of size-sized sequences, produce a tuple of tuples
> that represent each index within the zipped object.
> 
> Example:
> >>> zipped = zip((1, 2, 3), (4, 5, 6))
> >>> zipped
> [(1, 4), (2, 5), (3, 6)]
> >>> unzip(zipped)
> ((1, 2, 3), (4, 5, 6))
> """
> if len(zipped) < 1:
> raise ValueError, 'At least one item is required for unzip.'
> indices = range(len(zipped[0]))
> return tuple(tuple(pair[index] for pair in zipped)
>  for index in indices)
> 
> This is probably not the most efficient hunk of code for this but this
> would seem to be the correct behavior for the opposite of zip and it
> should scale well.
> 
> Modifying the above with list.extend would produce a variant closer to
> what I think you're asking for:
> 
> def unzip_extend(dests, zipped):
> """
> Appends the unzip versions of zipped into dests.  This avoids an
> unnecessary allocation.
> 
> Example:
> >>> zipped = zip((1, 2, 3), (4, 5, 6))
> >>> zipped
> [(1, 4), (2, 5), (3, 6)]
> >>> dests = [[], []]
> >>> unzip_extend(dests, zipped)
> >>> dests
> [[1, 2, 3], [4, 5, 6]]
> """
> if len(zipped) < 1:
> raise ValueError, 'At least one item is required for unzip.'
> for index in range(len(zipped[0])):
> dests[index].extend(pair[index] for pair in zipped)
> 
> This should perform pretty well, as extend with a comprehension is
> pretty fast.  Not that it's truly meaningful, here's timeit on my 2GHz
> laptop:
> 
> bash-3.1$ python -m timeit -s 'import unzip; zipped=zip(range(1024),
> range(1024))' 'unzip.unzip_extend([[], []], zipped)'
> 1000 loops, best of 3: 510 usec per loop
> 
> By comparison, here's the unzip() version above:
> 
> bash-3.1$ python -m timeit -s 'import unzip; zipped=zip(range(1024),
> range(1024))' 'unzip.unzip(zipped)'
> 1000 loops, best of 3: 504 usec per loop
> 
> Rich

As Paddy wrote, zip is its own unzip:

>>> zipped = zip((1, 2, 3), (4, 5, 6))
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> unzipped = zip(*zipped)
>>> unzipped
[(1, 2, 3), (4, 5, 6)]

Neat and completely confusing, huh? :-)


-- 
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Debugging pipe IPC

2007-12-17 Thread Ian Clark
Jim B. Wilson wrote:
> I have the mother (of all) application(s, written in C++) that 
> occasionally outsources certain tasks to a child Python script.  The 
> mother fork/execs (or equivalent) the child and then begins serving the 
> child's requests.
> 
> The child/client sends requests on its stdout and receives responses on 
> stdin.  The interaction is facilitated by a Pyrex extension which handles 
> the lower-level aspects of the conversation and exposes a few functions 
> and classes to the script.
> 
> This part works peachy keen, but debugging has so far been via 
> print>>stderr-and-scratch-head.
> 
> On a contemplative bike ride one day, I imagined how neat it would be to 
> run interactively.  On returning, I began to experiment with rebinding 
> sys.stdin and sys.stdout to /dev/tty, using the "-i" command-line switch, 
> etc. to see if I could devise a child that prompted me with ">>>" and 
> allowed me to compose/test small snippets on the terminal.  So far, no 
> joy.
> 
> Is this possible?  If so, can someone nudge me toward a solution or 
> better yet a recipe?
> 
> Jim Wilson
> Gainesville, FL

You're looking for the cmd module. 


Ian Clark

-- 
http://mail.python.org/mailman/listinfo/python-list


Getting al classes inside a package

2007-12-17 Thread Matias Surdi
How can I get all the clasess inside a package (including it subpackages) ?

for example, I have a package with classes A and B and with a subpackage 
wichs has class C.

How can I get a list (and a path) of the classes that exists under the 
root package ?


Thanks a lot!

-- 
http://mail.python.org/mailman/listinfo/python-list


Using 'property' in evolving code

2007-12-17 Thread Steven Clark
Hi all-
I was reading http://dirtsimple.org/2004/12/python-is-not-java.html, in
particular the part about "getters and setters are evil":
"In Java, you have to use getters and setters because using public fields
gives you no opportunity to go back and change your mind later to using
getters and setters. So in Java, you might as well get the chore out of the
way up front. In Python, this is silly, because you can start with a normal
attribute and change your mind at any time, without affecting any clients of
the class. So, don't write getters and setters."

I understand the idea behind this, but how does this transition work in
actuality?
Lets say I define class Foo initially as...

class Foo(object):
def __init__(self, x):
self.x = x

def get_sqrt(self):
return sqrt(self.x)

Fine. I can read from x, and write to x:
def test():
f = Foo(9)
print 'sqrt of', f.x, 'is', f.get_sqrt()
f.x = 16
print 'sqrt of', f.x, 'is', f.get_sqrt()

Let's say later on I decide that f.get_sqrt will be called far more often
than f.x is changed, and that it therefore makes sense to store the actual
sqrt in the class, rather than calling math.sqrt each time f.get_sqrt is
called. So I rewrite Foo:

class Foo(object):
def __init__(self, x):
self._x = x
self._my_root = sqrt(x)

def _set_x(self, x):
self._x = x
self._my_root = sqrt(x)

def get_sqrt(self):
return self._my_root

x = property(lambda self: self._x, _set_x)

External to the class, everything behaves as before, except with the benefit
of not having to wait for slow sqrt each time. self.x is now a property
rather than an attribute. Internal to the class, I have to search & replace
all old occurences of "self.x" with "self._x"? Otherwise there is a
collision between f.x the attribute and f.x the property?

Am I understanding this correctly?

Thanks!
-Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Using 'property' in evolving code

2007-12-17 Thread Chris Mellon
On Dec 17, 2007 11:48 AM, Steven Clark <[EMAIL PROTECTED]> wrote:
> Hi all-
> I was reading http://dirtsimple.org/2004/12/python-is-not-java.html, in
> particular the part about "getters and setters are evil":
>  "In Java, you have to use getters and setters because using public fields
> gives you no opportunity to go back and change your mind later to using
> getters and setters. So in Java, you might as well get the chore out of the
> way up front. In Python, this is silly, because you can start with a normal
> attribute and change your mind at any time, without affecting any clients of
> the class. So, don't write getters and setters."
>
> I understand the idea behind this, but how does this transition work in
> actuality?
> Lets say I define class Foo initially as...
>
> class Foo(object):
> def __init__(self, x):
> self.x = x
>
> def get_sqrt(self):
> return sqrt(self.x)
>
> Fine. I can read from x, and write to x:
> def test():
> f = Foo(9)
> print 'sqrt of', f.x, 'is', f.get_sqrt()
>  f.x = 16
> print 'sqrt of', f.x, 'is', f.get_sqrt()
>
> Let's say later on I decide that f.get_sqrt will be called far more often
> than f.x is changed, and that it therefore makes sense to store the actual
> sqrt in the class, rather than calling math.sqrt each time f.get_sqrt is
> called. So I rewrite Foo:
>
> class Foo(object):
> def __init__(self, x):
> self._x = x
> self._my_root = sqrt(x)
>
> def _set_x(self, x):
> self._x = x
> self._my_root = sqrt(x)
>
> def get_sqrt(self):
> return self._my_root
>
> x = property(lambda self: self._x, _set_x)
>
> External to the class, everything behaves as before, except with the benefit
> of not having to wait for slow sqrt each time. self.x is now a property
> rather than an attribute. Internal to the class, I have to search & replace
> all old occurences of "self.x" with "self._x"? Otherwise there is a
> collision between f.x the attribute and f.x the property?
>

You only need to update uses of the attribute that *need* the raw
attribute, and not the property. Quite often these are just your (new)
getters and setters, as you see. There is no "collision" - properties
and (raw) attributes are accessed the same way. Any use of f.x will go
through the property.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python Exponent Question

2007-12-17 Thread Michael J. Fromberger
In article 
<[EMAIL PROTECTED]>,
 databyss <[EMAIL PROTECTED]> wrote:

> I have a simple program and the output isn't what I expect.  Could
> somebody please explain why?
> 
> Here's the code:
> 
> #simple program
> print "v = 2"
> v = 2
> print "v**v = 2**2 =", v**v
> print "v**v**v = 2**2**2 =", v**v**v
> print "v**v**v**v = 2**2**2**2 =", v**v**v**v
> #end program
> 
> Here's the output:
> 
> >>>
> v = 2
> v**v = 2**2 = 4
> v**v**v = 2**2**2 = 16
> v**v**v**v = 2**2**2**2 = 65536
> >>>
> 
> I would expect 2**2**2**2 to be 256

Python's ** operator associates to the right, not to the left; thus, 

  2 ** 2 ** 2 ** 2

... really means

  2 ** (2 ** (2 ** 2))

... and not

  ((2 ** 2) ** 2) ** 2

... as you seem to expect.  As usual, you can enforce different 
associations by explicitly including the parentheses.

Cheers,
-M

-- 
Michael J. Fromberger | Lecturer, Dept. of Computer Science
http://www.dartmouth.edu/~sting/  | Dartmouth College, Hanover, NH, USA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Newbie design problem

2007-12-17 Thread Jonathan Gardner
On Dec 14, 8:02 am, [EMAIL PROTECTED] wrote:
>
> Lex is very crude. I've found that it takes about half a day to
> organize your token definitions and another half day to write a
> tokenizer by hand. What's the point of the second half-day's work?
>

As someone who has earned a BS in Physics, I have learned one powerful
truth: No matter how smart you are, you are not as smart as everyone
else.

See, the scientific arena of Physics has gotten to the point where it
is because people carefully built on each other's work. They spend a
great deal of time trying to understand what everyone else is doing
and why they do it that way and not another way, and very little time
trying to outsmart each other. The brightest bulbs in the physics
community don't think they are the brightest bulbs. They are just
really good at understanding everyone else and putting it all
together. This is summed up in Isaac Newton's statement about seeing
farther because he has stood on the shoulders of giants.

The same applies to computer science. Either you can take a few days
and study about how parsers and lexers really work and why you need
them to make your life easier and which implementations are
worthwhile, or you can go off and do things on your own and learn the
hard way that everyone that went before you was really smarter than
you think you are. Five months later, maybe you will have made up the
time you would have "wasted" by reading a good booking on formal
languages, lexers, and parsers. At that point, you will opt to use one
of the existing libraries, perhaps even Bison and Flex.

It's your time that is at stake, man. Don't waste it trying to
reinvent the wheel, even if you think you need an upside-down one.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: MySQLdb syntax issues - HELP

2007-12-17 Thread John Nagle
Luke wrote:
> Bruno Desthuilliers wrote:
> 
>> Luke a écrit :
>  (snip)   
>>> cursor.execute("""
>>> CREATE TABLE %s
>>> (
>>>  name CHAR(40),
>>>  gender   CHAR(40),
>>>  job  CHAR(40),
>>>  levelTEXT,
>>>  str  TEXT,
>>>  dex  TEXT,
>>>  intelTEXT,
>>>  cha  TEXT,
>>>  luc  TEXT
>>> )
>>> """ % CharAccount)
>> Err... Are you sure you want a new table here ?
>  (snip)
> 
> yes, thats the easier way i can think of for now since i am so new to SQL,
> eventually im sure i will put all the characters into one larger table
> though... but for now i just dont feal like figuring out how to scan the
> table for the records i need based on name of character... ill save that
> for later. (unless there is a very easy way to do it that doesnt require
> re)

 That's the whole point of SQL.  You write a SELECT statement to
extract the records you want.  A SELECT statement can select on
multiple conditions in one statement, and this is done very efficiently.
Just add a "characcount" field to your record, use one database,
and use select statements like

cursor.execute("SELECT name, job FROM gamecharacters WHERE 
characcout=%", 
(charAccount,))

 and MySQL will do the rest.

 Your database searches will go much faster if you add some indexes.
Like

INDEX characcount,
INDEX name

And if you use add

UNIQUE INDEX name

no two characters can have the same name, even if they're from different
accounts.  If you wanted to allow duplicate names from the same account,
you could write

UNIQUE INDEX (name,characcount)

which requires that the combo of name and characcount be unique.
With that rule in the database, an INSERT that tries to insert
a duplicate name will raise an exception.

You're on the right track; you just need to understand more of what MySQL
can do for you.  Which is quite a lot.


John Nagle
-- 
http://mail.python.org/mailman/listinfo/python-list

SWIG & C Extensions, win32 & MinGW: undefined reference

2007-12-17 Thread newbie73

Going through the tutorial on http://swig.org, I created the example files
(pasted below).  After generating the _wrap file, I tried compiling (using
mingw32) and received a lot of undefined reference compiler errors:

..\build\temp.win32-2.5\Release\example_wrap.o:example_wrap.c:(.text+0x670f):
undefined reference to `_imp__PyExc_MemoryError'

there are many other similar errors all prefaced with _imp__Py, so I am
assuming there is a linker error with the python libraries.  I have adjusted
my PATH variable to include all the python directories (libs/dlls), so I am
unclear what else I can try.  Any suggestions?


FILES FROM TUTORIAL:


//example.c
#include 
double My_variable = 3.0;

int fact(int n) {
if (n <= 1) return 1;
else return n*fact(n-1);
}

int my_mod(int x, int y) {
return (x%y);
}
   
char *get_time()
{
time_t ltime;
time(

Re: urlparse.urlparse bug - FIX/IN TRACKER

2007-12-17 Thread John Nagle
John Nagle wrote:
> Here's a hostile URL that "urlparse.urlparse" seems to have 
> mis-parsed.
> 

Added to tracker, with proposed fix:

http://bugs.python.org/issue1637

John Nagle
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Terry Reedy

"Dan Upton" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
|> Since the US, at least, uses 
whole/half/quarter/eighth/sixteenth...
| > notes, three-quarter and six-eight time falls out...
|
| I don't think this is technically true, but I've never been able to
| tell the difference.

I learned three-four, four-four, six-eight, etc. as time sigs.  Not a 
fraction.



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Dan Upton
On Dec 16, 2007 10:32 PM, Terry Reedy <[EMAIL PROTECTED]> wrote:
>
> "Dan Upton" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>
> |> Since the US, at least, uses
> whole/half/quarter/eighth/sixteenth...
> | > notes, three-quarter and six-eight time falls out...
> |
> | I don't think this is technically true, but I've never been able to
> | tell the difference.
>
> I learned three-four, four-four, six-eight, etc. as time sigs.  Not a
> fraction.
>

I can't tell whether you're agreeing with me or not...

At any rate though, if time signatures really fell out as reducible
fractions, then why don't we just reduce 4/4 to 1 and call the whole
thing off? ;)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Terry Reedy

"Dan Upton" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]

| > | > notes, three-quarter and six-eight time falls out...
| > |
| > | I don't think this is technically true, but I've never been able to
| > | tell the difference.
| >
| > I learned three-four, four-four, six-eight, etc. as time sigs.  Not a
| > fraction.
| >
|
| I can't tell whether you're agreeing with me or not...

I disagreed with three-quarter rather than three-four and agreed with 
six-eight. 



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Debugging pipe IPC

2007-12-17 Thread Jim B. Wilson
Ian Clark pointed me to:

> ... the cmd module. 
> 

Yes, I found that, but I could only get it to print a nice interactive 
prompt, "(Cmd)", read a line of input and discard it.  Apparently, I'm 
too stupid to figure out how to hook it into python.

Jim
-- 
http://mail.python.org/mailman/listinfo/python-list


New to Python Would like debug advice

2007-12-17 Thread PatrickMinnesota
Yep, I'm new to the language, it's been a couple of months.

I opted for gvim and console window for developing on a Windows XP
box.  I'm not a huge fan of IDEs except for when I need some
debugging.  I've done my googling and see a bunch of options out there
for a debugging solution for Python on Windows.

I've used Eclipse for a few years for Java development and I
understand there is a Python module for it that might make sense.

What I'm looking for is advice on what to use to debug general Python
programs at the source level, some will be graphical.  If the eclipse
route is the way to go, that's fine, but I'm wondering what other
options people have good luck with.  Keep in mind I will probably
continue to use Vi/Emacs and a console window for my main development.

Thanks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: opposite of zip()?

2007-12-17 Thread Rich Harkins
Matt Nordhoff wrote:
[snip]

> 
> As Paddy wrote, zip is its own unzip:
> 
 zipped = zip((1, 2, 3), (4, 5, 6))
 zipped
> [(1, 4), (2, 5), (3, 6)]
 unzipped = zip(*zipped)
 unzipped
> [(1, 2, 3), (4, 5, 6)]
> 
> Neat and completely confusing, huh? :-)
> 
> 

I hadn't thought about zip() being symmetrical like that.  Very cool...

Rich
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: MySQLdb syntax issues - HELP

2007-12-17 Thread Bruno Desthuilliers
Luke a écrit :
> Bruno Desthuilliers wrote:
> 
> 
>>Luke a écrit :
> 
>  (snip)   
> 
>>>cursor.execute("""
>>>CREATE TABLE %s
>>>(
>>> name CHAR(40),
>>> gender   CHAR(40),
>>> job  CHAR(40),
>>> levelTEXT,
>>> str  TEXT,
>>> dex  TEXT,
>>> intelTEXT,
>>> cha  TEXT,
>>> luc  TEXT
>>>)
>>>""" % CharAccount)
>>
>>Err... Are you sure you want a new table here ?
> 
>  (snip)
> 
> yes, thats the easier way i can think of for now since i am so new to SQL,

Then keep away from Python long enough to learn the most basic features 
of SQL.

> eventually im sure i will put all the characters into one larger table
> though... but for now i just dont feal like figuring out how to scan the
> table for the records i need based on name of character...

What you think SQL is for ? Selecting a given record (or a given set of 
record) is actually the most basic SQL operation.

> ill save that
> for later. 

You should not.

> (unless there is a very easy way to do it that doesnt require
> re)

WTF would you want to use regexps here ???

(snip)

>>
>>What you want here is:
>>
>>sql = """
>>INSERT INTO %s (name, gender, job, level, str, dex, intel, cha, luc)
>>VALUES (%%s, %%s, %%s, %%s, %%s, %%s, %%s, %%s, %%s)
>>""" % CharAccount
>>
>>cursor.execute(sql,  (CharName, CharGender, CharJob, CharLevel,
>>Strength, Dexterity, Inteligence, Charm, Luck))
> 
> 
> wow, i was so focused on learning the MySQLdb module i have been overlooking
> simply escaping my % signs the whole time... nice catch, thanks alot. it
> works like a charm now.

Not as far as I'm concerned !-)

> 
> PROBLEM SOLVED, BUT IF YOU WANT TO ADD ANYTHING, FEEL FREE...

Yes : do what everyone here already told you : learn SQL !-)
-- 
http://mail.python.org/mailman/listinfo/python-list

Another newbie design question

2007-12-17 Thread MartinRinehart
I've designed a language, Decaf, for beginners. I've got block
comments but not multi-line strings.

If you can only have one or the other, which is more helpful?

Should I have both? (Make a strong argument here: my design principal
is, "Designed by a backpacker: when in doubt, leave it out.")
-- 
http://mail.python.org/mailman/listinfo/python-list


python webserver question

2007-12-17 Thread dale bryan
I am working on a task to display a wireless network nodes using Google Earth 
(GE) with KML network links.  I am using a simple python webserver (see code 
below) to serve up the python scripts as KML output to GE for this.

import BaseHTTPServer
import CGIHTTPServer
class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
cgi_directories = ['/cgi-bin']  
httpd = BaseHTTPServer.HTTPServer(('',8000), Handler)
httpd.serve_forever()

This works fine for my initial scripts, but now I thinking of combining the 
python scripts into the server program and making things more efficient.  The 
script file currently reads sensor data from different I/O ports (GPS ->serial, 
network data -> ethernet).  I am new to python, and was wondering if there 
might be a better way to run the server side process than how I am doing it now:

1. GE client requests data through KML network link on a periodic update 
interval
2. python webserver handles request and executes python script in cgi-bin 
directory
3. python script reads sensor input from serial and ethernet ports and writes 
data as KML output to GE client
4. repeat process at update interval

I am thinking if it would be better to make the process server-side focussed as 
opposed to client side.  Have the server only update sensor data to the client 
when there has been a change in sensor data, and only send the data that has 
changed.  Has anyone had experience in doing this with python that could point 
me in the right direction?

thx
Dale-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Another newbie design question

2007-12-17 Thread Jim B. Wilson
[EMAIL PROTECTED] wrote:

> If you can only [block comments] or [multi-line strings] the other,
> which is more helpful?

I'm afraid no one would use a language that didn't feature block 
comments.  However, inspection of a vast corpus of code might lead one 
to believe that any commenting capability was completely unnecessary.

> Should I have both? (Make a strong argument here: my design principal
>  is, "Designed by a backpacker: when in doubt, leave it out.")

After my brief experience with Python, I don't think I'd advocate the 
removal of """'d strings.  They come in quite handy in a lot of 
practical cases.

And remember: "If you need it and you don't have it, you don't need it."
(at least in backpacking :)

Jim Wilson
Gainesville, FL

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Debugging pipe IPC

2007-12-17 Thread Ian Clark
Jim B. Wilson wrote:
...
> The child/client sends requests on its stdout and receives responses on 
> stdin.

So, why can't you just run this client on the command line and let the 
shell handle stdin/stdout for you?

Ian Clark

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Debugging pipe IPC

2007-12-17 Thread Jim B. Wilson
Ian Clark wrote:
> Jim B. Wilson wrote:
> ...
>> The child/client sends requests on its stdout and receives responses 
>> on stdin.
> 
> So, why can't you just run this client on the command line and let the 
> shell handle stdin/stdout for you?

I'm not sure I understand the topology of your proposal?  And, it's 
certainly possible the shell has mystical powers of which I am unaware.

Are you suggesting a run client that spews the mother's messages to the 
terminal, and I somehow cut/paste them into the client, running with 
stdin/stdout unconnected to anything but me?  Or is there some 
combination of tee, etal.,  I can lash together so that my commands (to 
the client) don't get mixed up with mother's messages?

Some such arrangement would surely help.  I often forget the ">>stderr," 
on my scratch-head debugging prints, and mother gets quite upset when 
the incoming message doesn't fit the mold :)

Jim
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Gnu/Linux dialogue boxes in python

2007-12-17 Thread Paul Boddie
On 2 Des, 07:02, Donn Ingle <[EMAIL PROTECTED]> wrote:
> Paul Boddie wrote:
> > but I'll either upload a new release, or I'll make the code available
> > separately.
>
> Thanks, give me a shout when you do -- if you remember!

I've now uploaded a new release of the desktop module which is now, in
fact, a package:

http://www.python.org/pypi/desktop

>From release 0.3 onwards, the intention is that the desktop.dialog
module (spelled in the American way to show the connection with the
classic dialog command) will support dialogue boxes for many desktop
environments, although only X11 environments are supported so far.
There's also a desktop.windows module (no relation to the operating
system with the dubious trademark) which currently only supports
window introspection in X11 environments, but I imagine that
supporting win32 wouldn't be too difficult for those motivated enough
to look into it.

Paul
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: OpenOpt install

2007-12-17 Thread Robert Kern
dmitrey wrote:
> Use
> python setup.py install

People should be able to run the distutils commands independently.

What are you trying to achieve with this block of code that follows the setup()
call?

new_name = 'tmp55'
os.rename('scikits', new_name)
newPath = []
for directory in sys.path:
if not 'scikits' in directory: newPath.append(directory)# something
wrong with list.remove()
sys.path = newPath
import scikits
reload(scikits)
Path = scikits.__path__[0]
NewPath = os.path.join(Path, 'openopt')
rmtree(NewPath, True) # True means ignore errors
copytree(os.path.join(os.path.curdir, new_name, 'openopt'), NewPath)
NewPath = Path
compileall.compile_dir(NewPath)

os.rename(new_name, 'scikits')


This just looks like a really bad idea.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: arrays in lists

2007-12-17 Thread Robert Kern
Peter Stahlir wrote:
> Hi!
> 
> I have a list of arrays and want to find an array with list.index(x).
> Is that possible. I get an
> ValueError: The truth value of an array with more than one element is
> ambiguous. Use a.any() or a.all()
> 
> 
> For example:
> from numpy import array
> a = array([1])
> b = array([2])
> c = [a,b]
> d = c.index(a)

You can't use .index() to do this. numpy arrays use rich comparisons such that
(a == b) returns another array, not a boolean.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Another newbie design question

2007-12-17 Thread Bruno Desthuilliers
Jim B. Wilson a écrit :
> [EMAIL PROTECTED] wrote:
> 
>> If you can only [block comments] or [multi-line strings] the other,
>> which is more helpful?
> 
> 
> I'm afraid no one would use a language that didn't feature block 
> comments.

Hem... May I remind you that Python doesn't have block comments ?-)

>  However, inspection of a vast corpus of code might lead one 
> to believe that any commenting capability was completely unnecessary.

+1 QOTW !-)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: New to Python Would like debug advice

2007-12-17 Thread Bruno Desthuilliers
PatrickMinnesota a écrit :
> Yep, I'm new to the language, it's been a couple of months.
> 
> I opted for gvim and console window for developing on a Windows XP
> box.  I'm not a huge fan of IDEs except for when I need some
> debugging.  I've done my googling and see a bunch of options out there
> for a debugging solution for Python on Windows.
> 
> I've used Eclipse for a few years for Java development and I
> understand there is a Python module for it that might make sense.
> 
> What I'm looking for is advice on what to use to debug general Python
> programs at the source level, some will be graphical.  If the eclipse
> route is the way to go, that's fine, but I'm wondering what other
> options people have good luck with.  Keep in mind I will probably
> continue to use Vi/Emacs and a console window for my main development.

If you're ok with a command line interface, Python already provide one:
http://docs.python.org/lib/module-pdb.html

> Thanks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Imports in Packages

2007-12-17 Thread Bruno Desthuilliers
[EMAIL PROTECTED] a écrit :
> While working within a package...what is the 'best practice' way to do
> your imports.
> 
> a/__init__.py
> a/one.py
> a/two.py
> a/b/__init__.py
> a/b/cat.py
> a/b/dog.py
> a/c/cow.py
> Suppose I am working in a/c/cow.py and I need something from a/b/
> dog.py.  If a/b/__init__.py contains what I need from dog.py, should I
> do:
> 
> "from a.b import desiredfunction"
> 
> or
> 
> "from a.b.dog import desiredfunction"

What would be the point of exposing desiredfunction in a/b/__init__ if 
you still import it from a/b/dog ?-)

> What are your reasons for preferring one over the other (performance,
> readability, portability)? 

What about encapsulation of the package's internal organisation ?

(snip)
> I know that
> 
> 
from math import cos
x = cos(3)
> 
> 
> is preferred for performance reasons over
> 
> 
import math
x = math.cos(3)
> 
> because of the required lookup. 

If you only use it once, it won't make such a difference wrt/ lookup 
time. The "make names local" trick is mostly useful for tight loops in 
functions. Else, better to go for readability and favor the first form 
IMHO - at least you don't wonder where this 'cos' stuff come from !-)

> Does this mean that that I should
> import as far down as possible as well?  For example, "from a.b.c.mod
> import func"  versus  "from a import fun".

This won't save anything wrt/ lookup. And I stronly suggest that you 
read more about namespaces and lookup rules in Python.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Newbie edit/compile/run cycle question

2007-12-17 Thread Jan Claeys
Op Mon, 10 Dec 2007 16:00:04 -0800, schreef Matimus:

> better written:
> 
> python -mpy_compile FILENAME

The -m option doesn't work in all versions of cpython (I think since 
v2.4, or maybe 2.3?).


-- 
JanC
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: MySQL_python install failed on Ubuntu 7.1

2007-12-17 Thread Bruno Desthuilliers
Bruza a écrit :
> I installed MySQL 5.0.45 on Ubuntu 7.1 and download MySQL_python from
> Sourceforge (http://sourceforge.net/project/showfiles.php?
> group_id=22307). Then I untar the package and executed "python
> setup.py install". But I got compilation errors (see part of the
> failed messages below).
> 
> Looks like the installation tried to compile the _mysql extension and
> failed. Anybody knows a solution to this problem?

(snip)

> In file included from _mysql.c:29:
> pymemcompat.h:10:20: error: Python.h: No such file or directory

Looks like gcc doesn't find the Python's headers. You probably need to 
install the "python-dev" (or whatever it's named on Ubuntu) package, 
that is the one with the required stuff to compile and link C libs 
relying on CPython implementation.
-- 
http://mail.python.org/mailman/listinfo/python-list


python web server questions

2007-12-17 Thread dalebryan1
I am working on a task to display a wireless network nodes using
Google Earth (GE) with KML network links.  I am using a simple python
webserver (see code below) to serve up the python scripts as KML
output to GE for this.

import BaseHTTPServer
import CGIHTTPServer
class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
cgi_directories = ['/cgi-bin']
httpd = BaseHTTPServer.HTTPServer(('',8000), Handler)
httpd.serve_forever()

This works fine for my initial scripts, but now I thinking of
combining the python scripts into the server program and making things
more efficient.  The script file currently reads sensor data from
different I/O ports (GPS ->serial, network data -> ethernet).  I am
new to python, and was wondering if there might be a better way to run
the server side process than how I am doing it now:

1. GE client requests data through KML network link on a periodic
update interval
2. python webserver handles request and executes python script in cgi-
bin directory
3. python script reads sensor input from serial and ethernet ports and
writes data as KML output to GE client
4. repeat process at update interval

I am thinking if it would be better to make the process server-side
focussed as opposed to client side.  Have the server only update
sensor data to the client when there has been a change in sensor data,
and only send the data that has changed.  Has anyone had experience in
doing this with python that could point me in the right direction?

thx
Dale
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Another newbie design question

2007-12-17 Thread Patrick Mullen
On Dec 17, 2007 1:10 PM, Bruno Desthuilliers
<[EMAIL PROTECTED]> wrote:

> Hem... May I remind you that Python doesn't have block comments ?-)

I suppose we could argue semantics, since """ strings are actually
processed, but they are basically block comments.

So, there we are, multiline strings AND block comments!

> >  However, inspection of a vast corpus of code might lead one
> > to believe that any commenting capability was completely unnecessary.

Lol!  Who uses them dern comments anyway?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Another newbie design question

2007-12-17 Thread Bruno Desthuilliers
Patrick Mullen a écrit :
> On Dec 17, 2007 1:10 PM, Bruno Desthuilliers
> <[EMAIL PROTECTED]> wrote:
> 
> 
>>Hem... May I remind you that Python doesn't have block comments ?-)
> 
> 
> I suppose we could argue semantics, since """ strings are actually
> processed,

You guessed !-)

> but they are basically block comments.

Nope, they are basically multiline strings. Their (not that wide AFAICT) 
use as block comments comes from both the docstrings stuff and the lack 
of block comments in Python.

(snip)

>>> However, inspection of a vast corpus of code might lead one
>>>to believe that any commenting capability was completely unnecessary.
> 
> 
> Lol!  Who uses them dern comments anyway?

Really, I wonder...
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: DNS servers in Python - which ones are a good base for work?

2007-12-17 Thread Jan Claeys
Op Tue, 11 Dec 2007 11:10:52 -0800, schreef John Nagle:

> I need to do a non-standard DNS server in Python.  This is for a spam
> blacklist type DNS server, not for IP lookup. "dnspython" seems to be
> client side only.  Oak DNS is deprecated.  Suggestions?

$ wajig search python-twisted-names 
python-twisted-names - A DNS protocol implementation with client and server

(There might be other solutions too, and I have no experience using it.)


-- 
JanC
-- 
http://mail.python.org/mailman/listinfo/python-list


error during call to cPickle

2007-12-17 Thread Chris Diehl
hello,

when pickling a very large object (~200 MB) in python 2.4.4 with
cPickle to a file, I get the following errors:

python(14896) malloc: *** vm_allocate(size=8421376) failed (error
code=3)
python(14896) malloc: *** error: can't allocate region
python(14896) malloc: *** set a breakpoint in szone_error to debug

reducing the size to about half that, everything works fine.  is there
a limit I should be aware of?

I'm running python 2.4.4 under OS X 10.4.11.

any thoughts on what might be going on would be most appreciated!

cheers,

Chris Diehl
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: arrays in lists

2007-12-17 Thread Rafael Sachetto
No problem here too.
Using python 2.5 on Ubuntu Gutsy and the newest NumPy

2007/12/17, Robert Kern <[EMAIL PROTECTED]>:
> Peter Stahlir wrote:
> > Hi!
> >
> > I have a list of arrays and want to find an array with list.index(x).
> > Is that possible. I get an
> > ValueError: The truth value of an array with more than one element is
> > ambiguous. Use a.any() or a.all()
> >
> >
> > For example:
> > from numpy import array
> > a = array([1])
> > b = array([2])
> > c = [a,b]
> > d = c.index(a)
>
> You can't use .index() to do this. numpy arrays use rich comparisons such that
> (a == b) returns another array, not a boolean.
>
> --
> Robert Kern
>
> "I have come to believe that the whole world is an enigma, a harmless enigma
>  that is made terrible by our own mad attempt to interpret it as though it had
>  an underlying truth."
>   -- Umberto Eco
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
Rafael Sachetto Oliveira

Sir - Simple Image Resizer
http://rsachetto.googlepages.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: arrays in lists

2007-12-17 Thread Robert Kern
Rafael Sachetto wrote:
> No problem here too.
> Using python 2.5 on Ubuntu Gutsy and the newest NumPy

That's a bug, then. It should fail. It looks like we're not raising the
exception when there is only one element.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: arrays in lists

2007-12-17 Thread Robert Kern
Rafael Sachetto wrote:
> No problem here too.
> Using python 2.5 on Ubuntu Gutsy and the newest NumPy

Okay, I just checked with Travis and we do allow 1-element arrays to have a
truth value because it is unambiguous whereas n-element arrays are ambiguous.

Regardless, *in general* one cannot use list.index() to find an array.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

-- 
http://mail.python.org/mailman/listinfo/python-list


Deploying embedded Python

2007-12-17 Thread Andreas Raab
Hi -

I'm currently looking into a few deployment issues with our embedded 
Python interpreter and I'm looking for any information about deploying 
embedded Python that people may have. Specifically, I'm looking for the 
following information:

1) How to define a useful subset of the stdlib that can serve as an 
initial basis for the installation but later allows upgrade to the 
"full" library if desirable. In other words, I'd like to deploy a small 
subset of the stdlib to begin with (simply because of size constraints) 
which may later be extended to a full stdlib if this is desirable. Has 
someone done this before? I'd love to have a small "Python.zip" 
cross-platform stdlib surrogate that just gets shipped with the product. 
If not, what is the right starting point for analyzing the dependencies 
inside the stdlib?

2) How to isolate the embedded interpreter from environmental effects. I 
have found that on occasion, the interpreter would pick up "stray" 
installations which can cause weird problems. Which environmental 
settings affect the startup of an embedded Python interpreter? How does 
one work around/remove those dependencies? Is there any information 
available about how exactly the startup works? What is being read/loaded 
in which order etc?

3) General advice about deploying embedded Python. Pointers to web 
sites, general experience (good or bad) etc. are all very welcome.

Thanks,
   - Andreas
-- 
http://mail.python.org/mailman/listinfo/python-list


Keyword args to SimpleXMLRPCServer

2007-12-17 Thread Sean DiZazzo
Why is the following not working?  Is there any way to get keyword
arguments working with exposed XMLRPC functions?

 server.py
import SocketServer
from SimpleXMLRPCServer import
SimpleXMLRPCServer,SimpleXMLRPCRequestHandler

# Threaded mix-in
class
AsyncXMLRPCServer(SocketServer.ThreadingMixIn,SimpleXMLRPCServer):
pass

class XMLFunctions(object):
def returnArgs(*args, **kwargs):
return kwargs.items()

# Instantiate and bind to localhost:1234
server = AsyncXMLRPCServer(('', 8080), SimpleXMLRPCRequestHandler)

# Register example object instance
server.register_instance(XMLFunctions())

# run!
server.serve_forever()

 client.py
from xmlrpclib import ServerProxy, Error

server = ServerProxy("http://localhost:8080";, allow_none=1) # local
server

try:
print server.returnArgs("foo", bar="bar", baz="baz")
except Error, v:
print "ERROR", v


[seans-imac:~/Desktop/] halfitalian% ./client.py
Traceback (most recent call last):
  File "./XMLRPC_client.py", line 9, in 
print server.returnArgs("foo", bar="bar", baz="baz")
TypeError: __call__() got an unexpected keyword argument 'bar'

~Sean
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Handling cookies without urllib2 and cookielib

2007-12-17 Thread Joshua Kugler
Gabriel Genellina wrote:

> On 14 dic, 23:44, Joshua Kugler <[EMAIL PROTECTED]> wrote:
> 
>> I'm using HTTPlib to construct some functional tests for a web app we're
>> writing.  We're not using urllib2 because we need support for PUT and
>> DELETE methods, which urllib2 does not do.
>>
>> We also need client-side cookie handling.  So, I start reading about
>> cookielib and run across a problem.  It's cookie handling is tied quite
>> tightly to urllib2's request object.  httplib has somewhat different
>> semantics in its request object.  So, you can use cookielib with httplib.
>> And cookie lib has no simple function (that I could find) for passing in
>> a set-cookie header and getting back a CookieJar object (or even a list
>> of Cookie objects).
> 
> What about correcting the first thing, making urllib2 support HEAD/PUT/
> DELETE?


We may have to do that, and then hack on the Redirect handler too so it will
properly keep the request method.  But that's not our preference, for
obvious reasons. :)

I just find it hard to believe that no one has ever needed to do cookie
handling in a generic way (i.e. input: set-cookie header, output: cookie
objects) before.  May have to write my own. Or sublcass/extend cookielib.

j

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Keyword args to SimpleXMLRPCServer

2007-12-17 Thread Sean DiZazzo
On Dec 17, 4:13 pm, Sean DiZazzo <[EMAIL PROTECTED]> wrote:
> Why is the following not working?  Is there any way to get keyword
> arguments working with exposed XMLRPC functions?
>
>  server.py
> import SocketServer
> from SimpleXMLRPCServer import
> SimpleXMLRPCServer,SimpleXMLRPCRequestHandler
>
> # Threaded mix-in
> class
> AsyncXMLRPCServer(SocketServer.ThreadingMixIn,SimpleXMLRPCServer):
> pass
>
> class XMLFunctions(object):
> def returnArgs(*args, **kwargs):
> return kwargs.items()
>
> # Instantiate and bind to localhost:1234
> server = AsyncXMLRPCServer(('', 8080), SimpleXMLRPCRequestHandler)
>
> # Register example object instance
> server.register_instance(XMLFunctions())
>
> # run!
> server.serve_forever()
>
>  client.py
> from xmlrpclib import ServerProxy, Error
>
> server = ServerProxy("http://localhost:8080";, allow_none=1) # local
> server
>
> try:
> print server.returnArgs("foo", bar="bar", baz="baz")
> except Error, v:
> print "ERROR", v
>
> [seans-imac:~/Desktop/] halfitalian% ./client.py
> Traceback (most recent call last):
>   File "./XMLRPC_client.py", line 9, in 
> print server.returnArgs("foo", bar="bar", baz="baz")
> TypeError: __call__() got an unexpected keyword argument 'bar'
>
> ~Sean

PS.  The same thing happens if you don't use **kwargs...

...
class XMLFunctions(object):
def returnArgs(foo, bar=None, baz=None):
return foo, bar, baz
...
-- 
http://mail.python.org/mailman/listinfo/python-list


very puzzling doctest behaviour

2007-12-17 Thread André
Hi everyone,

I've run into a very puzzling doctest behaviour - I'm trying to narrow
down the case of it but I'm dealing with multiple files being imported
for one of the case and I have not, so far, created a simple example.
However, just in case someone had run into something similar, I
thought I would ask.

I am using the doctest.testfile() interface to load up tests that
resides in a text file.  Here's a description of the puzzling feature.

 file 1: all tests pass 
title
  >>> print "<"
  <
  >>> import module_a
  >>> print "<"
  <


So far, nothing surprising...

 file 2: we have a failure 
title
  >>> print "<"
  <
  >>> import module_a
  >>> print "<"
  <

+ 400 lines of text and further tests

The second expected "<" fails; instead, we get "<"

 file 3: all tests pass 
title
  >>> print "<"
  <
  >>> import module_a
  >>> print "<"
  <

+ 400 lines of text and further tests


Upon further inspection, I find in module_a that, if I comment out a
line like
import module_b
then, tests in file 2 pass again.   So, I figure the problem is in
module_b.
I then did

 file 4: one failure 
title
  >>> print "<"
  <
  >>> import module_b
  >>> print "<"
  <

+ 400 lines of text and further tests


Again, this can be "fixed" by changing the expected output of the
second test

 file 5: no failure 
title
  >>> print "<"
  <
  >>> import module_b
  >>> print "<"
  <

+ 400 lines of text and further tests


As mentioned, I have not succeeded in narrowing it down further.
However, has anyone observed such a behaviour of doctests before?


André
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: very puzzling doctest behaviour

2007-12-17 Thread André
Oops, sorry, I made an error in the original description of the
problem (test 4 & 5 below)

On Dec 17, 8:25 pm, "André" <[EMAIL PROTECTED]> wrote:
> Hi everyone,
>
> I've run into a very puzzling doctest behaviour - I'm trying to narrow
> down the case of it but I'm dealing with multiple files being imported
> for one of the case and I have not, so far, created a simple example.
> However, just in case someone had run into something similar, I
> thought I would ask.
>
> I am using the doctest.testfile() interface to load up tests that
> resides in a text file.  Here's a description of the puzzling feature.
>
>  file 1: all tests pass 
> title
>   >>> print "<"
>   <
>   >>> import module_a
>   >>> print "<"
>   <
> 
>
> So far, nothing surprising...
>
>  file 2: we have a failure 
> title
>   >>> print "<"
>   <
>   >>> import module_a
>   >>> print "<"
>   <
>
> + 400 lines of text and further tests
> 
> The second expected "<" fails; instead, we get "<"
>
>  file 3: all tests pass 
> title
>   >>> print "<"
>   <
>   >>> import module_a
>   >>> print "<"
>   <
>
> + 400 lines of text and further tests
> 
>
> Upon further inspection, I find in module_a that, if I comment out a
> line like
> import module_b
> then, tests in file 2 pass again.   So, I figure the problem is in
> module_b.
> I then did
>

Sorry, file 4 had NO failure ... so it looked like the problem was NOT
in module_b; and yet, when I commented its import in module_a, the
problem went away.
>  file 4: one failure 
> title
>   >>> print "<"
>   <
>   >>> import module_b
>   >>> print "<"
>   <
>
> + 400 lines of text and further tests
> 
>

>
> As mentioned, I have not succeeded in narrowing it down further.
> However, has anyone observed such a behaviour of doctests before?
>
> André



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Keyword args to SimpleXMLRPCServer

2007-12-17 Thread Terry Reedy

"Sean DiZazzo" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
| Why is the following not working?  Is there any way to get keyword
| arguments working with exposed XMLRPC functions?
|
|  server.py
| import SocketServer
| from SimpleXMLRPCServer import
| SimpleXMLRPCServer,SimpleXMLRPCRequestHandler
|
| # Threaded mix-in
| class
| AsyncXMLRPCServer(SocketServer.ThreadingMixIn,SimpleXMLRPCServer):
| pass
|
| class XMLFunctions(object):
|def returnArgs(*args, **kwargs):
|return kwargs.items()
|
| # Instantiate and bind to localhost:1234
| server = AsyncXMLRPCServer(('', 8080), SimpleXMLRPCRequestHandler)
|
| # Register example object instance
| server.register_instance(XMLFunctions())
|
| # run!
| server.serve_forever()
|
|  client.py
| from xmlrpclib import ServerProxy, Error
|
| server = ServerProxy("http://localhost:8080";, allow_none=1) # local
| server
|
| try:
|print server.returnArgs("foo", bar="bar", baz="baz")
| except Error, v:
|print "ERROR", v
|
|
| [seans-imac:~/Desktop/] halfitalian% ./client.py
| Traceback (most recent call last):
|  File "./XMLRPC_client.py", line 9, in 
|print server.returnArgs("foo", bar="bar", baz="baz")
| TypeError: __call__() got an unexpected keyword argument 'bar'

In general, C function do not recognize keyword arguments.
But the error message above can be reproduced in pure Python.

>>> def f(): pass

>>> f(bar='baz')

Traceback (most recent call last):
  File "", line 1, in -toplevel-
f(bar='baz')
TypeError: f() takes no arguments (1 given)

>>> def f(x): pass

>>> f(bar='baz')

Traceback (most recent call last):
  File "", line 1, in -toplevel-
f(bar='baz')
TypeError: f() got an unexpected keyword argument 'bar'

Whereas calling a C function typically gives

>>> ''.join(bar='baz')

Traceback (most recent call last):
  File "", line 1, in -toplevel-
''.join(bar='baz')
TypeError: join() takes no keyword arguments

But I don't know *whose* .__call__ method got called,
so I can't say much more.

tjr





-- 
http://mail.python.org/mailman/listinfo/python-list


Re: int vs long

2007-12-17 Thread Gabriel Genellina
En Mon, 17 Dec 2007 10:30:05 -0300, Nick Craig-Wood <[EMAIL PROTECTED]>  
escribió:

> Gabriel Genellina <[EMAIL PROTECTED]> wrote:
>>  En Sun, 16 Dec 2007 20:28:02 -0300, Troels Thomsen <"nej
>>  tak..."@bag.python.org> escribi?:
>>
>> >
>> > The readFile function from the win32 package aparently really expect  
>> an
>> > integer :
>> >
>> > def inWaiting(self):
>> > """Returns the number of bytes waiting to be read"""
>> > flags, comstat = ClearCommError(self.__handle)
>> > return comstat.cbInQue
>> >
>> > ReadFile(h, s.inWaiting())
>> >
>> > My code crashes because inWaiting returns a long, not an int
>>
>>  That's very strange. The cbInQue field is a DWORD in C, seen as an int  
>> in
>>  Python. How do you know it returns a long?
>>
>> > Why is that different on my machine and my collegues ? Have I or he
>> > installed a wrong version of a package?
>> > CPython 2.5.
>>
>>  And pywin32 build 210, I presume.
>>
>> > Was not expecting int<->long type problems in excactly python  
>> language.
>> > Is that because we are navigating so close to the win32 api that the
>> > types
>> > are more strictly enforced ?
>>
>>  Somewhat. At the API level, function arguments have to be converted to
>>  native C types, like ReadFile expecting a DWORD. Any number greater  
>> than
>>  2**32 won't fit, but I can't think how such thing could happen looking  
>> at
>>  those few posted code lines.
>
> Actually any number >= 2**31 won't fit in a python int.
>
>   >>> 2**31
>   2147483648L
>
> According to my headers DWORD is defined like this
>
>   typedef unsigned long DWORD;
>
> So you might see longs returned when you expected ints if the result
> was >= 0x800.

More than 2GB waiting to be read from a serial port? If that were the case  
the OP has a very big throughput problem rather than an API mismatch :)

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list


[TRAC] WikiInclude on 0.11 - Noah Kantrowitz blocks bug-fix

2007-12-17 Thread Ilias Lazaridis
Essence:

 * Deletion of valid defect reports on trac community resources

The "WikiInclude" plugin is not recognised on trac 0.11, thus I took a
look an made a small addition to the setup.py (the entry_point).

Other users have the same problem, thus I filed a ticket in the "trac-
hacks" community resource.

Mr. Noah Kantrowitz closed the ticket as "invalid". My comments within
this ticket are deleted, directly in the database, which is the same
as censorship. I've copied the email-notification from my comment
below. [1]

Please realize:

 * this is a real-live defect, which remains unprocessed, thus more
users run into this trouble.
 * My attemps to inform users in the user-threads do not show up in
all threads (moderation on trac-users!!!)
 * The "IncludeMacro" is not compatible to the "WikiInclude" macro
 * My comments were deleted in a non-trackable way
 * Users of the WikiInclude plugin are not informed in any way

You are may wondering why the trac project fails to produce a stable
1.0 version since years. The answer is here:

http://case.lazaridis.com/wiki/TracAudit

-

[1]

#2294: Plugin is not detectd on trac 0.11 (even the 0.11 specific one)

+---
Reporter:  [EMAIL PROTECTED]  |Owner:  yu-ji
   Type:  defect   |   Status:  reopened
Priority:  normal   |Component:  WikiIncludePlugin
Severity:  critical |   Resolution:
Keywords:   |  Release:  0.11

+---
Changes (by [EMAIL PROTECTED]):

 * status:  closed => reopened
 * resolution:  invalid =>
 * summary:  Missing "entry_point" within setup.py => Plugin is not
 detectd on trac 0.11 (even the 0.11 specific
 one)

Comment:

 (Mr. Kantrowitz. This is defenitely a defect, which occoured for
several
 users. The provided information helps any user which hits on this
ticket
 via a search. I ask you once more to stop with the deletions on this
 '''community''' resource).

 The resolution "invalid" is incorrect.

 The problem exists for me '''and other''' users, see e.g.:

 * [http://groups.google.com/group/trac-users/browse_frm/thread/
de454e7dcf9f0438/d9806ad4a31a14a7 thread 1]
 * [http://groups.google.com/group/trac-users/browse_frm/thread/
2ccf4b2855a6f242?q=WikiInclude& thread 2]

 I've solved it whilst simply adding the entry point to the setup.py.

 It is ok to point to the more flexible and maintained "IncludeMacro",
but
 other people possibly just want to continue to use the simpler
 "WikiInclude" one.

 I suggest the maintainer of "WikiInclude" (or another developer)
corrects
 the setup.py in the repo, and additionally one should place a note in
the
 "WikiInclude" documentation, that there's a more flexible
"IncludeMacro"
 available.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [OT] Fractions on musical notation

2007-12-17 Thread Gabriel Genellina
En Mon, 17 Dec 2007 10:35:39 -0300, Neil Cerutti <[EMAIL PROTECTED]>  
escribió:

> On 2007-12-17, Gabriel Genellina <[EMAIL PROTECTED]> wrote:
>> On 16 dic, 06:40, Lie <[EMAIL PROTECTED]> wrote:
>>> [btw, off topic, in music, isn't 1/4 and 2/8 different? I'm not very
>>> keen of music though, so correct me if I'm wrong.]
>>
>> As a time signature 1/4 has no sense, but 3/4 and 6/8 are
>> different things. In the standard musical notation both numbers
>> are written one above the other, and no "division" line is
>> used. Note that they just *look* like a fraction when written
>> in text form, like here, because it's not easy to write one
>> above the other. 3/4 is read as "three by four", not "three
>> quarters" -at least in my country- so there is even less
>> confussion.
>
> Time signatures are crap. They should have switched to a number
> over a note value a long time ago; we could have easily avoided
> abominable travesties like the time signature on the 2nd
> movement of Beethoven's 9th (B needed four over dotted quarter). If
> music notation had been invented by a computer scientist we
> wouldn't be stuck in the current mess in which 6/8 means two
> completely different meters (3 over quarter, or 2 over dotted
> quarter).

That was proposed by (some great musician from XIX century that I can't  
remember) but it's hard to change habits.
The idea was to use: above, number of beats, and below, the note lasting  
one beat, *always*. So conventional 6/8 would be 2/"dotted quarter" with a  
dotted quarted drawn as itself, not implied by a number. This allows for  
more meaningful signatures, like 3+3+2/"eight note" for some Piazzolla  
tangos that are now written as 4/4 (but don't have the stress pattern for  
4/4 at all).

> And... er... Python doesn't need a time signature data type. But
> rationals would be quite nifty. ;-)

I'm happy enough with rationals as 3rd party library (like gmpy)

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Getting al classes inside a package

2007-12-17 Thread Gabriel Genellina
En Mon, 17 Dec 2007 14:20:38 -0300, Matias Surdi <[EMAIL PROTECTED]>  
escribió:

> How can I get all the clasess inside a package (including it  
> subpackages) ?
>
> for example, I have a package with classes A and B and with a subpackage
> wichs has class C.
>
> How can I get a list (and a path) of the classes that exists under the
> root package ?

If the package does not import its modules or subpackages in __init__.py,  
you'll have to inspect the __path__ attribute and enumerate .py files.  
Then, try to load them and find all classes.
Warning: There is no way to tell if a certain module is intended to be  
imported at all or not (might be a test module, an unimplemented feature,  
a leftover from previous versions, a script intended to be run from the  
command line...)
You can use the inspect standard module (mainly getmembers() and  
isclass()) to find all classes; remember to filter by the class __module__  
attribute (else you'll get  imported classes too).

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deploying embedded Python

2007-12-17 Thread Graham Dumpleton
On Dec 18, 11:07 am, Andreas Raab <[EMAIL PROTECTED]> wrote:
> Hi -
>
> I'm currently looking into a few deployment issues with our embedded
> Python interpreter and I'm looking for any information about deploying
> embedded Python that people may have. Specifically, I'm looking for the
> following information:
>
> 1) How to define a useful subset of the stdlib that can serve as an
> initial basis for the installation but later allows upgrade to the
> "full" library if desirable. In other words, I'd like to deploy a small
> subset of the stdlib to begin with (simply because of size constraints)
> which may later be extended to a full stdlib if this is desirable. Has
> someone done this before? I'd love to have a small "Python.zip"
> cross-platform stdlib surrogate that just gets shipped with the product.
> If not, what is the right starting point for analyzing the dependencies
> inside the stdlib?
>
> 2) How to isolate the embedded interpreter from environmental effects. I
> have found that on occasion, the interpreter would pick up "stray"
> installations which can cause weird problems. Which environmental
> settings affect the startup of an embedded Python interpreter?

PYTHONHOME environment variable, or if embedded in C application use
Py_SetPythonHome() before calling Py_Intialize(). This can be used to
ensure that specific Python installation is used as source of
configuration and modules.

> How does
> one work around/remove those dependencies? Is there any information
> available about how exactly the startup works?

Yes, the source code. :-)

> What is being read/loaded
> in which order etc?

Set PYTHONVERBOSE environment variable to have Python output a lot of
information about what it is doing at startup.

Graham

> 3) General advice about deploying embedded Python. Pointers to web
> sites, general experience (good or bad) etc. are all very welcome.
>
> Thanks,
>- Andreas

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deploying embedded Python

2007-12-17 Thread Andreas Raab
Graham Dumpleton wrote:
>> 2) How to isolate the embedded interpreter from environmental effects. I
>> have found that on occasion, the interpreter would pick up "stray"
>> installations which can cause weird problems. Which environmental
>> settings affect the startup of an embedded Python interpreter?
> 
> PYTHONHOME environment variable, or if embedded in C application use
> Py_SetPythonHome() before calling Py_Intialize(). This can be used to
> ensure that specific Python installation is used as source of
> configuration and modules.

Aha! I have never seen this call mentioned in any of the embedding docs.

>> How does
>> one work around/remove those dependencies? Is there any information
>> available about how exactly the startup works?
> 
> Yes, the source code. :-)

Heh, heh.

>> What is being read/loaded
>> in which order etc?
> 
> Set PYTHONVERBOSE environment variable to have Python output a lot of
> information about what it is doing at startup.

Thanks I'll do that.

Cheers,
   - Andreas

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Keyword args to SimpleXMLRPCServer

2007-12-17 Thread Gabriel Genellina
En Mon, 17 Dec 2007 21:13:32 -0300, Sean DiZazzo <[EMAIL PROTECTED]>  
escribió:

> Why is the following not working?  Is there any way to get keyword
> arguments working with exposed XMLRPC functions?
>
>  server.py
> import SocketServer
> from SimpleXMLRPCServer import
> SimpleXMLRPCServer,SimpleXMLRPCRequestHandler
>
> # Threaded mix-in
> class
> AsyncXMLRPCServer(SocketServer.ThreadingMixIn,SimpleXMLRPCServer):
> pass
>
> class XMLFunctions(object):
> def returnArgs(*args, **kwargs):
> return kwargs.items()

You forget the self argument. But this is not the problem. XMLRPC does not  
allow passing parameters by name, only positional parameters. See  
http://www.xmlrpc.com/spec:

"If the procedure call has parameters, the  must contain a  
 sub-item. The  sub-item can contain any number of  
s, each of which has a . "

Parameters have no , just a , so you can only use positional  
parameters. But you can simulate keyword arguments by collecting them in a  
dictionary and passing that dictionary as an argument instead.

(server side)
  def returnArgs(self, x, y, other={}):
  return x, y, other

(client side)
 print server.returnArgs("xvalue", "yvalue", dict(foo=123, bar=234,  
baz=345))

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list


Label Variables

2007-12-17 Thread Sam Garson
Hi again.

I am trying to get the text of the selection in a list box and put into a
variable, which is put into a label. i.e., whatever is selected will show in
the label.

However, because at the beginning there is nothing in the listbox (and
therefore no selection), the tuple returned by curselection() is (),
therefore when i try and get() from the linenumber in this tuple, the index
is "out of range"

here is the section of the program:

box = Listbox(root, bg = '#ebe9ed', relief = 'groove', height = 15)
box.grid(row = 2, columnspan = 2, sticky = W+E, padx = 3)
box.bind("", DeleteCurrent)

v = StringVar()
number = box.curselection()
v.set = (box.get(int(number[0])))
print number

current = Label(root, textvariable = v)
current.grid(row = 3, columnspan = 2, sticky = W+E, padx = 3)

and here is the error:

Traceback (most recent call last):
  File "C:\My Documents\My Python\Notes.py", line 27, in 
v.set = (box.get(int(number[0])))
IndexError: tuple index out of range

How can i get it to only take the variable when i have selected something,
or any other solution!

Thanks,

Sam

-- 
I intend to live forever - so far, so good.

SaM
-- 
http://mail.python.org/mailman/listinfo/python-list

  1   2   >