Re: FileIO problem

2005-08-24 Thread Sybren Stuvel
Layin'_Low enlightened us with:
> count = 0
> while count != 1000:
> count = count + 1
> print "Admin forceclass " , count , gclas

I think you want:

output = file('out', 'w')
gclas = raw_input("What is the class:")
for count in range(1000):
output.write("Admin forceclass %4i %s\n" % (count , gclas))
output.close()


Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: shelve non-transparency

2005-08-24 Thread Michele Simionato
The option writeback=True seems to work:

# put something in the shelve
import shelve

class C(object):
pass

s = shelve.open("x.shelve")
s["x"] = C()
s.close()

# read it
s = shelve.open("x.shelve", writeback=True)
c = s["x"]
c.attr = 1
print s["x"].attr # => 1
s.close()


 Michele Simionato

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


Re: FileIO problem

2005-08-24 Thread Laszlo Zsolt Nagy
Try this:

gclas = raw_input("What is the class:")
def Princlas():
count = 0
while count != 1000:
count = count + 1
return "Admin forceclass %s %s " % ( count , gclas )
#asks for file name
a = raw_input("What is new file name:")
out_file = open(a,"w")
#this is the input of text
out_file.write(Princlas())
out_file.close()


>i know i need to get it to a string but i dont know how?
>

Your functions should RETURN a string, with the "return" statement.
Another issue: you cannot write the function itself, only its result:

out_file.write(Princlas())

instead of

out_file.write(Princlas)


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


Re: list insertion

2005-08-24 Thread Sybren Stuvel
Randy Bush enlightened us with:
> hold = self.next
> self.next = DaClass(value)
> self.next.next = hold

shouldn't that last line be this?
self.next.prev = hold

> but i suspect (from print statement insertions) that the result is
> not as i expect.

What did you expect, and what did you ovserve?

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Inline::Python, pyperl, etc.

2005-08-24 Thread Sybren Stuvel
Eli Stevens (WG.c) enlightened us with:
> I've bumped into some snags with pyperl (can't import perl2.so?  But 
> it's right there in site-packages/ !), and I'm wondering if it's bitrot 
> or a config error on my end.

If the .so file is as old as you described, it's probably linked to an
old version of python. Try recompiling it.

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


What's the matter with this code section?

2005-08-24 Thread Johnny Lee
Here is the source:

#! /bin/python

[EMAIL PROTECTED] This is a xunit test framework for python, see TDD for more
details

class TestCase:
def setUp(self):
print "setUp in TestCase"
pass
def __init__(self, name):
print "__init__ in TestCase"
self.name = name
def run(self):
print "run in TestCase"
self.setUp()
method = getattr(self, self.name)
method()

class WasRun(TestCase):
def __init__(self, name):
print "__init__ in WasRun"
self.wasRun = None
TestCase.__init__(self, name)
def testMethod(self):
print "testMethod in WasRun"
self.wasRun = 1
def run(self):
print "run in WasRun"
method = getattr(self, self.name)
method()
def setUp(self):
print "in setUp of WasRun"
self.wasSetUp = 1

class TestCaseTest(TestCase):
def testRunning(self):
print "testRunning in TestCaseTest"
test = WasRun("testMethod")
assert(not test.wasRun)
test.run()
assert(test.wasRun)
def testSetUp(self):
print "testSetUp in TestCaseTest"
test = WasRun("testMethod")
test.run()
assert(test.wasSetUp)

# the program starts here
print "starts TestCaseTest(\"testRunning\").run()"
TestCaseTest("testRunning").run()
print "starts TestCaseTest(\"testSetUp\").run()"
TestCaseTest("testSetUp").run()



And here is the result running under cygwin:

$ ./xunit.py
starts TestCaseTest("testRunning").run()
__init__ in TestCase
run in TestCase
setUp in TestCase
testRunning in TestCaseTest
__init__ in WasRun
__init__ in TestCase
run in WasRun
testMethod in WasRun
starts TestCaseTest("testSetUp").run()
__init__ in TestCase
run in TestCase
setUp in TestCase
testSetUp in TestCaseTest
__init__ in WasRun
__init__ in TestCase
run in WasRun
testMethod in WasRun
Traceback (most recent call last):
  File "./xunit.py", line 51, in ?
TestCaseTest("testSetUp").run()
  File "./xunit.py", line 16, in run
method()
  File "./xunit.py", line 45, in testSetUp
assert(test.wasSetUp)
AttributeError: WasRun instance has no attribute 'wasSetUp'

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


Re: how to deal with space between numbers

2005-08-24 Thread Sybren Stuvel
Mohammed Altaj enlightened us with:
> I managed to do all these things , but i did it in the way that i am
> reading my data as strings ( no space between numbers)

Keep the spaces, and use thestring.split()

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to deal with space between numbers

2005-08-24 Thread Sybren Stuvel
Mohammed Altaj enlightened us with:
> Thanks a lot for your valuable answer, i like the way you code , but
> i would like to use my own,

You don't learn to code properly if you always stick to your own
stuff...

> so if it is possible for you and if you have time, please could you
> fix my code, so that i can do what i want. 

Learn from the answers you've been given. Read the documentation. Then
you can incorporate them into your own program. You won't learn
anything of you don't challenge yourself!

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pipes like perl

2005-08-24 Thread Sybren Stuvel
max(01)* enlightened us with:
> but i need to check the success/failure of the external command
> *before* closing the file!

You can't, unless you have a more intimite knowledge of the command
involved. If you know, for instance, that any output on stderr means
an error, you can check for just that. Without knowledge of the
command and it's output, the only thing you can check on is the exit
code.

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: FileIO problem

2005-08-24 Thread Layin'_Low
thnx guys it was late and had just come from a bar and didnt reread the
lines. thnx again for the help

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


Re: python asp page keeps state across queries !?!?

2005-08-24 Thread Sybren Stuvel
nicolas_riesch enlightened us with:
> I notice that variables outside functions keep their value across
> queries.  I don't know if it is normal.

I think it's normal.

> To be sure, I tried a similar asp script written in VB script, and I
> can see that in VBscript, variables at this same level ARE NOT kept
> across different queries !!!

So?

> Someone has an explanation ?

Speed. No need to reload the module for each query. Just don't use any
uninitialized module-scope variables. It's bad style anyway.

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: py-serial + CSV

2005-08-24 Thread Sybren Stuvel
McBooCzech enlightened us with:
> This (according to your suggestions) is my code which works for me
>
> import serial
> s = serial.Serial(port=0,baudrate=4800, timeout=20)
> while 1:
>   line = s.readline()
>   words = line.split(',')
>   if words[0]=="$GPRMC":
>   print words[1], words[3], words[5]
>
> I just wonder if there is some beter (or as you are saying "more
> pythonic":) aproach how to write such a piece of code.

You could use regular expressions instead. And to make it even more
pythonic, replace the "while" and the "line = s.readline()" with
"for line in s:"

Sybren
-- 
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself? 
 Frank Zappa
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Doubt C and Python

2005-08-24 Thread praba kar

--- James <[EMAIL PROTECTED]> wrote:

> > Some people with C background use Python instead
> > of  programming in C.why?
> 
> Becuase it is much more efficient.
> 
> -James

What why it is more efficient.  Kindly let me
know with some details.

regards
Prabahar







Send a rakhi to your brother, buy gifts and win attractive prizes. Log on to 
http://in.promos.yahoo.com/rakhi/index.html
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Network performance

2005-08-24 Thread Richie Hindle

[Roland]
> The client sends a number of lines (each ending with \n) and ends one  
> set of lines with a empty line.
> [...]
> I was surprised to find that the performance was [poor].

Are you sending all the lines in a single packet:

>>> sock.send('\n'.join(lines))

or sending them one at a time:

>>> for line in lines:
>>>   sock.send(line + '\n')

?  If the latter, you are probably experiencing "Nagle delays".  Google
will furnish you with any number of explanations of what that means, but
in summary, one end of a TCP/IP connection should never send two
consecutive small packets without receiving a packet from the other end.
('Small' typically means less than about 1400 bytes.)  Each time you do
that, you'll suffer an artificial delay introduced by TCP/IP itself.

-- 
Richie Hindle 
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


reg packages examples

2005-08-24 Thread praba kar
Dear All,

 I want to know about Modules and packages.
I can understand about Modules but I cannot understand
about Packages.  Kindly let me
know about Packages with small example.
I can understand conceptually but I don't know
how to write programmatically.

regards
Prabahar








Send a rakhi to your brother, buy gifts and win attractive prizes. Log on to 
http://in.promos.yahoo.com/rakhi/index.html
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Anyone recognize this numeric storage format - similar to "float", but not quite

2005-08-24 Thread Terry Reedy
This appears to be a repost, perhaps not by the op but due to a glitch 
somewhere, of a question posted about a month ago and answered.

<[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> We are working on a project to decipher a record structure of an old
> accounting system that originates from the late80's mid-90's.
> We have come across a number format that appears to be a "float" but
> doesn't match any of the more standard implementations.
> so we are hoping this is a recognizable number storage format with an
> identifiable name AND pre-built conversion method
> similiar to the "struct" modules available in python.
>
> Here is what we have determined so far.
>
> Example Number: 1234567890
>
> This get stored on disk as 8 bytes, resulting in the following HEX
> characters;
> 00 00 00 A4 05 2c 13 9f
>
> If we changed the order so that it is "little Endian" we get;
> 9F 13 2c 05 A4 00 00 00
>
> If the HEX is converted to binary it looks like;
> 1001 00010011 00101100 0101 10100100  0
> 
>
> If the example number 1234567890 is converted to binary it looks like;
>
> 10010011 00101100 0101 1010010
>
> To extract the example number, you need to do the following;
> 1) take the decimal value of the first byte and subtract 128
> 2) This tells you how many of the following bits to are significant and
> must be read
> 3) Once the remaining bits are read, reverse the first bit of that
> group (ie if it is a 0 make it a 1)
> 4) convert the result to decimal
> ... and presto, the example number !
>
> Using a fixed width font it is easy to see the match at the bit level;
>
> 1001 0001001100101100010110100100
>  100100110010110001011010010
>
>
> If you are interested, the following are three other examples;
>
>Orig Hex: 00 00 00 60 92 96 72 A0
> Actual Value: 4069954144
>
>Orig Hex: 00 00 80 22 A3 26 3C A1
> Actual Value: 6313297477
>
>
> So ... does anyone recognize this ??
> Is there a "built-in" conversion method in Python  ??
>
> Thanks in advance.
>
> -- 
> http://mail.python.org/mailman/listinfo/python-list
> 



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


Reg Python Modules/Packages

2005-08-24 Thread praba kar
Dear All,

   I know how to use modules. But I want to
