ANN: PyVISA 1.1 -- GPIB, USB, RS232 instrument control

2006-11-22 Thread Torsten Bronger
Hallöchen!

At http://pyvisa.sourceforge.net you can find information about the
PyVISA package.  It realises Python bindings for the VISA library
functions, which enables you to control GPIB, USB, and RS232-serial
measurement devices via Python.

Yesterday I released version 1.1, which works much better together
with older VISA implementations.  Moreover, we finally have reports
from Linux users.  They successfully used PyVISA with Linux +
NI/Tektronix GPIB hardware.

Tschö,
Torsten.

F'up to comp.lang.python
-- 
Torsten Bronger, aquisgrana, europa vetus
ICQ 264-296-646
   (See http://ime.webhop.org for Jabber, MSN, etc.)
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


What Guido does for his day job

2006-11-22 Thread Neal Norwitz
Ever wonder what Guido has been doing at Google?  Now is your chance
to find out!

Guido has worked at Google for nearly a year.  He splits his time
between working on Python and working on Google projects.  He will be
giving a presentation and demo on Nov 30, 2006.  I won't spoil it, but
this talk will touch on some aspects of Google's development process
and what Guido has done to improve it.  He did such a good job,
engineers voted his project one of the top 10 accomplishments!

The talk will be at 7.00pm on Nov 30, 2006 at Google Headquarters in
Mountain View, CA in Building 43, room: Tunis.  The talk is targeted
towards anyone interested in software development. It's not Python
specific.  For updates, check http://code.google.com/
I believe the talk will be videotaped and put on Google video.

I hope to see lots of new faces!

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

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


Sydney Python Users Meetup

2006-11-22 Thread hex-dump
Tonight November 23 from 6:30-8:30 pm, there will be a social
gathering of Sydney Python Users Group and any individuals interested
in discussing Python, Web, Zope, Plone, Ruby, Perl etc over drinks.
Laptops, code review etc allowed.
We will meet on the ground floor next to the internal
entrance of P.J. O'Briens Pub
at the Grace Hotel,
corner of York and King Streets.

To help find us, look for me,  I am similar to the individual in this
photo,
http://osdc2006.cgpublisher.com/proposals/22/index_html
but now a little older and even less hair.

Regards

Mark

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

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


Re: Is python for me?

2006-11-22 Thread cyberco
One resource you should always keep at hand is this extremely useful
Quick Reference:

http://rgruet.free.fr/PQR24/PQR2.4.html

Study it carefully, there is a lot in there that can teach you about
how Python works. Fire up IPython as well and start hacking!

2B

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


Re: Quadratic Optimization Problem

2006-11-22 Thread Stefan Behnel
[EMAIL PROTECTED] wrote:
 I need to do a quadratic optimization problem in python where the
 constraints are quadratic and objective function is linear.
 
 What are the possible choices to do this.

Too bad these homework assignments get trickier every time, isn't it?

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


Re: re.match -- not greedy?

2006-11-22 Thread Ant

EXI-Andrews, Jack wrote:

 the '*' and '+' don't seem to be greedy.. they will consume less in
 order to match a string:

  import re;re.match('(a+)(ab)','aaab').groups()
 ('aa', 'ab')

 this is the sort of behaviour i'd expect from
'(a+?)(ab)'

 a+ should greedily consume a's at the expense of the string not matching

They are greedy - they consume as much as possible *without*
sacrificing the match.

You are thinking I think of possessive quantifiers, such as found in
Java, which *will* match as much as possible even if doing so causes
the match to fail. This would be written:

re.match('(a++)(ab)','aaab')

Python doesn't support these possessive quantifiers.

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


Re: Trying to understand Python objects

2006-11-22 Thread Fredrik Lundh
walterbyrd wrote:

 1) Can attributes can added just anywhere? I create an object called
 point, then I can add attributes any time, and at any place in the
 program?

in general, yes, but that should be done sparingly.

 2) Are classes typically created like this:
 
 class Point:
   pass
 
 Then attributes are added at some other time?

no, classes with attributes are typically created like this:

 class Point:
 def __init__(self, x, y):
 self.x = x
 self.y = y

 p = Point(1, 2)

i.e. attributes are created in the initialization function.

 3) What is with the __underscores__ ??

they're reserved for use by the interpreter, usually for calling special 
methods in you class:

http://effbot.org/pyref/reserved-identifier-classes
http://effbot.org/pyref/special-method-names

 4) Are parameters passed to an class definition?
 
 class Whatever(params):
pass

no, that's the syntax used for inheritance.  arguments passed to the 
class constructor are passed on to the initialization function (see the 
example above).

for more on this, see the tutorial.  Jay Parlar's gentle introduction 
from the community tutorial might be helpful:

 http://effbot.org/pytut/node11-baseline.htm

/F

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


Re: Parsing/Splitting Line

2006-11-22 Thread Fredrik Lundh
Noah Rawlins wrote:


 I'm a nut for regular expressions and obfuscation...
 
 import re
 def splitline(line, size=4):
  return re.findall(r'.{%d}' % size, line)
 
   splitline(helloiamsuperman)
 ['hell', 'oiam', 'supe', 'rman']

there are laws against such use of regular expressions in certain 
jurisdictions.

/F

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


file backup in windows

2006-11-22 Thread k.i.n.g.
Hi ALL,

I am a newbee programmer and started of with python recently. I am
trying write a script which backups outlook (.pst ) files everytime I
shutdown my system. I have writtern following code after some findings
on net. My .pst file path is as follows

 c:\documents and settings\060577\Local Settings\Application
Data\Microsoft\Outlook 
where 060577 represents username. I want my script to identigy the user
logged in and go to the resp outlook folder or should be able to read
outlook store directory path from registry and the copy the files to
the desired path.

---
how can i make the following code work, I have probelm with filepath
declaration.
---
import os, shutil
filepath = ' C:\\Documents and Settings\\060577\\Local
Settings\\Application Data\\Microsoft\\Outlook\\* '
backup = ' D:\\temp\\outlook '
os.system (xcopy /s %s %s % (filepath, backup))
-


Thank you,
Kk

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


Re: How to sort list

2006-11-22 Thread Fredrik Lundh
Klaus Alexander Seistrup wrote:

 Decorate-sort-undecorate?
 
 #v+
 
 array = []
 
 for addr in Emails:
   (user, domain) = addr.split('@')
   array.append((domain, user, addr))
 # end for
 
 array.sort()
 
 SortedEmails = [addr for (user, domain, addr) in array]
 
 #v-

note that DSU is built into Python these days:

 L.sort(key=transform)

so you could use e.g.

 Emails.sort(key=lambda s: s.partition(@)[::-1])

also see:

 http://preview.tinyurl.com/yc3qak
 http://effbot.org/zone/python-list.htm#sorting

/F

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


Python visual IDE

2006-11-22 Thread king kikapu

Hi to all,

i am not sure if this question really belongs here but anyway, here it
goes: I have seen a lot of IDEs for Python, a lot of good stuff but
actually none of them has what, for example, Visual Studio has: a
Visual Editor (with the  ability to place controls on forms etc etc),
or RAD

I know that there is Glade but does anybody knows of some product, or
an ongoing effort to this direction so i can have a look at ?

Coming from Windows and vs.net world, i think the only missing point
here is the integration of the Pyrthon with a RAD IDE...

Thanks a lot and i apologize if this isn't the correct place for this
question...


Kikapu

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


Re: Parsing/Splitting Line

2006-11-22 Thread Georg Brandl
Fredrik Lundh schrieb:
 Noah Rawlins wrote:
 
 
 I'm a nut for regular expressions and obfuscation...
 
 import re
 def splitline(line, size=4):
  return re.findall(r'.{%d}' % size, line)
 
   splitline(helloiamsuperman)
 ['hell', 'oiam', 'supe', 'rman']
 
 there are laws against such use of regular expressions in certain 
 jurisdictions.

... and in particularly bad cases, you will be punished by Perl
not less than 5 years ...

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


Pyparsing Question.

2006-11-22 Thread Ant
I have a home-grown Wiki that I created as an excercise, with it's own
wiki markup (actually just a clone of the Trac wiki markup). The wiki
text parser I wrote works nicely, but makes heavy use of regexes, tags
and stacks to parse the text. As such it is a bit of a mantainability
nightmare - adding new wiki constructs can be a bit painful.

So I thought I'd look into the pyparsing module, but can't find a
simple example of processing random text. For example, I want to parse
the following:

Some random text and '''some bold text''' and some more random text

into:

Some random text and strongsome bold text/strong and some more
random text

I have the following as a starting point:

from pyparsing import *

def parse(text):
italics = QuotedString(quoteChar='')

parser = Optional(italics)

parsed_text = parser.parseString(text)


print parse(Test this is '''bold''' but this is not.)

So if you could provide a bit of a starting point, I'd be grateful!

Cheers,

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


Re: file backup in windows

2006-11-22 Thread Fredrik Lundh
k.i.n.g. wrote:

 how can i make the following code work, I have probelm with filepath
 declaration.

http://effbot.org/pyfaq/tutor-i-need-help-im-getting-an-error-in-my-program-what-should-i-do

/F

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


gopherlib deprecated in 2.5

2006-11-22 Thread Szabolcs Nagy
I've just seen that gopherlib is deprecated in python 2.5
http://docs.python.org/lib/module-gopherlib.html

we still use this protocol (though there are only few working gopher
servers are left on the net)

My friend just wrote a standard compliant gopher server (pygopherd had
some problems oslt) and it's much better for hierarchycal content
sharing than the http (which is overrated and misused in this respect).

So i don't really understand why would one remove it from python. It's
a friendly, tiny, simple, standard protocol.

what is the opinion of the comp.lang.python crowd?

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


RE: file backup in windows

2006-11-22 Thread Tim Golden
|  c:\documents and settings\060577\Local Settings\Application
| Data\Microsoft\Outlook 
| where 060577 represents username. I want my script to 
| identigy the user
| logged in and go to the resp outlook folder or should be able to read
| outlook store directory path from registry and the copy the files to
| the desired path.
| 
| ---
| how can i make the following code work, I have probelm with filepath
| declaration.
| ---
| import os, shutil
| filepath = ' C:\\Documents and Settings\\060577\\Local
| Settings\\Application Data\\Microsoft\\Outlook\\* '
| backup = ' D:\\temp\\outlook '
| os.system (xcopy /s %s %s % (filepath, backup))
| -

I suggest you let the system work out most of the
filepath for you. Things like Application Data are
determined by the Windows Shell as they can change
according to Windows version / roaming profile settings
and so on. The following code snippet shows how to
get the Local Application Data folder. It assumes
you have installed the pywin32 extensions from 
http://pywin32.sf.net

code
import os, sys
from win32com.shell import shell, shellcon

local_app_data = shell.SHGetSpecialFolderPath (0,
shellcon.CSIDL_LOCAL_APPDATA)
outlook_path = os.path.join (local_app_data, Microsoft, Outlook)

print outlook_path

/code)

TJG


This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk

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


Re: file backup in windows

2006-11-22 Thread John Machin
k.i.n.g. wrote:
 Hi ALL,

 I am a newbee programmer and started of with python recently. I am
 trying write a script which backups outlook (.pst ) files everytime I
 shutdown my system. I have writtern following code after some findings
 on net. My .pst file path is as follows

  c:\documents and settings\060577\Local Settings\Application
 Data\Microsoft\Outlook 
 where 060577 represents username. I want my script to identigy the user
 logged in and go to the resp outlook folder or should be able to read
 outlook store directory path from registry and the copy the files to
 the desired path.

 ---
 how can i make the following code work, I have probelm with filepath
 declaration.
 ---
 import os, shutil
 filepath = ' C:\\Documents and Settings\\060577\\Local
 Settings\\Application Data\\Microsoft\\Outlook\\* '
 backup = ' D:\\temp\\outlook '

Aside: having a space at the beginning and/or end of the filename has
no good effect and may cause problems, so don't do it.

 os.system (xcopy /s %s %s % (filepath, backup))
 -

It's always a good idea *before* you write an os.system call on *any*
operating system to try a few sample commands at the command line. You
would find in this case that the problem exists there too -- it has
nothing to do with Python. The problem is that the first argument
*contains* spaces, but the Windows command processor splits the command
line on spaces, so it thinks the first argument is  'C:\\Documents'. On
both the command line and in your script, you will need to wrap quotes
around each argument that does/could contain spaces.

