Re: What text editor is everyone using for Python

2009-05-29 Thread Ben Finney
Gabor Urban  writes:

> This is a Python mailing list, which supposed to be a forum of people
> using the Python programming language.

Agreed so far.

> As a summary, any open source editor should be perfect, which is
> extensible, optionally language-sensitive, portable, basically
> independent of any OS features. THat cuts the list drammatically.

With this paragraph I can agree.

> So Python source is a plain text, so Python interpreter should be a
> command-driven application.

Huh? The Python interpreter should be a command-line application, true.
But the fact that Python source code is text has nothing to do with
that.

> With no other UI than the plain old Command Line Intreface.

This doesn't follow at all. I am convinced that I'm far more productive
in my full-window editing environment over needing to use a command-line
to do everything. Where does “should” come into that, and why is a
full-window environment excluded?

If, instead of “command-line”, you actually mean “text-mode
full-window console”, I'm still calling you on your non sequitur.
There's nothing about editing text that excludes using a graphical
interface rendered in pixels instead of text characters.

The closest I get to agreement with any of the above is that a
full-window text editing environment should never *require* any
graphical pixellated interface. But to *exclude* it is too much.

> MOre than that, all we are supposed to be techmen, who does
> acknowledge and appreciate the conceot of wrtitten User Manual or
> Reference. All we have learned Python from tutorials and not from the
> menues.

You seem to have a rather exclusionist idea of the Python community,
that does not match my experience at all. Python programmers are women
as well as men. Many Python programmers would not describe themselves as
“technical” people. And I know for a fact many of the good ones
learned by example, not from tutorials.

-- 
 \   “Courage is resistance to fear, mastery of fear — not absence |
  `\of fear. —Mark Twain, _Pudd'n'head Wilson_ |
_o__)  |
Ben Finney
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What text editor is everyone using for Python

2009-05-29 Thread Steven D'Aprano
On Fri, 29 May 2009 08:57:18 +0200, Gabor Urban wrote:

> In one the last postings about this topic Steven D'Aprano has written:
> "As a general rule, menus are discoverable, while keyboard commands
> aren't. There's nothing inherent to text editing functions which makes
> then inherently undiscoverable, and KDE apps like kate and kwrite do a
> reasonable job of making them so."
> 
> I agree with this assumption if, and only if we are speaking about
> outsider users.

It's not an assumption, it's a conclusion. My assumption is that 
everybody, no matter how experienced they are, will *at some time* be 
looking for some editor functionality without knowing whether or not it 
exists. I've never needed to (say) strip out all comments from a 
document, but if I ever do, if the editor makes functions discoverable, 
I've got a better chance of finding the command I need, rather than 
wasting my time programming something that's been done before.

We all know of experienced system admins who have built-up an amazingly 
detailed amount of knowledge about the systems they've used. They can 
tell you about the most obscure features and functions of a system. But 
put them in a system which is *not quite the same* (say, Ubuntu instead 
of Redhat, or FreeBSD instead of Linux), and they often flounder. All the 
functions they're used to are in a different place, so to speak. And 
there's no easy way to learn that command ABC on one system is precisely 
the same as command XYZ on another.

Only two sorts of people don't benefit from ease of discoverablity: those 
who know everything, and those who never do anything new.


> This is a Python mailing list, which supposed to be a forum of people
> using the Python programming language. So Python source is a plain text,
> so Python interpreter should be a command-driven application. With no
> other UI than the plain old Command Line Intreface.

That Python is command-driven doesn't have *any* implications for the 
editor you use to write Python code. Photo-editing software is mouse-
driven. That doesn't mean that you should be forced to write photo-
editing programs by point-and-click.


> MOre than that, all we are supposed to be techmen, who does acknowledge
> and appreciate the conceot of wrtitten User Manual or Reference. All we
> have learned Python from tutorials and not from the menues.

We're probably better at reading manuals than average people, but that 
doesn't mean we *like* it. That's one of the reasons we use Python: 
nearly everything is discoverable from inside the Python runtime 
environment. We have a wealth of tools for inspecting objects. If you 
want to know what methods an object has, you don't have to look it up in 
the manual, you can inspect it with dir().

Besides, once you've been in the tech industry for long enough, you'll 
learn that the Python documentation is *remarkably* good compared to the 
average technical documentation.


> As a summary, any open source editor should be perfect, which is
> extensible, optionally language-sensitive, portable, basically
> independent of any OS features. THat cuts the list drammatically.

(1) Closed source editors have the same functional requirements as open 
source editors.

(2) If you're waiting for perfection, you'll be waiting forever.

(3) Why independent of the OS? When is the last time you've used a system 
without an OS? Forth programmers in the 1970s used an editor that was OS 
independent -- it managed files using its own unique file structure, 
managed memory itself, etc. Why do you want to go back there?


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


Re: AOPython Question

2009-05-29 Thread Diez B. Roggisch

Roastie schrieb:

I installed the AOPython module:

   % easy_install aopython

That left an aopython-1.0.3-py2.6.egg at
C:\mystuff\python\python_2.6.2\Lib\site-packages.

I entered the interpreter:


import aopython



All is well.

But I was uncomfortable, since I was used to seeing directories
of Python code for modules in site-packages, so I decided
to read about eggs:
http://mrtopf.de/blog/python_zope/a-small-introduction-to-python-eggs/

The article told me to run:
% easy_install aopython-1.0.3-py2.6.egg


Did you run that in the site-packages-directory? If yes, that was a 
mistake. The above command is supposed to work on downloaded eggs that 
lie around somewhere.



The result was a long list of error messages and removal
of my egg, and Python could no longer use the AOPython module.

So, I'm looking for a better reference for telling me about eggs and
modules in site-packages.


You did everything alright the first time.

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


Re: What text editor is everyone using for Python

2009-05-29 Thread Lie Ryan
norseman wrote:
> jeffFromOz wrote:
>> On May 26, 10:07 pm, Lacrima  wrote:
>>> I am new to python.
>>> And now I am using trial version of Wing IDE.
>>> But nobody mentioned it as a favourite editor.
>>> So should I buy it when trial is expired or there are better choices?
>>
>> No one mentioned textmate either  . a brilliant text editor with
>> python templates, and bundles, syntax highlighting, etc.  We use
>> wingIDE for debugging and it seems fine, except for the weird way it
>> corrupts the displayed text.
> ===
> 
> BOTTOM LINES:
> 
> Whatever they learned on.
> Whatever they are trying out at the moment (for the adventurous types)
> 
> 
> Suggestion:
> Take a look at the top two most used OS you use and learn the default
> (most often available) text editors that come with them.

Which means Notepad on Windows?
-- 
http://mail.python.org/mailman/listinfo/python-list


Global variables from a class

2009-05-29 Thread Kless
I usually use a class to access to global variables. So, which would
be the correct way to set them --since the following classes--:


class Foo:
   var = 'lala'

class Bar:
   def __init__(self):
  self.var = 'lele'


Or is it the same?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What text editor is everyone using for Python

2009-05-29 Thread Lawrence D'Oliveiro
In message <003b3d8c$0$9673$c3e8...@news.astraweb.com>, Steven D'Aprano 
wrote:

> On Fri, 29 May 2009 14:00:19 +1200, Lawrence D'Oliveiro wrote:
> 
>> In message <003af57e$0$9673$c3e8...@news.astraweb.com>, Steven D'Aprano
>> wrote:
>> 
>>> On Fri, 29 May 2009 09:04:39 +1200, Lawrence D'Oliveiro wrote:
>>> 
 In message <003a5518$0$9673$c3e8...@news.astraweb.com>, Steven
 D'Aprano wrote:
 
> On Thu, 28 May 2009 20:58:07 +1200, Lawrence D'Oliveiro wrote:
> 
>> In message <0039e83c$0$9673$c3e8...@news.astraweb.com>, Steven
>> D'Aprano wrote:
>> 
>>> A good UI standard should mean that:
>>> 
>>> * all functionality should be discoverable without reading the
>>> manual;
>> 
>> Which means no scripting languages are allowed?
> 
> "Should", not "must".
 
 If you meant "may or may not", why don't you say "may or may not"?
>>> 
>>> "Should" does not mean "may or may not".
>> 
>> I'm not sure how there is supposed to be a difference in this context.
>> "All people should fly by flapping their arms, except where this is
>> physically impossible". You're asking for something that is infeasible
>> with most current editors, if not all of them.
> 
> On the remote chance that you're not trolling, I deny that
> discoverablity is "infeasible" ...

On the remote chance you're not trolling, let me point out politely that it 
is for scriptability.

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


Re: DB-API execute params, am I missing something?

2009-05-29 Thread Lawrence D'Oliveiro
In message , Dennis Lee 
Bieber wrote:

> On Thu, 28 May 2009 20:57:13 +1200, Lawrence D'Oliveiro
>  declaimed the following in
> gmane.comp.python.general:
> 
>>> 
>>>>>> db.literal((... "%wildcard%" ...))
>>>(... "'%wildcard%'" ...)
>> 
>> Doesn't look like it worked, does it?
> 
> If the problem is that you have /user/ input that may have a % sign
> that should NOT be treated as a wildcard, the solution is to train said
> user...

Sounds like a good solution to SQL-injection vulnerabilities, isn't it? 
Wonder why no-one thought of that before?

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


Re: Python, Tkinter and popen problem

2009-05-29 Thread Piet van Oostrum
> norseman  (n) wrote:

>n> I have tried both and Popen2.popen2().
>n> os.popen runs both way, contrary to docs.

What do you mean `os.popen runs both way'?

>n> # master.py
>n> import os
>n> #both lines work same

Of course, because 'r' is the default, and the bufsize for reading the
pipe only influences the performance.

>n> #xx= os.popen("/mnt/mass/py/z6.py").readlines()
>n> xx= os.popen("/mnt/mass/py/z6.py",'r',1).readlines()
>n> #I had hoped small buffer would force a sync (flush())
>n> #No such luck.

First, there is a difference between sync and flush. flush is writing
out any output that is buffered in the application program for that
file. Sync is writing out buffers (cache) in the operating system (to the
disc, network connection or similar). We are talking here about
flushing, not syncing. As we deal with a pipe, sync is not applicable.

Furthermore, whatever you do in the master program, such as setting the
buffer size has nothing to do with what happens in the child, so it will
not influence the flushing behaviour of the child. The only way to
influence that would be to use a pty instead of a pipe, because most
code uses a different buffering strategy for ttys and ptys compared to
files and pipes.

The next error in your program is that you use readlines()
This reads ALL input from your pipe before it proceeds. So essentially
it waits until the child process is finished and therefore gives you the
impression that it doesn't flush(). But it is not the child that is the
problem it is your master.

What you should do is take the pipe and do a readline()/print loop.

#xx= os.popen("/mnt/mass/py/z6.py")

# popen is deprecated. Replace with subprocess:
from subprocess import Popen, PIPE
xx = Popen(["/mnt/mass/py/z6.py"], stdout=PIPE).stdout

while True:
line = xx.readline()
if not line: break
print "\t" + line,

The obvious:

for l in xx:
print "\t" + l,

doesn't work as the iterator for a file, including pipes, does a
read ahead (see the doc on file.next()) and therefore is not suitable for
interactive use.

>n> The direct question comes back to:

>n> How does one force a sync or flush() to take effect in Python with
>n> Tkinter in use? Or just in Python period. The keyword being force.

So it should be clear by now that the answer is to use flush().
And make sure you read AND process the flushed output in a proper way.

By the way, you have a nasty habit of using very unclear language to
pose your problems in this newsgroup/mailing list, instead of writing a
concise description and giving small examples of what code causes the
problem. This makes it extremely difficult to help you. I had to read
your messages at least 5 times to get an idea of what you were doing and
what the problem was that you wanted to solve.

Maybe you are dyslectic or something similar, in which case I apologize.
But anyway, I think you should learn to express yourself more clearly.
There are also courses for that.
-- 
Piet van Oostrum 
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


FILE object in Python3.0 extension modules

2009-05-29 Thread Joachim Dahl
In Python2.x, I used PyFile_Check(obj) to check if a parameter was a
file object.

Now, in Python3.0 the same object (obtained as open('file.bin','wb'))
is an
io.BufferedWriter object.

How do I perform type checking for such an object in the extension
module,
and how do I extract a FILE * object from it?  I browsed the C API
documentation,  but
couldn't find an answer.

The purpose is to dump the contents of a Python extension type to disk
as
binary data using C's fwrite() function.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Global variables from a class

2009-05-29 Thread Piet van Oostrum
> Kless  (K) wrote:

>K> I usually use a class to access to global variables. So, which would
>K> be the correct way to set them --since the following classes--:

>K> 
>K> class Foo:
>K>var = 'lala'

>K> class Bar:
>K>def __init__(self):
>K>   self.var = 'lele'
>K> 

>K> Or is it the same?

I don't see any global variable in your code. 
var is a class variable (attribute) in Foo, whereas in Bar var is an
instance variable (attribute). These are two different things. However a
class variable acts as a kind of default for an instance variable. If
all your instances have the same value for var, Foo is a good way to
accomplish this. If they are all different, the Bar is the way to go.