know how to create package.  Can any one let me
know how to write package through small
specimen code.

regards
PRabahar







Send a rakhi to your brother, buy gifts and win attractive prizes. Log on to 
http://in.promos.yahoo.com/rakhi/index.html
-- 
http://mail.python.org/mailman/listinfo/python-list


execfile in global scope

2005-08-24 Thread v . vayer
I need to execfile() from a function in order to set value for a global
variable from inside the executed file. I know there are "globals" and
"locals" optional arguments for execfile, but I just can't figure out
how to use them correctly. Here is an example:

Change.py
=
x = 555

Main.py
===

def changevar():
execfile("change.py")

x = 111   # global var
changevar()
print x   # returns 111 instead of 555

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


Re: while c = f.read(1)

2005-08-24 Thread Antoon Pardon
Op 2005-08-24, Magnus Lycka schreef <[EMAIL PROTECTED]>:
> Antoon Pardon wrote:
>> Such a PEP would have no chance of being accepted, since
>> it would break to much existing code.
>
> What's the point of this thread then?

I only hope to impress people that the way python
treats 'nothing' in a condional context is not
so obvious as seems to be accepted here.

>> But how can you do this when somewhere else '' is used as
>> an indication for an EOF.
>
> If that's your problem, I guess that's what you should attack,
> not that Python considers nothing to be nothing even it might
> some time become something.

IMO the two are linked. People use '' as an EOF because the
call they are working with returns strings and they need a
way to end a loop. Since "if var:" is considered beautifull
they search for a nothing value and since they were working
with strings, '' gets chosen.

> Network programming with Python works pretty well though, so
> it seems this is a non-issue too.
>
>>>I think the typical comment is to replace "if s != '':" with
>>>"if s:" in contexts where s is always a string,
>> 
>> And it is IMO this kind of comments that lead to '' being used
>> as an EOF.
>
> Huh? Aren't the Python APIs just mirroring the behaviour of the
> underlying C APIs?

That may depend on how strict the meaning of mirroring is, you
are using. I would say no. Even if the answer is yes I would
say that chosing such values on that basis was a bad design
choice.

>>>or to replace
>>>"if expr != False:" with "if expr": in cases where "expr" is an
>>>expression that returns True or False etc. In some cases, obvious
>>>bugs, such as "if (a and b) == True:" where the programmer
>>>should have written "if (a and b):" are pointed out.
>> 
>> This is not such an obvious bug. Because python allows non boolean
>> operands with "and" the two don't behave the same. How do you know
>> which behaviour the other person wants?
>
> I think you misread my text. If the programmer should have written
> "if (a and b):", adding "==True" will cause different behaviour
> unless True (or 1) is the only non-False value that b can have.
> This would not be obvious for someone who expects that the results
> of logical operations will return boolean values.

So? How do you know what the writer of the code expects. You
originaly wrote it was an obvious bug, how do you come to
that conclusion.

>> I have yet to see a mathematical work where 0, or any kind of
>> empty sequence is treated as false. In mathematics accuracy
>> is considered vitaly important and won't be sacrified to
>> remove redundancy. Boolean expression are always written out
>> fully.
>
> Dear Antoon. The "if" statement interprets the result of an
> expression to determine whether or not to execute a block of
> code. If "x" is an expression that returns True or False, then
> "x==True" is an equivalent expression. It's just not written in
> its minimal form.

But we were talking about interpreting 0, '', (), [], and {}
directly in a conditional context. No mathematical text
will just contain a line like

  a  =>  b > 10
  
when what is meant is:

  a != 0  =>  b > 10

> It's like writing "a / b * 100 %" instead of just "a / b" in a
> mathematical equation. The first version contains some kind of
> noise that just looks ugly for people who know that 100%==1.
> Why multiply with 1? At least in my home town, the MBA students
> write stuff like that, but mathematicians and engineers would
> just think it was ugly.

But you can't transfer this situation to python, because python
allows non Boolean values to be interpreted in a conditional
context. I have code somewhere that looks like this:

  if var is True:

and that is exactly how it should be. The if branch should not
be taken if var would be 5. I even have code that looks like:

  if var is not False:

And although in a logical context those two would be equivallent
to each other and to just "if var:", they are not equivallent
in a python context. 

Yet I see a lot of suggestions here to change logical expressions
in python code, seemingly based on the fact that they would
be equivallent in a logical context.

>> But you don't know if the logic expression are redundant. The
>> suggestions made are usually not equivallent.
>
> I think I know. Please point out if I made some mistake.
>
> It's pretty common that people fail to reduce logical expressions.
> I've seen C++ code checking for overlapping periods looking roughly
> like this:
>
> if ((start1<=start2 and stop1>=start2 and stop1<=stop2) or
>  (start1<=start2 and stop1>=stop2) or
>  (start1>=start2 and stop1<=stop2) or
>  (start1>=start2 and start1<=stop2 and stop1>stop2))
>
> For that person, his code might actually have been clearer than
> the less cluttered version I changed it to:
>
> if (start1<=stop2 and start2<=stop1)
>
> At least he spent a few minutes staring at it before he could
> accept that they were equivalent. (Maybe he just gave up.)

I think he did, because

Re: list insertion

2005-08-24 Thread Ross Wilson
On Tue, 23 Aug 2005 20:58:11 -0700, Randy Bush wrote:

> i am trying to insert into a singly linked list
> 
> hold = self.next
> self.next = DaClass(value)
> self.next.next = hold
> 
> but i suspect (from print statement insertions) that the result
> is not as i expect.  as the concept and code should be very
> common, as i am too old for pride, i thought i would ask.
> 
> mahalo,
> randy

The example above looks like it would work, as long as other
stuff you _don't_ show is fine.  Specifically, how do you 
handle the case when the list is empty?

Better to show a more complete example with output and how that
is not what you expect.

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


slip beta code released

2005-08-24 Thread vpr
Hi All

Just released the code from my little excusion in socket coding with
Python.
I still need many pointers esp wrt. the way I hacked wx into the code.
Comments welcomed.

Quick start
---

start up the service: slip.py -s

all hosts running slip will be discovered, to see who else is around:
slip.py -l

debug view: slip.py -la

to send files: slip.py c:\mp3\alphavi* bob

to send a message slip.py -m bob "catch this"

if you use windows you can add an explorer extention by creating a link
to: slip.exe -sendto and adding it to your sendto directory.

if you use explorer you can now "sendto" and a wx window will popup
asking you which peer to send it to.

http://prdownloads.sourceforge.net/slip-p2p/slip_beta_0.3.zip?download


Regards

Marinus

comments ? [EMAIL PROTECTED]

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


Re: Line Removal strategy

2005-08-24 Thread Bengt Richter
On 23 Aug 2005 14:07:15 -0700, "PyPK" <[EMAIL PROTECTED]> wrote:

>Hi I am looking for a simple algorithm for removing straight lines in a
>given Image using something like an PIL or simpler.
>
The simplest is if you are in control of drawing in the first place
and don't draw the lines ;-) Otherwise, you need to define your
requirements a little more precisely. E.g., replacing horizontal
and vertical runs of identical pixels of a given color with another
given background color could be one definition. Removing an
arbitrarily diagonal anti-aliased line of some undprcified width
running through a speckled background is a different problem ;-)

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


Re: What's the matter with this code section?

2005-08-24 Thread Simon Brunning
On 24 Aug 2005 00:18:00 -0700, Johnny Lee <[EMAIL PROTECTED]> wrote:
> AttributeError: WasRun instance has no attribute 'wasSetUp'

It means exactly what it says. The last line of your TestCaseTest
classes testSetUp method refers to test.wasSetUp. So far as I can see,
test is an instance of your WasRun class, and I don't see a wasSetUp
attribute being set anywhere.

-- 
Cheers,
Simon B,
[EMAIL PROTECTED],
http://www.brunningonline.net/simon/blog/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: loop in python

2005-08-24 Thread bruno modulix
Terry Hancock wrote:
> On Tuesday 23 August 2005 05:35 am, bruno modulix wrote:
> 
(snip)
>>
>>If you hope to be taken seriously, please abandon the sms-talk style here.
>>
> 
> 
> I think it's reasonably clear that neither poster hoped "to be taken
> seriously".  :-D
> 
Err... I guess that "to be taken seriously" (in french: "être pris au
sérieux") has some other meaning in english :-/

-- 
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '[EMAIL PROTECTED]'.split('@')])"
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Anyone recognize this numeric storage format - similar to "float", but not quite

2005-08-24 Thread Bengt Richter
On 23 Aug 2005 19:04:45 -0700, [EMAIL PROTECTED] wrote:

>We are working on a project to decipher a record structure of an old
>accounting system that originates from the late80's mid-90's.
>We have come across a number format that appears to be a "float" but
>doesn't match any of the more standard implementations.
>so we are hoping this is a recognizable number storage format with an
>identifiable name AND pre-built conversion method
>similiar to the "struct" modules available in python.
>
>Here is what we have determined so far.
>
>Example Number: 1234567890
>
>This get stored on disk as 8 bytes, resulting in the following HEX
>characters;
>00 00 00 A4 05 2c 13 9f
>
>If we changed the order so that it is "little Endian" we get;
>9F 13 2c 05 A4 00 00 00
>
>If the HEX is converted to binary it looks like;
>1001 00010011 00101100 0101 10100100  0
>
>
>If the example number 1234567890 is converted to binary it looks like;
>
>10010011 00101100 0101 1010010
>
>To extract the example number, you need to do the following;
>1) take the decimal value of the first byte and subtract 128
>2) This tells you how many of the following bits to are significant and
>must be read
>3) Once the remaining bits are read, reverse the first bit of that
>group (ie if it is a 0 make it a 1)
>4) convert the result to decimal
>... and presto, the example number !
>
>Using a fixed width font it is easy to see the match at the bit level;
>
>1001 0001001100101100010110100100
> 100100110010110001011010010
>
>
>If you are interested, the following are three other examples;
>
>Orig Hex: 00 00 00 60 92 96 72 A0
>Actual Value: 4069954144
>
>Orig Hex: 00 00 80 22 A3 26 3C A1
>Actual Value: 6313297477
>
>
>So ... does anyone recognize this ??
>Is there a "built-in" conversion method in Python  ??
>
>Thanks in advance.
>
Not looking too closely, but I recall something similar (although I suspect 
that the bit you
are "reversing" is a sign bit that shadows a known constant MSB 1 for non-zero 
numbers, and
shouldn't just be reversed):

http://groups.google.com/group/comp.lang.python/browse_thread/thread/42150ccc20a1d8d5/4aadc71be8aeddbe#4aadc71be8aeddbe

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


Re: Externally-defined properties?

2005-08-24 Thread Bengt Richter
On Wed, 24 Aug 2005 01:15:03 -0500, Terry Hancock <[EMAIL PROTECTED]> wrote:

>Frankly, I was surprised this worked at all, but I tried
>creating a property outside of a class (i.e. at the module
>level), and it seems to behave as a property:
>
 def get_x(ob):
>... global x
>... return str(x)
>...
 def set_x(ob, value):
>... global x
>... x = int(value)
>...
 def del_x(ob):
>... global x
>... del x
>...
 def x_access():
>... return property(get_x, set_x, del_x, "X defined externally?")
>...

 class Accessor(object):
>... s_x = x_access()
>... def __str__(self):
>... print "Accessor has x = %s" % self.s_X
>...
 a = Accessor()
 a.s_x = 3
 a.s_x
>'3'
 dir()
>['Accessor', '__builtins__', '__doc__', '__name__', 'a', 'del_x', 'get_x', 
>'p', 'set_x', 'x', 'x_access']
 x
>3
>
>(of course in the real example, x will probably be in an
>entirely different module, used as a library -- the client code
>just calls a function to get a property that is automatically
>managed for it).
>
>So far, the only problem I see is that it only works if the
>property is assigned to a new-type class attribute (otherwise,
>the first assignment simply replaces the property).
>
>I'm thinking of using this to tie a property of a class to an
>external data source (a joystick axis, in fact -- or at least
>its last-polled value).
>
>There is a more convential way to do this, of course -- I could
>just use a "get_value" function, but there is something attractive
>about have a variable that is simply bound to the external
>data source like this.  It seems like a good way to encapsulate
>functionality that I don't really want the high level class to
>have to "think" about.
>
>I mention it here, because I've never seen a property used
>this way.  So I'm either being very clever, or very dumb, 
>and I would be interested in opinions on which applies. ;-)
>
>Am I about to shoot myself in the foot?
>
ISTM you are basically exploiting your freedom to define the 
getter/setter/deleter
functions of a property any way you please. Another way, if you just want a 
proxy
object whose property attributes access designated other objects' attributes, 
you
could use a custom descriptor class, e.g.,

 >>> class Indirect(object):
 ... def __init__(self, tgtattr, tgtobj):
 ... self.tgtattr = tgtattr
 ... self.tgtobj = tgtobj
 ... def __get__(self, inst, cls=None):
 ... if inst is None: return self
 ... return getattr(self.tgtobj, self.tgtattr)
 ... def __set__(self, inst, value):
 ... setattr(self.tgtobj, self.tgtattr, value)
 ... def __delete__(self, inst):
 ... delattr(self.tgtobj, self.tgtattr)
 ...

A place to put properties:
 >>> class Accessor(object): pass
 ...

An example object to access indirectly
 >>> class Obj(object): pass
 ...
 >>> obj = Obj()

Making Accessor instance attribute 'xobj' access 'obj' attribute of Obj 
instance obj
 >>> Accessor.xobj = Indirect('obj', obj)

An Accessor instance to use for the property attribute magic
 >>> a = Accessor()

Set obj.obj = 123 indirectly
 >>> a.xobj = 123

Check
 >>> vars(obj)
 {'obj': 123}

Set up access to an object attribute in a different module
 >>> import sys
 >>> Accessor.sin = Indirect('stdin', sys)
 >>> a.sin
 ', mode 'r' at 0x02E8E020>

 >>> Accessor.pi = Indirect('pi', __import__('math'))
 >>> a.pi
 3.1415926535897931
 >>> a.pi = 3
 >>> a.pi
 3
 >>> import math
 >>> math.pi
 3

I'd say there's possibilities for shooting yourself in the foot. Maybe passing
a code to Indirect to enable get/set/del selectively would help.
Regards,
Bengt Richter
-- 
http://mail.python.org/mailman/listinfo/python-list


Inheritance problem ?

2005-08-24 Thread tooper
Hello all,

I'm trying to implement a common behavior for some object that can be
read from a DB or (when out of network) from an XML extract of this DB.
I've then wrote 2 classes, one reading from XML & the other from the
DB, both inheritating from a common one where I want to implement
several common methods.
Doing this, I've come to some behaviour I can't explain to myself,
which I've reproduced in the example bellow :

-

class myfather:
def __repr__(self):
return "\t a="+self.a+"\n\t b="+self.b

class mychilda(myfather):
def __init__(self,a):
self.a= a
def __getattr__(self,name):
return "Undefined for mychilda"

class mychildb(myfather):
def __init__(self,b):
self.b= b
def __getattr__(self,name):
return "Undefined for mychildb"

a= mychilda("a")
b= mychildb("b")

print "a:\n"+str(a)
print "b:\n"+str(b)

-

I was expecting to get :

a:
   a= a
   b= Undefined for mychilda
b:
   a= Undefined for mychildb
   b= b

but I get the following error :

File "/home/thierry/mytest.py", line 20, in ?
print "a:\n"+str(a)
TypeError: 'str' object is not callable

Could someone explain me what I missed ?

Thanks in advance !

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


Re: Anyone recognize this numeric storage format - similar to "float", but not quite

2005-08-24 Thread Bengt Richter
On Wed, 24 Aug 2005 04:10:07 -0400, "Terry Reedy" <[EMAIL PROTECTED]> wrote:
><[EMAIL PROTECTED]> wrote in message 
>news:[EMAIL PROTECTED]
>> We are working on a project to decipher a record structure of an old
>> accounting system that originates from the late80's mid-90's.
>> We have come across a number format that appears to be a "float" but
>> doesn't match any of the more standard implementations.
>> so we are hoping this is a recognizable number storage format with an
>> identifiable name AND pre-built conversion method
>> similiar to the "struct" modules available in python.
[...]


>This appears to be a repost, perhaps not by the op but due to a glitch 
>somewhere, of a question posted about a month ago and answered.
>

UIAM the more or less recent original you are thinking of turned out to be
straight IEEE double format, and I think this is not, though I think it looks
like one that was answered (by me ;-) quite a while ago (Dec 1 2003).

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


Re: Binary Trees in Python

2005-08-24 Thread Chris Smith
> "[diegueus9]" == [diegueus9] Diego Andrés Sanabria  writes:

[diegueus9]> Hello!!!  I want know if python have binary trees and
[diegueus9]> more?

The latest boost, 1.33, says it has a python wrapper for the boost
graph library.
Boost explicitely states that it's experimental, but my emerge was
successful.
See http://boost.org
-Chris
-- 
http://mail.python.org/mailman/listinfo/python-list


Eric3 for Windows not firing up.

2005-08-24 Thread sonicSpammersGoToHellSmooth
Hi, I downloaded Python 2.4.1 for Windows and PyQtGPL10.exe and
Eric3snapshot2005-04-10.exe from http://pythonqt.vanrietpaap.nl/

They seemed to install fine.  Python 2.4.1 works.

I tried Linguist and Designer, but there was some entrypoint error in
qt-mt3.dll.  I copied this file into the c:\windows directory, and then
QT at least fired up, with Linguist and Designer now working.

Then I tried Eric3, but I get the following:

The procedure entry point [EMAIL PROTECTED]@@MAEXPAVQWheelEvent@@@Z
could not be located in the dynamic link library qt-mt3.dll.

Any clues how to fix this one?

thanks
Michael

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


jython debugger

2005-08-24 Thread volpadri
Hi,
I am looking for an ide debugger for jython: is there someone with
some suggestions ?

Thanks,
   Adriano

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


Re: execfile in global scope

2005-08-24 Thread tooper
What about :

globdict= globals()

def changevar():
global globdict
execfile("changevar.py",globdict)

x = 111   # global var
changevar() 
print x   # returns 111 instead of 555

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


Re: execfile in global scope

2005-08-24 Thread tooper
What about :

globdict= globals()

def changevar():
global globdict
execfile("changevar.py",globdict)

x = 111   # global var
changevar() 
print x   # returns 111 instead of 555

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


Variables in REs

2005-08-24 Thread Yoav
Anyway to set variables in REs. Meaning:
I have the RE re.compile(r'/[^/]*') for example and I want to use it on 
both Win32 machines and Unix machnes. Meaning tha tI need to be able to 
control the '/' before compiling. I want to create and if and decide 
what the system is and then put the right char in a variable and compile 
the RE using that varialbe. I am quite a noob, so I know the question 
might sound stupid, but any help will be appreciated.

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


Re: list insertion

2005-08-24 Thread Randy Bush
>> hold = self.next
>> self.next = DaClass(value)
>> self.next.next = hold
> shouldn't that last line be this?
>   self.next.prev = hold

single threaded list

> What did you expect, and what did you ovserve?

i will try to distill a case

randy

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


Re: slip beta code released

2005-08-24 Thread vpr
I forgot to say that this is my little P2P pet project.  Need to send
files quickly between systems without having to set up shares or start
ftp servers. The idea is to make it easy to "slip" files between
parties esp if they are on different OS's.

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


Re: Variables in REs

2005-08-24 Thread tooper
Use os.sep to get / or \ or whatever character used to build pathes on
the os you're working on

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


Re: The ONLY thing that prevents me from using Python

2005-08-24 Thread Richie Hindle

[Chris]
> Not to be a shill, but I'd be interested in testimonials on 
> http://linode.org/
> I wonder if virtualization is the next killer app.
> Certainly blows the WTF my ISP? question away...

I can't speak for linode.org, but I have a Xen VPS from rimuhosting.com
and it's early days but so far I've been very impressed.  It's $19/mo
(normally $20 but they kindly gave me a 5% Open Source Developer discount)
which is not that much more than a decent shared hosting account.  You
need to be comfortable with administering your own Linux box, but these
days that's not difficult.  (NB. entrian.com is not running on it yet.)

-- 
Richie Hindle
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Warning when doubly linked list is defined gloablly

2005-08-24 Thread chand
Hi.,

In my api.py file 'g_opt_list' is defined globally
g_opt_list =[[],[],[],[],[],[],[]]

I am using this global list in the fucntion

def function ():
gloabl g_opt_list

when I run the py file, I am getting the Following Error

SyntaxWarning: name 'g_opt_list' is used prior to global declaration

Please let me know how to remove this error

--BestRegars.,
--Chandra

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


Re: where does __class__ come from?

2005-08-24 Thread Diez B. Roggisch