[untested]
os.system ('xcopy /s %s %s' % (filepath, backup))

Hint: you should find it easier using raw strings for Windows
filenames:
backup = r'D:\temp\outlook'

HTH,
John

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


Re: Is there a list comprehension for this?

2006-11-22 Thread Steven D'Aprano
On Tue, 21 Nov 2006 21:00:02 -0800, John Machin wrote:

 Steven D'Aprano wrote:
 
 [snip]
 
 def running_sum(dw):
 Return a list of the running sums of sequence dw
 rs = [0]*len(dw)
 for i in range(len(dw)):
 rs[i] = dw[i] + rs[i-1]
 
 Please explain to the newbies why there is no exception raised when
 rs[i-1] is executed for i == 0, and state whether you consider this is
 a Good Idea or a Filthy Trick or a Fortunate Accident.

Because rs[0-1] is just rs[-1], which fetches the LAST item of the list. I
cunningly initialised the list to all zeroes, so adding zero to the first
term doesn't change the result value.

It is a variation of the sentinel technique, where you add an extra value
to the beginning or end of a list so that you don't need to treat the
first or last item differently. In this specific case, I think it is a
combination of Good Idea and Fortunate Accident, but since the
meaning of list[-1] is both deliberate and well-documented, it is
certainly not a Filthy Trick. 


-- 
Steven.

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


Re: Is there a list comprehension for this?

2006-11-22 Thread John Machin

Steven D'Aprano wrote:
 On Tue, 21 Nov 2006 21:00:02 -0800, John Machin wrote:

  Steven D'Aprano wrote:
 
  [snip]
 
  def running_sum(dw):
  Return a list of the running sums of sequence dw
  rs = [0]*len(dw)
  for i in range(len(dw)):
  rs[i] = dw[i] + rs[i-1]
 
  Please explain to the newbies why there is no exception raised when
  rs[i-1] is executed for i == 0, and state whether you consider this is
  a Good Idea or a Filthy Trick or a Fortunate Accident.

 Because rs[0-1] is just rs[-1], which fetches the LAST item of the list. I
 cunningly initialised the list to all zeroes, so adding zero to the first
 term doesn't change the result value.

 It is a variation of the sentinel technique, where you add an extra value
 to the beginning or end of a list so that you don't need to treat the
 first or last item differently. In this specific case, I think it is a
 combination of Good Idea and Fortunate Accident, but since the
 meaning of list[-1] is both deliberate and well-documented, it is
 certainly not a Filthy Trick.


Fair enough. But it does make the concerned reader go back a couple of
lines to see why it doesn't run amok. Here's my attempt at a
no-reader-backtracking solution:

def running_sum_2(dw):
rs = dw[:1]
for i in xrange(1, len(dw)):
rs.append(dw[i] + rs[-1])
return rs

Comments invited.

Cheers,
John

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


Re: Is there a list comprehension for this?

2006-11-22 Thread Steven D'Aprano
On Wed, 22 Nov 2006 02:28:04 -0800, John Machin wrote:

 
 Steven D'Aprano wrote:
 On Tue, 21 Nov 2006 21:00:02 -0800, John Machin wrote:

  Steven D'Aprano wrote:
 
  [snip]
 
  def running_sum(dw):
  Return a list of the running sums of sequence dw
  rs = [0]*len(dw)
  for i in range(len(dw)):
  rs[i] = dw[i] + rs[i-1]
 
  Please explain to the newbies why there is no exception raised when
  rs[i-1] is executed for i == 0, and state whether you consider this is
  a Good Idea or a Filthy Trick or a Fortunate Accident.

 Because rs[0-1] is just rs[-1], which fetches the LAST item of the list. I
 cunningly initialised the list to all zeroes, so adding zero to the first
 term doesn't change the result value.

 It is a variation of the sentinel technique, where you add an extra value
 to the beginning or end of a list so that you don't need to treat the
 first or last item differently. In this specific case, I think it is a
 combination of Good Idea and Fortunate Accident, but since the
 meaning of list[-1] is both deliberate and well-documented, it is
 certainly not a Filthy Trick.

 
 Fair enough. But it does make the concerned reader go back a couple of
 lines to see why it doesn't run amok.

Nobody said that every piece of code should be instantly comprehensible
just at a glance. Sometimes you do actually have to think about code to
understand it, even in Python :)

 Here's my attempt at a
 no-reader-backtracking solution:
 
 def running_sum_2(dw):
 rs = dw[:1]
 for i in xrange(1, len(dw)):
 rs.append(dw[i] + rs[-1])
 return rs
 
 Comments invited.

Even with xrange() instead of range, it is a little slower than my version
for largish input lists because you are repeatedly appending to a list.

 timeit.Timer(running_sum(L), 
... from __main__ import running_sum; L = range(500)).timeit(1000)
0.56354999542236328
 timeit.Timer(running_sum_2(L), 
... from __main__ import running_sum_2; L = range(500)).timeit(1000)
0.68534302711486816

Although the speed difference disappears (or even reverses) for small
enough lists. Either way, it isn't really a major speed difference --
Python's resizing of lists is very smart.

But why build a list of all the running sums when you probably only need
them one at a time? Here's a generator version that can take any iterable,
not just a sequence:

def running_sum_3(iterable):
sum_ = 0
for x in iterable:
sum_ += x
yield sum_

And it is considerably faster than either of the list-only versions:

 timeit.Timer(list(running_sum_3(L)), 
... from __main__ import running_sum_3; L = range(500)).timeit(1000)
0.33915305137634277



-- 
Steve.

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


text file parsing (awk - python)

2006-11-22 Thread Daniel Nogradi
Hi list,

I have an awk program that parses a text file which I would like to
rewrite in python. The text file has multi-line records separated by
empty lines and each single-line field has two subfields:

node 10
x -1
y 1

node 11
x -2
y 1

node 12
x -3
y 1

and this I would like to parse into a list of dictionaries like so:

mydict[0] = { 'node':10, 'x':-1, 'y':1 }
mydict[1] = { 'node':11, 'x':-2, 'y':1 }
mydict[2] = { 'node':12, 'x':-3', 'y':1 }

But the names of the fields (node, x, y) keeps changing from file to
file, even their number is not fixed, sometimes it is (node, x, y, z).

What would be the simples way to do this?
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: file backup in windows

2006-11-22 Thread Tim Golden
[... snip ...]

| ---
| how can i make the following code work, I have probelm with filepath
| declaration.
| ---
| import os, shutil
| filepath = ' C:\\Documents and Settings\\060577\\Local
| Settings\\Application Data\\Microsoft\\Outlook\\* '
| backup = ' D:\\temp\\outlook '
| os.system (xcopy /s %s %s % (filepath, backup))
| -

... also, for various ways of copying files around
under Windows in Python, see:

http://tgolden.sc.sabren.com/python/win32_how_do_i/copy-a-file.html

TJG


This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk

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


Re: Trying to understand Python objects

2006-11-22 Thread Bruno Desthuilliers
walterbyrd wrote:
 Reading Think Like a Computer Scientist I am not sure I understand
 the way it describes the way objects work with Python.
 
 1) Can attributes can added just anywhere? I create an object called
 point, then I can add attributes any time, and at any place in the
 program?

Apart from a few special cases (mainly builtin types or new-style
classes using slots IIRC), yes.

Now wether this is a good idea is another question. As far as I'm
concerned, I do use this feature, but only for special cases, and almost
only in metaclasses or other special 2-stages init.

 2) Are classes typically created like this:
 
 class Point:
   pass
 
 Then attributes are added at some other time?

Nope. The canonical idiom is to use the initializer:

class Point(object):
  def __init__(self, attr1, attr2):
self.attr1 = attr1
self.attr2 = attr2
self.attr3 = 42


 3) What is with the __underscores__ ??

magic methods or attributes. The initializer ('__init__') is one of
them, which is called at instance creation time. Most of the magic
__methods__ are used to implement or override operators. You'll find the
relevant documentation around here:
http://docs.python.org/ref/specialnames.html


 4) Are parameters passed to an class definition?
 
 class Whatever(params):
pass

A class statement is not a function definition statement. Here, you ask
for a class Whatever inheriting from class params. Cf the above point
about the __init__ method for passing args at instanciation.

 I sort-of understand the way objects work with PHP. With PHP, the
 classes are defined in one place - sort of like a function. 

FWIW, Python's classes actually are callable objects (just like
functions are callable objects). To instanciate a class, you just call
the class, no 'new' keyword needed.

 To me, that
 makes more sense.

?php

class Obj {
  // pass
}

$obj = new Obj();
$obj-name = toto;
echo $obj-name;

?

Just like Python (and Javascript FWIW), PHP objects are mostly hashtable
in disguise. But - having some experience with both PHP and Python (and
some other OOPLs), I can tell you that Python's object model is far
superior to PHP's one.

The only gotcha here wrt/ most other object models is that attributes
defined in the class statement body (ie, outside methods) are attached
to the class object itself (and then shared by all instances of the
class), not to instances themselves. Instance attributes initialisation
is usually done in the __init__(self, ...) method.

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


Re: file backup in windows

2006-11-22 Thread k.i.n.g.
Thank You all for reply's so far

 code
 import os, sys
 from win32com.shell import shell, shellcon

 local_app_data = shell.SHGetSpecialFolderPath (0,
 shellcon.CSIDL_LOCAL_APPDATA)
 outlook_path = os.path.join (local_app_data, Microsoft, Outlook)

 print outlook_path

 /code)


The above code was fine while printing, when I am trying to use this
(outlook_path) to use as source path it is giving file permission error

can you please clarify this

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


File upload from client application (non-form based upload)

2006-11-22 Thread stuart
Hi

I'm trying to write a Python script to receive and save a file on a web
server that has been POST'ed from a client application.

In essence, this is similar to handling a file upload from an HTML
form. However, I can't use:

form = cgi.FieldStorage()
fileitem = form['file']

since the file is not coming from a form, and hence I don't have a form
field called 'file'.

I have working server-side code in PHP to do this (error handling
removed):