You can also mix them if several of the instances use the same value
'lala' but some need 'lele' or sometime later in the life of the instance
the value will be changed to 'lele'

class Bletch:
var = 'lala'

def update(self):
self.var = 'lele'

In this case it is a matter of taste whether you use the Foo or the Bar
way.

-- 
Piet van Oostrum 
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Unpack less values from function's return values

2009-05-29 Thread MRAB

Chris Rebert wrote:

On Thu, May 28, 2009 at 3:19 AM,   wrote:

Hi,

I'm using Python 2.5.2. I'm getting this error whenever I try to unpack less
values from a function.

ValueError: too many values to unpack


I want to know if there is a way I can unpack less values returning from a
function?


Unpack them into throwaway variables:

def foo(): return 1,2,3,4

a, b, _, _ = foo()

In very new Python, you can also do:

a, b, *_ = foo()


Or:

a, b = foo()[ : 2]
--
http://mail.python.org/mailman/listinfo/python-list


Re: Python, Tkinter and popen problem

2009-05-29 Thread MRAB

norseman wrote:
[snip]

I have tried both and Popen2.popen2().
os.popen runs both way, contrary to docs.

# master.py
import os
#both lines work same
#xx= os.popen("/mnt/mass/py/z6.py").readlines()
xx= os.popen("/mnt/mass/py/z6.py",'r',1).readlines()


readlines() returns only when all the lines have been read, which is
when the child quits and the pipe closes. Try reading only one line at a
time. When the pipe closes the readline() will return ''.


#I had hoped small buffer would force a sync (flush())
#No such luck.
for i in xx:
  print "\t"+i[:-1]

#"""
#  end of file

The "\t" is to prove where the screen output came from.




 From Peter __pete...@web.de


Nonsense. The minimal Tkinter program is

from Tkinter import Tk
root = Tk()
root.mainloop()



Just to be clear, that's as much a minimal program as


[snip]

# child.py
import os
import sys
import array
from array import *
import Tkinter
from Tkinter import *
from Tkconstants import *
#
def AttPanel():

  def PlaceIt():
  sys.stdout.write( "Switching to ESRI for placement\n")
  sys.stdout.flush()
  sys.stdout.flush()


No need to flush twice in a row.



  #print "Switching to ESRI for placement"
  ##zatt= bl_x+bl_y+acrs+c1+c2[2:]+c3[2:]+'\n'
  zatt='123456\n'
  #print zatt
  sys.stdout.write(zatt)
  sys.stdout.flush()

  #set system variable to zatt
  root.withdraw()
  #root.iconify()
  while raw_input() != ' ':
pass
  root.deiconify()

  def CRASH():
print "\nCRASH Initiated\n"
exit(1)
#
  root = Tk()

  LU = Frame(root)
  LU.pack(fill="both", expand=1)

  f1 = Frame(LU, relief = GROOVE, bd = 2)
  f1.grid(row = 0, column = 0)
  Button(f1, width= 45, state= DISABLED).grid(row= 0, column= 0)
  Button(f1, text= "Place Attribute", fg= "black", bg= "green",
 anchor= N, command = PlaceIt).grid(row = 0, column = 1)
  Button(f1, width= 45, state= DISABLED).grid(row= 0, column= 2)
  Button(f1, text= "Cancel Attributing", fg= "white", bg= "red",
 anchor= E, command= CRASH).grid(row = 0, column = 3)
  f1.pack()
  #
  root.mainloop()
#---#

if __name__ == "__main__":
  while TRUE:
AttPanel()


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


How do you serve Cheetah in production? webpy+cheetah

2009-05-29 Thread mobiledreamers
How do you serve *Cheetah* in *production*?

Guys can you share the setup on how to precompile and serve cheetah in
production

Since we dont compile templates in webpy it is getting upstream time out
errors. If you could share a good best practise it would help

*

Jeremy jeremy.ja...@gmail.com wrote: For a production site, I use Cheetah
with pre-compiled templates - it's very fast (the templates import
especially quickly when python compiled and optimised). A bit of magic with
the imp module takes a template name and a base directory (configured in a
site-specific config) and loads up that template, taking care of #extends
and
import directives as appropriate. I don't use the built-in support for

Cheetah, however. The new template library is also only imported to display
the debugerror page


-- 
Bidegg worlds best auction site
http://bidegg.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: python list pattern matching?

2009-05-29 Thread Chris Rebert
On Thu, May 28, 2009 at 3:57 PM, Terry Reedy  wrote:
> guthrie wrote:
>>
>> I want to do a functional like pattern match to get teh first two
>> elements, and then the rest of an array return value.
>>
>> For example, assume that perms(x) returns a list of values, and I want
>> to do this:
>>    seq=perms(x)
>>
>>    a = seq[0]
>>    b = seq[1]
>>    rest = seq[2:]
>> Of course I can shorten to:
>>    [a,b] = seq[0:2]
>>    rest  = seq[2:]
>>
>> Can I find use some notation to do this?
>>    [a,b,more] = perms(x)
>> or conceptually:
>>    [a,b,more..] = perms(x)
>
 a,b,*rest = list(range(10))
 a,b,rest
> (0, 1, [2, 3, 4, 5, 6, 7, 8, 9])
 a,*rest,b = 'abcdefgh'
 a,rest,b
> ('a', ['b', 'c', 'd', 'e', 'f', 'g'], 'h')

Note that this snazzy new syntax requires Python 3.0+

Cheers,
Chris
-- 
http://blog.rebertia.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Tkinter file dialog

2009-05-29 Thread Chris Rebert
On Thu, May 28, 2009 at 7:48 PM, Ronn Ross  wrote:
> I'm using Tkinter file selector to get a direcotry path. I'm using:
>
> self.file = tkFileDialog.askdirectory(title="Please select your directory")
>     print file
>
> but all it prints out is:
> 
>
> How would I print the directory path?

print self.file

Your forgot the "self." in your version. Without it, Python assumes
you're talking about built-in `file` type.

Cheers,
Chris
-- 
http://blog.rebertia.com
-- 
http://mail.python.org/mailman/listinfo/python-list


PYTHONPATH var

2009-05-29 Thread Sergey Dikovitsky
Hi guys. I have a question regarding runtime definition of the variable
PYTHONPATH. Do you know how without modifying of source code change the
value for this var. Value stores in the system var sys.path, but the first
item of this list, path[0], is the directory containing the script that was
used to invoke the Python interpreter. We need to change this value which
allows to us import scripts first from directory containing newest hotfix
scripts without replacing original project scripts. One of the variant is to
create script which will modify this var and insert line with import this
script into each project script. So the question does another way exist? For
example, parameter or argument for python launcher.
-- 
http://mail.python.org/mailman/listinfo/python-list


PYTHONPATH var

2009-05-29 Thread insfor
Hi guys. I have a question regarding runtime definition of the
variable PYTHONPATH. Do you know how without modifying of source code
change the value for this var. Value stores in the system var
sys.path, but the first item of this list, path[0], is the directory
containing the script that was used to invoke the Python interpreter.
We need to change this value which allows to us import scripts first
from directory containing newest hotfix scripts without replacing
original project scripts. One of the variant is to create script which
will modify this var and insert line with import this script into each
project script. So the question does another way exist? For example,
parameter or argument for python launcher.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Tkinter file dialog

2009-05-29 Thread Hendrik van Rooyen
 Ronn Ross  wrote:

>I'm using Tkinter file selector to get a direcotry path. I'm using:
>
>self.file = tkFileDialog.askdirectory(title="Please select your directory")
>print file
>
>but all it prints out is:
>
>
>How would I print the directory path?

try doing:

self.filename = tkFileDialog.askopenfilename(title = 'this is a
message',initialdir='./' )

and see what happens

- Hendrik

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


Re: Tkinter file dialog

2009-05-29 Thread MRAB

Ronn Ross wrote:

I'm using Tkinter file selector to get a direcotry path. I'm using:

self.file = tkFileDialog.askdirectory(title="Please select your directory")
print file

but all it prints out is:


How would I print the directory path?


Perhaps you meant:

self.file = tkFileDialog.askdirectory(title="Please select your 
directory")

print self.file
--
http://mail.python.org/mailman/listinfo/python-list


Re: extract to dictionaries

2009-05-29 Thread Marius Retegan
Hi,

On Fri, May 29, 2009 at 2:09 AM, Gary Herron wrote:

> Marius Retegan wrote:
>
>> Hello
>> I have simple text file that I have to parse. It looks something like
>> this:
>>
>> parameters1
>> key1 value1
>> key2 value2
>> end
>>
>> parameters2
>> key1 value1
>> key2 value2
>> end
>>
>> So I want to create two dictionaries parameters1={key1:value1,
>> key2:value2} and the same for parameters2.
>>
>> I would appreciate any help that could help me solve this.
>> Thank you
>>
>>
>
> This looks like a homework problem.


It's not. I'm passed homework age.


>   But even if it's not, you are not likely to find someone who is willing
> to put more work into this problem than you have.
> So  why don't you show us what you've tried, and see if someone is willing
> to make suggestions or answer specific question about your attempt at a
> solution?
>

I don't now if posting a code that gets into a while loop and never stops
would demonstrate to you that I've tried. Be assured that before posting to
the list I did try to solve it myself, because I knew that I might get an
answer like RTFM or similar.
Maybe I'm not smart enough, but I can't make python to start reading after
the "parameter1" line and stop at the "end" line. That's all I want a small
piece of pseudocode to do just that.

Thanks


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


Re: Global variables from a class

2009-05-29 Thread Javier Collado
Hello,

First thing is a class variable (one for every instance) and second
one an instance variable (one per instance).

For further information, please take a look at:
http://diveintopython.org/object_oriented_framework/class_attributes.html

Best regards,
   Javier

2009/5/29 Kless :
> I usually use a class to access to global variables. So, which would
> be the correct way to set them --since the following classes--:
>
> 
> class Foo:
>   var = 'lala'
>
> class Bar:
>   def __init__(self):
>      self.var = 'lele'
> 
>
> Or is it the same?
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: FILE object in Python3.0 extension modules

2009-05-29 Thread Benjamin Peterson
Joachim Dahl  gmail.com> writes:
> 
> How do I perform type checking for such an object in the extension
> module,
> and how do I extract a FILE * object from it?  I browsed the C API
> documentation,  but
> couldn't find an answer.

You use PyObject_IsInstance to test if the object is an instance of io.IOBase.




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


Re: extract to dictionaries

2009-05-29 Thread Rhodri James
On Fri, 29 May 2009 11:44:30 +0100, Marius Retegan  
 wrote:



Hi,

On Fri, May 29, 2009 at 2:09 AM, Gary Herron  
wrote:



Marius Retegan wrote:


Hello
I have simple text file that I have to parse. It looks something like
this:

parameters1
key1 value1
key2 value2
end

parameters2
key1 value1
key2 value2
end

So I want to create two dictionaries parameters1={key1:value1,
key2:value2} and the same for parameters2.

I would appreciate any help that could help me solve this.
Thank you




This looks like a homework problem.



It's not. I'm passed homework age.


  But even if it's not, you are not likely to find someone who is  
willing

to put more work into this problem than you have.
So  why don't you show us what you've tried, and see if someone is  
willing

to make suggestions or answer specific question about your attempt at a
solution?



I don't now if posting a code that gets into a while loop and never stops
would demonstrate to you that I've tried.


It would have.  At the very least, it would have told us that you've
missed a common idiom.


Be assured that before posting to
the list I did try to solve it myself, because I knew that I might get an
answer like RTFM or similar.


Not posting code (or code snippets at least) makes it more likely that  
you'll

be told to RTFM, you do realise!

Maybe I'm not smart enough, but I can't make python to start reading  
after
the "parameter1" line and stop at the "end" line. That's all I want a  
small

piece of pseudocode to do just that.



I'd be tempted to do it like this

dict_of_dicts = {}
current_dict = {}
current_name = "dummy"

f = open(filename)
for line in f:
  # Do something to skip blank lines
  if line == '\n':
continue

  # A normal 'key value' pair?
  if line.startswith(' '):
# Yup.  Split apart the key and value,
# and add them to the current dictionary
current_dict.update([line.split()])
  elif line == 'end':
# Wrap up what we've got and save the dictionary
dict_of_dicts[current_name] = current_dict
current_name = dummy
current_dict = {}
  else:
# New section.  Really ought to whinge if
# we haven't ended the old section.
current_name = line.strip()
current_dict = {}

You can then pull the parameter sets you want out of
dict_of_dicts (you can probably think of a more meaningful
name for it, but I don't know the context you're working in).
In real code I would use regular expressions rather than
`startswith` and the equality because they cope more easily
with tabs, newlines and other 'invisible' whitespace.

--
Rhodri James *-* Wildebeeste Herder to the Masses
--
http://mail.python.org/mailman/listinfo/python-list


Re: extract to dictionaries

2009-05-29 Thread Rhodri James
On Fri, 29 May 2009 13:10:47 +0100, Rhodri James  
 wrote:



 current_name = dummy


Gah!  I meant, of course,
  current_name = 'dummy'

--
Rhodri James *-* Wildebeeste Herder to the Masses
--
http://mail.python.org/mailman/listinfo/python-list


Re: Problem building 64-bit python 2.6.2 on Solaris 10

2009-05-29 Thread John Center
On May 28, 6:03 pm, "Martin v. Löwis"  wrote:
> > I think the problem is it should be built with v9.S for 64-bit, not
> > v8.S.  Is that correct?  If so, how do I get it to use the right one?
>
> The Solaris dynamic loader can't find it. Set LD_LIBRARY_PATH or
> LD_RUN_PATH appropriately, or use crle(8).
>
> Regards,
> Martin

Hi Martin,

I'm not sure I understand.  It appears that cc is compiling the wrong
module, v8.S.  It should be compiling v9.S.  The errors are being
reported by fbe, the Sun Studio assembler, not ld.  I think there must
be a place to specify which I want to use, but I don't understand the
python build environment well enough to know where to do it.

You may be right about the first error.  It's being reported by ld,
but -L/opt/openssl/lib/sparcv9 & -R/opt/openssl/lib/sparcv9 are being
passed to cc.  It is able to find -lssl & -lcrypto, but I think python
itself doesn't use the openssl libraries.  Since I see the chain
"ld.so.1: python: fatal: libssl.so.0.9.8: open failed: No such file or
directory", which I think means python itself doesn't know where they
are at.  I checked python & libpython.so with ldd & neither uses
libssl.so.  It seems to me there should be another way to tell python
where to find it to build the module.  Does this make sense?

Thanks for your help.

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


Re: Global variables from a class

2009-05-29 Thread Steven D'Aprano
On Fri, 29 May 2009 12:04:53 +0200, Javier Collado wrote:

> Hello,
> 
> First thing is a class variable (one for every instance) and second one
> an instance variable (one per instance).

One of these things don't belong:

A string variable is a variable holding a string.
A float variable is a variable holding a float.
An int variable is a variable holding an int.
A list variable is a variable holding a list.
A "class variable" is an attribute of a class object, holding an
  object of arbitrary type, which is shared by all instances 
  of the class.

Please don't use the term "class variable" to mean class attribute.



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


Re: formating query with empty parameter

2009-05-29 Thread Aahz
In article ,
Tim Chase   wrote:
>
>To stave off this problem, I often use:
>
>   values = [
>data['a'],
>data['b'],
>data['c'],
>data['d'],
>data['e'],
>data['f'],
>data['g'],
>]
>   params = ', '.join('%s' for _ in values)
>   query = """
> BEGIN;
>   INSERT INTO table
> (a,b,c,d,e,f,g)
>   VALUES (%s);
> COMMIT;
> """ % params
>   self.db.execute(query, values)

How do you handle correct SQL escaping?
-- 
Aahz (a...@pythoncraft.com)   <*> http://www.pythoncraft.com/

my-python-code-runs-5x-faster-this-month-thanks-to-dumping-$2K-
on-a-new-machine-ly y'rs  - tim
-- 
http://mail.python.org/mailman/listinfo/python-list


Syntax highlighting, round 42 (was Re: What text editor is everyone using for Python)

2009-05-29 Thread Aahz
In article ,
Lawrence D'Oliveiro   wrote:
>In message , Steven 
>D'Aprano wrote:
>> On Tue, 26 May 2009 18:31:56 +1200, Lawrence D'Oliveiro wrote:
>>> In message >> b201-4b2445732...@v35g2000pro.googlegroups.com>, LittleGrasshopper
>>> wrote:
 
 ... I am looking for suitable syntax files for [editor of choice] ...
>>> 
>>> I don't understand why people need "syntax files" to use a text editor.
>> 
>> Do you want syntax highlighting?
>
>Why?

Didn't we have this discussion just a few weeks ago, when I said that
highlighting made my eyes bleed?  []  Oh, Gooja sez that we did it at
the beginning of February, so almost four months.
-- 
Aahz (a...@pythoncraft.com)   <*> http://www.pythoncraft.com/

my-python-code-runs-5x-faster-this-month-thanks-to-dumping-$2K-
on-a-new-machine-ly y'rs  - tim
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Global variables from a class

2009-05-29 Thread Jean-Michel Pichavant

Kless wrote:

I usually use a class to access to global variables. So, which would
be the correct way to set them --since the following classes--:


class Foo:
   var = 'lala'

class Bar:
   def __init__(self):
  self.var = 'lele'


Or is it the same?
  


This form is the most suited for what your doing:


class Foo:
  var = 'lala'


It is a good practice to place your globals into a class (making them non 
global by the way). It helps also writing good documentation in docstrings.

I would add:


class Foo:
  """Hold the secrets of eternity"""
  var = 'lala'
  """One variable"""
  ANY_CONSTANT = 14
  """The universal answer to all questions"""


Having strong naming convention also helps a lot.

Jean-Michel

PS: FYI, in the second form, var is an instance variable, and you need to create 
an instance to access it => Bar().var while Foo.var is enough for the first 
form.

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


Re: PYTHONPATH var

2009-05-29 Thread Steven D'Aprano
On Fri, 29 May 2009 03:50:54 -0700, insfor wrote:

> Hi guys. I have a question regarding runtime definition of the variable
> PYTHONPATH. Do you know how without modifying of source code change the
> value for this var.

"Syntax error:  sentence seems to be a question, but is missing a 
question mark."

To answer your question, PYTHONPATH is an environment variable. You set 
it in your shell. For example, I use the bash shell under Linux, and in 
my .bashrc file I have this line:

export PYTHONPATH=/home/steve/python/

Every time I log in, the shell sets the environment variable to the 
pathname /home/steve/python/, and then when Python runs, it appends that 
path to sys.path. I don't have to modify any Python source code.



> Value stores in the system var sys.path, but the
> first item of this list, path[0], is the directory containing the script
> that was used to invoke the Python interpreter. We need to change this
> value which allows to us import scripts first from directory containing
> newest hotfix scripts without replacing original project scripts. One of
> the variant is to create script which will modify this var and insert
> line with import this script into each project script. So the question
> does another way exist? For example, parameter or argument for python
> launcher.

I don't understand what you are actually trying to say here. Perhaps you 
can explain a little bit more carefully?


However, trying to guess what you want, PYTHONPATH doesn't *replace* 
sys.path, it appends to the end of it. This is usually the right thing to 
do. However, sys.path is an ordinary list. If you want to modify it, you 
can do so:

import sys
sys.path[0] = '/some/other/path'



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


Parsing DTDs

2009-05-29 Thread Tom Anderson

Hello!

I would like to parse XML DTDs. The goal is to be able to validate 
XML-like object structures against DTDs in a fairly flexible way, although 
i can get from a parsed DTD to a validation engine myself, so that's not 
an essential feature of the parser (although it would be nice!). What 
should i do?


A bit of googling revealed that the xmlproc package contains a DTD parser 
that looks like it does just what i want, and that xmlproc became PyXML, 
and that PyXML is no longer maintained.


Is there a DTD parser that is being maintained? Or does it not really 
matter that PyXML is no longer maintained, given that it's not like the 
DTD spec has changed very much?


Thanks,
tom

--
Many of us adopted the File's slang as our own, feeling that we'd found a
tangible sign of the community of minds we'd half-guessed to be out there.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Global variables from a class

2009-05-29 Thread Dave Angel

Kless wrote:

I usually use a class to access to global variables. So, which would
be the correct way to set them --since the following classes--:


class Foo:
   var = 'lala'

class Bar:
   def __init__(self):
  self.var = 'lele'


Or is it the same?

  
What Python calls global variables are attributes of a module.  So other 
modules can access them by using the module name, eg..  globalModule.var


If you're trying to make them independent of file name, so others can 
access them without knowing what module they are defined in, you can 
create a class Foo approach.  Then somehow (there are several easy ways) 
you get a reference to that class into each module, and they can use 
Foo.var to access the attributes of the class.  You still have a 
reserved name the other modules need to know, it just doesn't have to be 
a module itself.  And if the data is defined in the initial script, it 
avoids the traps that re-importing the script can cause.


If you pass that Foo as a parameter to your functions, you can avoid 
having Foo being a global variable itself, in each module other than the 
first.


But, to the core of the matter, if there's any chance that the value 
might change in the lifetime of the running program, you should probably 
not be using them as globals at all.  This is where the Bar approach 
helps.  Attributes defined in that way are attributes of an instance of 
Bar, and thus there can be more than one such.  The Bar instance can 
frequently allow you to generalize a program which might otherwise be 
hemmed in by globals.  And instead of passing Foo to functions, you pass 
bar_instance




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


pygame error: file is not a windows bmp file

2009-05-29 Thread Djames Suhanko
Hello, all!
"pygame error: file is not a windows bmp file"

 I couldn't found a solution for this problem.
My python script run fine in local machine using cxfreeze, but don't
work when copied to my live linux system.
If I put bmp image, works fine, but png don't.
Can you help me?
(and sorry my terrible english).

-- 
Djames Suhanko
LinuxUser 158.760
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Deletion/record visibility error in PG with Python...

2009-05-29 Thread Durumdara
Hi!

Sorry for rtfm mail... I forgot to remove max_usage param in my real
application...

This parameter is limiting the number of cursor usage, and if max reached,
the DBUtils is automatically open a new cursor in the background! This is
break out of the actual transaction context...

Uh I wasted 2 hours to found the bug in another source... :-(

dd

2009/5/28 Durumdara 

> Hi!
>
> PGSQL makes me crazy...
>
> I port my apps to PGSQL, and I near to finish - but I got this problem...
>
> Params: PGSQL 8.3, Windows, Pylons, PGDB, DBUTILS...
>
>
> What happened? How I can avoid the cursor changing? How to fix it in my
> transaction?
> I never ask for new cursor, I used same variable in all of my context
> (self.Cur)... :-(
>
> So what is the solution? Drop DBUtils? Or what?
>
> Thanks for your help:
> dd
>
>
>
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: formating query with empty parameter

2009-05-29 Thread Tim Chase

Aahz wrote:

Tim Chase   wrote:

To stave off this problem, I often use:

  values = [
   data['a'],
   data['b'],
   data['c'],
   data['d'],
   data['e'],
   data['f'],
   data['g'],
   ]
  params = ', '.join('%s' for _ in values)
  query = """
BEGIN;
  INSERT INTO table
(a,b,c,d,e,f,g)
  VALUES (%s);
COMMIT;
""" % params
  self.db.execute(query, values)


How do you handle correct SQL escaping?


If you dump "query", you see that "params" (possibly a better 
name would be "place_holders") is merely a list of "%s, %s, %s, 
..., %s" allowing the "execute(query, ***values***)" to properly 
escape the values.  The aim is to ensure that 
"count(placeholders) == len(values)" which the OP mentioned was 
the problem.


My second round of code (in my initial post) ensures that

the number of items in the column definition (in this case the 
"a,b,c,d,e,f,g")

is the same as
the number of placeholders
is the same as the number of values.

The column-names should be code-controlled, and thus I don't 
worry about sql escaping them (my own dumb fault here), whereas 
the values may come from an untrusted source and need to be 
escaped.  So the code I use often has a dictionary of


 mapping = {
   "tablefield1": uservalue1,
   "tablefield2": uservalue2,
   ...
   }

which I can then easily add/remove columns in a single place if I 
need, rather than remembering to adjust the query in two places 
(the table-fieldnames and add the extra placeholder) AND the 
building of the "values" parameter.  It also makes it harder to 
mis-sequence them, accidentally making the table-fieldnames 
"a,b,c" and the values list "a,c,b" (which, when I have 20 or so 
fields being updated has happened to me on more than one occasion)


-tkc




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


Re: PYTHONPATH var

2009-05-29 Thread Dave Angel

Sergey Dikovitsky wrote:

Hi guys. I have a question regarding runtime definition of the variable
PYTHONPATH. Do you know how without modifying of source code change the
value for this var. Value stores in the system var sys.path, but the first
item of this list, path[0], is the directory containing the script that was
used to invoke the Python interpreter. We need to change this value which
allows to us import scripts first from directory containing newest hotfix
scripts without replacing original project scripts. One of the variant is to
create script which will modify this var and insert line with import this
script into each project script. So the question does another way exist? For
example, parameter or argument for python launcher.

  
I have to guess much of what you're talking about.  So if this is way 
off, try responding with a clearer wording.


PYTHONPATH is an environment variable.  You change that using your 
operating system's scripting language (shell script).


But you're talking about changing the first entry in sys.path, a Python 
list, which is generated from PYTHONPATH and a few other sources.  So it 
must be changed as Python is starting, not in the shell.


It is an ordinary list, and may be changed in the usual way.  So a 
script could start with:

  import sys
  sys.path = ["newpath"] + sys.path

(although you'd probably want to use a variable, not a literal)

But you say "without modifying of source code."  Not clear what that 
means, without you qualifying just which source code is sacrosanct.


It seems you're trying to change the search order for the initial 
script.  But there is no search order.  You give an actual filename to 
the interpreter, and it does not search at all.  So perhaps what you 
really want is to modify the PATH variable before running the script.  
Then the operating system will search for it before trying to execute 
it.  This should work as long as you don't need any other switches on 
the python.exe command line.


You need to specify your system environment (Windows, Linux, ...), and 
probably your Python version.  And make it clearer what your real goal is.


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


Re: Global variables from a class

2009-05-29 Thread Javier Collado
You're right. I agree on that it's important to use proper words.
Thanks for the correction.

Best regards,
Javier

2009/5/29 Steven D'Aprano :
> On Fri, 29 May 2009 12:04:53 +0200, Javier Collado wrote:
>
>> Hello,
>>
>> First thing is a class variable (one for every instance) and second one
>> an instance variable (one per instance).
>
> One of these things don't belong:
>
> A string variable is a variable holding a string.
> A float variable is a variable holding a float.
> An int variable is a variable holding an int.
> A list variable is a variable holding a list.
> A "class variable" is an attribute of a class object, holding an
>  object of arbitrary type, which is shared by all instances
>  of the class.
>
> Please don't use the term "class variable" to mean class attribute.
>
>
>
> --
> Steven
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: what I would like python.el to do (and maybe it does)

2009-05-29 Thread J Kenneth King
Piet van Oostrum  writes:

>> J Kenneth King  (JKK) wrote:
>
>>JKK> I find that it does work, but unlike SLIME for lisp, it just imports the 
>>statement.
>
>>JKK> It confused me at first, but basically the interpreter doesn't provide
>>JKK> any feedback to emacs.
>
>>JKK> Try opening a python source file (start python-mode if you don't have
>>JKK> an autoload hook) and do C-c C-z to bring up the Python
>>JKK> interpreter. Type in a simple assignment statement (like "a = 1 + 2"
>>JKK> without the quotes) into the source file. Then just C-c C-c as
>>JKK> usual. I never get any feedback. Just C-x o to the interpreter and
>>JKK> print out the variable you just defined. It should be there.
>
> What kind of feedback do you expect?

Well, that's the thing -- type a statement into a python interpreter and
you just get a new prompt.

LISP has a REPL, so you get some sort of feedback printed.

However, some sort of visual cue on the emacs side would be nice. Either
just flash the block of code being sent or a minibuffer message would be
nice.

Look for some SLIME tutorial videos on youtube to see some great
interpreter <-> editor interaction.

The stock Python interpreter probably wouldn't cut it close to something
like SLIME in terms of features, but the iPython package might be a
start.
-- 
http://mail.python.org/mailman/listinfo/python-list


try except inside exec

2009-05-29 Thread Michele Petrazzo

Hi all,
I want to execute a python code inside a string and so I use the exec
statement. The strange thing is that the try/except couple don't catch
the exception and so it return to the main code.
Is there a solution to convert or make this code work?

Thanks,
Michele

My code:

STR = """
err = 0
try:
  def a_funct():
1/0
except:
  import traceback
  err = traceback.format_exc()
"""

env = {}
exec STR in env
env["a_funct"]()
print env["err"]


My error:
  File "tmp/test_exec.py", line 14, in 
env["a_funct"]()
  File "", line 5, in a_funct
ZeroDivisionError: integer division or modulo by zero
--
http://mail.python.org/mailman/listinfo/python-list


Re: how to change response code in CGIHTTPServer.py

2009-05-29 Thread Jeff McNeil
On May 28, 2:23 pm, Daniel  wrote:
> Hello,
>
> Python 2.5.2
> WinXP
>
> I'm using CGIHTTPServer.py and want to return a response code of 400
> with a message in the event that the cgi script fails for some
> reason.  I notice that
> run_cgi(self):
> executes this line of code,
> self.send_response(200, "Script output follows")
> which overwrites any headers that I print in my cgi.  Is there some
> way to modify the response code without having to override
> CGIHTTPServer.py?
>
> Thanks,

>>> help (CGIHTTPServer)
...
Note that status code 200 is sent prior to execution of a CGI script,
so
scripts cannot send other status codes such as 302 (redirect).
...
>>>

It sets that header before it even fires off the CGI script and just
pipes the following response to the client.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: try except inside exec

2009-05-29 Thread Aaron Brady
On May 29, 8:21 am, Michele Petrazzo
 wrote:
> Hi all,
> I want to execute a python code inside a string and so I use the exec
> statement. The strange thing is that the try/except couple don't catch
> the exception and so it return to the main code.
> Is there a solution to convert or make this code work?
>
> Thanks,
> Michele
>
> My code:
>
> STR = """
> err = 0
> try:
>    def a_funct():
>      1/0
> except:
>    import traceback
>    err = traceback.format_exc()
> """
>
> env = {}
> exec STR in env
> env["a_funct"]()
> print env["err"]
>
> My error:
>    File "tmp/test_exec.py", line 14, in 
>      env["a_funct"]()
>    File "", line 5, in a_funct
> ZeroDivisionError: integer division or modulo by zero

The code you posted defines a function, and if the definition of it
raises an exception, it will enter your except clause.  By the way,
you generally should avoid 'bare' except clauses, and specify the type
of error you want to catch, in this case, 'ZeroDivisionError', as you
see (just good practice stuff).

It's not clear from your attempt what your exact goal was.  You
probably mean:

STR = """
class Globals:
   err = 0
def a_funct():
   try:
  1/0
   except ZeroDivisionError:
  import traceback
  Globals.err = traceback.format_exc()
"""

Note that the formatted exception will be available in 'env
["Globals"].err'.  But you could also mean:

exec STR in env
try:
  env["a_funct"]()
except ZeroDivisionError:
  import traceback
  err = traceback.format_exc()

Then the formatted exception will be available in 'err'.  Do you want
the exception-handling to be part of the function you are entering
into 'env'?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: extract to dictionaries

2009-05-29 Thread Gary Herron

Marius Retegan wrote:

Hi,

On Fri, May 29, 2009 at 2:09 AM, Gary Herron 
mailto:gher...@islandtraining.com>> wrote:


Marius Retegan wrote:

Hello
I have simple text file that I have to parse. It looks
something like
this:

parameters1
key1 value1
key2 value2
end

parameters2
key1 value1
key2 value2
end

So I want to create two dictionaries parameters1={key1:value1,
key2:value2} and the same for parameters2.

I would appreciate any help that could help me solve this.
Thank you
 



This looks like a homework problem. 



It's not. I'm passed homework age.
 


  But even if it's not, you are not likely to find someone who is
willing to put more work into this problem than you have.
So  why don't you show us what you've tried, and see if someone is
willing to make suggestions or answer specific question about your
attempt at a solution?


I don't now if posting a code that gets into a while loop and never 
stops would demonstrate to you that I've tried. Be assured that before 
posting to the list I did try to solve it myself, because I knew that 
I might get an answer like RTFM or similar.
Maybe I'm not smart enough, but I can't make python to start reading 
after the "parameter1" line and stop at the "end" line. That's all I 
want a small piece of pseudocode to do just that.


OK.  Assuming you are open a file with something like:
f = open('data', 'r')

Then this will read lines up to the first "parameters" line
for line in f:
   if line.startswith('parameters'):
  break

At this point, line contains 'parameters1\n'.  Do with it as you will.

Then read and process lines until an end line is reached
for line in f:
   if line.beginswith('end'):
   break
   # Here line contains  'key1 value1\n'.
   # Perhaps use line.strip to remove the white space on each end
   # and k,v =line.split() to split out the two values on the line.

You'll need more:
 A loop to keep the above two going until the end of file
 A way to recognize the end of the file.

Gary Herron



Thanks
 



Gary Herron




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


Re: Network programming ?

2009-05-29 Thread Aahz
In article ,
  wrote:
>
>I am planning to develop a chatting software in Python, for my college
>project. I am using Windows Vista. Is it possible to do sockets
>programming in Python ? Any books or websites ?  Also, i want to
>develop a gui for that program. What are the gui tool kits available
>for windows? I already knew about PyGtk and PyQT, but will they work
>properly in Windows platform? Any suggestions?

You likely want to use Twisted, you should at least investigate it.
-- 
Aahz (a...@pythoncraft.com)   <*> http://www.pythoncraft.com/

my-python-code-runs-5x-faster-this-month-thanks-to-dumping-$2K-
on-a-new-machine-ly y'rs  - tim
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: formating query with empty parameter

2009-05-29 Thread Aahz
In article ,
Tim Chase   wrote:
>Aahz wrote:
>> Tim Chase   wrote:
>>> To stave off this problem, I often use:
>>>
>>>   values = [
>>>data['a'],
>>>data['b'],
>>>data['c'],
>>>data['d'],
>>>data['e'],
>>>data['f'],
>>>data['g'],
>>>]
>>>   params = ', '.join('%s' for _ in values)
>>>   query = """
>>> BEGIN;
>>>   INSERT INTO table
>>> (a,b,c,d,e,f,g)
>>>   VALUES (%s);
>>> COMMIT;
>>> """ % params
>>>   self.db.execute(query, values)
>> 
>> How do you handle correct SQL escaping?
>
>If you dump "query", you see that "params" (possibly a better 
>name would be "place_holders") is merely a list of "%s, %s, %s, 
>..., %s" allowing the "execute(query, ***values***)" to properly 
>escape the values.  The aim is to ensure that 
>"count(placeholders) == len(values)" which the OP mentioned was 
>the problem.

Right, that's what I get for reading code early in the morning.
-- 
Aahz (a...@pythoncraft.com)   <*> http://www.pythoncraft.com/

my-python-code-runs-5x-faster-this-month-thanks-to-dumping-$2K-
on-a-new-machine-ly y'rs  - tim
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: extract to dictionaries

2009-05-29 Thread Emile van Sebille

On 5/28/2009 4:03 PM Marius Retegan said...

Hello
I have simple text file that I have to parse. It looks something like
this:

parameters1
 key1 value1
 key2 value2
end

parameters2
 key1 value1
 key2 value2
end

So I want to create two dictionaries parameters1={key1:value1,
key2:value2} and the same for parameters2.

I woud appreciate any help that could help me solve this.
Thank you



Assuming you've read the above into paramFile...

for dictvals in [xx.split() for xx in paramFile.split("end") if xx]:
locals()[dictvals[0]]=dict(zip(dictvals[1::2],dictvals[2::2]))

You-can't-really-call-this-helping-ly yrs,

Emile

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


Re: try except inside exec

2009-05-29 Thread Michele Petrazzo

Aaron Brady wrote:

STR = """
class Globals:
   err = 0
def a_funct():
   try:
  1/0
   except ZeroDivisionError:
  import traceback
  Globals.err = traceback.format_exc()
"""




exec STR in env
try:
  env["a_funct"]()
except ZeroDivisionError:
  import traceback
  err = traceback.format_exc()

Then the formatted exception will be available in 'err'.  Do you want
the exception-handling to be part of the function you are entering
into 'env'?


My goal is to execute a function received from a third-part, so I cannot 
modify as you made in your first piece of code.
I want a "clean" exception with the real line code/tb so I can show a 
"real" error message. This means that the try/execpt has to include the 
passed function and catch every possible exception.


Do you have any ideas on how can I figure this out?

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


PyPy Europython Sprint Announcement

2009-05-29 Thread Carl Friedrich Bolz

==
Birmingham (UK) EuroPython PyPy Sprints 28-29 June/ 3-4 July 2009
==

The PyPy team is sprinting at EuroPython again. This year there are
`sprint days`_ before (28-29 June) and after (3-4 July) the conference.
Some PyPy core people should be present during both periods.

.. _`sprint days`: http://wiki.europython.eu/Sprints

If you plan to attend the sprints after the conference we recommend you
to listen to the PyPy technical talk (`EuroPython schedule`_) during the
conference since it will give you a good overview of the status of
development.

Goals and topics of the sprint
--

There are many possible and interesting sprint topics to work on - here
we list some possible task areas:

 - trying out software on PyPy's Python interpreter: the CPython test
   suite is not all that complete, therefore the fact that we pass most
   tests is no real indication of bug-freeness. We have tried and know
   that frameworks like Django and Twisted work with PyPy. Therefore we
   would like to try running more "real applications" on top of the
   Python interpreter (ideally ones that have a good test suite
   themselves and that don't need unusual extension modules). Running
   things on Windows is also interesting, we know our coverage there is
   not as good as on Linux.

 - check and improve Mac OS X support

 - starting to work on porting 2.6 features to PyPy's Python interpreter

 - ongoing JIT generator work

 - of course we are open to other ideas for what to work on. Examples
   could be working on other language interpreters, sandboxing, ...



Registration


If you'd like to come, please subscribe to the `pypy-sprint mailing
list`_ and drop a note about your interests and post any questions.
More organisational information will be sent to that list.

Please register by adding yourself on the following list (via svn):

  http://codespeak.net/svn/pypy/extradoc/sprintinfo/ep2009/people.txt

or on the pypy-sprint mailing list if you do not yet have check-in
rights:

  http://codespeak.net/mailman/listinfo/pypy-sprint

---
Preparation (if you feel it is needed):
---

- read the `getting-started`_ pages on http://codespeak.net/pypy,
  especially also the `development of PyPy itself part`_ .

- for inspiration, overview and technical status you are welcome to read
  `the technical reports available and other relevant documentation`_

- please direct any technical and/or development oriented questions to
  pypy-dev at codespeak.net and any sprint organizing/logistical
  questions to pypy-sprint at codespeak.net

- if you need information about the conference, potential hotels,
  directions etc we recommend to look at http://www.europython.eu.


We are looking forward to meet you at the EuroPython PyPy sprints!

The PyPy team


.. See also ..

.. _getting-started:
http://codespeak.net/pypy/dist/pypy/doc/getting-started.html
.. _`development of PyPy itself part`:
http://codespeak.net/pypy/dist/pypy/doc/getting-started-dev.html

.. _`pypy-sprint mailing list`:
http://codespeak.net/mailman/listinfo/pypy-sprint
.. _`the technical reports available and other relevant documentation`:
http://codespeak.net/pypy/dist/pypy/doc/docindex.html

.. _`EuroPython schedule`: http://europython.eu/talks/timetable



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


IFL 2009: Second Call for Papers

2009-05-29 Thread IFL 2009
Call for Papers 
IFL 2009
Seton Hall University
SOUTH ORANGE, NJ, USA
http://tltc.shu.edu/blogs/projects/IFL2009/


** NEW **

Accomodations information available: 
http://tltc.shu.edu/blogs/projects/IFL2009/accommodations.html

Jane Street Capital has joined IFL 2009 as a sponsor

*


The 21st International Symposium on Implementation and Application of 
Functional Languages, IFL 2009, will be held 
for the first time in the USA. The hosting institution is Seton Hall 
University in South Orange, NJ, USA and the 
symposium dates are September 23-25, 2009. It is our goal to make IFL a 
regular event held in the USA and in 
Europe. The goal of the IFL symposia is to bring together researchers 
actively engaged in the implementation and 
application of functional and function-based programming languages. IFL 
2009 will be a venue for researchers to 
present and discuss new ideas and concepts, work in progress, and 
publication-ripe results related to the 
implementation and application of functional languages and function-based 
programming.

Following the IFL tradition, IFL 2009 will use a post-symposium review 
process to produce a formal proceedings which 
will be published by Springer in the Lecture Notes in Computer Science 
series. All participants in IFL 2009 are 
invited to submit either a draft paper or an extended abstract describing 
work to be presented at the symposium. 
These submissions will be screened by the program committee chair to make 
sure they are within the scope of IFL and will 
appear in the draft proceedings distributed at the symposium. Submissions 
appearing in the draft proceedings are not 
peer-reviewed publications. After the symposium, authors will be given the 
opportunity to incorporate the feedback from 
discussions at the symposium and will be invited to submit a revised full 
arcticle for the formal review process. These 
revised submissions will be reviewed by the program committee using 
prevailing academic standards to select the best 
articles that will appear in the formal proceedings.


TOPICS

IFL welcomes submissions describing practical and theoretical work as well 
as submissions describing applications and tools. 
If you are not sure if your work is appropriate for IFL 2009, please 
contact the PC chair at ifl2...@shu.edu. Topics of 
interest include, but are not limited to:

 language concepts 
 type checking 
 contracts
 compilation techniques 
 staged compilation
 runtime function specialization
 runtime code generation 
 partial evaluation 
 (abstract) interpretation 
 generic programming techniques 
 automatic program generation 
 array processing 
 concurrent/parallel programming 
 concurrent/parallel program execution 
 functional programming and embedded systems 
 functional programming and web applications 
 functional programming and security 
 novel memory management techniques 
 runtime profiling and performance measurements 
 debugging and tracing 
 virtual/abstract machine architectures 
 validation and verification of functional programs 
 tools and programming techniques 
 FP in Education


PAPER SUBMISSIONS

Prospective authors are encouraged to submit papers or extended abstracts 
to be published in the draft proceedings and to 
present them at the symposium. All contributions must be written in 
English, conform to the Springer-Verlag LNCS series 
format and not exceed 16 pages. The draft proceedings will appear as a 
technical report of the Department of Mathematics 
and Computer Science of Seton Hall University.


IMPORTANT DATES

Registration deadline   August 15, 2009
Presentation submission deadlineAugust 15, 2009
IFL 2009 Symposium  September 23-25, 2009
Submission for review process deadline  November 1, 2009
Notification Accept/Reject  December 22, 2009
Camera ready versionFebruary 1, 2010


PROGRAM COMMITTEE

Peter Achten   University of Nijmegen, The Netherlands
Jost Berthold   Philipps-Universität Marburg, Germany
Andrew Butterfield University of Dublin, Ireland
Robby Findler Northwestern University, USA
Kathleen Fisher   AT&T Research, USA
Cormac Flanagan  University of California at Santa Cruz, USA
Matthew FlattUniversity of Utah, USA
Matthew Fluet   Toyota Technological Institute at 
Chicago, USA
Daniel Friedman Indiana University, USA
Andy GillUniversity of Kansas, USA
Clemens Grelck  University of Amsterdam/Hertfordshire, The 
Netherlands/UK
Jurriaan Hage  Utrecht University, The Netherlands
Ralf Hinze  Oxford University, UK
Paul Hudak   Yale University, USA
John HughesChalmers University of Technology, 
Sweden
Patricia Johann   

Re: try except inside exec

2009-05-29 Thread Emile van Sebille

On 5/29/2009 8:55 AM Michele Petrazzo said...

Aaron Brady wrote:



Then the formatted exception will be available in 'err'.  Do you want
the exception-handling to be part of the function you are entering
into 'env'?


My goal is to execute a function received from a third-part, so I cannot 
modify as you made in your first piece of code.
I want a "clean" exception with the real line code/tb so I can show a 
"real" error message. This means that the try/execpt has to include the 
passed function and catch every possible exception.


Do you have any ideas on how can I figure this out?


Write the string out to a .py file and import it?

Emile

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


Re: try except inside exec

2009-05-29 Thread David Stanek
On Fri, May 29, 2009 at 11:55 AM, Michele Petrazzo
 wrote:
>
> My goal is to execute a function received from a third-part, so I cannot
> modify as you made in your first piece of code.
> I want a "clean" exception with the real line code/tb so I can show a "real"
> error message. This means that the try/execpt has to include the passed
> function and catch every possible exception.
>
> Do you have any ideas on how can I figure this out?
>

Is the thirdparty function the entire STR or just the a_funct part?

-- 
David
blog: http://www.traceback.org
twitter: http://twitter.com/dstanek
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What text editor is everyone using for Python

2009-05-29 Thread Falcolas
I am a long time VIM user, and I likely will not change that. The
speed, ease of use and functionality, for me, is worth the time spent
learning how to use it.

My secondary editor on the desktop is UltraEdit, which does a fine job
as a text editor and has all the same functionality of VIM - yet
despite 2 years on it (they won't allow me GVIM at work), I can't get
to the same level of productivity with it as I can with VIM.

Ditto Eclipse... I spent more time figuring out how to get a program
to run properly than coding. The limited autocomplete and function
jump-list were not worth the pain of getting it working, IMO.

On May 29, 2:01 am, Steven D'Aprano  wrote:

> (1) Closed source editors have the same functional requirements as open
> source editors.
>
> (2) If you're waiting for perfection, you'll be waiting forever.
>
> (3) Why independent of the OS? When is the last time you've used a system
> without an OS? Forth programmers in the 1970s used an editor that was OS
> independent -- it managed files using its own unique file structure,
> managed memory itself, etc. Why do you want to go back there?

As to your points, Steven:

1) I would agree with this point. VI and it's children were written to
a different interpretation of said rules, however. They were built
around the speed at which a human can use a keyboard with natural
finger movements, at the expense of discoverability and intuitiveness.
2) VIM may not be perfect, but it's really darned close. ;-)
3) OS independence, IMO, is related more to the ability to use the
tool on every OS, rather than on the lack of an OS.
-- 
http://mail.python.org/mailman/listinfo/python-list


Python-URL! - weekly Python news and links (May 29)

2009-05-29 Thread Gabriel Genellina
QOTW:  "Death To Wildcard Imports" - Lawrence D'Oliveiro
http://groups.google.com/group/comp.lang.python/msg/835cf7f35ed f4897


How to ask questions having a chance of being answered:
http://groups.google.com/group/comp.lang.python/t/17b15282d07770d1/

Multiprocessing and memory usage:
http://groups.google.com/group/comp.lang.python/t/4c9c5805aadd833d/

Of backslashes and raw string literals:
http://groups.google.com/group/comp.lang.python/t/dd18130f9f379974/

How does OOP "feel" in Python?
http://groups.google.com/group/comp.lang.python/t/2cf2e3c9c1df4e8b/

Sockets: how to reuse the same port quickly
http://groups.google.com/group/comp.lang.python/t/82204fb9d10d38aa/

Tools to optmize math functions:
http://groups.google.com/group/comp.lang.python/t/2b34fd6c43be79d6/

Replacing module with a stub for unit testing:
http://groups.google.com/group/comp.lang.python/t/023dff1ec533f101/

Sometimes it's better to use delegation instead of inheritance:
http://groups.google.com/group/comp.lang.python/t/86674e06fc14c6a6/

Inserting NULL values in a database:
http://groups.google.com/group/comp.lang.python/t/3c3ccdbfe1bc5a45/



Everything Python-related you want is probably one or two clicks away in
these pages:

Python.org's Python Language Website is the traditional
center of Pythonia
http://www.python.org
Notice especially the master FAQ
http://www.python.org/doc/FAQ.html

PythonWare complements the digest you're reading with the
marvelous daily python url
 http://www.pythonware.com/daily

Just beginning with Python?  This page is a great place to start:
http://wiki.python.org/moin/BeginnersGuide/Programmers

The Python Papers aims to publish "the efforts of Python enthusiasts":
http://pythonpapers.org/
The Python Magazine is a technical monthly devoted to Python:
http://pythonmagazine.com

Readers have recommended the "Planet" sites:
http://planetpython.org
http://planet.python.org

comp.lang.python.announce announces new Python software.  Be
sure to scan this newsgroup weekly.
http://groups.google.com/group/comp.lang.python.announce/topics

Python411 indexes "podcasts ... to help people learn Python ..."
Updates appear more-than-weekly:
http://www.awaretek.com/python/index.html

The Python Package Index catalogues packages.
http://www.python.org/pypi/

The somewhat older Vaults of Parnassus ambitiously collects references
to all sorts of Python resources.
http://www.vex.net/~x/parnassus/

Much of Python's real work takes place on Special-Interest Group
mailing lists
http://www.python.org/sigs/

Python Success Stories--from air-traffic control to on-line
match-making--can inspire you or decision-makers to whom you're
subject with a vision of what the language makes practical.
http://www.pythonology.com/success

The Python Software Foundation (PSF) has replaced the Python
Consortium as an independent nexus of activity.  It has official
responsibility for Python's development and maintenance.
http://www.python.org/psf/
Among the ways you can support PSF is with a donation.
http://www.python.org/psf/donations/

The Summary of Python Tracker Issues is an automatically generated
report summarizing new bugs, closed ones, and patch submissions. 

http://search.gmane.org/?author=status%40bugs.python.org&group=gmane.comp.python.devel&sort=date

Although unmaintained since 2002, the Cetus collection of Python
hyperlinks retains a few gems.
http://www.cetus-links.org/oo_python.html

Python FAQTS
http://python.faqts.com/

The Cookbook is a collaborative effort to capture useful and
interesting recipes.
http://code.activestate.com/recipes/langs/python/

Many Python conferences around the world are in preparation.
Watch this space for links to them.

Among several Python-oriented RSS/RDF feeds available, see:
http://www.python.org/channews.rdf
For more, see:
http://www.syndic8.com/feedlist.php?ShowMatch=python&ShowStatus=all
The old Python "To-Do List" now lives principally in a
SourceForge reincarnation.
http://sourceforge.net/tracker/?atid=355470&group_id=5470&func=browse
http://www.python.org/dev/peps/pep-0042/

del.icio.us presents an intriguing approach to reference commentary.
It already aggregates quite a bit of Python intelligence.
http://del.icio.us/tag/python

Enjoy the *Python Magazine*.
http://pymag.phparch.com/

*Py: the Journal of the Python Language*
http://www.pyzine.com

Dr.Dobb's Portal is another 

Trying to get cleaner XML output from a text file

2009-05-29 Thread iainemsley
I'm using Python2.5 to try and convert some text files into XML using
xml.minidom. I'm currently doing some plays which have a structure
like
Scene 1
Act 1
blah blah
Act2
blah blah
Scene 2
Act 1
and so on.
I'm trying to turn it into
1
  1
   
  
  2
   
  

(or ideally  bit I can always come back to
this later)
I've currently got:
 
  
   
II
   
  
 
 
  
   
II
   
  
 
 
  
The code I'm currently working with is:
from itertools import groupby
from xml.dom.minidom import Document

import re

text = open('\\texts\\midsummer_nights_dream_gut.txt').read()

def paragraphs(lines, is_separator=str.isspace, joiner=''.join):
for separator_group, lineiter in groupby(lines, key=is_separator):
if not separator_group:
yield joiner(lineiter)

def scene_node(scene):
global docText
docText = doc.createElement("div")
#need to set the type to book, verse, drama
docText.setAttribute("type", "scene")
#need set the id to what ever break name or id: i.e. chapter 1 or
act 1
docText.setAttribute("id", '')
tei.appendChild(docText)
for acts in actTxt.split(scene):
act_node(acts)

def act_node(act):
global actText
actText = doc.createElement("div")
#need to set the type to book, verse, drama
actText.setAttribute("type", "act")
#need set the id to what ever id: 1 or I
actText.setAttribute("id", ' ')
docText.appendChild(actText)
for p in paragraphs(act.splitlines(True)):
speech_node(p)

def speech_node(speech):
para = doc.createElement("speech")
actText.appendChild(para)
ptext = doc.createTextNode(speech)
para.appendChild(ptext)


doc = Document()
tei = doc.createElement("body")
doc.appendChild(tei)

sideTxt = re.compile(r"Scene\s+([1-9])", re.I)
actTxt = re.compile(r"Act\s+([1-9])", re.I)
for textStr in sideTxt.split(text):
scene_node(textStr)

print doc.toprettyxml(indent = " ")
I'd be grateful for some pointers about getting a cleaner output.

Thanks,

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


Re: Parsing DTDs

2009-05-29 Thread Piet van Oostrum
> Tom Anderson  (TA) wrote:

>TA> Hello!
>TA> I would like to parse XML DTDs. The goal is to be able to validate XML-like
>TA> object structures against DTDs in a fairly flexible way, although i can get
>TA> from a parsed DTD to a validation engine myself, so that's not an essential
>TA> feature of the parser (although it would be nice!). What should i do?

>TA> A bit of googling revealed that the xmlproc package contains a DTD parser
>TA> that looks like it does just what i want, and that xmlproc became PyXML,
>TA> and that PyXML is no longer maintained.

>TA> Is there a DTD parser that is being maintained? Or does it not really
>TA> matter that PyXML is no longer maintained, given that it's not like the DTD
>TA> spec has changed very much?

http://codespeak.net/lxml/validation.html#dtd
-- 
Piet van Oostrum 
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: python list pattern matching?

2009-05-29 Thread Terry Reedy

Peter Otten wrote:

Terry Reedy wrote:


 >>> a,b,*rest = list(range(10))


The list() call is superfluous.


Agreed, even in Py3 when range() returns a range object rather than a list.

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


Re: try except inside exec

2009-05-29 Thread Aaron Brady
On May 29, 9:55 am, Michele Petrazzo
 wrote:
> Aaron Brady wrote:
> > STR = """
> > class Globals:
> >    err = 0
> > def a_funct():
> >    try:
> >       1/0
> >    except ZeroDivisionError:
> >       import traceback
> >       Globals.err = traceback.format_exc()
> > """
> > exec STR in env
> > try:
> >   env["a_funct"]()
> > except ZeroDivisionError:
> >   import traceback
> >   err = traceback.format_exc()
>
> > Then the formatted exception will be available in 'err'.  Do you want
> > the exception-handling to be part of the function you are entering
> > into 'env'?
>
> My goal is to execute a function received from a third-part, so I cannot
> modify as you made in your first piece of code.
> I want a "clean" exception with the real line code/tb so I can show a
> "real" error message. This means that the try/execpt has to include the
> passed function and catch every possible exception.
>
> Do you have any ideas on how can I figure this out?
>
> Thanks,
> Michele

Exceptions are only caught when raised in a 'try' statement.  If you
don't raise the exception in a try statement, it won't be caught.

The function you posted will raise an exception.  If you are making
the call yourself, that is, if only the definition is foreign, then
simply catch exceptions when so.

Otherwise, my only idea so far is to use the 'ast' module to inject an
exception handler into the third-party function.  That is quite
advanced and may be error-prone, though I think it would look
something like this:

for every 'def' statement in STR:
   def_statement.body= try_statement + def_statement.body

I expect it would be more reliable than hand-parsing the text and
concatenating a string exception statement.

Any interest in this, or do you make the call yourself?
-- 
http://mail.python.org/mailman/listinfo/python-list


Questions about regex

2009-05-29 Thread Jared . S . Bauer
Hello,

I'm new to python and I'm having problems with a regular expression. I
use textmate as my editor and when I run the regex in textmate it
works fine, but when I run it as part of the script it freezes. Could
anyone help me figure out why this is happening and how to fix it.
Here is the script:


==
# regular expression search and replace
import sys, os, re, string, csv

#Open the file and taking its data
myfile=open('Steve_query3.csv') #Steve_query_test.csv
#create an error flag  to loop the script twice
#store all file's data in the string object 'text'
myfile.seek(0)
text = myfile.read()

for i in range(2):
#def textParse(text, reRun):
print 'how many times is this getting executed', i

#Now to create the newfile 'test' and write our 'text'
newfile = open('Steve_query3_out.csv', 'w')
#open the new file and set it with 'w' for "write"
#loop trough 'text' clean them up and write them into the 'newfile'
#sub(   pattern, repl, string[, count])
#"sub("(?i)b+", "x", " ")" returns 'x x'.
text = re.sub('(\<(/?[^\>]+)\>)', "", text)#remove the HTML
text = re.sub('//', "", text) #remove comments  
text = re.sub('\/\*(.|\s)*?;}', "", text) #remove css formatting
#remove a bunch of word formatting yuck
text = re.sub(" ", " ", text)
text = re.sub("<", "<", text)
text = re.sub(">", ">", text)
text = re.sub(""|&rquot;|“", "\'", text)
#===
#The two following lines are the ones giving me the problems
text = re.sub("w:(.|\s)*?\n", "", text)
text = re.sub("UnhideWhenUsed=(.|\s)*?\n", "", text)
#===
text = re.sub(re.compile('^\r?\n?$', re.MULTILINE), '', text) #remove
the extra whitespace
#now write out the new file and close it
newfile.write(text)
newfile.close()

#open the newfile and run the script again
#Open the file and taking its data

myfile=open('Steve_query3_out.csv') #Steve_query_test.csv
#store all file's data in the string object 'text'
myfile.seek(0)
text = myfile.read()

Thanks for the help,

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


Re: Programming Praxis

2009-05-29 Thread namekuseijin

Phil Bewig escreveu:

Please visit my blog, Programming Praxis, which presents a collection
of programming etudes.  Newbies will find exercises that extend their
programming abilities.  Savvy programmers can use the exercises to
sharpen their skills or learn a new language.  Brave programmers can
submit their code to the review of their colleagues.

Programming Praxis isn't a contest.  No points are awarded, no scores
are kept.  The exercises simply provide an opportunity to hone your
skills; the effort is its own reward.

Programming Praxis is available on the web at 
http://programmingpraxis.wordpress.com.
Come join us!


It's very good, yes. :)

--
a game sig: http://tinyurl.com/d3rxz9
--
http://mail.python.org/mailman/listinfo/python-list


DrPython (Windows) problems

2009-05-29 Thread chrisv

Running DrPython under Linux works great.  However, when I run it
under Windows:

1)  I need to "Open" programs twice.  That's right, File, Open, and
select the program.  First time, nothing.  Repeat, and there's the
program!

2)  Run I run a program, the "execution box" comes-up and shows the
program output, but it never goes-away.  I cannot figure-out how to
close this window.

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


NameError function not found

2009-05-29 Thread Cameron Pulsford
Hey everyone, I am extremely stumped on this. I have 2 functions..

def _determinant(m):
   return m[0][0] * m[1][1] - m[1][0] * m[0][1]

def cofactor(self):
   """Returns the cofactor of a matrix."""
   newmatrix = []
   for i, minor in enumerate(self.minors()):
   newmatrix.append(_determinant(minor.matrix) * ((i%2) * -1))
   return newmatrix

And I get the following error when I try to run a.cofactor()...

"NameError: global name '_determinant' is not defined"

When I put the _determinant function nested within the cofactor function it
works fine. Normally I would do this, but a lot of other methods use the
_determinant method. They are both in the same class, and they are at the
same level, they are even in that order so I know it should be  able to see
it. I have a lot of functions that call other functions in this class and
everything is fine. [Also for the picky, I know my cofactor method isn't
mathematically correct yet ;-) ] Am I missing something obvious here? Also
if it helps the rest of the code is here
http://github.com/dlocpuwons/pymath/blob/d1997329e4473f8f6b5c7f11635dbd719d4a14fa/matrix.py
though
it is not the latest.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: NameError function not found

2009-05-29 Thread Jason Tackaberry
On Fri, 2009-05-29 at 15:13 -0400, Cameron Pulsford wrote:
> def _determinant(m):
>return m[0][0] * m[1][1] - m[1][0] * m[0][1]

Given that this has no self argument, I'm assuming this is not a class
method.


> def cofactor(self):
>"""Returns the cofactor of a matrix."""

Given that this does, I assume this _is_ a class method.

So are you putting _determinant() inside the class?  If so, you should
either make it method, and invoke it as self._determinant(), or bring it
outside the class into the global scope, in which case your code should
work.

Cheers,
Jason.

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


CRLF when doing os.system("ls -l") while using curses !!!

2009-05-29 Thread lkennedy5
Here is the code and as you can see for yourself, the output is not
coming out on the screen with CRLF like it should.  How do I fix this?



import curses, os
screen = curses.initscr()
os.system("ls -l")
curses.endwin()
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Replacing module with a stub for unit testing

2009-05-29 Thread s4g
Try

import sys
import ExpensiveModuleStub

sys.modules['ExpensiveModule'] = ExpensiveModuleStub
sys.modules['ExpensiveModule'].__name__ = 'ExpensiveModule'

Should do the trick


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


Re: CRLF when doing os.system("ls -l") while using curses !!!

2009-05-29 Thread Emile van Sebille

On 5/29/2009 1:34 PM lkenne...@gmail.com said...

Here is the code and as you can see for yourself, the output is not
coming out on the screen with CRLF like it should. 


Mine did:

[r...@falcon]# python2
Python 2.3.3 (#1, May 11 2004, 14:44:08)
[GCC 2.96 2731 (Red Hat Linux 7.1 2.96-85)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import curses, os
>>> screen = curses.initscr()
>>> os.system("ls -l")
total 8
drwxr-xr-x4 root root 4096 Apr 28 14:42 fal
drwxr-xr-x4 root root 4096 Apr 28 14:43 home



How do I fix this?


Provide details on your environment so others can duplicate the error.

Emile





import curses, os
screen = curses.initscr()
os.system("ls -l")
curses.endwin()


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


Re: [Python-mode] What text editor is everyone using for Python

2009-05-29 Thread Barry Warsaw

On May 28, 2009, at 7:09 AM, Andreas Roehler wrote:

python-mode.el was its bloody-minded determination to regard '_' as  
a word

character, something which caused me more typing that it ever saved.



Its just one line to comment in python-mode.el, like this:

 ;; (modify-syntax-entry ?\_ "w"  py-mode-syntax-table)


This one is ancient and I remember that Guido and I talked about this  
for a long time before settling on the behavior.


-Barry



PGP.sig
Description: This is a digitally signed message part
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: try except inside exec

2009-05-29 Thread Carl Banks
On May 29, 7:21 am, Michele Petrazzo
 wrote:
> Hi all,
> I want to execute a python code inside a string and so I use the exec
> statement. The strange thing is that the try/except couple don't catch
> the exception and so it return to the main code.
> Is there a solution to convert or make this code work?
>
> Thanks,
> Michele
>
> My code:
>
> STR = """
> err = 0
> try:
>    def a_funct():
>      1/0
> except:
>    import traceback
>    err = traceback.format_exc()
> """
>
> env = {}
> exec STR in env
> env["a_funct"]()
> print env["err"]
>
> My error:
>    File "tmp/test_exec.py", line 14, in 
>      env["a_funct"]()
>    File "", line 5, in a_funct
> ZeroDivisionError: integer division or modulo by zero

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


[JOB] Plone Developer, Washington, D.C. - Relo OK | 55-75k

2009-05-29 Thread OSS
Plone Developer, Washington, D.C. - Relo OK | 55-75k

shiverat** Government security clearance required **
** Relocation assistance provided **

My client is seeking a full-time Plone Developer for work with the
federal government. The applicant will be responsible for
standardizing web formats already in place, ensuring 508 compliance,
and deploying content and making both routine and complex changes to
the website. In addition, the applicant should have expertise in
developing web architectures capable of facilitating complex technical
updates as well as managing voluminous materials. The applicant must
have substantial experience with developing or enhancing websites in a
Web 2.0 environment. Government security clearance required.

Required Skills:
* High level skills creating and managing application servers
* High level skills in the Plone base programming language Python,
CPython, and C
* Expert skills building Plone content management systems; preferably
with government experience

Nice to have skills: JavaScript, CSS, HTML, XML, XHTML, Flash,
Dreamweaver

To be considered, please submit your resume along with your salary
requirements to beau at open-source-staffing.com

Thank you,

Beau J. Gould
Open Source Staffing
www.open-source-staffing.com
beau at open-source-staffing.com

http://groups.yahoo.com/group/pythonzopejobs
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: try except inside exec

2009-05-29 Thread Carl Banks
On May 29, 7:21 am, Michele Petrazzo
 wrote:
> Hi all,
> I want to execute a python code inside a string and so I use the exec
> statement. The strange thing is that the try/except couple don't catch
> the exception and so it return to the main code.
> Is there a solution to convert or make this code work?
>
> Thanks,
> Michele
>
> My code:
>
> STR = """
> err = 0
> try:
>    def a_funct():
>      1/0
> except:
>    import traceback
>    err = traceback.format_exc()
> """

The exception isn't being raised because you haven't called the
function.  It's not an exception to define a function that does a
divide by zero, only to execute such a function.


> env = {}
> exec STR in env
> env["a_funct"]()

Here is where you call the function, thus the exception occurs here.


> print env["err"]

This line isn't actually being executed.  I'm not sure if you realize
that

> My error:
>    File "tmp/test_exec.py", line 14, in 
>      env["a_funct"]()
>    File "", line 5, in a_funct
> ZeroDivisionError: integer division or modulo by zero

In general you can't know ahead of time what exceptions a function
might raise, so what you are trying to do can't be done.  You have to
handle the exception at the point where it is called.


And from another post:
> My goal is to execute a function received from a third-part,

The only time it's not a gaping security hole to run code supplied by
a thrid-party as-is is if the program is running on the third-party's
own computer.

If you're execing code on your computer that you didn't write or
thoroughly verify yourself--and you're obviously not doing that--then
you might as well just post your password publicly and say, "have at
it evil hackers".


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


Re: CRLF when doing os.system("ls -l") while using curses !!!

2009-05-29 Thread Piet van Oostrum
> lkenne...@gmail.com (l) wrote:

>l> Here is the code and as you can see for yourself, the output is not
>l> coming out on the screen with CRLF like it should.  How do I fix this?

Don't use curses.

Curses puts the terminal in raw mode (more or less) which doesn't
translate the newline character into CRLF. If you use curses you are
supposed to do all output through curses. But the os.system goes
directly to the screen, outside of curses (because it is another
process).
You could catch the output of ls -l with a PIPE and then write the
output to the curses screen with addstr. But a curses screen has a
limited length, whereas your ls -l output may be larger so then you must
implement some form of scrolling.

>l> import curses, os
>l> screen = curses.initscr()
>l> os.system("ls -l")
>l> curses.endwin()

-- 
Piet van Oostrum 
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [JOB] Plone Developer, Washington, D.C. - Relo OK | 55-75k

2009-05-29 Thread Scott David Daniels

OSS wrote:

Plone Developer, Washington, D.C. - Relo OK | 55-75k  


You should post this to the Python Jobs board, and not here.
http://www.python.org/community/jobs/

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list


Re: extract to dictionaries

2009-05-29 Thread Mike Kazantsev
On Thu, 28 May 2009 16:03:45 -0700 (PDT)
Marius Retegan  wrote:

> Hello
> I have simple text file that I have to parse. It looks something like
> this:
> 
> parameters1
>  key1 value1
>  key2 value2
> end
> 
> parameters2
>  key1 value1
>  key2 value2
> end
> 
> So I want to create two dictionaries parameters1={key1:value1,
> key2:value2} and the same for parameters2.


You can use iterators to efficiently parse no-matter-how-large file.
Following code depends on line breaks and 'end' statement rather than
indentation.


  import itertools as it, operator as op, functools as ft
  from string import whitespace as spaces

  with open('test.src') as src:
lines = it.ifilter(bool, it.imap(lambda x: x.strip(spaces), src))
sections = ( (lines.next(), dict(it.imap(str.split, lines))) for sep,lines 
in
  it.groupby(lines, key=lambda x: x == 'end') if not sep )
data = dict(sections)

  print data
  # { 'parameters2': {'key2': 'value2', 'key1': 'value1'},
  #  'parameters1': {'key2': 'value2', 'key1': 'value1'} }



To save namespace and make it a bit more unreadable you can write it
as a one-liner:

  with open('test.src') as src:
data = dict( (lines.next(), dict(it.imap(str.split, lines))) for sep,lines 
in
  it.groupby(it.ifilter(bool, it.imap(lambda x: x.strip(spaces), src)),
  key=lambda x: x == 'end') if not sep )


-- 
Mike Kazantsev // fraggod.net


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


Re: Problem building 64-bit python 2.6.2 on Solaris 10

2009-05-29 Thread Martin v. Löwis
>>> I think the problem is it should be built with v9.S for 64-bit, not
>>> v8.S.  Is that correct?  If so, how do I get it to use the right one?
>> The Solaris dynamic loader can't find it. Set LD_LIBRARY_PATH or
>> LD_RUN_PATH appropriately, or use crle(8).
>>
> I'm not sure I understand.  It appears that cc is compiling the wrong
> module, v8.S.

Ah, too much text - I was confused by you reporting two issues in a
single email message. That has exhausted my capacity for quick message
scanning.

So this is a ctypes problem. You'll have to ignore it - there is
absolutely no way that you could possibly build the ctypes module
with Sun CC (short of rewriting ctypes to support it, of course).
Use gcc if you need the ctypes module, or accept not having the ctypes
module available.

> You may be right about the first error.  It's being reported by ld,
> but -L/opt/openssl/lib/sparcv9 & -R/opt/openssl/lib/sparcv9 are being
> passed to cc.  It is able to find -lssl & -lcrypto, but I think python
> itself doesn't use the openssl libraries.  Since I see the chain
> "ld.so.1: python: fatal: libssl.so.0.9.8: open failed: No such file or
> directory", which I think means python itself doesn't know where they
> are at.  I checked python & libpython.so with ldd & neither uses
> libssl.so.  It seems to me there should be another way to tell python
> where to find it to build the module.  Does this make sense?

Unfortunately, no. It is definitely *not* Python who is searching for
these libraries. That you had been passing them to ld during linkage
doesn't help at all. Linking succeeds just fine; Python then tries
to load the the _ssl module, which in turn causes the *dynamic* linker
(ld.so.1) to search for the shared library; it doesn't find it and
therefore gives up loading _ssl.so.

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


Re: [Python-mode] What text editor is everyone using for Python

2009-05-29 Thread Marcelo de Moraes Serpa
stop! Use the editor you are comfortable with. No flame wars please, even
though Emacs is the way to enlightenment :)

On Fri, May 29, 2009 at 4:10 PM, Barry Warsaw  wrote:

> On May 28, 2009, at 7:09 AM, Andreas Roehler wrote:
>
>  python-mode.el was its bloody-minded determination to regard '_' as a word
>>> character, something which caused me more typing that it ever saved.
>>>
>>>
>> Its just one line to comment in python-mode.el, like this:
>>
>>  ;; (modify-syntax-entry ?\_ "w"  py-mode-syntax-table)
>>
>
> This one is ancient and I remember that Guido and I talked about this for a
> long time before settling on the behavior.
>
> -Barry
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python, Tkinter and popen problem

2009-05-29 Thread norseman

Piet van Oostrum wrote:

norseman  (n) wrote:



n> I have tried both and Popen2.popen2().
n> os.popen runs both way, contrary to docs.


What do you mean `os.popen runs both way'?


It reads from child while console writes directly to child -  thus 
eliminating the problem of coding a pass through from master.





n> # master.py
n> import os
n> #both lines work same


Of course, because 'r' is the default, and the bufsize for reading the
pipe only influences the performance.


n> #xx= os.popen("/mnt/mass/py/z6.py").readlines()
n> xx= os.popen("/mnt/mass/py/z6.py",'r',1).readlines()
n> #I had hoped small buffer would force a sync (flush())
n> #No such luck.


First, there is a difference between sync and flush. flush is writing
out any output that is buffered in the application program for that
file. Sync is writing out buffers (cache) in the operating system (to the
disc, network connection or similar). We are talking here about
flushing, not syncing. As we deal with a pipe, sync is not applicable.

Furthermore, whatever you do in the master program, such as setting the
buffer size has nothing to do with what happens in the child, so it will
not influence the flushing behaviour of the child. The only way to
influence that would be to use a pty instead of a pipe, because most
code uses a different buffering strategy for ttys and ptys compared to
files and pipes.

The next error in your program is that you use readlines()
This reads ALL input from your pipe before it proceeds. So essentially
it waits until the child process is finished and therefore gives you the
impression that it doesn't flush(). But it is not the child that is the
problem it is your master.

What you should do is take the pipe and do a readline()/print loop.

#xx= os.popen("/mnt/mass/py/z6.py")

# popen is deprecated. Replace with subprocess:
from subprocess import Popen, PIPE
xx = Popen(["/mnt/mass/py/z6.py"], stdout=PIPE).stdout

while True:
line = xx.readline()
if not line: break
print "\t" + line,

The obvious:

for l in xx:
print "\t" + l,

doesn't work as the iterator for a file, including pipes, does a
read ahead (see the doc on file.next()) and therefore is not suitable for
interactive use.


n> The direct question comes back to:



n> How does one force a sync or flush() to take effect in Python with
n> Tkinter in use? Or just in Python period. The keyword being force.


So it should be clear by now that the answer is to use flush().
And make sure you read AND process the flushed output in a proper way.

By the way, you have a nasty habit of using very unclear language to
pose your problems in this newsgroup/mailing list, instead of writing a
concise description and giving small examples of what code causes the
problem. This makes it extremely difficult to help you. I had to read
your messages at least 5 times to get an idea of what you were doing and
what the problem was that you wanted to solve.

Maybe you are dyslectic or something similar, in which case I apologize.
But anyway, I think you should learn to express yourself more clearly.
There are also courses for that.

===

"...

doesn't work as the iterator for a file, including pipes, does a
read ahead (see the doc on file.next()) and therefore is not suitable
for interactive use.

..."

If I understand you the above can be stated as:

The above does not work as an iterator for any file type, including
pipes, but it does do read aheads  and therefore is not suitable for
interactive use.

If that is correct then read ahead is simply buffered file reads (grab a
chunk, parcel it out on demand) - yes?

As for "... not suitable for interactive ..." Really?  Except for
special purpose use the current interactive components are all buffered
for read ahead use.  Check the actual code for your keyboard, your mouse
and so forth. It's the read ahead that allows faster time to completion.
It's why C-code has the putch function.


Yes - Sync IS the bigger hammer!  If that is what is needed - so be it.
All character readers (byte at a time) should obey a flush(). Depending
on type, code for the reader controls whether or not it flushes
incomplete "lines" in the in-buffer(s). Proper implementation limits 
lost data on system crash.

In trying to use flush at the master side I keep getting messages
indicating strings (completed or not) are not flushable.  Strange 
practice.


---
from subprocess import Popen, PIPE
xx = Popen(["z6.py"], stdout=PIPE).stdout

while True:
line = xx.readline()
if not line: break
print "\t" + line,
---
DOES WORK on Python 2.5.2 on Slackware 10.2 - THANK YOU VERY MUCH!!!
Isn't working on Windows. error message comes as one of two forms.
  1- %1 not found   #as shown above
  2- file not found #as ...["python z6.py"]...
same#as #2 even with full paths given
I get the impression subprocess ignores system things on Windows.
The ro

Re: DrPython (Windows) problems

2009-05-29 Thread Gabriel Genellina
En Fri, 29 May 2009 16:11:17 -0300, chrisv   
escribió:



Running DrPython under Linux works great.  However, when I run it
under Windows:


Better to ask questions specific to a certain program, in its specific  
forum/mailing list/whatever.

In this case, try http://drpython.sourceforge.net/help.html

--
Gabriel Genellina

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


MySQLdb 1.2.2 + python 2.6.2

2009-05-29 Thread monogeo
Hi all,

Are MySQLdb 1.2.2 and python 2.6.2 compatible? I went to
http://sourceforge.net/project/showfiles.php?group_id=22307, it
doesn't say it is compatible or not.

When trying to install MySQLdb 1.2.2 on my machine which is running
python 2.6.2 and windows XP, I get this error below.

I am able to install MySQLdb 1.2.2 successfully on another machine
which is running python 2.5.4 and windows XP.

Please help if you have any idea.

C:\temp>easy_install MySQL_python-1.2.2-py2.5-win32.egg
Processing MySQL_python-1.2.2-py2.5-win32.egg
Removing c:\python26\lib\site-packages\MySQL_python-1.2.2-py2.5-
win32.egg
Copying MySQL_python-1.2.2-py2.5-win32.egg to c:\python26\lib\site-
packages
MySQL-python 1.2.2 is already the active version in easy-install.pth

Installed c:\python26\lib\site-packages\mysql_python-1.2.2-py2.5-
win32.egg
Processing dependencies for MySQL-python==1.2.2
Searching for MySQL-python==1.2.2
Reading http://pypi.python.org/simple/MySQL-python/
Reading http://sourceforge.net/projects/mysql-python
Reading http://sourceforge.net/projects/mysql-python/
Best match: MySQL-python 1.2.2
Downloading 
http://internap.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
Processing MySQL-python-1.2.2.tar.gz
Running MySQL-python-1.2.2\setup.py -q bdist_egg --dist-dir c:
\docume~1\jchan\locals~1\temp\easy_install-d_b36i\MySQL-
python-1.2.2\egg-dist-tmp-w0_u2d
error: The system cannot find the file specified

Thanks in advance.

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


Re: Questions about regex

2009-05-29 Thread Bobby
On May 29, 1:26 pm, jared.s.ba...@gmail.com wrote:
> Hello,
>
> I'm new to python and I'm having problems with a regular expression. I
> use textmate as my editor and when I run the regex in textmate it
> works fine, but when I run it as part of the script it freezes. Could
> anyone help me figure out why this is happening and how to fix it.
> Here is the script:
>
> ==
> # regular expression search and replace
> import sys, os, re, string, csv
>
> #Open the file and taking its data
> myfile=open('Steve_query3.csv') #Steve_query_test.csv
> #create an error flag  to loop the script twice
> #store all file's data in the string object 'text'
> myfile.seek(0)
> text = myfile.read()
>
> for i in range(2):
>         #def textParse(text, reRun):
>         print 'how many times is this getting executed', i
>
>         #Now to create the newfile 'test' and write our 'text'
>         newfile = open('Steve_query3_out.csv', 'w')
>         #open the new file and set it with 'w' for "write"
>         #loop trough 'text' clean them up and write them into the 'newfile'
>                         #sub(   pattern, repl, string[, count])
>                         #"sub("(?i)b+", "x", " ")" returns 'x x'.
>         text = re.sub('(\<(/?[^\>]+)\>)', "", text)#remove the HTML
>         text = re.sub('//', "", text) #remove comments  
>         text = re.sub('\/\*(.|\s)*?;}', "", text) #remove css formatting
>         #remove a bunch of word formatting yuck
>         text = re.sub(" ", " ", text)
>         text = re.sub("<", "<", text)
>         text = re.sub(">", ">", text)
>         text = re.sub(""|&rquot;|“", "\'", text)
> #===
> #The two following lines are the ones giving me the problems
>         text = re.sub("w:(.|\s)*?\n", "", text)
>         text = re.sub("UnhideWhenUsed=(.|\s)*?\n", "", text)
> #===
>         text = re.sub(re.compile('^\r?\n?$', re.MULTILINE), '', text) #remove
> the extra whitespace
>         #now write out the new file and close it
>         newfile.write(text)
>         newfile.close()
>
>         #open the newfile and run the script again
>         #Open the file and taking its data
>
>         myfile=open('Steve_query3_out.csv') #Steve_query_test.csv
>         #store all file's data in the string object 'text'
>         myfile.seek(0)
>         text = myfile.read()
>
> Thanks for the help,
>
> -Jared

Can you give a string that you would expect the regex to match and
what the expected result would be? Currently, it looks like the
interesting part of the regex (.|\s)*? would match any character of
any length once. There seems to be some redundancy that makes it more
confusing then it needs to be. I'm pretty sure that . will also match
anything that \s will match or maybe you just need to escape . because
you meant for it to be a literal.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: DB-API execute params, am I missing something?

2009-05-29 Thread Lawrence D'Oliveiro
In message <0dcfcb4a-8844-420b-b2e2-
c8e684197...@p6g2000pre.googlegroups.com>, John Machin wrote:

> If you need to escape % or _ in a LIKE argument, do whatever the host
> convention is.
> E.g. you are searching for text that contains literally "5% discount",
> with SQLite you could do:
> [avoiding backslashes and concomitant confusion]
>   LIKE '%5~% discount%' ESCAPE '~'
> on the command line, so using DB-API:
>   like_expr = user_input.replace("~", "~~").replace("%", "~%").replace
> (etc etc)

Sounds like an amazingly complicated, roundabout and not even reliable way 
of doing it.

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


Re: FILE object in Python3.0 extension modules

2009-05-29 Thread Gabriel Genellina
En Fri, 29 May 2009 06:52:15 -0300, Joachim Dahl   
escribió:



In Python2.x, I used PyFile_Check(obj) to check if a parameter was a
file object.

Now, in Python3.0 the same object (obtained as open('file.bin','wb'))
is an
io.BufferedWriter object.

How do I perform type checking for such an object in the extension
module,


I don't know which is the preferred way to check for a file object in 3.x  
- I hope someone can answer this more precisely. In principle, a file  
inherits from io.IOBase, but this class is defined in io.py and probably  
isn't intended to be used in C code. Other alternatives are _io._IOBase,  
PyIOBase_Type, and io.FileIO/_io.FileIO



and how do I extract a FILE * object from it?  I browsed the C API
documentation,  but
couldn't find an answer.


I'd use PyObject_AsFileDescriptor
http://docs.python.org/dev/py3k/c-api/file.html

(Notice that the documentation is outdated; the PyFileObject type does not  
exist anymore, and a file isn't a wrapper around a FILE struct either)



The purpose is to dump the contents of a Python extension type to disk
as
binary data using C's fwrite() function.


From the above, I'd use write() with the file descriptor obtained from  
PyObject_AsFileDescriptor.


--
Gabriel Genellina

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


Re: How does Python's OOP feel?

2009-05-29 Thread Lie Ryan
Ikon wrote:
> I'm rather new to Python. I have PHP for my main language and I do
> some Java. They all have a very strict OO schema. As I red through
> Python's tutorial it seams it has nothing of those rules. No statical,
> abstract classes, functions, or variables.
> 
> I wish someone, who has experience in both Java/PHP/C# and Python
> would tell me how mush better/worse is it to program in a language
> that misses most of the OO parts!

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


Re: newbie: popen question

2009-05-29 Thread Lie Ryan
thebiggestbangthe...@gmail.com wrote:
> On May 28, 5:31 am, Sebastian Wiesner  wrote:
>> 
>>
>>> Your best bet is to make sudo not ask for a password.  :)  If you
>>> don't have the rights, then you can use pexpect to do what you want to
>>> do.  http://pexpect.sourceforge.net/pexpect.html
>>> See the second example on that page.
>>> child = pexpect.spawn('scp foo myn...@host.example.com:.')
>>> child.expect ('Password:')
>>> child.sendline (mypassword)
>> The sudo password prompt is very configurable, so changing the configuration
>> to allow execution without password input is really the best option.
>>
>> --
>> Freedom is always the freedom of dissenters.
>>   (Rosa Luxemburg)
> 
> Thanks guys for helping out! very good answers :-)
> 
> Before I saw your answers, I tried the following,
> 
> output = subprocess.Popen(["sudo","-b", "code.sh", "arg1"],
> stdout=subprocess.PIPE).communicate()[0]
> 
> This seemed to push the shell execution process to the background and
> because my python program was invoked initially with sudo, it seems I
> did not need to enter a passwd again.
> 
> Any comments about this..any issues that you see will crop up?
> 
> Thanks a ton again.
> 
> 
> 

Is using gksu or kdesu feasible? Or maybe you could run "sudo -v" which
activates sudo then immediately run your "sudo command". This relies on
sudo not configured to not use timestamp though.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: FILE object in Python3.0 extension modules

2009-05-29 Thread Gabriel Genellina
En Fri, 29 May 2009 08:48:26 -0300, Benjamin Peterson  
 escribió:



Joachim Dahl  gmail.com> writes:


How do I perform type checking for such an object in the extension
module,
and how do I extract a FILE * object from it?  I browsed the C API
documentation,  but
couldn't find an answer.


You use PyObject_IsInstance to test if the object is an instance of  
io.IOBase.


But you have to import the io module first, don't you? That's not usually  
necesary for most built in types -- e.g. PyFloat_Check just checks for a  
float object.


--
Gabriel Genellina

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


Re: FILE object in Python3.0 extension modules

2009-05-29 Thread Benjamin Peterson
Gabriel Genellina  yahoo.com.ar> writes:
> But you have to import the io module first, don't you? That's not usually  
> necesary for most built in types -- e.g. PyFloat_Check just checks for a  
> float object.

Well, in 3.x, file is not longer a builtin type.




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


Re: DB-API execute params, am I missing something?

2009-05-29 Thread John Machin
On May 30, 11:35 am, Lawrence D'Oliveiro  wrote:
> In message <0dcfcb4a-8844-420b-b2e2-
>
> c8e684197...@p6g2000pre.googlegroups.com>, John Machin wrote:
> > If you need to escape % or _ in a LIKE argument, do whatever the host
> > convention is.
> > E.g. you are searching for text that contains literally "5% discount",
> > with SQLite you could do:
> > [avoiding backslashes and concomitant confusion]
> >   LIKE '%5~% discount%' ESCAPE '~'
> > on the command line, so using DB-API:
> >   like_expr = user_input.replace("~", "~~").replace("%", "~%").replace
> > (etc etc)
>
> Sounds like an amazingly complicated, roundabout and not even reliable way
> of doing it.

Please (a) explain what you mean (b) suggest a better way.
-- 
http://mail.python.org/mailman/listinfo/python-list


Programming Praxis

2009-05-29 Thread Phil Bewig
Please visit my blog, Programming Praxis, which
presents a collection of programming etudes.  Newbies will find
exercises that extend their programming abilities.  Savvy programmers
can use the exercises to sharpen their skills or learn a new
language.  Brave programmers can submit their code to the review of
their colleagues.

Programming Praxis isn't
a contest.  No points are awarded, no scores are kept.  The exercises
simply provide an opportunity to hone your skills; the effort is its
own reward.

Come join us!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Trying to get cleaner XML output from a text file

2009-05-29 Thread Gabriel Genellina
En Fri, 29 May 2009 14:09:10 -0300, iainemsley   
escribió:



I'm using Python2.5 to try and convert some text files into XML using
xml.minidom. I'm currently doing some plays which have a structure
like
Scene 1
Act 1
blah blah
Act2
blah blah
Scene 2
Act 1
and so on.


(I think you get the hierarchy wrong: usually a play contains some Acts;  
each act contains several Scenes)



I'm trying to turn it into
1
  1
   
  
  2
   
  

(or ideally  bit I can always come back to
this later)


Using ElementTree is a lot easier than minidom:

import sys
from itertools import groupby, count
import xml.etree.ElementTree as ET
import re

class Seq:
"Automatic sequencer for acts/scenes"
def __init__(self):
self.act_nr = count(1)
self.scene_nr = count(1)
def next_scene(self):
return self.scene_nr.next()
def next_act(self):
self.scene_nr = count(1)
return self.act_nr.next()
seq = Seq()

def add_act(body, act_text):
act = ET.SubElement(body, "div", type="act", id="a%s" % seq.next_act())
for scene_text in scene_sep.split(act_text):
add_scene(act, scene_text)

def add_scene(act, scene_text):
scene = ET.SubElement(act, "div", type="scene", id="%ss%s" %  
(act.get("id"), seq.next_scene()))

for p in paragraphs(scene_text.splitlines(True)):
add_speech(scene, p)

def add_speech(scene, p):
speech = ET.SubElement(scene, "speech")
speech.text = p

body = ET.Element("body")
scene_sep = re.compile(r"Scene\s+[1-9]+", re.I)
act_sep = re.compile(r"Act\s+[1-9]+", re.I)
for act_text in act_sep.split(text):
add_act(body, act_text)

doc = ET.ElementTree(body)
doc.write(sys.stdout)


--
Gabriel Genellina

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


Re: FILE object in Python3.0 extension modules

2009-05-29 Thread Gabriel Genellina
En Fri, 29 May 2009 23:24:32 -0300, Benjamin Peterson  
 escribió:



Gabriel Genellina  yahoo.com.ar> writes:
But you have to import the io module first, don't you? That's not  
usually

necesary for most built in types -- e.g. PyFloat_Check just checks for a
float object.


Well, in 3.x, file is not longer a builtin type.


Ok, seems the old "file" type has been demoted and atomized...

--
Gabriel Genellina

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


Re: How does Python's OOP feel?

2009-05-29 Thread Benjamin Kaplan
On Fri, May 29, 2009 at 9:41 PM, Lie Ryan  wrote:

> Ikon wrote:
> > I'm rather new to Python. I have PHP for my main language and I do
> > some Java. They all have a very strict OO schema. As I red through
> > Python's tutorial it seams it has nothing of those rules. No statical,
> > abstract classes, functions, or variables.
> >
> > I wish someone, who has experience in both Java/PHP/C# and Python
> > would tell me how mush better/worse is it to program in a language
> > that misses most of the OO parts!
>
> import antigravity


You forgot the link. http://www.xkcd.com/353/

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


problem with pylint + PyQt4

2009-05-29 Thread Vito De Tullio
I'm having probles using pylint on a PyQt4 application.

$ cat TEST_pylint.py 
import PyQt4.QtCore
from PyQt4.QtGui import QApplication

$ python TEST_pylint.py # no import errors

$ pylint --disable-msg=C0103 --disable-msg=C0111 --disable-msg=W0611 \
> TEST_pylint.py
* Module TEST_pylint
E:  1: No name 'QtCore' in module 'PyQt4'
E:  2: No name 'QtGui' in module 'PyQt4'
[...cut...]

$ pylint --version
pylint 0.15.0,
astng 0.17.3, common 0.35.0
Python 2.6 (r26:66714, Feb  3 2009, 20:52:03)
[GCC 4.3.2 [gcc-4_3-branch revision 141291]]

$ rpm -q python-qt4
python-qt4-4.5.snapshot.20090507-9.3

why pylint can't find the PyQt4 submodules?

-- 
By ZeD

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