Adriaan Renting wrote:
> You might find the chapter 3.3 (in my python 2.3.4, it's "Special Method 
> names") in the reference manual useful, it is the only place I have found 
> sofar that describes most of these special methods. It does however not 
> contain __class__. I don't know where in the reference manual to find it's 
> description, probaly in some "Special attribute names" chapter I can't find.

Some of these are in the library reference, but lot's of them are also
in the language reference - which has bitten me quite a few times, but
by now I know where to look...

Regards,

Diez

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


Re: Warning when doubly linked list is defined gloablly

2005-08-24 Thread Diez B. Roggisch

chand wrote:
> In my api.py file 'g_opt_list' is defined globally
> g_opt_list =[[],[],[],[],[],[],[]]
>
> I am using this global list in the fucntion
>
> def function ():
> gloabl g_opt_list

This is obviously  wrong and not the code you wrote, global being
written horribly wrong - which should teach you an important lesson:
post actual code that exposes the problem, not something you think that
is working. Then we might be able to help you.

Diez

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


Re: Warning when doubly linked list is defined gloablly

2005-08-24 Thread Benjamin Niemann
chand wrote:

> Hi.,
> 
> In my api.py file 'g_opt_list' is defined globally
> g_opt_list =[[],[],[],[],[],[],[]]
> 
> I am using this global list in the fucntion
> 
> def function ():
> gloabl g_opt_list

global?

> when I run the py file, I am getting the Following Error
> 
> SyntaxWarning: name 'g_opt_list' is used prior to global declaration
> 
> Please let me know how to remove this error

This happens in cases like
>>> a = 1
>>> def c():
...   a
...   global a

Does your source only consist of the three lines above? (These would trigger
a SyntaxError because of the typo...)
You should provide a more complete example, so we can tell you where the
problem is. Try to build a minimal file that reproduces the problem. Often
you will find the line causing the error yourself - and the fix might be
obvious to you -, if your strip stuff away.

-- 
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://www.odahoda.de/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Inheritance problem ?

2005-08-24 Thread db
On Wed, 24 Aug 2005 03:34:36 -0700, tooper wrote:

> Hello all,
> 
> I'm trying to implement a common behavior for some object that can be
> read from a DB or (when out of network) from an XML extract of this DB.
> I've then wrote 2 classes, one reading from XML & the other from the
> DB, both inheritating from a common one where I want to implement
> several common methods.
> Doing this, I've come to some behaviour I can't explain to myself,
> which I've reproduced in the example bellow :
> 
> -
> 
> class myfather:
>   def __repr__(self):
>   return "\t a="+self.a+"\n\t b="+self.b
> 
> class mychilda(myfather):
>   def __init__(self,a):
>   self.a= a
>   def __getattr__(self,name):
>   return "Undefined for mychilda"
> 
> class mychildb(myfather):
>   def __init__(self,b):
>   self.b= b
>   def __getattr__(self,name):
>   return "Undefined for mychildb"
> 
> a= mychilda("a")
> b= mychildb("b")
> 
> print "a:\n"+str(a)
> print "b:\n"+str(b)
> 
> -
> 
> I was expecting to get :
> 
> a:
>a= a
>b= Undefined for mychilda
> b:
>a= Undefined for mychildb
>b= b
> 
> but I get the following error :
> 
> File "/home/thierry/mytest.py", line 20, in ?
> print "a:\n"+str(a)
> TypeError: 'str' object is not callable
> 
> Could someone explain me what I missed ?
> 
> Thanks in advance !

try new style classes.
class myfather(object):

see http://users.rcn.com/python/download/Descriptor.htm

HTH Arjen



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


Re: Inheritance problem ?

2005-08-24 Thread jitya
tooper wrote:
> Hello all,
>
> I'm trying to implement a common behavior for some object that can be
> read from a DB or (when out of network) from an XML extract of this DB.
> I've then wrote 2 classes, one reading from XML & the other from the
> DB, both inheritating from a common one where I want to implement
> several common methods.
> Doing this, I've come to some behaviour I can't explain to myself,
> which I've reproduced in the example bellow :
>
> -
>
> class myfather:
>   def __repr__(self):
>   return "\t a="+self.a+"\n\t b="+self.b
>
> class mychilda(myfather):
>   def __init__(self,a):
>   self.a= a
>   def __getattr__(self,name):
>   return "Undefined for mychilda"
>
> class mychildb(myfather):
>   def __init__(self,b):
>   self.b= b
>   def __getattr__(self,name):
>   return "Undefined for mychildb"
>
> a= mychilda("a")
> b= mychildb("b")
>
> print "a:\n"+str(a)
> print "b:\n"+str(b)
>
> -
>
> I was expecting to get :
>
> a:
>a= a
>b= Undefined for mychilda
> b:
>a= Undefined for mychildb
>b= b
>
> but I get the following error :
>
> File "/home/thierry/mytest.py", line 20, in ?
> print "a:\n"+str(a)
> TypeError: 'str' object is not callable
>
> Could someone explain me what I missed ?
>
> Thanks in advance !

hi I am got python 2.4 and changed "class myfather"
to new style classes "class myfather(object)" it worked.
here is the output :

a:
 a=a
 b=Undefined for mychilda
b:
 a=Undefined for mychildb
 b=b
 
But i myself still need explaination ;)

regards
jitu

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


Re: Anyone recognize this numeric storage format - similar to "float", but not quite

2005-08-24 Thread geskerrett
Thanks Bengt for directing me to your previous post.
I think I agree with you on the "reversing bit" and the constant MSB.
In reworking my examples I was always changing the 0 to 1.

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


Re: reg packages examples

2005-08-24 Thread Steve Holden
praba kar wrote:
> Dear All,
> 
>  I want to know about Modules and packages.
> I can understand about Modules but I cannot understand
> about Packages.  Kindly let me
> know about Packages with small example.
> I can understand conceptually but I don't know
> how to write programmatically.
> 
> regards
> Prabahar
> 
Prabahar:

In your headers I see "In-Reply-To: 
<[EMAIL PROTECTED]>". This means 
that people will see your message as part of another thread. It's better 
not to do that if you want your message to be read in the proper context.

A package is simply a directory containing an __init__.py file, which is 
executed when the package is imported. Sub-packages are subdirectories 
of the package main directory containing __init__.py files, which will 
be executed when the sub-package is imported. Packages can also contains 
modules, which are regular Python files that are executed when the 
module is imported.

So, in brief, packages are just a way to let you organize your code in 
to a set of mutually dependent modules and sub-packages, making source 
maintenance easier and allowing selective import of parts of the 
implemented functionality.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

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


Re: Logging all activity on a tty/pty?

2005-08-24 Thread Benji York
Dan Stromberg wrote:
> Is there a way, using python, to (voluntarily) log all activity in a
> given shell, in a way that should work on pretty much all *ix's with a
> port of python?

If it's just a simple transcript you're wanting see "man script".
--
Benji York


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


Re: Inheritance problem ?

2005-08-24 Thread tooper
Thanks, at least makes it running !
I'll have to teach myself to move to this new style classes by default
anyway...

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


wanna stop by my homemade glory hole?

2005-08-24 Thread Casee
my husband is installing an extra bathroom poolside.  there is a perfect size 
hole (unless you have a huge cock) to stick your dick through into the adjoing 
room.  come around the side of my house(perfect if you look like a repair man) 
enter into the unfisnished bathroom and I'll service you from the other side.  
you can leave when your done, no talking or small talk.  i want to do this 
before the hole gets patched up. its been a huge fantasy of mine ever since 
I've seen a glory hole online. you can email me for a time convienient for you. 
im home all-day most days so my schedule is open. do you prefer a certain color 
of lipstick? check out my pic and email here under kallegirl26 
www.no-strings-fun.net/kallegirl26 
ready and waiting, me ;o)


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


Re: jython debugger