$file = ./test.jpg;
$file_handle = fopen($file,w);
$mydata = file_get_contents(php://input);
fwrite($file_handle, $mydata);
fclose($file_handle);

What I need is a Python equivalent of the the above PHP script. The
content-type in the POST header is currently set to
application/octet-stream which works fine with the php code above.

Any help, advise, pointers, sample code would be hugely welcome,

Many thanks in advance,

Stuart

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


Re: Python visual IDE

2006-11-22 Thread Bruno Desthuilliers
king kikapu wrote:
 Hi to all,
 
 i am not sure if this question really belongs here but anyway, here it
 goes: I have seen a lot of IDEs for Python, a lot of good stuff but
 actually none of them has what, for example, Visual Studio has: a
 Visual Editor (with the  ability to place controls on forms etc etc),
 or RAD
 
 I know that there is Glade but does anybody knows of some product, or
 an ongoing effort to this direction so i can have a look at ?
 
 Coming from Windows and vs.net world, i think the only missing point
 here is the integration of the Pyrthon with a RAD IDE...
 
 Thanks a lot and i apologize if this isn't the correct place for this
 question...

If you use wxWidgets, you may want to have a look at projects like
Boa-constructor or PythonCard. If you use QT/KDE, Eric3 offers good
integration with QT Designer IIRC.

Now as you can see, the problem with RAD tools is that they are specific
to a given GUI toolkit. Python runs on a lot of platforms, and some of
these platforms (ie Linux) are not tied to a specific GUI toolkit. So
integrating the RAD tool in the IDE means you can't use this IDE with
other GUI toolkits.

Also, there's a tradition in the *n*x world about preferring small,
highly specialized tools over huge monolithic do-it-all applications. As
an example, I daily use half a dozen languages, and I wouldn't like to
have to learn half a dozen IDEs. I'm much more productive with a good
code editor, the command line, and a few external tools when needed.

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


Re: file backup in windows

2006-11-22 Thread Mikael Olofsson
k.i.n.g. wrote:
 [snip code]
 The above code was fine while printing, when I am trying to use this
 (outlook_path) to use as source path it is giving file permission error
 can you please clarify this

Did you follow the link that Fredrik Lundh gave you?

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


Data not flushed at the moment

2006-11-22 Thread MindClass
I've to modifying a file, then I use a method imported that access to
that file and has to read the new data, but they are not read ( as if
the data were not flushed at the moment even using .close()
explicitly).

---
...
...
# If it is not installed, it looking for the line and insert it.
if not is_application:
print Activating I18n application ...
writefile_line = 0
a = fileinput.input(settings, inplace=1)
#for line in fileinput.input(settings, inplace=1):
for line in a:
writefile_line += 1
if writefile_line == readfile_line:
print '%s', % application_name
print line[:-1]
else:
print line[:-1]
a.close()

update()

def update():
# Update the data base.
try:
from django.core.management import syncdb
except ImportError, err:
print Can't import from Django: %s % err
sys.exit(1)

syncdb()
---

Note that it only fails if the update() method is run inner of 'if not
is_application', and I don't understand because it is happening so. But
the problem is that I need run it when that condition is performed. Any
idea?

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


Re: file backup in windows

2006-11-22 Thread k.i.n.g.
Hi ,

I am sorry I am providing the code i used as it is. Being newbee to
programming I have tinkerd with various options i found on the net.

start of the code

import os, sys ,shutil, win32file
import time
from win32com.shell import shell, shellcon

local_app_data = shell.SHGetSpecialFolderPath
(0,shellcon.CSIDL_LOCAL_APPDATA)
outlook_path = os.path.join (local_app_data, Microsoft, Outlook)

# print outlook_path
#c:\documents and settings\060577\Local Settings\Application
Data\Microsoft\Outlook

source = outlook_path
#source = outlook_path +'\\*'
print source

backup = 'D:\MailBackup'
backup1=r'D:\temp\outlook1'
backup2 =  'D:\MailBackup'
today = backup1 + '_'  + time.strftime ( '%Y-%m-%d')
now = time.strftime('%H.%M.%S')
target = today +'_'+ now
if not os.path.exists(target):
os.mkdir(target) # make directory
print 'Successfully created directory', target

#shutil.copy(source, backup)
#os.system( copy  (source,backup))
#os.system (xcopy %s %s % (source, backup1))
#os.system (xcopy /s %s %s % (outlook_path, backup1))
#os.system (xcopy /s %s %s % (backup2, backup1))
#os.system( 'xcopy /i D:\\MailBackup\\* d:\\temp\\outlook')
#win32file.CopyFile (outlook_path, backup, 0)
#os.system (xcopy /s %s %s % (backup,target))

os.system (xcopy /s %s %s % (source,target)) # this doesnt give me
any errors but the #work is not done

win32file.CopyFile (source, target, 1)
---
end
--


-
output
--
C:\Documents and Settings\060577\Local Settings\Application
Data\Microsoft\Outlook\*
Successfully created directory D:\temp\outlook1_2006-11-22_17.41.54

Traceback (most recent call last):
  File C:\Documents and
Settings\060577\kk\source_code\py\Mypy\pywin32test.py, line 34, in
module
win32file.CopyFile (source, target, 1)
error: (123, 'CopyFile', 'The filename, directory name, or volume label
syntax is incorrect.')

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


RE: file backup in windows

2006-11-22 Thread Tim Golden
|  code
|  import os, sys
|  from win32com.shell import shell, shellcon
| 
|  local_app_data = shell.SHGetSpecialFolderPath (0,
|  shellcon.CSIDL_LOCAL_APPDATA)
|  outlook_path = os.path.join (local_app_data, Microsoft, Outlook)
| 
|  print outlook_path
| 
|  /code)
| 
| 
| The above code was fine while printing, when I am trying to use this
| (outlook_path) to use as source path it is giving file 
| permission error

As others have suggested, please cut-and-paste code 
and traceback from an interpreter session. Don't make 
people guess what you've done. My code above doesn't
do anything with the path bar printing it, so you've
obviously attempted some kind of file operation with
it. What have you done? The outlook_path itself is a
*folder*, not a file. I didn't write out all of your
code; you need to add something to copy the file or
files you need. Have you done that?

Please provide code and traceback if you still have
difficulties.

TJG


This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk

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


PyQt app in seperate thread

2006-11-22 Thread anders
I am writing a plugin for a piece of software in python, and I want to
start up a PyQt GUI in the plugin, without stalling the main thread
while the gui is running (later i will want to pass messages between
the main thread and the gui thread).

I'm new to pyqt, so I'm probably doing something very silly, but for
the moment I'm just trying to get the first pyqt tutorial example
running in a seperate thread:

8

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore

class MyThread( QtCore.QThread ):
def __init__( self ):
QtCore.QThread.__init__( self )

def run( self ):
app = QtGui.QApplication( sys.argv )
hello = QtGui.QPushButton( 'Hello world!' )
hello.resize( 500, 500 )
hello.show()
app.exec_()
QtCore.QThread.terminate(  )



mt = MyThread()
mt.start()
print 'Main thread continuing...'
mt.wait()
print 'GUI thread finished.'

8

The app starts up (with a warning WARNING: QApplication was not created
in the main() thread. ). I get a window, but no button, and clicking on
the close button does nothing and I have to force the program to quit.

There's got to be a way to get this working, right? Can anyone help me
along the right path?

Cheers,

Anders

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


Capture file descriptors while running an external program

2006-11-22 Thread jfigueiras
Hi all!

I have a problem with the module subprocess!
The problem is that the external software that I am running under
subprocess.Popen opens stdin, stdout, stderr, and other file descriptors to
write and read in the hard drive.
I know how to capture stdin, stdout and stderr, what I cannot do is to capture
the other file-descriptors. Is there any way to wrap those non-standard file
descriptors and make them write and read from a specific object that I define?
I know that I can use tmp files to do that, but i would like something running
without tmp files.

Regards...
Joao

___

O SAPO já está livre de vírus com a Panda Software, fique você também!
Clique em: http://antivirus.sapo.pt

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


RE: file backup in windows

2006-11-22 Thread Tim Golden

| I am sorry I am providing the code i used as it is. Being newbee to
| programming I have tinkerd with various options i found on the net.

Thanks. That makes it a lot easier

[... snip ...]
| source = outlook_path
| #source = outlook_path +'\\*'
| print source

[...]

| win32file.CopyFile (source, target, 1)

| -
| output
| --
| C:\Documents and Settings\060577\Local Settings\Application
| Data\Microsoft\Outlook\*
| Successfully created directory D:\temp\outlook1_2006-11-22_17.41.54
| 
| Traceback (most recent call last):
|   File C:\Documents and
| Settings\060577\kk\source_code\py\Mypy\pywin32test.py, line 34, in
| module
| win32file.CopyFile (source, target, 1)
| error: (123, 'CopyFile', 'The filename, directory name, or 
| volume label
| syntax is incorrect.')


Fairly certain that the win32file.CopyFile API call doesn't
handle wildcards. You have to do that yourself. (I could be wrong).

Quick check:
dump
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on
win32
Type help, copyright, credits or license for more information.
 import os, sys
 import win32file

 os.chdir (c:/temp)
 os.mkdir (backup)
 win32file.CopyFile (*.txt, backup, 1)
Traceback (most recent call last):
  File stdin, line 1, in ?
pywintypes.error: (123, 'CopyFile', 'The filename, directory name, or
volume label syntax is incorrect.')

 win32file.CopyFile (temp.txt, backup, 1)
Traceback (most recent call last):
  File stdin, line 1, in ?
pywintypes.error: (2, 'CopyFile', 'The system cannot find the file
specified.')

 win32file.CopyFile (exists.txt, backup, 1)
Traceback (most recent call last):
  File stdin, line 1, in ?
pywintypes.error: (5, 'CopyFile', 'Access is denied.')
 win32file.CopyFile (exists.txt, backup/exists.txt, 1)


/dump

Sure enough:

1) Wildcards give the error you had
2) Non-existent file gives a suitable messag
3) Existing filename to folder name only gives Access denied
4) Existing filename to folder name + filename copies ok.

Now, that only took about a minute to run through on the interpreter
and check, so hopefully that'll help you out next time: create a
small test case (without all the long path names). Find out what
CopyFile can or can't do and act accordingly.

If you haven't already, look at the glob module:

http://docs.python.org/lib/module-glob.html

TJG


This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk

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


Re: Python visual IDE

2006-11-22 Thread king kikapu

hmmm,,,ok, i see your point.
As i understand it, as a newcomer, it is a little cumbersome to right
the code in one ide,
glue the UI from another toll and all that stuff.

I know it works but if someone is coming from VS.Net, it seems a little
strange, at first.

I also saw that the wxWidgets is the more feel natural in all
platforms so i
believe that if an IDE is able to offer RAD capabilities and build upon
this
widget, it will be an awesome tool for Python programmers,
matches this way VS and other win RAD IDEs...

Thanks a lot for your post, i'll have a look at the programs you
mention!

King Kikapu

On Nov 22, 2:09 pm, Bruno Desthuilliers [EMAIL PROTECTED] wrote:
 king kikapu wrote:
  Hi to all,

  i am not sure if this question really belongs here but anyway, here it
  goes: I have seen a lot of IDEs for Python, a lot of good stuff but
  actually none of them has what, for example, Visual Studio has: a
  Visual Editor (with the  ability to place controls on forms etc etc),
  or RAD

  I know that there is Glade but does anybody knows of some product, or
  an ongoing effort to this direction so i can have a look at ?

  Coming from Windows and vs.net world, i think the only missing point
  here is the integration of the Pyrthon with a RAD IDE...

  Thanks a lot and i apologize if this isn't the correct place for this
  question...If you use wxWidgets, you may want to have a look at projects 
  like
 Boa-constructor or PythonCard. If you use QT/KDE, Eric3 offers good
 integration with QT Designer IIRC.

 Now as you can see, the problem with RAD tools is that they are specific
 to a given GUI toolkit. Python runs on a lot of platforms, and some of
 these platforms (ie Linux) are not tied to a specific GUI toolkit. So
 integrating the RAD tool in the IDE means you can't use this IDE with
 other GUI toolkits.

 Also, there's a tradition in the *n*x world about preferring small,
 highly specialized tools over huge monolithic do-it-all applications. As
 an example, I daily use half a dozen languages, and I wouldn't like to
 have to learn half a dozen IDEs. I'm much more productive with a good
 code editor, the command line, and a few external tools when needed.

 My 2 cents...
 --
 bruno desthuilliers
 python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
 p in '[EMAIL PROTECTED]'.split('@')])- Hide quoted text -- Show quoted text -

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


Re: text file parsing (awk - python)

2006-11-22 Thread Peter Otten
Daniel Nogradi wrote:

 I have an awk program that parses a text file which I would like to
 rewrite in python. The text file has multi-line records separated by
 empty lines and each single-line field has two subfields:
 
 node 10
 x -1
 y 1
 
 node 11
 x -2
 y 1
 
 node 12
 x -3
 y 1
 
 and this I would like to parse into a list of dictionaries like so:
 
 mydict[0] = { 'node':10, 'x':-1, 'y':1 }
 mydict[1] = { 'node':11, 'x':-2, 'y':1 }
 mydict[2] = { 'node':12, 'x':-3', 'y':1 }
 
 But the names of the fields (node, x, y) keeps changing from file to
 file, even their number is not fixed, sometimes it is (node, x, y, z).
 
 What would be the simples way to do this?

data = node 10
x -1
y 1

node 11
x -2
y 1

node 12
x -3
y 1


def open(filename):
from cStringIO import StringIO
return StringIO(data)

converters = dict(
x=int,
y=int
)

def name_value(line):
name, value = line.split(None, 1)
return name, converters.get(name, str.rstrip)(value)

if __name__ == __main__:
from itertools import groupby
records = []

for empty, record in groupby(open(records.txt), key=str.isspace):
if not empty:
records.append(dict(name_value(line) for line in record))

import pprint
pprint.pprint(records)


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


XML Validation in Python using XSV

2006-11-22 Thread bmichel
I'd like to use XSV for validating an XML file in Python.
I am working on Linux Debian platform.
I'm not sure how to install XSV and how to configure it. My goal is to
be able to import the XSV library in Python and be able to use it's
functions.

XSV v2.10 for Debian available here:
ftp://ftp.cogsci.ed.ac.uk/pub/XSV/XSV_2.10-1_all.deb

How do i do that?

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


Getting exceptions back from calls to embedded python

2006-11-22 Thread john . pye
Hi all,

I have an application that is using embedded python to offer some
scripting ability. An API is exposed via SWIG, and I am accessing that
API from my embedded python interpreter.

Scripts are present as separate files, and I'm invoking them at present
using the following:

iserr = PyRun_AnyFileEx(f,name,1);

if(iserr){
/* tell the user */
return 1;
}else{
/* all good */
return 0;
}

My question is, if I want to be able to get information about
exceptions that have occurred here (perhaps a syntax error, or an
import error, or perhaps a runtime error), what would be the easiest
way to do this now?

I understand that I'm currently using the 'very high level interface'
for python embedding. What's the easiest next step down that will allow
me to catch exceptions and report them?

Would appreciate any thoughts.

Cheers
JP

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


Re: PyQt app in seperate thread

2006-11-22 Thread Phil Thompson
On Wednesday 22 November 2006 12:37 pm, anders wrote:
 I am writing a plugin for a piece of software in python, and I want to
 start up a PyQt GUI in the plugin, without stalling the main thread
 while the gui is running (later i will want to pass messages between
 the main thread and the gui thread).

 I'm new to pyqt, so I'm probably doing something very silly, but for
 the moment I'm just trying to get the first pyqt tutorial example
 running in a seperate thread:

 8

 import sys
 from PyQt4 import QtGui
 from PyQt4 import QtCore

 class MyThread( QtCore.QThread ):
   def __init__( self ):
   QtCore.QThread.__init__( self )

   def run( self ):
   app = QtGui.QApplication( sys.argv )
   hello = QtGui.QPushButton( 'Hello world!' )
   hello.resize( 500, 500 )
   hello.show()
   app.exec_()
   QtCore.QThread.terminate(  )



 mt = MyThread()
 mt.start()
 print 'Main thread continuing...'
 mt.wait()
 print 'GUI thread finished.'

 8

 The app starts up (with a warning WARNING: QApplication was not created
 in the main() thread. ). I get a window, but no button, and clicking on
 the close button does nothing and I have to force the program to quit.

 There's got to be a way to get this working, right? Can anyone help me
 along the right path?

Read http://doc.trolltech.com/4.2/threads.html

In particular the bit that says that exec_() must be called from the main 
thread and not from a QThread.

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


Re: How to sort list

2006-11-22 Thread Klaus Alexander Seistrup
Fredrik Lundh wrote:

 note that DSU is built into Python these days:

  L.sort(key=transform)

Sweet, thanks for the hint.

Cheers,

-- 
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: XML Validation in Python using XSV

2006-11-22 Thread Stefan Behnel
[EMAIL PROTECTED] wrote:
 I'd like to use XSV for validating an XML file in Python.
 I am working on Linux Debian platform.
 I'm not sure how to install XSV and how to configure it. My goal is to
 be able to import the XSV library in Python and be able to use it's
 functions.

You can use dpkg to install the .deb. Read man dpkg.

BTW: any reason you need to use XSV? There are some other libraries out there
that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They are
much more powerful than XSV.

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


Re: Pyparsing Question.

2006-11-22 Thread Stefan Behnel
Ant wrote:
 So I thought I'd look into the pyparsing module, but can't find a
 simple example of processing random text.

Have you looked at the examples on the pyparsing web page?

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


Re: XML Validation in Python using XSV

2006-11-22 Thread bmichel
No particular reason for XSV
I just want to validate XML files against an XML schema through Python.
If you can suggest any other package for debian, I'll be glad to try
it.

Michel

Stefan Behnel wrote:
 [EMAIL PROTECTED] wrote:
  I'd like to use XSV for validating an XML file in Python.
  I am working on Linux Debian platform.
  I'm not sure how to install XSV and how to configure it. My goal is to
  be able to import the XSV library in Python and be able to use it's
  functions.

 You can use dpkg to install the .deb. Read man dpkg.

 BTW: any reason you need to use XSV? There are some other libraries out there
 that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They are
 much more powerful than XSV.
 
 Stefan

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


Method argument names

2006-11-22 Thread [EMAIL PROTECTED]
Hi

Having a method:

def method(self,x,y):

is it possible to discover, from outside the method, that the methods
arguments are ['self', 'x', 'y']?

Thanks.

/Martin

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


Re: Quadratic Optimization Problem

2006-11-22 Thread Beliavsky
Stefan Behnel wrote:
 [EMAIL PROTECTED] wrote:
  I need to do a quadratic optimization problem in python where the
  constraints are quadratic and objective function is linear.
 
  What are the possible choices to do this.

 Too bad these homework assignments get trickier every time, isn't it?

I think this sarcasm is unjustified. It is not obvious to me that this
is a homework assignment.

The problem where constraints are linear and the objective function is
linear (quadratic) is known as linear (quadratic) programming, and
there are specialized codes for these problems. I don't know of
software in any language for the particular problem of a linear
objective function with quadratic constraints, so I would use a general
algorithm for nonlinearly constrained optimization. Maybe CVXOPT
http://www.ee.ucla.edu/~vandenbe/cvxopt/ will work for the OP -- I have
not tried it.

The site http://www.solver.com/probconic.htm calls the problem conic
optimization.

A good newsgroup to ask about optimization algorithms is
sci.math.num-analysis.

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


Re: Method argument names

2006-11-22 Thread Bruno Desthuilliers
[EMAIL PROTECTED] wrote:
 Hi
 
 Having a method:
 
 def method(self,x,y):
 
 is it possible to discover, from outside the method, that the methods
 arguments are ['self', 'x', 'y']?

import inspect
help(inspect.getargspec)

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


Re: PyQt app in seperate thread

2006-11-22 Thread anders

Phil Thompson wrote:
 On Wednesday 22 November 2006 12:37 pm, anders wrote:
  I am writing a plugin for a piece of software in python, and I want to
  start up a PyQt GUI in the plugin, without stalling the main thread
  while the gui is running (later i will want to pass messages between
  the main thread and the gui thread).
 
  I'm new to pyqt, so I'm probably doing something very silly, but for
  the moment I'm just trying to get the first pyqt tutorial example
  running in a seperate thread:
 
  8
 
  import sys
  from PyQt4 import QtGui
  from PyQt4 import QtCore
 
  class MyThread( QtCore.QThread ):
  def __init__( self ):
  QtCore.QThread.__init__( self )
 
  def run( self ):
  app = QtGui.QApplication( sys.argv )
  hello = QtGui.QPushButton( 'Hello world!' )
  hello.resize( 500, 500 )
  hello.show()
  app.exec_()
  QtCore.QThread.terminate(  )
 
 
 
  mt = MyThread()
  mt.start()
  print 'Main thread continuing...'
  mt.wait()
  print 'GUI thread finished.'
 
  8
 
  The app starts up (with a warning WARNING: QApplication was not created
  in the main() thread. ). I get a window, but no button, and clicking on
  the close button does nothing and I have to force the program to quit.
 
  There's got to be a way to get this working, right? Can anyone help me
  along the right path?

 Read http://doc.trolltech.com/4.2/threads.html

 In particular the bit that says that exec_() must be called from the main
 thread and not from a QThread.

 Phil


OK so that's all good... so how do I go about doing what I want then?
Can I set up a window in the second thread and start its event loop
without running the event loop in the core app?

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


Re: text file parsing (awk - python)

2006-11-22 Thread Daniel Nogradi
  I have an awk program that parses a text file which I would like to
  rewrite in python. The text file has multi-line records separated by
  empty lines and each single-line field has two subfields:
 
  node 10
  x -1
  y 1
 
  node 11
  x -2
  y 1
 
  node 12
  x -3
  y 1
 
  and this I would like to parse into a list of dictionaries like so:
 
  mydict[0] = { 'node':10, 'x':-1, 'y':1 }
  mydict[1] = { 'node':11, 'x':-2, 'y':1 }
  mydict[2] = { 'node':12, 'x':-3', 'y':1 }
 
  But the names of the fields (node, x, y) keeps changing from file to
  file, even their number is not fixed, sometimes it is (node, x, y, z).
 
  What would be the simples way to do this?

 data = node 10
 x -1
 y 1

 node 11
 x -2
 y 1

 node 12
 x -3
 y 1
 

 def open(filename):
 from cStringIO import StringIO
 return StringIO(data)

 converters = dict(
 x=int,
 y=int
 )

 def name_value(line):
 name, value = line.split(None, 1)
 return name, converters.get(name, str.rstrip)(value)

 if __name__ == __main__:
 from itertools import groupby
 records = []

 for empty, record in groupby(open(records.txt), key=str.isspace):
 if not empty:
 records.append(dict(name_value(line) for line in record))

 import pprint
 pprint.pprint(records)


Thanks very much, that's exactly what I had in mind.

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


What's going on here?

2006-11-22 Thread Dale Strickland-Clark
Python 2.4.2 (#1, Oct 13 2006, 17:11:24)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type help, copyright, credits or license for more information.
 a = object()
 a
object object at 0xb7bbd438
 a.spam = 1
Traceback (most recent call last):
  File stdin, line 1, in ?
AttributeError: 'object' object has no attribute 'spam'
 class b(object):
...pass
...
 a = b()
 a
__main__.b object at 0xb7b4dcac
 a.spam = 1


What is subclassing adding to the class here? Why can't I assign to
attributes of an instance of object?
-- 
Dale Strickland-Clark
Riverhall Systems - www.riverhall.co.uk

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


Re: PyQt app in seperate thread

2006-11-22 Thread Phil Thompson
On Wednesday 22 November 2006 2:06 pm, anders wrote:
 Phil Thompson wrote:
  On Wednesday 22 November 2006 12:37 pm, anders wrote:
   I am writing a plugin for a piece of software in python, and I want to
   start up a PyQt GUI in the plugin, without stalling the main thread
   while the gui is running (later i will want to pass messages between
   the main thread and the gui thread).
  
   I'm new to pyqt, so I'm probably doing something very silly, but for
   the moment I'm just trying to get the first pyqt tutorial example
   running in a seperate thread:
  
   8
  
   import sys
   from PyQt4 import QtGui
   from PyQt4 import QtCore
  
   class MyThread( QtCore.QThread ):
 def __init__( self ):
 QtCore.QThread.__init__( self )
  
 def run( self ):
 app = QtGui.QApplication( sys.argv )
 hello = QtGui.QPushButton( 'Hello world!' )
 hello.resize( 500, 500 )
 hello.show()
 app.exec_()
 QtCore.QThread.terminate(  )
  
  
  
   mt = MyThread()
   mt.start()
   print 'Main thread continuing...'
   mt.wait()
   print 'GUI thread finished.'
  
   8
  
   The app starts up (with a warning WARNING: QApplication was not created
   in the main() thread. ). I get a window, but no button, and clicking on
   the close button does nothing and I have to force the program to quit.
  
   There's got to be a way to get this working, right? Can anyone help me
   along the right path?
 
  Read http://doc.trolltech.com/4.2/threads.html
 
  In particular the bit that says that exec_() must be called from the main
  thread and not from a QThread.
 
  Phil

 OK so that's all good... so how do I go about doing what I want then?
 Can I set up a window in the second thread and start its event loop
 without running the event loop in the core app?

No. Read the second sentence of the paragraph I referred to. Also read the 
section QObject Reentrancy.

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


Re: Python visual IDE

2006-11-22 Thread Steve
I haven't used it but Komodo (Professional version) says it has:

ActiveState GUI Builder (Komodo Professional only)

Enhance your applications with GUI dialogs: Simple, Tk-based dialog
builder with seamless round-trip integration, for Perl, Python, Ruby,
and Tcl.

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


Re: XML Validation in Python using XSV

2006-11-22 Thread Stefan Behnel
 [EMAIL PROTECTED] wrote:
 Stefan Behnel wrote:
 BTW: any reason you need to use XSV? There are some other libraries out there
 that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They are
 much more powerful than XSV.

 No particular reason for XSV
 I just want to validate XML files against an XML schema through Python.
 If you can suggest any other package for debian, I'll be glad to try
 it.

Well, as I said:

http://packages.debian.org/unstable/python/python-lxml
http://codespeak.net/lxml/

Just try apg-get install python-lxml.

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


Re: Trying to understand Python objects

2006-11-22 Thread walterbyrd
Thanks everybody. I will sort all of this out, but right now my head is
spinning.

Is there some book, or other reference, that explains of this? I was
thinking about Python for Dummies. The Think like a Computer
Scientist book, and Dive into Python book don't seem to explain
Python's object model clearly enough for me.

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


Re: Python visual IDE

2006-11-22 Thread king kikapu

I have already downloaded and seen the trial of Komodo Professional.
Indeed it has a simple Gui Builder but one can only use TKinter on it.
No wxWidgets support and far from truly RAD, but it is the only
integrated
GUI builder in these IDEs...


On Nov 22, 4:31 pm, Steve [EMAIL PROTECTED] wrote:
 I haven't used it but Komodo (Professional version) says it has:

 ActiveState GUI Builder (Komodo Professional only)

 Enhance your applications with GUI dialogs: Simple, Tk-based dialog
 builder with seamless round-trip integration, for Perl, Python, Ruby,
 and Tcl.

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


Re: PyQt app in seperate thread

2006-11-22 Thread anders

Phil Thompson wrote:
 On Wednesday 22 November 2006 2:06 pm, anders wrote:
  Phil Thompson wrote:
   On Wednesday 22 November 2006 12:37 pm, anders wrote:
I am writing a plugin for a piece of software in python, and I want to
start up a PyQt GUI in the plugin, without stalling the main thread
while the gui is running (later i will want to pass messages between
the main thread and the gui thread).
   
I'm new to pyqt, so I'm probably doing something very silly, but for
the moment I'm just trying to get the first pyqt tutorial example
running in a seperate thread:
   
8
   
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
   
class MyThread( QtCore.QThread ):
def __init__( self ):
QtCore.QThread.__init__( self )
   
def run( self ):
app = QtGui.QApplication( sys.argv )
hello = QtGui.QPushButton( 'Hello world!' )
hello.resize( 500, 500 )
hello.show()
app.exec_()
QtCore.QThread.terminate(  )
   
   
   
mt = MyThread()
mt.start()
print 'Main thread continuing...'
mt.wait()
print 'GUI thread finished.'
   
8
   
The app starts up (with a warning WARNING: QApplication was not created
in the main() thread. ). I get a window, but no button, and clicking on
the close button does nothing and I have to force the program to quit.
   
There's got to be a way to get this working, right? Can anyone help me
along the right path?
  
   Read http://doc.trolltech.com/4.2/threads.html
  
   In particular the bit that says that exec_() must be called from the main
   thread and not from a QThread.
  
   Phil
 
  OK so that's all good... so how do I go about doing what I want then?
  Can I set up a window in the second thread and start its event loop
  without running the event loop in the core app?

 No. Read the second sentence of the paragraph I referred to. Also read the
 section QObject Reentrancy.

 Phil

OK I see that now. Thanks for pointing that out. So basically, I can't
do what I want at all. That's a bit of a pain. Is there no way of
tricking Qt into thinking I'm running it in the main thread?

A

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


Re: PyQt app in seperate thread

2006-11-22 Thread Chris Mellon
On 22 Nov 2006 06:43:55 -0800, anders [EMAIL PROTECTED] wrote:

 Phil Thompson wrote:
  On Wednesday 22 November 2006 2:06 pm, anders wrote:
   Phil Thompson wrote:
On Wednesday 22 November 2006 12:37 pm, anders wrote:
 I am writing a plugin for a piece of software in python, and I want to
 start up a PyQt GUI in the plugin, without stalling the main thread
 while the gui is running (later i will want to pass messages between
 the main thread and the gui thread).

 I'm new to pyqt, so I'm probably doing something very silly, but for
 the moment I'm just trying to get the first pyqt tutorial example
 running in a seperate thread:

 8

 import sys
 from PyQt4 import QtGui
 from PyQt4 import QtCore

 class MyThread( QtCore.QThread ):
 def __init__( self ):
 QtCore.QThread.__init__( self )

 def run( self ):
 app = QtGui.QApplication( sys.argv )
 hello = QtGui.QPushButton( 'Hello world!' )
 hello.resize( 500, 500 )
 hello.show()
 app.exec_()
 QtCore.QThread.terminate(  )



 mt = MyThread()
 mt.start()
 print 'Main thread continuing...'
 mt.wait()
 print 'GUI thread finished.'

 8

 The app starts up (with a warning WARNING: QApplication was not 
 created
 in the main() thread. ). I get a window, but no button, and clicking 
 on
 the close button does nothing and I have to force the program to quit.

 There's got to be a way to get this working, right? Can anyone help me
 along the right path?
   
Read http://doc.trolltech.com/4.2/threads.html
   
In particular the bit that says that exec_() must be called from the 
main
thread and not from a QThread.
   
Phil
  
   OK so that's all good... so how do I go about doing what I want then?
   Can I set up a window in the second thread and start its event loop
   without running the event loop in the core app?
 
  No. Read the second sentence of the paragraph I referred to. Also read the
  section QObject Reentrancy.
 
  Phil

 OK I see that now. Thanks for pointing that out. So basically, I can't
 do what I want at all. That's a bit of a pain. Is there no way of
 tricking Qt into thinking I'm running it in the main thread?


It's possible with hackery from C++ but I seriously doubt you can do
it from PyQt.


 A

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

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


ANN: PyVISA 1.1 -- GPIB, USB, RS232 instrument control

2006-11-22 Thread Torsten Bronger
Hallöchen!

At http://pyvisa.sourceforge.net you can find information about the
PyVISA package.  It realises Python bindings for the VISA library
functions, which enables you to control GPIB, USB, and RS232-serial
measurement devices via Python.

Yesterday I released version 1.1, which works much better together
with older VISA implementations.  Moreover, we finally have reports
from Linux users.  They successfully used PyVISA with Linux +
NI/Tektronix GPIB hardware.

Tschö,
Torsten.

F'up to comp.lang.python
-- 
Torsten Bronger, aquisgrana, europa vetus
ICQ 264-296-646
   (See http://ime.webhop.org for Jabber, MSN, etc.)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What's going on here?

2006-11-22 Thread Scott David Daniels
Dale Strickland-Clark wrote:
 Python 2.4.2 (#1, Oct 13 2006, 17:11:24)
 a = object()
 a.spam = 1
 Traceback (most recent call last):
   File stdin, line 1, in ?
 AttributeError: 'object' object has no attribute 'spam'
 class B(object): pass
 a = B()
 a.spam = 1

 
 What is subclassing adding to the class here? Why can't I assign to
 attributes of an instance of object?

object itself doesn't have a __dict__ slot, so that very small objects
(such as points) can be built without that overhead.

--Scott David Daniels
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What's going on here?

2006-11-22 Thread Richie Hindle

 What is subclassing adding to the class here?

A __dict__:

 o = object()
 dir(o)
['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__',
'__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__str__']
 class C(object): pass
...
 c = C()
 dir(c)
['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__']

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


Re: What's going on here?

2006-11-22 Thread Fredrik Lundh
Dale Strickland-Clark wrote:

 Why can't I assign to attributes of an instance of object?

it doesn't have any attribute storage.

/F 



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


Re: Python visual IDE

2006-11-22 Thread hg
king kikapu wrote:
 I have already downloaded and seen the trial of Komodo Professional.
 Indeed it has a simple Gui Builder but one can only use TKinter on it.
 No wxWidgets support and far from truly RAD, but it is the only
 integrated
 GUI builder in these IDEs...
 
 
 On Nov 22, 4:31 pm, Steve [EMAIL PROTECTED] wrote:
 I haven't used it but Komodo (Professional version) says it has:

 ActiveState GUI Builder (Komodo Professional only)

 Enhance your applications with GUI dialogs: Simple, Tk-based dialog
 builder with seamless round-trip integration, for Perl, Python, Ruby,
 and Tcl.
 

I do a lot of GUI programming with wxPython.

I find that switching from desktop 1 (Eclipse/PyDev) to desktop 2
(wxDesigner) becomes a reflex quite quickly ... even under Windows
thanks to virtuawin (http://virtuawin.sourceforge.net) - both packages
also are smart enough to notice when an open file has been modified
elsewhere.

I also program in Visual-Studio and overall do not find the RAD/IDE
integration that much more convenient.


Also, I generally get the job done in wxDesigner at the beginning of the
project, and seldom have to get back into it to twick the interface.

hg


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


Re: XML Validation in Python using XSV

2006-11-22 Thread bmichel
I've read a bit about lxml, didn't found anything related to validating
XML schema...

Maybe you can give more details on how to install lxml and use it in
Python to validate XML files against an XML Schema
I'm going to ask the server administrator to install lxml, so I can't
play around a lot with the system trying stuff.

It would be nice if you can tell me:
- What files to download, where to download them from
- How to install it and configure it
- How to import the functions in Python

Thanks again
Michel

Stefan Behnel wrote:
  [EMAIL PROTECTED] wrote:
  Stefan Behnel wrote:
  BTW: any reason you need to use XSV? There are some other libraries out 
  there
  that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They are
  much more powerful than XSV.
 
  No particular reason for XSV
  I just want to validate XML files against an XML schema through Python.
  If you can suggest any other package for debian, I'll be glad to try
  it.

 Well, as I said:

 http://packages.debian.org/unstable/python/python-lxml
 http://codespeak.net/lxml/
 
 Just try apg-get install python-lxml.
 
 Stefan

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


Re: XML Validation in Python using XSV

2006-11-22 Thread Stefan Behnel
[EMAIL PROTECTED] wrote:
 Stefan Behnel wrote:
 [EMAIL PROTECTED] wrote:
 Stefan Behnel wrote:
 BTW: any reason you need to use XSV? There are some other libraries out 
 there
 that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They are
 much more powerful than XSV.
 No particular reason for XSV
 I just want to validate XML files against an XML schema through Python.
 If you can suggest any other package for debian, I'll be glad to try
 it.
 Well, as I said:

 http://packages.debian.org/unstable/python/python-lxml
 http://codespeak.net/lxml/

 Just try apg-get install python-lxml.

 I've read a bit about lxml, didn't found anything related to validating
 XML schema...

 Maybe you can give more details on how to install lxml and use it in
 Python to validate XML files against an XML Schema
 I'm going to ask the server administrator to install lxml, so I can't
 play around a lot with the system trying stuff.

 It would be nice if you can tell me:
 - What files to download, where to download them from
 - How to install it and configure it
 - How to import the functions in Python

Being able to read can simplify a lot of things these days.

See above to find out how to install lxml on Debian. See the page mentioned
above to find out how to use lxml. I mean this page:

http://codespeak.net/lxml/

in particular this section:

http://codespeak.net/lxml/#documentation

or simply search that page for things like XML Schema or API documentation.

Hope that gets you on the right track,
Stefan
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What's going on here?

2006-11-22 Thread Gerald Klix
Perhaps this piece of code might explain the behaviour:


  class C( object ):
... __slots__ = ()
...
  o = C()
  o.a = 1
Traceback (most recent call last):
   File input, line 1, in ?
AttributeError: 'C' object has no attribute 'a'


object behaves like having an implict __slots__ attribute.


HTH,
Gerald


Dale Strickland-Clark schrieb:
 Python 2.4.2 (#1, Oct 13 2006, 17:11:24)
 [GCC 4.1.0 (SUSE Linux)] on linux2
 Type help, copyright, credits or license for more information.
 
a = object()
a
 
 object object at 0xb7bbd438
 
a.spam = 1
 
 Traceback (most recent call last):
   File stdin, line 1, in ?
 AttributeError: 'object' object has no attribute 'spam'
 
class b(object):
 
 ...pass
 ...
 
a = b()
a
 
 __main__.b object at 0xb7b4dcac
 
a.spam = 1

 
 
 What is subclassing adding to the class here? Why can't I assign to
 attributes of an instance of object?

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


Re: file backup in windows

2006-11-22 Thread MC
Hi!

 are your friend.

See, also:
   filepath = '%HOMEPATH%\\LocalSettings\\Application 
Data\\Microsoft\\Outlook\\*'

and  %USERPROFILE%  %APPDATA% etc.

-- 
@-salutations

Michel Claveau


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


Re: XML Validation in Python using XSV

2006-11-22 Thread bmichel
This works for me.
You were very helpful, thank you!

Michel

Stefan Behnel wrote:
 [EMAIL PROTECTED] wrote:
  Stefan Behnel wrote:
  [EMAIL PROTECTED] wrote:
  Stefan Behnel wrote:
  BTW: any reason you need to use XSV? There are some other libraries out 
  there
  that can validate XML based on XML Schema and RelaxNG, e.g. lxml. They 
  are
  much more powerful than XSV.
  No particular reason for XSV
  I just want to validate XML files against an XML schema through Python.
  If you can suggest any other package for debian, I'll be glad to try
  it.
  Well, as I said:
 
  http://packages.debian.org/unstable/python/python-lxml
  http://codespeak.net/lxml/
 
  Just try apg-get install python-lxml.
 
  I've read a bit about lxml, didn't found anything related to validating
  XML schema...
 
  Maybe you can give more details on how to install lxml and use it in
  Python to validate XML files against an XML Schema
  I'm going to ask the server administrator to install lxml, so I can't
  play around a lot with the system trying stuff.
 
  It would be nice if you can tell me:
  - What files to download, where to download them from
  - How to install it and configure it
  - How to import the functions in Python

 Being able to read can simplify a lot of things these days.

 See above to find out how to install lxml on Debian. See the page mentioned
 above to find out how to use lxml. I mean this page:

 http://codespeak.net/lxml/

 in particular this section:

 http://codespeak.net/lxml/#documentation

 or simply search that page for things like XML Schema or API 
 documentation.
 
 Hope that gets you on the right track,
 Stefan

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


Re: Pyparsing Question.

2006-11-22 Thread Paul McGuire
Ant [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]
I have a home-grown Wiki that I created as an excercise, with it's own
 wiki markup (actually just a clone of the Trac wiki markup). The wiki
 text parser I wrote works nicely, but makes heavy use of regexes, tags
 and stacks to parse the text. As such it is a bit of a mantainability
 nightmare - adding new wiki constructs can be a bit painful.

 So I thought I'd look into the pyparsing module, but can't find a
 simple example of processing random text. For example, I want to parse
 the following:

 Some random text and '''some bold text''' and some more random text

 into:

 Some random text and strongsome bold text/strong and some more
 random text

 I have the following as a starting point:

 from pyparsing import *

 def parse(text):
italics = QuotedString(quoteChar='')

parser = Optional(italics)

parsed_text = parser.parseString(text)


 print parse(Test this is '''bold''' but this is not.)

 So if you could provide a bit of a starting point, I'd be grateful!

 Cheers,

Ant,

Welcome to pyparsing!  The simplest way to implement a markup processor in 
pyparsing is to define the grammar of the markup, attach a parse action to 
each markup type to convert the original markup to the actual results, and 
then use transformString to run through the input and do the conversion. 
This discussion topic has some examples: 
http://pyparsing.wikispaces.com/message/view/home/31853.

-- Paul


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


Re: file backup in windows

2006-11-22 Thread Fredrik Lundh
MC wrote:

  are your friend.

to be precise, list2cmdline is your friend.  see discussion and examples here:

http://effbot.org/pyfaq/why-can-t-raw-strings-r-strings-end-with-a-backslash.htm

/F 



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


Re: Python visual IDE

2006-11-22 Thread king kikapu

I didn't know about this product you mention (wxDesigner).
I download the trial and it seems pretty good, reminds me the wxGlade.

So you make the GUI in this, generate Python code and import the module

on your main project and reference it respectively ??

On Nov 22, 4:58 pm, hg [EMAIL PROTECTED] wrote:
 king kikapu wrote:
  I have already downloaded and seen the trial of Komodo Professional.
  Indeed it has a simple Gui Builder but one can only use TKinter on it.
  No wxWidgets support and far from truly RAD, but it is the only
  integrated
  GUI builder in these IDEs...

  On Nov 22, 4:31 pm, Steve [EMAIL PROTECTED] wrote:
  I haven't used it but Komodo (Professional version) says it has:

  ActiveState GUI Builder (Komodo Professional only)

  Enhance your applications with GUI dialogs: Simple, Tk-based dialog
  builder with seamless round-trip integration, for Perl, Python, Ruby,
  and Tcl.I do a lot of GUI programming with wxPython.

 I find that switching from desktop 1 (Eclipse/PyDev) to desktop 2
 (wxDesigner) becomes a reflex quite quickly ... even under Windows
 thanks to virtuawin (http://virtuawin.sourceforge.net) - both packages
 also are smart enough to notice when an open file has been modified
 elsewhere.

 I also program in Visual-Studio and overall do not find the RAD/IDE
 integration that much more convenient.

 Also, I generally get the job done in wxDesigner at the beginning of the
 project, and seldom have to get back into it to twick the interface.
 
 hg- Hide quoted text -- Show quoted text -

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


Re: Python visual IDE

2006-11-22 Thread johnf
king kikapu wrote:

 
 Hi to all,
 
 i am not sure if this question really belongs here but anyway, here it
 goes: I have seen a lot of IDEs for Python, a lot of good stuff but
 actually none of them has what, for example, Visual Studio has: a
 Visual Editor (with the  ability to place controls on forms etc etc),
 or RAD
 
 I know that there is Glade but does anybody knows of some product, or
 an ongoing effort to this direction so i can have a look at ?
 
 Coming from Windows and vs.net world, i think the only missing point
 here is the integration of the Pyrthon with a RAD IDE...
 
 Thanks a lot and i apologize if this isn't the correct place for this
 question...
 
 
 Kikapu

You might want to check out dabo www.dabodev.com. It's only at .7 but it
has a GUI designer (uses wxPython). Has a 3 tier design and able to use
MySQL, Postgres, FireBird, and soon MSSQL. The project has a ways to go but
it's goal is to be similar to windows IDEs such as VFP, VB6 and VS.

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


Re: Data not flushed at the moment

2006-11-22 Thread MindClass
Here it's very well explained:
http://groups.google.com/group/django-developers/browse_thread/thread/7bcb01ec38e7e6cd

syncdb() method:
http://code.djangoproject.com/browser/django/trunk/django/core/management.py#L435

But I'm not sure if is a django problem or from python.


MindClass ha escrito:

 I've to modifying a file, then I use a method imported that access to
 that file and has to read the new data, but they are not read ( as if
 the data were not flushed at the moment even using .close()
 explicitly).

 ---
 ...
 ...
 # If it is not installed, it looking for the line and insert it.
 if not is_application:
 print Activating I18n application ...
 writefile_line = 0
 a = fileinput.input(settings, inplace=1)
 #for line in fileinput.input(settings, inplace=1):
 for line in a:
 writefile_line += 1
 if writefile_line == readfile_line:
 print '%s', % application_name
 print line[:-1]
 else:
 print line[:-1]
 a.close()

 update()

 def update():
 # Update the data base.
 try:
 from django.core.management import syncdb
 except ImportError, err:
 print Can't import from Django: %s % err
 sys.exit(1)

 syncdb()
 ---

 Note that it only fails if the update() method is run inner of 'if not
 is_application', and I don't understand because it is happening so. But
 the problem is that I need run it when that condition is performed. Any
 idea?

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


Re: Python visual IDE

2006-11-22 Thread hg
Yes,

Actually when you create the project from wxDesigner, the main will
also be generated for you ... then you include the correct files in
eclipse (note that one file never needs to be edited ... like glade).

I went for wxDesigner years ago when wxglade was fairly unstable ...
have not tested it lately.

wxDesigner has its own editor (so you can say it is a complete
environment) ... but I only use it to automatically generate classes,
events ... as eclipse+pydev bring much more to the picture.


I really do not regret the expense.

PS: wxDesigner will also generate code for other languages (never tried)
 : c++, c#, perl
PPS: I'm not getting any money from them  ;-)

hg




king kikapu wrote:
 I didn't know about this product you mention (wxDesigner).
 I download the trial and it seems pretty good, reminds me the wxGlade.
 
 So you make the GUI in this, generate Python code and import the module
 
 on your main project and reference it respectively ??
 
 On Nov 22, 4:58 pm, hg [EMAIL PROTECTED] wrote:
 king kikapu wrote:
 I have already downloaded and seen the trial of Komodo Professional.
 Indeed it has a simple Gui Builder but one can only use TKinter on it.
 No wxWidgets support and far from truly RAD, but it is the only
 integrated
 GUI builder in these IDEs...
 On Nov 22, 4:31 pm, Steve [EMAIL PROTECTED] wrote:
 I haven't used it but Komodo (Professional version) says it has:
 ActiveState GUI Builder (Komodo Professional only)
 Enhance your applications with GUI dialogs: Simple, Tk-based dialog
 builder with seamless round-trip integration, for Perl, Python, Ruby,
 and Tcl.I do a lot of GUI programming with wxPython.
 I find that switching from desktop 1 (Eclipse/PyDev) to desktop 2
 (wxDesigner) becomes a reflex quite quickly ... even under Windows
 thanks to virtuawin (http://virtuawin.sourceforge.net) - both packages
 also are smart enough to notice when an open file has been modified
 elsewhere.

 I also program in Visual-Studio and overall do not find the RAD/IDE
 integration that much more convenient.

 Also, I generally get the job done in wxDesigner at the beginning of the
 project, and seldom have to get back into it to twick the interface.

 hg- Hide quoted text -- Show quoted text -
 
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Caution newbie question: python window to stay open ?

2006-11-22 Thread jim-on-linux

Michael,

put this at the top of your code. After the window 
closes read the testLog.out file. It may give you 
a clue as to what is happening.

sys.stdout = open('testLog.out', 'w')


jim-on-linux
http://www.inqvista.com


On Tuesday 21 November 2006 22:20, mkengel wrote:
 Caution: newbie question

 I am using python 2.4.3-11 on Windows XP.
 Problem: Python window closes immediately after
 executing a *.py file (e.g. containing a
 print... command. What do I have to do to
 keep it open to see the results ?

 Interactive window stays open.

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


Re: PyQt app in seperate thread

2006-11-22 Thread Diez B. Roggisch
 OK I see that now. Thanks for pointing that out. So basically, I can't
 do what I want at all. That's a bit of a pain. Is there no way of
 tricking Qt into thinking I'm running it in the main thread?

Maybe you can either invert the thread-roles - that is, run your main
application in a thread, and if needed start the Qt-thing, or you might
consider spawning a process and using pyro. Which will work very neat, done
so myself.

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


Re: PyQt app in seperate thread

2006-11-22 Thread anders

Diez B. Roggisch wrote:
  OK I see that now. Thanks for pointing that out. So basically, I can't
  do what I want at all. That's a bit of a pain. Is there no way of
  tricking Qt into thinking I'm running it in the main thread?

 Maybe you can either invert the thread-roles - that is, run your main
 application in a thread, and if needed start the Qt-thing, or you might
 consider spawning a process and using pyro. Which will work very neat, done
 so myself.

 Diez

Yeah I was thinking that's going to have to be the way to go... I can't
run the main app in a child thread, so I'll have to spawn the GUI as a
seperate process and communicate with it. Didn't know about pyro
though, thanks for the link. You've used it successfully with PyQt in a
seperate process?

Cheers,

Anders

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


Re: PyQt app in seperate thread

2006-11-22 Thread Diez B. Roggisch
anders wrote:

 
 Diez B. Roggisch wrote:
  OK I see that now. Thanks for pointing that out. So basically, I can't
  do what I want at all. That's a bit of a pain. Is there no way of
  tricking Qt into thinking I'm running it in the main thread?

 Maybe you can either invert the thread-roles - that is, run your main
 application in a thread, and if needed start the Qt-thing, or you might
 consider spawning a process and using pyro. Which will work very neat,
 done so myself.

 Diez
 
 Yeah I was thinking that's going to have to be the way to go... I can't
 run the main app in a child thread, so I'll have to spawn the GUI as a
 seperate process and communicate with it. Didn't know about pyro
 though, thanks for the link. You've used it successfully with PyQt in a
 seperate process?

Yup. I used it to spawn a python interpreter in a subprocess, and
communicate some stuff between that and my main GUI app. The idea was to
have a scriptable application, which allowed you could kill the script.

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


Re: Note about getattr and '.'

2006-11-22 Thread Carl Banks

Steven D'Aprano wrote:
 On Tue, 21 Nov 2006 22:39:09 +0100, Mathias Panzenboeck wrote:
  Yes, this is known. I think IronPython uses a specialized dictionary for 
  members, which prohibits
  malformed names. I don't know if there will be such a dictionary in any 
  future CPython version.
  (Would be good.)

 Why would it be good?

 How many bugs have you found that were caused by this behaviour?

It's not bugs.  A specialized dictionary could be better optimized if
you know it can only hold Python identifiers.  There's talk of such a
dictionary in Python 3000.


Carl Banks

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


Re: text file parsing (awk - python)

2006-11-22 Thread bearophileHUGS
Peter Otten, your solution is very nice, it uses groupby splitting on
empty lines, so it doesn't need to read the whole files into memory.

But Daniel Nogradi says:
 But the names of the fields (node, x, y) keeps changing from file to
 file, even their number is not fixed, sometimes it is (node, x, y, z).

Your version with the converters dict fails to convert the number of
node, z fields, etc. (generally using such converters dict is an
elegant solution, it allows to define string, float, etc fields):

 converters = dict(
 x=int,
 y=int
 )


I have created a version with a RE, but it's probably too much rigid,
it doesn't handle files with the z field, etc:

data = node 10
y 1
x -1

node 11
x -2
y 1
z 5

node 12
x -3
y 1
z 6

import re
unpack = re.compile(r(\D+)   \s+  ([-+]?  \d+) \s+ * 3, re.VERBOSE)

result = []
for obj in unpack.finditer(data):
block = obj.groups()
d = dict((block[i], int(block[i+1])) for i in xrange(0, 6, 2))
result.append(d)

print result


So I have just modified and simplified your quite nice solution (I have
removed the pprint, but it's the same):

def open(filename):
from cStringIO import StringIO
return StringIO(data)

from itertools import groupby

records = []
for empty, record in groupby(open(records.txt), key=str.isspace):
if not empty:
pairs = ([k, int(v)] for k,v in map(str.split, record))
records.append(dict(pairs))

print records

Bye,
bearophile

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


PyParsing and Headaches

2006-11-22 Thread Hugo Ferreira

Hi,

I'm trying to construct a parser, but I'm stuck with some basic stuff... For
example, I want to match the following:

letter = A...Z | a...z
literal = letter+
include_bool := + | -
term = [include_bool] literal

So I defined this as:

literal = Word(alphas)
include_bool = Optional(oneOf(+ -))
term = include_bool + literal

The problem is that:

term.parseString(+a) - (['+', 'a'], {}) # OK
term.parseString(+ a) - (['+', 'a'], {}) # KO. It shouldn't recognize any
token since I didn't said the SPACE was allowed between include_bool and
literal.

Can anyone give me an hand here?

Cheers!

Hugo Ferreira

BTW, the following is the complete grammar I'm trying to implement with
pyparsing:

## L ::= expr | expr L
## expr ::= term | binary_expr
## binary_expr ::= term   binary_op   term
## binary_op ::= * | OR | AND
## include_bool ::= + | -
## term ::= ([include_bool] [modifier :] (literal | range)) | (~
literal)
## modifier ::= (letter | _)+
## literal ::= word | quoted_words
## quoted_words ::= '' word (  word)* ''
## word ::= (letter | digit | _)+
## number ::= digit+
## range ::= number (.. | ...) number
## letter ::= A...Z | a...z
## digit ::= 0...9

And this is where I got so far:

word = Word(nums + alphas + _)
binary_op = oneOf(* and or, caseless=True).setResultsName(operator)
include_bool = oneOf(+ -)
literal = (word | quotedString).setResultsName(literal)
modifier = Word(alphas + _)
rng = Word(nums) + (Literal(..) | Literal(...)) + Word(nums)
term = ((Optional(include_bool) + Optional(modifier + :) + (literal |
rng)) | (~ + literal)).setResultsName(Term)
binary_expr = (term + binary_op + term).setResultsName(binary)
expr = (binary_expr | term).setResultsName(Expr)
L = OneOrMore(expr)


--
GPG Fingerprint: B0D7 1249 447D F5BB 22C5  5B9B 078C 2615 504B 7B85
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Programmatically replacing an API for another module

2006-11-22 Thread Chris Lambacher
On Tue, Nov 21, 2006 at 05:00:32PM -0800, Tom Plunket wrote:
 Bruno Desthuilliers wrote:
 
   I've got a bunch of code that runs under a bunch of unit tests.  It'd
   be really handy if when testing I could supply replacement
   functionality to verify that the right things get called without those
   things actually getting called, since frequently those calls take a
   long time to execute and do things that, well, I don't really want to
   do.
  
  Congratulation, you just rediscovered the MockObject.
 
 How do I rediscover something that I'm explicitly implementing?  I had
 set out specifically to mock an API, there was no rediscovery going
 on.
 
 That does allow me to discover via Google the Python Mock Module,
 though, which may well do what I want:
 
 from TestedModule import *
 
 my_win32file = Mock({
'CopyFile': 'CopyFile called'
}
 
 win32file = my_win32file
 
 ...perhaps.
 
 I'm just a bit loathe to download and install more stuff when
 something simpler appears to be near-at-hand.  ...especially
 considering the page describing this module doesn't offer any download
 links!  http://python-mock.sourceforge.net/
How about mini-mock:
http://blog.ianbicking.org/minimock.html
 
 
 -tom!
 -- 
 http://mail.python.org/mailman/listinfo/python-list
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Programmatically replacing an API for another module

2006-11-22 Thread Chris Lambacher
  I'm just a bit loathe to download and install more stuff when
  something simpler appears to be near-at-hand.  ...especially
  considering the page describing this module doesn't offer any download
  links!  http://python-mock.sourceforge.net/
 How about mini-mock:
 http://blog.ianbicking.org/minimock.html

Oh yeah, and the download link for python-mock is:
http://sourceforge.net/project/showfiles.php?group_id=138804
-- 
http://mail.python.org/mailman/listinfo/python-list


KeyboardInterrupt from syscalls

2006-11-22 Thread Fredrik Tolf
Dear List,

I was writing a Python extension module, including a sleeping call to
poll(2), and noticed, to my great surprise (and joy), that even when
blocking there, KeyboardInterrupt still worked properly when sending
SIGINTs to the interpreter. It really got me wondering how it works,
though.

I would have thought that I would have to check manually for interrupts
in one way or another, seeing how the thread in question should be stuck
in my syscall. Sure, I return on EINTR, but I only return Py_FALSE, not
NULL, so I wouldn't have thought that the interpreter would look for an
exception having taken place (I would assume that it gets set in the
sighandler).

So how does it work? Does my code get to return Py_FALSE, and the
interpreter ignores it, seeing that an exception is set? Is a non-local
exit performed right over my call stack (in which case my next question
would be how to clean up resources being used from my C code)? Or does
something completely else happen?

Fredrik Tolf


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


utf - string translation

2006-11-22 Thread hg
Hi,

I'm bringing over a thread that's going on on f.c.l.python.

The point was to get rid of french accents from words.

We noticed that len('à') != len('a') and I found the hack below to fix
the problem ... yet I do not understand - especially since 'à' is
included in the extended ASCII table, and thus can be stored in one byte.

Any clue ?

hg





# -*- coding: utf-8 -*-
import string

def convert(mot):
print len(mot)
print mot[0]
print '%x' % ord(mot[1])
table =
string.maketrans('àâäéèêëîïôöùüû','\x00a\x00a\x00a\x00e\x00e\x00e\x00e\x00i\x00i\x00o\x00o\x00u\x00u\x00u')

return mot.translate(table).replace('\x00','')


c = 'àbôö a '
print convert(c)
-- 
http://mail.python.org/mailman/listinfo/python-list


How to pass a boolean to a stored proc using Cx_Oracle?

2006-11-22 Thread JG
Hi,
I am using Python 2.4 and cx_Oracle.  I have a stored proc that takes two
arguments.  First is an NUMBER, second is a BOOLEAN.  How do you call that
stored procedure?

After properly extablishing a connection, I have something like this:

cursor = con.cursor()
cursor.callproc(testproc,[123,True])

The problem I have ran into is that I keep getting an error from Oracle
stating I don't have the variables defined in with the proper type.  I
changed to proc just to test it, so that it would take two numbers.  I was
able to make it run properly.

So, what is the trick to pass a boolean?

Thanks,
joe



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


Re: KeyboardInterrupt from syscalls

2006-11-22 Thread Fredrik Lundh
Fredrik Tolf wrote:

 So how does it work? Does my code get to return Py_FALSE, and the
 interpreter ignores it, seeing that an exception is set? Is a non-local
 exit performed right over my call stack (in which case my next question
 would be how to clean up resources being used from my C code)? Or does
 something completely else happen?

the signal handler adds an entry to a pending calls queue, which is 
checked by the interpreter at regular intervals.

/F

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


Re: utf - string translation

2006-11-22 Thread Fredrik Lundh
hg wrote:

 We noticed that len('à') != len('a')

sounds odd.

  len('à') == len('a')
True

are you perhaps using an UTF-8 editor?

to keep your sanity, no matter what editor you're using, I recommend 
adding a coding directive to the source file, and using *only* Unicode 
string literals for non-ASCII text.

or in other words, put this at the top of your file (where utf-8 is 
whatever your editor/system is using):

# -*- coding: utf-8 -*-

and use

u'text'

for all non-ASCII literals.

/F

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


Re: utf - string translation

2006-11-22 Thread hg
Fredrik Lundh wrote:
 hg wrote:
 
 We noticed that len('à') != len('a')
 
 sounds odd.
 
 len('à') == len('a')
 True
 
 are you perhaps using an UTF-8 editor?
 
 to keep your sanity, no matter what editor you're using, I recommend
 adding a coding directive to the source file, and using *only* Unicode
 string literals for non-ASCII text.
 
 or in other words, put this at the top of your file (where utf-8 is
 whatever your editor/system is using):
 
# -*- coding: utf-8 -*-
 
 and use
 
u'text'
 
 for all non-ASCII literals.
 
 /F
 

Hi,

The problem is that:

# -*- coding: utf-8 -*-
import string
print len('a')
print len('à')

returns 1 then 2

and string.maketrans(str1, str2) requires that len(str1) == len(str2)

hg





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


Re: utf - string translation

2006-11-22 Thread hg
hg wrote:
 Fredrik Lundh wrote:
 hg wrote:

 We noticed that len('à') != len('a')
 sounds odd.

 len('à') == len('a')
 True

 are you perhaps using an UTF-8 editor?

 to keep your sanity, no matter what editor you're using, I recommend
 adding a coding directive to the source file, and using *only* Unicode
 string literals for non-ASCII text.

 or in other words, put this at the top of your file (where utf-8 is
 whatever your editor/system is using):

# -*- coding: utf-8 -*-

 and use

u'text'

 for all non-ASCII literals.

 /F

 
 Hi,
 
 The problem is that:
 
 # -*- coding: utf-8 -*-
 import string
 print len('a')
 print len('à')
 
 returns 1 then 2
 
 and string.maketrans(str1, str2) requires that len(str1) == len(str2)
 
 hg
 
 
 
 
 
PS: I'm running this under Idle
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: A python IDE for teaching that supports cyrillic i/o

2006-11-22 Thread od

tool69 wrote:

 Sorry, but did someone knows if Pida works under Windows ?
 Thanks.

No, it doesn't really. You can start it up with a bit of hacking, and I
have seen screenshots around, but only with the scintilla-based editor.
We are waiting for SVG support in GTK on windows. Writing a vim-windows
(non-embedded) plugin should be a trivial matter, but then we need some
brave Windows user to do it).

Ali

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


Re: utf - string translation

2006-11-22 Thread Duncan Booth
hg [EMAIL PROTECTED] wrote:

 or in other words, put this at the top of your file (where utf-8 is
 whatever your editor/system is using):
 
# -*- coding: utf-8 -*-
 
 and use
 
u'text'
 
 for all non-ASCII literals.
 
 /F
 
 
 Hi,
 
 The problem is that:
 
 # -*- coding: utf-8 -*-
 import string
 print len('a')
 print len('à')
 
 returns 1 then 2

And if you do what was suggested and write:

# -*- coding: utf-8 -*-
import string
print len(u'a')
print len(u'à')

then you get:

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


Re: utf - string translation

2006-11-22 Thread hg
Duncan Booth wrote:
 hg [EMAIL PROTECTED] wrote:
 
 or in other words, put this at the top of your file (where utf-8 is
 whatever your editor/system is using):

# -*- coding: utf-8 -*-

 and use

u'text'

 for all non-ASCII literals.

 /F

 Hi,

 The problem is that:

 # -*- coding: utf-8 -*-
 import string
 print len('a')
 print len('à')

 returns 1 then 2
 
 And if you do what was suggested and write:
 
 # -*- coding: utf-8 -*-
 import string
 print len(u'a')
 print len(u'à')
 
 then you get:
 
 1
 1
OK,

How would you handle the string.maketrans then ?

hg



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


Re: utf - string translation

2006-11-22 Thread Fredrik Lundh
hg wrote:

 How would you handle the string.maketrans then ?

maketrans works on bytes, not characters.  what makes you think that you 
can use maketrans if you haven't gotten the slightest idea what's in the 
string?

if you want to get rid of accents in a Unicode string, you can do the 
approaches described here

 http://www.peterbe.com/plog/unicode-to-ascii

or here

 http://effbot.org/zone/unicode-convert.htm

which both works on any Unicode string.

/F

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


PyParsing and Headaches

2006-11-22 Thread Bytter
Hi,

I'm trying to construct a parser, but I'm stuck with some basic
stuff... For example, I want to match the following:

letter = A...Z | a...z
literal = letter+
include_bool := + | -
term = [include_bool] literal

So I defined this as:

literal = Word(alphas)
include_bool = Optional(oneOf(+ -))
term = include_bool + literal

The problem is that:

term.parseString(+a) - (['+', 'a'], {}) # OK
term.parseString(+ a) - (['+', 'a'], {}) # KO. It shouldn't
recognize any token since I didn't said the SPACE was allowed between
include_bool and literal.

Can anyone give me an hand here?

Cheers!

Hugo Ferreira

BTW, the following is the complete grammar I'm trying to implement with
pyparsing:

## L ::= expr | expr L
## expr ::= term | binary_expr
## binary_expr ::= term   binary_op   term
## binary_op ::= * | OR | AND
## include_bool ::= + | -
## term ::= ([include_bool] [modifier :] (literal | range)) | (~
literal)
## modifier ::= (letter | _)+
## literal ::= word | quoted_words
## quoted_words ::= '' word (  word)* ''
## word ::= (letter | digit | _)+
## number ::= digit+
## range ::= number (.. | ...) number
## letter ::= A...Z | a...z
## digit ::= 0...9

And this is where I got so far:

word = Word(nums + alphas + _)
binary_op = oneOf(* and or, caseless=True).setResultsName(operator)
include_bool = oneOf(+ -)
literal = (word | quotedString).setResultsName(literal)
modifier = Word(alphas + _)
rng = Word(nums) + (Literal(..) | Literal(...)) + Word(nums)
term = ((Optional(include_bool) + Optional(modifier + :) + (literal |
rng)) | (~ + literal)).setResultsName(Term)
binary_expr = (term + binary_op + term).setResultsName(binary)
expr = (binary_expr | term).setResultsName(Expr)
L = OneOrMore(expr)


-- 
GPG Fingerprint: B0D7 1249 447D F5BB 22C5  5B9B 078C 2615 504B 7B85

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


Re: Programmatically replacing an API for another module

2006-11-22 Thread Tom Plunket
Chris Lambacher wrote:

   I'm just a bit loathe to download and install more stuff when
   something simpler appears to be near-at-hand.  ...especially
   considering the page describing this module doesn't offer any download
   links!  http://python-mock.sourceforge.net/
 
 Oh yeah, and the download link for python-mock is:
 http://sourceforge.net/project/showfiles.php?group_id=138804

Heh, yeah I'm sure that's what I got when I went to sf.net and typed
in the project name, then submitted a bug for the homepage that it
doesn't offer any links to find the download.  ;)

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


Re: utf - string translation

2006-11-22 Thread hg
Fredrik Lundh wrote:
 hg wrote:
 
 How would you handle the string.maketrans then ?
 
 maketrans works on bytes, not characters.  what makes you think that you
 can use maketrans if you haven't gotten the slightest idea what's in the
 string?
 
 if you want to get rid of accents in a Unicode string, you can do the
 approaches described here
 
 http://www.peterbe.com/plog/unicode-to-ascii
 
 or here
 
 http://effbot.org/zone/unicode-convert.htm
 
 which both works on any Unicode string.
 
 /F
 
Thanks
-- 
http://mail.python.org/mailman/listinfo/python-list


regex problem

2006-11-22 Thread km

Hi all,

line is am trying to match is
1959400|Q2BYK3|Q2BYK3_9GAMM Hypothetical outer membra29.90.00011   1

regex i have written is
re.compile
(r'(\d+?)\|((P|O|Q)\w{5})\|\w{3,6}\_\w{3,5}\s+?.{25}\s{3}(\d+?\.\d)\s+?(\d\.\d+?)')

I am trying to extract 0.0011 value from the above line.
why doesnt it match the group(4) item of the match ?

any idea whats wrong  with it ?

regards,
KM
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: utf - string translation

2006-11-22 Thread John Machin
hg wrote:
 Duncan Booth wrote:
  hg [EMAIL PROTECTED] wrote:
 
  or in other words, put this at the top of your file (where utf-8 is
  whatever your editor/system is using):
 
 # -*- coding: utf-8 -*-
 
  and use
 
 u'text'
 
  for all non-ASCII literals.
 
  /F
 
  Hi,
 
  The problem is that:
 
  # -*- coding: utf-8 -*-
  import string
  print len('a')
  print len('à')
 
  returns 1 then 2
 
  And if you do what was suggested and write:
 
  # -*- coding: utf-8 -*-
  import string
  print len(u'a')
  print len(u'à')
 
  then you get:
 
  1
  1

Some general comments:

1. There has been at least one thread on the subject of ripping accents
off Latin1 characters in the last 3 or 4 months. Try Google.

2. About your earlier problem, when len(thing1) != len(thing2):
In that and similar situations, it can be *very* useful to use this
technique:
print repr(thing1), type(thing1)
print repr(thing2), type(thing2)
Go back now and try it out!

 OK,

 How would you handle the string.maketrans then ?


I suggest that you first read the documentation on the str and unicode
translate methods.
You can obtain this quickly at the interactive prompt by doing
help(''.translate)
and
help(u''.translate)
respectively.

Next steps:

Is your *real* data (not the examples you were hard-coding earlier)
encoded (latin1, utf8) in str objects or is it in unicode objects?
After reading previous posts my head is spinning  I'm not going to
guess; you determine it  yourself.

[pseudocode -- blend of Pythonic  Knuthian styles]
if latin1: (A) you can use string.maketrans and str.translate
immediately.

elif unicode: (B) either (1) encode to latin1; goto (A) or (2) use
unicode.translate with do-it-yourself mapping

elif utf8: decode to unicode; goto (B)

else: ???

HTH,
John

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


Re: PyParsing and Headaches

2006-11-22 Thread Chris Lambacher
On Wed, Nov 22, 2006 at 11:17:52AM -0800, Bytter wrote:
 Hi,
 
 I'm trying to construct a parser, but I'm stuck with some basic
 stuff... For example, I want to match the following:
 
 letter = A...Z | a...z
 literal = letter+
 include_bool := + | -
 term = [include_bool] literal
 
 So I defined this as:
 
 literal = Word(alphas)
 include_bool = Optional(oneOf(+ -))
 term = include_bool + literal
+ here means that you allow a space.  You need to explicitly override this.
Try:

term = Combine(include_bool + literal)

 
 The problem is that:
 
 term.parseString(+a) - (['+', 'a'], {}) # OK
 term.parseString(+ a) - (['+', 'a'], {}) # KO. It shouldn't
 recognize any token since I didn't said the SPACE was allowed between
 include_bool and literal.
 
 Can anyone give me an hand here?
 
 Cheers!
 
 Hugo Ferreira
 
 BTW, the following is the complete grammar I'm trying to implement with
 pyparsing:
 
 ## L ::= expr | expr L
 ## expr ::= term | binary_expr
 ## binary_expr ::= term   binary_op   term
 ## binary_op ::= * | OR | AND
 ## include_bool ::= + | -
 ## term ::= ([include_bool] [modifier :] (literal | range)) | (~
 literal)
 ## modifier ::= (letter | _)+
 ## literal ::= word | quoted_words
 ## quoted_words ::= '' word (  word)* ''
 ## word ::= (letter | digit | _)+
 ## number ::= digit+
 ## range ::= number (.. | ...) number
 ## letter ::= A...Z | a...z
 ## digit ::= 0...9
 
 And this is where I got so far:
 
 word = Word(nums + alphas + _)
 binary_op = oneOf(* and or, caseless=True).setResultsName(operator)
 include_bool = oneOf(+ -)
 literal = (word | quotedString).setResultsName(literal)
 modifier = Word(alphas + _)
 rng = Word(nums) + (Literal(..) | Literal(...)) + Word(nums)
 term = ((Optional(include_bool) + Optional(modifier + :) + (literal |
 rng)) | (~ + literal)).setResultsName(Term)
 binary_expr = (term + binary_op + term).setResultsName(binary)
 expr = (binary_expr | term).setResultsName(Expr)
 L = OneOrMore(expr)
 
 
 -- 
 GPG Fingerprint: B0D7 1249 447D F5BB 22C5  5B9B 078C 2615 504B 7B85
 
 -- 
 http://mail.python.org/mailman/listinfo/python-list
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: gopherlib deprecated in 2.5

2006-11-22 Thread Terry Reedy

Szabolcs Nagy [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]
 I've just seen that gopherlib is deprecated in python 2.5
 http://docs.python.org/lib/module-gopherlib.html

 we still use this protocol (though there are only few working gopher
 servers are left on the net)

 My friend just wrote a standard compliant gopher server (pygopherd had
 some problems oslt) and it's much better for hierarchycal content
 sharing than the http (which is overrated and misused in this respect).

 So i don't really understand why would one remove it from python. It's
 a friendly, tiny, simple, standard protocol.

The devolopers thought that perhaps gopherlib was unused in new or 
updated-to-new releases code.  Even if it is by a few, there is still the 
question of whether gopherlib should be in the stdlib in preference to 
modules that would be useful to more people or whether it should be a 
downloadable module at PyPI.  The latter would require someone to take 
ownership of it.

You might consider posting a note on py dev (easily accessible via gmane) 
to let them know there is at least one current user.

Terry Jan Reedy



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


Re: Protecting against SQL injection

2006-11-22 Thread Christoph Zwerschke
Tor Erik Soenvisen wrote:
 How safe is the following code against SQL injection:
 
 # Get user privilege
 digest = sha.new(pw).hexdigest()
 # Protect against SQL injection by escaping quotes
 uname = uname.replace(', '')
 sql = 'SELECT privilege FROM staff WHERE ' + \
   'username=\'%s\' AND password=\'%s\'' % (uname, digest)
 res = self.oraDB.query(sql)

This is definitely *not* safe.

For instance, set uname = r\' or 1=1 --

You must replace the backslash with a double backslash as well.
But as already suggested, you should better use query parameters.

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


Re: regex problem

2006-11-22 Thread Tim Chase
 line is am trying to match is
 1959400|Q2BYK3|Q2BYK3_9GAMM Hypothetical outer membra29.90.00011   1
 
 regex i have written is
 re.compile
 (r'(\d+?)\|((P|O|Q)\w{5})\|\w{3,6}\_\w{3,5}\s+?.{25}\s{3}(\d+?\.\d)\s+?(\d\.\d+?)')
 
 I am trying to extract 0.0011 value from the above line.
 why doesnt it match the group(4) item of the match ?
 
 any idea whats wrong  with it ?

Well, your .{25}\s{3} portion only gets you to one space short 
of your 29.9, so your (\d+... fails to match  29.9 because 
there's an extra space there.  My guess (from only one datum, so 
this could be /way/ off base) would be that you mean \s{4} or 
possibly \s{3,4}

It seems like a very overconstrained regexp, but it might be just 
what you need to isolate the single line (or class of line) 
amongst the chaff of thousand others of similar form.

-tkc





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


  1   2   >