2005-08-24 Thread Fabio Zadrozny
wait one more week... until there, pydev (http://pydev.sf.net) should 
already have debugger support for jython.

Cheers,

Fabio

[EMAIL PROTECTED] wrote:

>Hi,
>I am looking for an ide debugger for jython: is there someone with
>some suggestions ?
>
>Thanks,
>   Adriano
>
>  
>


-- 
Fabio Zadrozny
--
Software Developer

ESSS - Engineering Simulation and Scientific Software
www.esss.com.br

PyDev - Python Development Enviroment for Eclipse
pydev.sf.net
pydev.blogspot.com


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


Re: where does __class__ come from?

2005-08-24 Thread Adriaan Renting
I did mean the Language reference. chapter "Special method names". It contains 
a lot of the funky stuff like __dict__ and __getattr__. There is a little info 
in chapter 3.2 about __class__ : "__class__ is the instance's class."
 
 


Adriaan Renting| Email: [EMAIL PROTECTED]
ASTRON | Phone: +31 521 595 217
P.O. Box 2 | GSM:   +31 6 24 25 17 28
NL-7990 AA Dwingeloo   | FAX:   +31 521 597 332
The Netherlands| Web: http://www.astron.nl/~renting/

>>>"Diez B. Roggisch" <[EMAIL PROTECTED]> 08/24/05 1:13 pm >>> 
 
Adriaan Renting wrote: 
>You might find the chapter 3.3 (in my python 2.3.4, it's "Special Method 
>names") in the reference manual useful, it is the only place I have found 
>sofar that describes most of these special methods. It does however not 
>contain __class__. I don't know where in the reference manual to find it's 
>description, probaly in some "Special attribute names" chapter I can't find. 
 
Some of these are in the library reference, but lot's of them are also 
in the language reference - which has bitten me quite a few times, but 
by now I know where to look... 
 
Regards, 
 
Diez 
 
-- 
http://mail.python.org/mailman/listinfo/python-list 

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


Should I move to Amsterdam?

2005-08-24 Thread Wade
http://www.slate.com/id/2124561/entry/2124562/

Nice little series by Seth Stevenson for Americans daydreaming about
emigration. Somewhere, anywhere ... maybe Amsterdam?

I've never been to the Netherlands myself, but it sounds very
civilized.

Extra Python connection, besides the obvious one: Is "gezellig" related
to the Zen of Python? (
http://wordcraft.infopop.cc/eve/ubb.x/a/tpc/f/6351024471/m/2041067571/r/3901049571
)

-- Wade Leftwich
Ithaca, NY

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


Re: jython debugger

2005-08-24 Thread Frank LaFond
The PyDev environment (http://pydev.sourceforge.net/) for Eclipse 
appears to have Jython debug support, though I just tried it now and it 
did not work for me. The release notes 
http://pydev.sourceforge.net/features.html seem to suggest it should, so 
perhaps I just haven't configured something properly. PyDev currently 
only works with Java 1.5; Java 1.4 is expected, but not available yet.

If you try it, let us know if you can get it to work.

Frank.

[EMAIL PROTECTED] wrote:
> Hi,
> I am looking for an ide debugger for jython: is there someone with
> some suggestions ?
> 
> Thanks,
>Adriano
> 
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What's the matter with this code section?

2005-08-24 Thread bruno modulix
Johnny Lee wrote:
> Here is the source:
> 
(snip)
> class TestCaseTest(TestCase):
>   def testRunning(self):
>   print "testRunning in TestCaseTest"
>   test = WasRun("testMethod")
>   assert(not test.wasRun)
>   test.run()
>   assert(test.wasRun)
>   def testSetUp(self):
>   print "testSetUp in TestCaseTest"
>   test = WasRun("testMethod")
>   test.run()
Shouldn't it be test.setUp() instead ?

Unless the problem is here:

### TestCase.run() calls self.setUp()
class TestCase:
(snip)
def run(self):
print "run in TestCase"
self.setUp()
method = getattr(self, self.name)
method()

### WasRun.run() doesn't call self.setUp()
class WasRun(TestCase):
(snip)
def run(self):
print "run in WasRun"
method = getattr(self, self.name)
method()
def setUp(self):
print "in setUp of WasRun"
self.wasSetUp = 1


BTW, if the only reason for overloading WasRun.run() is to print "run in
WasRun", you can also modify parent's class run() method so it display
the effective class name, not an hard-coded one:

class TestCase:
(snip)
def run(self):
print "run in %s" % self.__class__.__name__
self.setUp()
method = getattr(self, self.name)
method()

and then remove run() from WasRun.

There should be a simple solution to 'aspect' the debug/trace stuff with
a decorator, like:

def traced(func):
  def _wrapper(self, *args, **kwargs):
print "%s method in %s class" % (func.func_name,
 self.__class__.__name)
return func(self, *args, **kwargs)

  return _wrapper(func)

class TestCase:
@traced
def run(self):
self.setUp()
method = getattr(self, self.name)
method()

(not tested, and I don't have much experience with decorators...)

-- 
bruno desthuilliers
ruby -e "print '[EMAIL PROTECTED]'.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '[EMAIL PROTECTED]'.split('@')])"
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to deal with space between numbers

2005-08-24 Thread bruno modulix
Mohammed Altaj wrote:
> 
>  Thanks a lot for your valuable answer, i like the way you code ,

Thanks.

> but i
> would like to use my own, so if it is possible for you and if you have
> time, please could you fix my code, so that i can do what i want. 
> Because i am using the this out put to another one , and i have the same
> problem.  I will really appreciate it !!!

No problem, it's 500 euro a day. Please give me your snailmail and the
whole code and spec, so I can send you back a contract. I'll start as
soon as I'll receive the contract signed and the first check.

best regards,
-- 
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '[EMAIL PROTECTED]'.split('@')])"
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Should I move to Amsterdam?

2005-08-24 Thread Adriaan Renting
Well, I'm not sure if Amsterdam is nice, but the Netherlands is o.k., except 
for the weather.
I'd like to descripbe it as 49 weeks of autumn, 1 week of spring, 1 week of 
summer, 1 week of winter.
Currently my employer only has an opening for a Microwave Antenna designer 
though, sorry no Python coders.
http://www.astron.nl/astron/jobs/index.htm

Seems like a nice column, I'll read it completely some other time.
 
>>>"Wade" <[EMAIL PROTECTED]> 08/24/05 2:31 pm >>> 
http://www.slate.com/id/2124561/entry/2124562/ 
 
Nice little series by Seth Stevenson for Americans daydreaming about 
emigration. Somewhere, anywhere ... maybe Amsterdam? 
 
I've never been to the Netherlands myself, but it sounds very 
civilized. 
 
Extra Python connection, besides the obvious one: Is "gezellig" related 
to the Zen of Python? ( 
http://wordcraft.infopop.cc/eve/ubb.x/a/tpc/f/6351024471/m/2041067571/r/3901049571
 
) 
 
-- Wade Leftwich 
Ithaca, NY 
 
-- 
http://mail.python.org/mailman/listinfo/python-list 

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



Re: Inheritance problem ?

2005-08-24 Thread jitya
The stuff on Descriptor.htm was really good . 

 Thanks

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


Re: Variables in REs

2005-08-24 Thread Yoav
Such a sweet and simple way.

Thanks.

tooper wrote:
> Use os.sep to get / or \ or whatever character used to build pathes on
> the os you're working on
> 
-- 
http://mail.python.org/mailman/listinfo/python-list


Getting rid of "close failed: [Errno 0] No Error" on Win32

2005-08-24 Thread Yoav
I am using os.popen3 to call a console process and get its output and 
stderr. However on Win32 (and not OS X) I also get the Errno message. 
It's printed to the screen, which I wish to keep clean. How can disable 
this notification?

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


Re: global interpreter lock

2005-08-24 Thread Bryan Olson
Mike Meyer wrote:
 > Bryan Olson writes:
 >
 >>Mike Meyer wrote:
 >> > The rule I follow in choosing my tools is "Use the least complex tool
 >> > that will get the job done."
 >>
 >>Even if a more complex tool could do the job better?
 >
 > In that case, the simpler model isn't necessarily getting the job
 > done. I purposely didn't refine the word "job" just so this would be
 > the case.

I didn't ask about any particular case. You stated a general
rule you follow, and I think that rule is nuts.


 >>Now I've gotten off-topic. Threads are winning, and the industry
 >>is going to multiple processors even for PC-class machines.
 >>Might as well learn to use that power.
 >
 > I own too many orphans to ever confuse popularity with technical
 > superiority.

The issue here is whether to confuse reality with what one might
wish reality to be.

 > I've learned how to use threads, and done some
 > non-trivial thread proramming, and hope to never repeat that
 > experience. It was the second most difficult programming task I've
 > ever attempted(*).

Great -- lets see it!  Can you point out what parts were so
hard? How would you have solved the same problems without
threads?


 > As I said above, the real problem isn't threads per
 > se, it's that the model for programming them in popular languages is
 > still primitive. So far, to achieve the non-repitition goal, I've used
 > async I/O, restricted my use of real threads in popular languages to
 > trivial cases, and started using servers so someone else gets tod eal
 > with these issues.

Then maybe we should listen to those other people. Is there a
successful single-line-of-execution async-I/O based server that
provides a service as sophisticated as the modern relational-
database engines? Why do you think that is?


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


Re: Inheritance problem ?

2005-08-24 Thread tooper
Not always easy to follow but great !
Using __str__ instead of __repr__ makes it work also with old style
(thanks to Simon Brunning for suggesting it, and with your link I even
now understand why !)

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


Re: Proposed PEP: New style indexing, was Re: Bug in slice type

2005-08-24 Thread Bryan Olson
Paul Rubin wrote:
 > Bryan Olson writes:
 >
 >> seq[3 : -4]
 >>
 >>we write:
 >>
 >> seq[3 ; $ - 4]
 >
 >
 > +1

I think you're wrong about the "+1". I defined '$' to stand for
the length of the sequence (not the address of the last
element).


 >>When square-brackets appear within other square-brackets, the
 >>inner-most bracket-pair determines which sequence '$' describes.
 >>(Perhaps '$$' should be the length of the next containing
 >>bracket pair, and '$$$' the next-out and...?)
 >
 > Not sure.  $1, $2, etc. might be better, or $ like in regexps, etc.

Sounds reasonable.


[...]
 > Hmm, tuples are hashable and are already valid indices to mapping
 > objects like dictionaries.  Having slices means an object can
 > implement both the mapping and sequence interfaces.  Whether that's
 > worth caring about, I don't know.

Yeah, I thought that alternative might break peoples code, and
it turns out it does.


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


Re: Proposed PEP: New style indexing, was Re: Bug in slice type

2005-08-24 Thread Bryan Olson
Kay Schluehr wrote:
 > Bryan Olson wrote:
 >
 >>Steven Bethard wrote:
 >> > Well, I couldn't find where the general semantics of a negative stride
 >> > index are defined, but for sequences at least[1]:
 >> >
 >> > "The slice of s from i to j with step k is defined as the sequence of
 >> > items with index x = i + n*k such that 0 <= n < (j-i)/k."
 >> >
 >> > This seems to contradict list behavior though. [...]
 >>
 >>The conclusion is inescapable: Python's handling of negative
 >>subscripts is a wart. Indexing from the high end is too useful
 >>to give up, but it should be specified by the slicing/indexing
 >>operation, not by the value of the index expression.
 >
 >
 > It is a Python gotcha, but the identity X[-1] == X[len(X)-1] holds and
 > is very usefull IMO.

No question index-from-the-far-end is useful, but I think
special-casing some otherwise-out-of-bounds indexes is a
mistake.

Are there any cases in popular Python code where my proposal
would not allow as elegant a solution?

 > If you want to slice to the bottom, take 0 as
 > bottom value. The docs have to be extended in this respect.

I'm not sure what you mean. Slicing with a negative step and a
stop value of zero will not reach the bottom (unless the
sequence is empty). In general, Python uses inclusive beginning
bounds and exclusive ending bounds. (The rule is frequently
stated incorrectly as "inclusive lower bounds and exclusive
upper bounds," which fails to consider negative increments.)


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


Unix diff command under Window.

2005-08-24 Thread TonyHa
Hello,

Does any one have using Python to write a Unix "diff" command for
Window?

Tony Ha.

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


[no subject]

2005-08-24 Thread bhjqsbgdhj


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


tkraise oddity

2005-08-24 Thread twd
I'm seeing some new and unexpected behaviour with tkinter + python2.4,
in a gnome+linux environment. The code below used to work (and
continues to work under windows). The intended behaviour is that a
window is created the the first time the button is pushed, and then
de-iconified and brought to the top whenever the button is pushed
again. The behaviour I'm seeing is that the window is de-iconified (if
iconified) correctly, but if already present on the screen, it is not
raised.

Does this code look ok? Any suggestions as to what the problem could
be?

Thanks for any pointers.

--
from Tkinter import *

t = None

def cmd():
global t
if t:
t.tkraise()
t.deiconify()
else:
t = Toplevel()
l = Label( t, text=" some text goes here ..." )
l.pack()

b =  Button(text="Raise",command=cmd)
b.pack()
b.mainloop()

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


Re: Jargons of Info Tech industry

2005-08-24 Thread Dragan Cvetkovic
[EMAIL PROTECTED] (Richard Bos) writes:

> l v <[EMAIL PROTECTED]> wrote:
>
>> Mike Schilling wrote:
>> > A formatting-only subset of HTML would be useful for both e-mail and 
>> > Usenet 
>> > posts. 
>> 
>> I would *agree*  (your news reader may bold that last word)
>
> It had bloody better not. You're cross-posting this to a C newsgroup,
> where *ptr* 4 is a legal (albeit inadvisably spaced) expression.
>

Or _ptr_ for that matter (does it underline for you?)

Well, at least on my newsreader (gnus), I can toggle the behaviour. Ditto
for smileys:

(setq gnus-treat-display-smileys nil)

Dragan

-- 
Dragan Cvetkovic, 

To be or not to be is true. G. Boole  No it isn't.  L. E. J. Brouwer

!!! Sender/From address is bogus. Use reply-to one !!!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Unix diff command under Window.

2005-08-24 Thread Adriaan Renting
There probably is some free version somewhere, maybe even as part of CygWin.

I've used Araxis Merge on Windows. It used to be shareware. It's nice enough 
that I bought it.
 
 
>>>"TonyHa" <[EMAIL PROTECTED]> 08/24/05 3:50 pm >>> 
Hello, 
 
Does any one have using Python to write a Unix "diff" command for 
Window? 
 
Tony Ha. 
 
-- 
http://mail.python.org/mailman/listinfo/python-list 

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


Re: The ONLY thing that prevents me from using Python

2005-08-24 Thread Andreas Kostyrka
On Wed, Aug 24, 2005 at 09:49:01AM +0100, Richie Hindle wrote:
> 
> [Chris]
> > Not to be a shill, but I'd be interested in testimonials on 
> > http://linode.org/
> > I wonder if virtualization is the next killer app.
> > Certainly blows the WTF my ISP? question away...
> 
> I can't speak for linode.org, but I have a Xen VPS from rimuhosting.com
> and it's early days but so far I've been very impressed.  It's $19/mo
> (normally $20 but they kindly gave me a 5% Open Source Developer discount)
> which is not that much more than a decent shared hosting account.  You
> need to be comfortable with administering your own Linux box, but these
> days that's not difficult.  (NB. entrian.com is not running on it yet.)

I cannot comment on linode as I'm not a customer. The info on the website
seems ok. But the prices are somehow laughable: I'm currently paying
EUR39 for a dedicated host (with at least 200GB traffic, I'd had to look it up 
60GB "storage", 256MB RAM and a 2.4GHz P4 CPU all alone to me).

That makes the 79.95 dollars for "Linode 256" somehow a bit expensive.
OTOH perhaps dedicated servers are really cheap in Germany ;)

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


Re: Should I move to Amsterdam?

2005-08-24 Thread Wouter van Ooijen (www.voti.nl)
>Nice little series by Seth Stevenson for Americans daydreaming about
>emigration. Somewhere, anywhere ... maybe Amsterdam?
>
>I've never been to the Netherlands myself, but it sounds very
>civilized.

It used to be, until some lunatic (alledged to be a left-winger)
killed an (alledged right-wing) politician, and another (alledged
muslim-extremist) lunatic killed an (alledged right- or left-wing,
depends on who you ask) cineast. We used to be a place where
everything happens a few years later, but we are catching up! :(

But I fondly remember the classes I had at the Delft university by
Lambert Meertens about the ABC language, which is the forerunner of
Python. :)


Wouter van Ooijen

-- 
http://www.voti.nl
Webshop for PICs and other electronics
http://www.voti.nl/hvu
Teacher electronics and informatics
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Should I move to Amsterdam?

2005-08-24 Thread Armin Steinhoff
Adriaan Renting wrote:
> Well, I'm not sure if Amsterdam is nice, but the Netherlands is o.k., except 
> for the weather.
> I'd like to descripbe it as 49 weeks of autumn, 1 week of spring, 1 week of 
> summer, 1 week of winter.
> Currently my employer only has an opening for a Microwave Antenna designer 
> though, sorry no Python coders.
> http://www.astron.nl/astron/jobs/index.htm
> 
> Seems like a nice column, I'll read it completely some other time.
>  
> 
"Wade" <[EMAIL PROTECTED]> 08/24/05 2:31 pm >>> 
> 
> http://www.slate.com/id/2124561/entry/2124562/ 
>  
> Nice little series by Seth Stevenson for Americans daydreaming about 
> emigration. Somewhere, anywhere ... maybe Amsterdam? 
>  
> I've never been to the Netherlands myself, but it 
 >sounds very civilized.

What a joke ... Amsterdam is 'civilized' since several hundreds of
years :)

--Armin



>  
> Extra Python connection, besides the obvious one: Is "gezellig" related 
> to the Zen of Python? ( 
> http://wordcraft.infopop.cc/eve/ubb.x/a/tpc/f/6351024471/m/2041067571/r/3901049571
>  
> ) 
>  
> -- Wade Leftwich 
> Ithaca, NY 
>  
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Doubt C and Python

2005-08-24 Thread Grant Edwards
On 2005-08-23, praba kar <[EMAIL PROTECTED]> wrote:

>>> Some people with C background use Python instead of
>>> programming in C.why?
>> 
>> Becuase it is much more efficient.
>> 
>> -James
>
> What why it is more efficient.  Kindly let me
> know with some details.

Have you read _any_ of the thread?  A number of people have
already explained in detail why programming in Pything is more
efficient.   Please read the responses you've already gotten.

-- 
Grant Edwards   grante Yow!  My DIGITAL WATCH
  at   has an automatic SNOOZE
   visi.comFEATURE!!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: yapsnmp port issues

2005-08-24 Thread [EMAIL PROTECTED]
Solved the problem all by myself. Patch (and rationale) available on
sourceforge.

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


Re: py-serial + CSV

2005-08-24 Thread Grant Edwards
On 2005-08-24, Sybren Stuvel <[EMAIL PROTECTED]> wrote:

>> import serial
>> s = serial.Serial(port=0,baudrate=4800, timeout=20)
>> while 1:
>>  line = s.readline()
>>  words = line.split(',')
>>  if words[0]=="$GPRMC":
>>  print words[1], words[3], words[5]
>>
>> I just wonder if there is some beter (or as you are saying "more
>> pythonic":) aproach how to write such a piece of code.
>
> You could use regular expressions instead.

  "There is a programmer who has a problem to solve.  He decides
   to use regular expressions.  Now he has two problems."

> And to make it even more pythonic, replace the "while" and the
> "line = s.readline()" with "for line in s:"

Serial port objects aren't iterable.

-- 
Grant Edwards   grante Yow!  I was making donuts
  at   and now I'm on a bus!
   visi.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Unix diff command under Window.

2005-08-24 Thread Benji York
TonyHa wrote:
> Does any one have using Python to write a Unix "diff" command for
> Window?

No, but you can get the *actual* diff command for Windows:
http://unxutils.sourceforge.net/
--
Benji York


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


Email client in Pyhton

2005-08-24 Thread knaren
Hi grp,
I new to this grp and python too.
i have started writing few python scripts myself.

now i am planning to write a bear minimum email client in
pyhton. i found the smtp module of python could serve my
pupose. I can send message using mails using the smtp lib.
Now i'm looking for some modules which can help me in
fetching the mails from the mailserver and managing folders.

I also look for some existing mail client, written in python 
which wud serve my cause.

i searched google for no avail.

-- 
K Naren,MeTel Team.
http://www.midascomm.com/



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


Re: Unix diff command under Window.

2005-08-24 Thread Thomas Heller
"TonyHa" <[EMAIL PROTECTED]> writes:

> Hello,
>
> Does any one have using Python to write a Unix "diff" command for
> Window?
>
> Tony Ha.

Yes.  There's a script in your Python distribution:
Tools/scripts/diff.py

See also the docs for the 'difflib' standard library module.

I do not know whether the Tools directory is installed by default or
not.

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


Re: Bug in slice type

2005-08-24 Thread Bryan Olson
Kay Schluehr wrote:
 > Steven Bethard wrote:
 >>"The slice of s from i to j with step k is defined as the sequence of
 >>items with index x = i + n*k such that 0 <= n < (j-i)/k."
 >>
 >>This seems to contradict list behavior though.
 >> range(10)[9:-1:-2] == []
 >
 >
 > No, both is correct. But we don't have to interpret the second slice
 > argument m as the limit j of the above definition.

Even if "we don't have to," it sure reads like we should.


 > For positive values
 > of m the identity
 > m==j holds. For negative values of m we have j = max(0,i+m).

First, the definition from the doc is still ambiguous: Is the
division in

 0 <= n < (j-i)/k

real division, or is it Python integer (truncating) division? It
matters.

Second, the rule Kay Schluehr states is wrong for either type
of division. Look at:

 range(5)[4 : -6 : -2]

Since Python is so programmer-friendly, I wrote some code to
make the "look at" task easy:



slice_definition = 
The slice of s from i to j with step k is defined as the sequence of
items with index x = i + n*k such that 0 <= n < (j-i)/k.
"""

Kay_Schluehr_rule = """
For positive values of m the identity m==j holds. For negative values
of m we have j = max(0,i+m).
"""

def m_to_j(i, m):
 """ Compute slice_definition's 'j' according to Kay_Schluehr_rule
 when the slice of sequence is specified as,
 sequence[i : m : k].
 """
 if m > 0:
 j = m
 else:
 j = max(0, i + m)
 return j

def extract_slice(sequence, i, m, k, div_type='i'):
 """ Apply the slice definition with Kay Schluehr's rule to find
 what the slice should be. Pass div_type of 'i' to use integer
 division, or 'f' for float (~real) division, in the
 slice_definition expression,
 (j-i)/k.
 """
 j = m_to_j(i, m)
 result = []
 n = 0
 if div_type == 'i':
 end_bound = (j - i) / k
 else:
 assert div_type == 'f', "div_type must be 'i' or 'f'."
 end_bound = float(j - i) / k
 while n < end_bound:
 result.append(sequence[i + n * k])
 n += 1
 return result

def show(sequence, i, m, k):
 """ Print what happens, both actually and according to stated rules.
 """
 print "Checking: %s[%d : %d : %d]" % (sequence, i, m, k)
 print "actual   :", sequence[i : m : k]
 print "Kay's rule, int division :", extract_slice(sequence, i, m, k)
 print "Kay's rule, real division:", extract_slice(sequence, i, m, 
k, 'f')
 print



show(range(5), 4, -6, -2)



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


use SciPy with Python 2.4.1?

2005-08-24 Thread beliavsky
Is SciPy usable with Python 2.4.1? At http://www.scipy.org/download/ it
says that 2.3.3 is recommended, and I don't see a binary for 2.4.1.

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


Re: Email client in Pyhton

2005-08-24 Thread Michael Ekstrand
On Wed, 24 Aug 2005 20:15:01 +0530 (IST)
[EMAIL PROTECTED] wrote:
> now i am planning to write a bear minimum email client in
> pyhton. i found the smtp module of python could serve my
> pupose. I can send message using mails using the smtp lib.
> Now i'm looking for some modules which can help me in
> fetching the mails from the mailserver and managing folders.

Check out the POP and IMAP modules (poplib and imaplib), the email
package, and the mailbox and mhlib modules (all in the standard
library). I seem to recall seeing a maildir module somewhere, but can't
find it now. IIRC, many of the mailbox modules (such as mailbox and
mhlib) are read-only, but they should provide a good starting point.

> I also look for some existing mail client, written in python 
> which wud serve my cause.

Mahogany Mail isn't written in Python, but it uses wxWidgets and has an
embedded Python interpreter.

A quick Google for "python email client" (sans quotes) revealed the
following useful links:

http://sourceforge.net/projects/usablemail/
http://mail.python.org/pipermail/python-list/2003-August/177139.html

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


a question about tkinter StringVars()

2005-08-24 Thread William Gill
Working with tkinter, I have a createWidgets() method in a class.
Within createWidgets() I create several StringVars() and
assign them to the textvariable option of several widgets.
Effectively my code structure is:

def createWidgets(self):
 ...
 var = StringVar()
 Entry(master,textvariable=var)
 ...
 ...

Though 'var' would normally go out of scope when createWidgets 
completes, since the Entry and its reference do not go out of scope, 
only the name 'var' goes out of scope, not the StringVar object, Right?

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


Re: Email client in Pyhton

2005-08-24 Thread Jonas Geiregat
[EMAIL PROTECTED] wrote:
> Hi grp,
> I new to this grp and python too.
> i have started writing few python scripts myself.
> 
> now i am planning to write a bear minimum email client in
> pyhton. i found the smtp module of python could serve my
> pupose. I can send message using mails using the smtp lib.
> Now i'm looking for some modules which can help me in
> fetching the mails from the mailserver and managing folders.
> 
> I also look for some existing mail client, written in python 
> which wud serve my cause.
> 
> i searched google for no avail.
> 
Maybe start by reading some email related rfc's
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: gtkmozembed in fedora core 3

2005-08-24 Thread Martin DeMello
Jonas Geiregat <[EMAIL PROTECTED]> wrote:
> 
> If you can't find any rpm's there aren't any available.
> You need to compile mozilla with (I think) support for gtkmozembed but I 
> guess that's done by default when you compile mozilla with 
> ac_add_options --enable-default-toolkit=gtk2 in your mozconfig file.
> Check /usr/lib/mozilla for libgtkembedmoz.so if it's not there you'll 
> have to rebuild your mozilla/firefox rpm , again I think, these are just 
> some random tips ..
> Good luck!

Thanks, I'll give it a whirl!

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


Re: py-serial + CSV

2005-08-24 Thread Michael Hoffman
McBooCzech wrote:
> This (according to your suggestions) is my code which works for me
> 
> import serial
> s = serial.Serial(port=0,baudrate=4800, timeout=20)
> while 1:
>   line = s.readline()
>   words = line.split(',')
>   if words[0]=="$GPRMC":
>   print words[1], words[3], words[5]
> 
> I just wonder if there is some beter (or as you are saying "more
> pythonic":) aproach how to write such a piece of code.

import csv

from serial import Serial

port = Serial(port=0, baudrate=4800, timeout=20)

for row in csv.reader(iter(port.readline, None)):
 if row[0] == "$GPMRC":
 print row[1], row[3], row[5]
-- 
Michael Hoffman
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Email client in Pyhton

2005-08-24 Thread rafi

Mark Lutz in Programming Python, 2nd ed from O'Reilly covers the subject 
in chapter 11 using only the standards modules for mails and Tkinter.

hth

[EMAIL PROTECTED] wrote:
> Hi grp,
> I new to this grp and python too.
> i have started writing few python scripts myself.
> 
> now i am planning to write a bear minimum email client in
> pyhton. i found the smtp module of python could serve my
> pupose. I can send message using mails using the smtp lib.
> Now i'm looking for some modules which can help me in
> fetching the mails from the mailserver and managing folders.
> 
> I also look for some existing mail client, written in python 
> which wud serve my cause.
> 
> i searched google for no avail.
> 


-- 
rafi

"Imagination is more important than knowledge."
(Albert Einstein)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Proposed PEP: New style indexing, was Re: Bug in slice type

2005-08-24 Thread Bryan Olson
Steven Bethard wrote:
 > Bryan Olson wrote:
 >
 >> Steven Bethard wrote:
 >>  > Well, I couldn't find where the general semantics of a negative 
stride
 >>  > index are defined, but for sequences at least[1]:
 >>  >
 >>  > "The slice of s from i to j with step k is defined as the sequence of
 >>  > items with index x = i + n*k such that 0 <= n < (j-i)/k."
 >>  >
 >>  > This seems to contradict list behavior though. [...]
 >>
 >> The conclusion is inescapable: Python's handling of negative
 >> subscripts is a wart.
 >
 >
 > I'm not sure I'd go that far.  Note that my confusion above was the
 > order of combination of points (3) and (5) on the page quoted above[1].
 >  I think the problem is not the subscript handling so much as the
 > documentation thereof.

Any bug can be pseudo-fixed by changing the documentation to
conform to the behavior. Here, the doc clearly went wrong by
expecting Python's behavior to follow from a few consistent
rules. The special-case handling of negative indexes looks
handy, but raises more difficulties than people realized.

I believe my PPEP avoids the proliferation of special cases. The
one additional issue I've discovered is that user-defined types
that are to support __getitem__ and/or __setitem__ *must* also
implement __len__.  Sensible sequence types already do, so I
don't think it's much of an issue.


 > This is already valid syntax, and is used
 > heavily by the numarray/numeric folks.

Yeah, I thought that variant might break some code. I didn't
know it would be that much. Forget that variant.


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


Re: Unix diff command under Window.

2005-08-24 Thread Dejan Rodiger
TonyHa said the following on 24.08.2005 15:50:
> Hello,
> 
> Does any one have using Python to write a Unix "diff" command for
> Window?


http://gnuwin32.sourceforge.net/
http://gnuwin32.sourceforge.net/packages.html
Under Diffutils

-- 
Dejan Rodiger - PGP ID 0xAC8722DC
Delete wirus from e-mail address
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Email client in Python

2005-08-24 Thread Steve Holden
[EMAIL PROTECTED] wrote:
> Hi grp,
> I new to this grp and python too.
> i have started writing few python scripts myself.
> 
> now i am planning to write a bear minimum email client in
> pyhton. i found the smtp module of python could serve my
> pupose. I can send message using mails using the smtp lib.
> Now i'm looking for some modules which can help me in
> fetching the mails from the mailserver and managing folders.
> 
> I also look for some existing mail client, written in python 
> which wud serve my cause.
> 
> i searched google for no avail.
> 
I'd recommend the poplib library. There is also imaplib, but that is 
much more difficult to use.

Examples of use:

   http://docs.python.org/lib/pop3-example.html
   http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/82233
   http://effbot.org/zone/librarybook/network-protocols.pdf

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/

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


Re: Unix diff command under Window.

2005-08-24 Thread jepler
Either it didn't exist at the time, or I didn't know about the diff.py that
Thomas Heller mentioned in another response, so I wrote 'pyunidiff' 
http://unpy.net/~jepler/pyunidiff.py

ah, I guess unix 'diff'-style output was added to difflib.py in 2003, while my
pyunidiff dates to 2002.

Jeff


pgp9OPAVfz7se.pgp
Description: PGP signature
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: a question about tkinter StringVars()

2005-08-24 Thread Eric Brunel
On Wed, 24 Aug 2005 15:07:27 GMT, William Gill <[EMAIL PROTECTED]> wrote:

> Working with tkinter, I have a createWidgets() method in a class.
> Within createWidgets() I create several StringVars() and
> assign them to the textvariable option of several widgets.
> Effectively my code structure is:
>
> def createWidgets(self):
>  ...
>  var = StringVar()
>  Entry(master,textvariable=var)
>  ...
>  ...
>
> Though 'var' would normally go out of scope when createWidgets
> completes, since the Entry and its reference do not go out of scope,
> only the name 'var' goes out of scope, not the StringVar object, Right?

Well, apparently not:


 from Tkinter import *

class MyStringVar(StringVar):
   def __del__(self):
 print "I'm dying!"

root = Tk()

def cw():
   var = MyStringVar()
   Entry(root, textvariable=var).pack()

cw()

root.mainloop()


Running this script actually prints "I'm dying!", so there is obviously no 
reference from the Entry widget to the variable object. The reference is 
actually kept at tcl level between an entry and the *tcl* variable, which knows 
nothing about the *Python* variable.

BTW, the whole purpose of StringVar's is to be kept so that the text for the 
entry can be retrieved or modified by another part of the program. So what can 
be the purpose of creating variables in a function or method and not keeping 
them anywhere else than a local variable?
-- 
python -c "print ''.join([chr(154 - ord(c)) for c in 
'U(17zX(%,5.zmz5(17;8(%,5.Z65\'*9--56l7+-'])"
-- 
http://mail.python.org/mailman/listinfo/python-list


Default function arguments behaving badly

2005-08-24 Thread [EMAIL PROTECTED]
Hi

I'm having some trouble with a function I've written in Python:

def myFunction(l1,l2,result=[]):
index=0
for i in l1:
result.append([])
if type(i)==list:
myFunction(i,l2,result[index])
else:
for j in l2:
result[index].append(i*j)
index+=1
return result

l1 and l2 are lists and the function multiplies every element of l1
with every element of l2. l1 is (possibly) multi-dimensional, and the
recursive bit is in there to cope with that. For example, if
l1=[[1,2],[3,4]] and l2=[5,6] the result is
[[[5,6],[10,12]],[[15,18],[20,40]]].

The problem is that it works if I run it once, but then on repeated
runs the value for 'result' doesn't seem to set itself to my default of
[], but instead uses the state it was in last time the function was
run.

I've had a problem like this in the past and ended up rewriting the
function as a class and using something like self.result, but I don't
really like this solution as the code becomes considerabley more
difficult to read (and I suspect less efficient). Also, I suppose I
could feed in an empty array every time but that doesn't provide a very
intuitive interface to the function.

Does anyone know what is going on here? Is there an easy solution?

Thanks for your help!

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


Re: Default function arguments behaving badly

2005-08-24 Thread rafi
[EMAIL PROTECTED] wrote:
> Hi

hi

> I'm having some trouble with a function I've written in Python:
> 
> def myFunction(l1,l2,result=[]):
> index=0
> for i in l1:
> result.append([])
> if type(i)==list:
> myFunction(i,l2,result[index])
> else:
> for j in l2:
> result[index].append(i*j)
> index+=1
> return result

> The problem is that it works if I run it once, but then on repeated
> runs the value for 'result' doesn't seem to set itself to my default of
> [], but instead uses the state it was in last time the function was
> run.

> Does anyone know what is going on here? Is there an easy solution?

the list you provide as default parameter is evaluated once (at loading 
time of the function). so each time you call the function, it uses the 
same list that has been filled before... you do not have the problem 
with say and int or a string as they are non mutable objects. however 
lists are mutable objects so... modify your function as follow:

def myFunction(l1,l2,result=None):
 if result is None:
 result = []

hth

-- 
rafi

"Imagination is more important than knowledge."
(Albert Einstein)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: tkraise oddity

2005-08-24 Thread Eric Brunel
On 24 Aug 2005 06:57:07 -0700, twd <[EMAIL PROTECTED]> wrote:

> I'm seeing some new and unexpected behaviour with tkinter + python2.4,
> in a gnome+linux environment. The code below used to work (and
> continues to work under windows). The intended behaviour is that a
> window is created the the first time the button is pushed, and then
> de-iconified and brought to the top whenever the button is pushed
> again. The behaviour I'm seeing is that the window is de-iconified (if
> iconified) correctly, but if already present on the screen, it is not
> raised.

What exactly do you expect? Do you want to raise the window above all other 
windows *in your application*, or above *all* other windows? I doubt tk can 
guarantee the latter, and this seems to be confirmed by the manuel for tk's 
raise command; cf. http://www.tcl.tk/man/tcl8.4/TkCmd/raise.htm

If you put the window with the button in front of the window with the label, 
and if pressing the button doesn't bring the window with the lable above the 
other, then it may be a bug. If it works, I guess it's just a matter of how the 
window managers interpret what "raising a window" means... But I'm no 
specialist here, so maybe someone else will confirm that.

[snip]
> from Tkinter import *
>
> t = None
>
> def cmd():
> global t
> if t:
> t.tkraise()
> t.deiconify()
> else:
> t = Toplevel()
> l = Label( t, text=" some text goes here ..." )
> l.pack()
>
> b =  Button(text="Raise",command=cmd)
> b.pack()
> b.mainloop()

(BTW, did you try to put the deiconify before the tkraise?)

HTH
-- 
python -c "print ''.join([chr(154 - ord(c)) for c in 
'U(17zX(%,5.zmz5(17;8(%,5.Z65\'*9--56l7+-'])"
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Default function arguments behaving badly

2005-08-24 Thread Paul McNett
[EMAIL PROTECTED] wrote:

> I'm having some trouble with a function I've written in Python:

> def myFunction(l1,l2,result=[]):
[snipped rest of function and explanation of what it does]

> Does anyone know what is going on here? Is there an easy solution?

It shined out like a supernova. It has to do with mutability of certain 
Python objects (e.g. dicts and lists) and the fact that Python binds the 
default arguments only once. So, when your function is defined, python 
binds the name "result" to the value []. Then, your function runs the 
first time using that original binding. The second time, it still uses 
the original binding which, because lists are mutable, still contains 
the prior list. Etcetera.

The solution is to never assign mutable objects to default arguments. 
Instead, assign to None, like:

def myFunction(l1, l2, result=None):
if result is None:
result = []

Others will certainly post links to the python docs that explain this.

-- 
Paul McNett
http://paulmcnett.com

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


Re: Default function arguments behaving badly

2005-08-24 Thread [EMAIL PROTECTED]
That works perfectly - Thanks! I'm always getting tripped up by the
mutability of lists, I should really learn to look out for it more...

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


Re: a question about tkinter StringVars()

2005-08-24 Thread William Gill


Eric Brunel wrote:
> On Wed, 24 Aug 2005 15:07:27 GMT, William Gill <[EMAIL PROTECTED]> wrote:
> 
>> Working with tkinter, I have a createWidgets() method in a class.
>> Within createWidgets() I create several StringVars() and
>> assign them to the textvariable option of several widgets.
>> Effectively my code structure is:
>>
>> def createWidgets(self):
>>  ...
>>  var = StringVar()
>>  Entry(master,textvariable=var)
>>  ...
>>  ...
>>
>> Though 'var' would normally go out of scope when createWidgets
>> completes, since the Entry and its reference do not go out of scope,
>> only the name 'var' goes out of scope, not the StringVar object, Right?
> 
> 
> Well, apparently not:
> 
> 
> from Tkinter import *
> 
> class MyStringVar(StringVar):
>   def __del__(self):
> print "I'm dying!"
> 
> root = Tk()
> 
> def cw():
>   var = MyStringVar()
>   Entry(root, textvariable=var).pack()
> 
> cw()
> 
> root.mainloop()
> 
> 
> Running this script actually prints "I'm dying!", so there is obviously 
> no reference from the Entry widget to the variable object. The reference 
> is actually kept at tcl level between an entry and the *tcl* variable, 
> which knows nothing about the *Python* variable.
I will have to do some experimenting.
> 
> BTW, the whole purpose of StringVar's is to be kept so that the text for 
> the entry can be retrieved or modified by another part of the program. 
> So what can be the purpose of creating variables in a function or method 
> and not keeping them anywhere else than a local variable?
I was trying to keep my question simple.
In actuality,  I have a widget I'll call dataForm that extends 
tkSimpleDialog.Dialog.  In it I have several entry and checkbox widgets, 
and a call to a changed() method passed from the parent.  When I'm done 
editing dataForm, all the variables are processed in a save() method, 
and dataForm is destroyed.

What happened when I used self.var = MyStringVar() and Entry(root, 
textvariable=self.var).pack(), is that a subsequent call to create a 
dataForm instance has residual data from the previous instance AND the 
change callback caused an error.  Changing to local variables seemed to 
cure the problems.

I just tried changing back to the self.var approach, and it seems to 
work fine???  I must have had some name conflicts in my earlier code. 
I'll try to figure it out, and post if I do.

Bill


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


Re: Should I move to Amsterdam?

2005-08-24 Thread Tom Anderson
On Wed, 24 Aug 2005, Armin Steinhoff wrote:

> Adriaan Renting wrote:
>
> "Wade" <[EMAIL PROTECTED]> 08/24/05 2:31 pm >>> 
>> 
>> http://www.slate.com/id/2124561/entry/2124562/ Nice little series by 
>> Seth Stevenson for Americans daydreaming about emigration. Somewhere, 
>> anywhere ... maybe Amsterdam?  I've never been to the Netherlands 
>> myself, but it sounds very civilized.
>
> What a joke ... Amsterdam is 'civilized' since several hundreds of years 
> :)

Indeed. Perhaps we should rename it Old New York to reinforce the point :).

But yes, the Netherlands is a highly civilised country - up there with 
Denmark and Canada, and above the UK, France or Germany, IMNERHO. I'm not 
going to bother comparing it to the US!

tom

-- 
This should be on ox.boring, shouldn't it?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: The ONLY thing that prevents me from using Python

2005-08-24 Thread Magnus Lycka
Andreas Kostyrka wrote:
> I cannot comment on linode as I'm not a customer. The info on the website
> seems ok. But the prices are somehow laughable: I'm currently paying
> EUR39 for a dedicated host (with at least 200GB traffic, I'd had to look it 
> up 
> 60GB "storage", 256MB RAM and a 2.4GHz P4 CPU all alone to me).
> 
> That makes the 79.95 dollars for "Linode 256" somehow a bit expensive.
> OTOH perhaps dedicated servers are really cheap in Germany ;)

You will get a price in the same magnitude (SEK395, approx EUR42 or
USD52) from my ISP in Sweden.

rimuhosting.com certainly seems more reasonable at USD20.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: while c = f.read(1)

2005-08-24 Thread Magnus Lycka
Antoon Pardon wrote:
> I think he did, because both expression are not equivallent
> unless some implicite constraints make them so. Values where
> both expressions differ are:
> 
>   start1=67, stop1=9, start2=10, stop2=29

Ouch! That didn't occur to me. How sloppy to just assume that
time periods can't end before they start. I'll shut up now.
You win, I'm obviously the idiot here, and Python's must be
redesigned from ground up. Pyrdon maybe?
-- 
http://mail.python.org/mailman/listinfo/python-list


problems with hasattr() and custom __getattr__ inside urllib2

2005-08-24 Thread Gil Tal
Hi,
I use urllib2 to download a redirected url and I get an exception from
the bowels of urllib2. It seems that urllib2 implements some super
sophisticated self check and tries to control the access to attributes
using lots of calls to hasattr(the builtin function) and a custom
__getattr__() on the Request class that perfroms some checks and raises
an AttributeError if it's not happy. The problem is that hasattr()
according to the docs is supposed to eat the exception and simply
return False, but in my case it surfaces to my code and stops the
regular flow. Here is the output and my code:

Output
==
AttributeError: redirect_dict

Traceback (innermost last):

File "c:\Gigi\Dev\Python\Updater\Client\test.py", line 1, in ?
  import os, sys, urllib2
File "c:\Gigi\Dev\Python\Updater\Client\test.py", line 36, in ?
  download(url, filename, chunkSize)
File "c:\Gigi\Dev\Python\Updater\Client\test.py", line 4, in download
  fin = urllib2.urlopen(url)
File "C:\Python24\Lib\urllib2.py", line 130, in urlopen
  return _opener.open(url, data)
File "C:\Python24\Lib\urllib2.py", line 364, in open
  response = meth(req, response)
File "C:\Python24\Lib\urllib2.py", line 471, in http_response
  response = self.parent.error(
File "C:\Python24\Lib\urllib2.py", line 396, in error
  result = self._call_chain(*args)
File "C:\Python24\Lib\urllib2.py", line 337, in _call_chain
  result = func(*args)
File "C:\Python24\Lib\urllib2.py", line 539, in http_error_302
  if hasattr(req, 'redirect_dict'):
File "C:\Python24\Lib\urllib2.py", line 207, in __getattr__
  raise AttributeError, attr

Code

import os, sys, urllib2

def download(url, filename, chunkSize):
fin = urllib2.urlopen(url)
parent_dir = os.path.dirname(filename)
if parent_dir != '' and not os.path.exists(parent_dir):
os.makedirs(parent_dir)
fout = open(filename, 'wb')
info = fin.info()
print 'info:', info
totalBytes = int(info['Content-Length'])
downloadBytes = 0
bytesLeft = totalBytes
while bytesLeft > 0:
chunk = fin.read(chunkSize)
readBytes = len(chunk)
downloadBytes += readBytes
bytesLeft -= readBytes
fout.write(chunk)
print 'Progress: %d/%d' % (downloadBytes, totalBytes)

print 'Done.'

if __name__=="__main__":

#url = 'http://audacity.sourceforge.net/audacity-manual-1.2.zip'
url =
'http://www-users.york.ac.uk/~raa110/audacity/audacity-manual-1.2.3.zip'

url='http://download.mozilla.org/?product=thunderbird-1.0.2&os=win&lang=en-US'

url='http://download.mozilla.org/?product=thunderbird-1.0.6&os=win&lang=en-US'
filename = url.split('/')[-1]
chunkSize = 1
download(url, filename, chunkSize)
print open(filename).read()



Thanks, Gil

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


  1   2   >