a question about decorator

2007-10-21 Thread kyo guan
Hi:

please look at this code.

def A():
print 'warp in A'
def why(self, *arg, **kw):
print 'in A'
print self
print arg
print kw
#self(*arg, **kw)

return why

class T(object):
@A()
def test(g, out):
print 'in test', out

it will out put:

warp in A
in A

()
{}

the function why will be called, why? there is no code to call it.

Kyo.

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


Failure to connect in SimpleXMLRPCServer/xmlrpclib

2007-10-21 Thread iu2

Hi all,

I've copied the example of RPC usage from the Python's doc.
When the client and server were on the same PC ("localhost") (I use
Windows)
it worked ok. But putting the server on a different PC raised the
error:

gaierror: (11001, 'getaddrinfo failed')
The error was raised upion accessing some function of the server,
i.e.,
print s.add_nums(1, 2, 3)  # server registered function

PCs in our organization are accessed by "\\" so I used

s = xmlrpclib.Server(r'http://\\pc_name:8000')
I got the same error when I put some non-existing name.
Trying to remove the double-backslash from the PC's name raised the
error:
error: (10061, 'Connection refused')

I'll appreciate your help on this.

Thanks
iu2

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


Re: Wrapping stdout in a codec

2007-10-21 Thread Marc 'BlackJack' Rintsch
On Mon, 22 Oct 2007 02:41:17 +, JKPeck wrote:

> We want to wrap the stdout device in a codec in order to decode output
> transparently according to a particular code page (which might not be
> the system code page).  However, codec.open requires a filename, and
> stdout may be a tty or otherwise anonymous.  How can we accomplish
> this wrapping?

The `codecs` module has more than just the `codecs.open()` function.  Try
something like this::

  sys.stdout = codecs.getwriter('utf-8')(sys.stdout)

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


Re: C++ version of the C Python API?

2007-10-21 Thread Nicholas Bastin
On 10/21/07, Robert Dailey <[EMAIL PROTECTED]> wrote:
> On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> > No, I literally meant that the Python C API is object-oriented.
> > You don't need an object-oriented language to write object-oriented
> > code.
>
> I disagree with this statement. C is not an object oriented language,
> and I've seen attempts to make it somewhat object oriented, however it
> failed miserably in readability and manageability overhead. However,
> this isn't the place to discuss such a thing so I've got nothing more
> to say than that.

Object-oriented programming is a design choice, not a language
feature.  You can write straight procedural code in C++, and you can
write object oriented code in C.  Sure, C++ has some language features
which facilitate object-oriented programming, but it doesn't magically
make your code object-oriented.  You can certainly write basic
object-oriented code in C and hide most of the implementation in
preprocessor macros if you so desire.

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


Re: C++ version of the C Python API?

2007-10-21 Thread Nicholas Bastin
On 10/21/07, Carl Banks <[EMAIL PROTECTED]> wrote:
> Now, a C++ API for CPython would necessarily be built on top of the C
> API, which carries some limitations relative to the OOP abilities of C++
> itself.

It wouldn't have to be, although it'd be much more of a maintenance
nightmare if it poked into the Python internals.

> But you shouldn't expect anything like the ability to freely inherit between
> C++ and Python classes.

You can do this with Boost.Python.

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


Re: C++ version of the C Python API?

2007-10-21 Thread Aahz
In article <[EMAIL PROTECTED]>,
Robert Dailey <[EMAIL PROTECTED]> wrote:
>
>Is there a C++ version of the C Python API packaged with python 2.5?
>It would be nice to have a OOP approach to embedding python in C++. It
>would also be a bonus if this C++ Python API cleaned up a lot of the
>messy code involved in embedding python.

One other thing: you may get more advice from C++-sig and/or capi-sig;
mail.python.org has the info for subscribing to those.
-- 
Aahz ([EMAIL PROTECTED])   <*> http://www.pythoncraft.com/

The best way to get information on Usenet is not to ask a question, but
to post the wrong information.
-- 
http://mail.python.org/mailman/listinfo/python-list


A near realtime fs mirror application (for backup, written in Python, by Linux inotify)

2007-10-21 Thread Roc Zhou
Hello:

Recently I started an open source project "cutils" on the sourceforge:
   http://sourceforge.net/projects/crablfs/

The document can be found at:
http://crablfs.sourceforge.net/#ru_data_man

This project's mirrord/fs_mirror tool is a near realtime file system
mirroring application across 2 or more hosts, something like MySQL's
replication, but it's for the file system especially with a great amount
of small files, such as the php scripts and images of a website or the
(vitual) websites.

There are several ways to use this tool. The simplest is to mirror a
host's file system to another host for backup, and use the rotate
function(in the future version) or rotate scripts to get a daily or
hourly snapshot with the hard link.

Or futhur more, you can use it this way:
  This graph should be displayed with monospaced fonts:

  +--+
  |  worker  | -[mirrord] ---\
  +--+   |
 ..  |
 |
  +--+   |
  |  worker  | -[mirrord] ---\
  +--+   |
 V
[fs_mirror]
 |
  +--+  +--+
  |  worker  | -[mirrord] --->  |  backup  |
  +--+  +--+
   | |
  [take_over]|
   | |
   V |
  +--+   |
  |  rescue  | <--- NFS
  +--+

This is the multi to one backup, which is cost efficient. If one of the
worker hosts fails, you can subsitute the failed worker with the rescue
host, with the aid of any high available method, such as heartbeat
project. By this way, you can use 1 or 2 hosts to support the HA of more
than 3 servers.

Or you can also use it as an IDS(Intrusion Detection System) like a
realtime "tripware", or you can make a mirror chain that a host B mirrors
from A and be mirrored by C, etc ... I will also try to research a way
to use it as a distributed implemetation with one write and multi-read
model.

mirrord/fs_mirror makes use of inotify, which is a function afforded by
the recent Linux (from 2.6.12). It is a counterpart of FAM, since Linux
FAM has stopped so long.

Now it works for me, on a RHEL4 system and the LFS 6.2, I hope this tool
can be useful to you too.

Thanks.

-- 

My Projects:
http://sourceforge.net/projects/crablfs
http://crablfs.sourceforge.net/
http://crablfs.sourceforge.net/#ru_data_man
http://crablfs.sourceforge.net/tree.html
http://cralbfs.sourceforge.net/sysadm_zh_CN.html
My Blog:
http://chowroc.blogspot.com/
http://hi.baidu.com/chowroc_z/
Looking for a space and platform to exert my originalities (for my
projects)...
-- 
http://mail.python.org/mailman/listinfo/python-list

RE: Wrapping stdout in a codec

2007-10-21 Thread Ryan Ginstrom
> On Behalf Of JKPeck
> otherwise anonymous.  How can we accomplish this wrapping?  
> Our application may be loaded into a Python program that has 
> already set up stdout.

Do you mean something like this?

import sys

class OutStreamEncoder(object):
"""Wraps a stream with an encoder"""
def __init__(self, outstream, encoding=None):
self.out = outstream
if not encoding:
self.encoding = sys.getfilesystemencoding()
else:
self.encoding = encoding

def write(self, obj):
"""Wraps the output stream, encoding Unicode
strings with the specified encoding"""

if isinstance(obj, unicode):
self.out.write(obj.encode(self.encoding))
else:
self.out.write(obj)

def __getattr__(self, attr):
"""Delegate everything but write to the stream"""
return getattr(self.out, attr)

You can wrap sys.stdout easily:
sys.stdout = OutStreamEncoder(sys.stdout)

The code, with unit tests:
http://www.ginstrom.com/code/streamencode.zip

Regards,
Ryan Ginstrom

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


Re: Problem with shelve/gdbm

2007-10-21 Thread Gabriel Genellina
En Fri, 19 Oct 2007 17:58:50 -0300, Douglas Applegate  
<[EMAIL PROTECTED]> escribi�:

> I am having a problem with shelve. The problem I think is really with
> gdbm. I'll write out a file using shelve/gdbm on an amd64 machine and
> then I'll try to read it in on a i386 machine. The result is a 'gdbm
> fatal: read error.' Reversing directions results in the same problem.
> Below are two small programs that get at the heart of the problem:

Best to file a bug at http://bugs.python.org

-- 
Gabriel Genellina

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

Re: Problem Converting Word to UTF8 Text File

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 15:32:57 -0300, <[EMAIL PROTECTED]> escribi�:

> However, I still cannot read the unicode from the Word file.  If take
> out the first for-statement, I get a bunch of garbled text, which
> isn't helpful.  I would save them all manually, but I want to figure
> out how to do it in Python, since I'm just beginning.
>
> My intuition says the problem is with
>
> FileFormat=win32com.client.constants.wdFormatText
>
> because it converts fine to a text file, just not a utf-8 text file.
> How can I  modify this or is there another way to code this type of
> file conversion from *.doc to *.txt with unicode characters?

Ah! I thought you were getting the right file format.
I can't test it now, but this KB document
http://support.microsoft.com/kb/209186/en-us
suggests you should use wdFormatUnicodeText when saving the document.
What the MS docs call "unicode" when dealing with files, is in general  
utf16.
In this case, if you want to convert to utf8, the sequence would be:

f = open(original_filename, "rb")
udata = f.read().decode("utf16")
f.close()
f = open(new_filename, "wb")
f.write(udata.encode("utf8"))
f.close()

-- 
Gabriel Genellina

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

Re: parallel NumPy: PyMPI, myMPI or something else?

2007-10-21 Thread Robert Kern
[EMAIL PROTECTED] wrote:
> Hi!
> 
> I am trying to find my way to a running parallel NumPy installation.
> Can you help me getting started wihtout losing my way several times?
> 
> PyMPI and myMPI are apperently not too actively developed. Is this
> true? Are they mature enough so that they don't need any more updates?
> Have they been replaced by more recent modules?

The people who I know who use MPI and Python have been using mpi4py. I haven't
used it myself, though.

  http://mpi4py.scipy.org/

> Then, if I have NumPy running with PyMPI or whatever, is NumPy already
> optimized for a MPI environment so that for example matrix
> multiplication, iterative solvers etc. are automatically distributed?

No.

> Or do I have to split each problem myself to make use of the
> parallelism?

Pretty much.

-- 
Robert Kern

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

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


Re: Problem with format string / MySQL cursor

2007-10-21 Thread John Nagle
Dennis Lee Bieber wrote:

>   I should also add that I'm still using a somewhat older MySQLdb (one
> reason I haven't upgraded Python to 2.5 series -- finding trusted binary
> builds of the third-party stuff is a pain...)

 What, you don't trust the build from a World of Warcraft guild?

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


Wrapping stdout in a codec

2007-10-21 Thread JKPeck
We want to wrap the stdout device in a codec in order to decode output
transparently according to a particular code page (which might not be
the system code page).  However, codec.open requires a filename, and
stdout may be a tty or otherwise anonymous.  How can we accomplish
this wrapping?  Our application may be loaded into a Python program
that has already set up stdout.

TIA,
Jon Peck

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


Re: Splitting URLs

2007-10-21 Thread Tim Chase
>> there are some goodies in urllib for doing some of this splitting. 
>> Example code at the bottom of my reply (though it seems to choke on
>> certain protocols such as "mailto:"; and "ssh:" because urlparse doesn't
>> return the netloc properly)
> 
> It doesn't? That's... bad. But for my application, probably not 
> important: I only care about HTTP.

This seems to be intentional, rather than a bug.  In my
python2.4/urlparse.py file, there's a uses_netloc list which
clearly does not have 'mailto' in it.  I can't give an
explanation/justification for it, but it seems to me (IMHO) that
there is a netloc involved in a mail address.

Or maybe I have a semantic misunderstanding of what the netloc
field means when returned from urlparse.urlparse  However, since
this is where the hostname appears in "http", it makes me think
that the hostname from a mailto URL should also appear in this
result field.

-tkc





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


Re: what is the difference between the two kinds of brackets?

2007-10-21 Thread Alex Martelli
James Stroud <[EMAIL PROTECTED]> wrote:
   ...
> > I wonder if its the philosophical difference between:
> > 
> > "Anything not expressly allowed is forbidden"
> > 
> > and
> > 
> > "Anything not expressly forbidden is allowed"  ?
> > 
> > - Hendrik
> 
> The latter is how I interpret any religious moral code--life is a lot
> more fun that way. Maybe that percolates to how I use python?

FYI, in Security the first approach is also known as "Default Deny", the
second one as "Default Permit".

explains why "default permit" is THE very dumbest one of the "six
dumbest ideas in computer security" which the article is all about.

But then, the needs of Security are often antithetical to everything
else we wish for -- security and convenience just don't mix:-(


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


Re: Problem with regexp and text injection

2007-10-21 Thread chris . monsanto
On Oct 21, 6:22 pm, Panagiotis Atmatzidis <[EMAIL PROTECTED]>
wrote:
> Hello,
>
> I want to create a script in python that search for .html files in the
> predefined directory and subdirectories. Then it checks if a specific
> snippet of code exists in the .html file, if not it injects/adds the
> code right below the string  otherwise bypasses the file.
>
> I wrote the first part, I managed to write search function and I'm
> trying to find my way out of regular expressions reading the manuals.
> However I don't know what kind of function and module to use in order
> to write this function, re.search(), re.string() or re.match() or
> maybe re.compile() ?
>
> I have not much programming experience. Programming is not my cup of
> tea.
>
> Can someone help by pointing me to a sample code with comments if
> possible.
>
> Regards,
>
> atma

import glob
glob.glob("*.html") # returns a list of all filenames you are looking
for

-

import re
m = re.search(regular_expression_testing_for_string_of_code,
string_with_contents_of_page) # checks if your snippet is there
if m is None:
new_contents = re.sub(r"(?xis) ", lambda m: m.group() +
your_snippet_of_code, string_with_contents_of_page) # Add the snippet
to the body. I use a function as the replacement in case your snippet
has backreferences in it for some reason. If it doesn't, feel free to
use r"\0" + snippet_of_code.


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


Re: C++ version of the C Python API?

2007-10-21 Thread Michael L Torrie
Robert Dailey wrote:
> On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
>> No, I literally meant that the Python C API is object-oriented.
>> You don't need an object-oriented language to write object-oriented
>> code.
> 
> I disagree with this statement. C is not an object oriented language,
> and I've seen attempts to make it somewhat object oriented, however it
> failed miserably in readability and manageability overhead. However,
> this isn't the place to discuss such a thing so I've got nothing more
> to say than that.

Guess you haven't programmed in GTK+ on C, then.  Very heavy in
object-oriented programmin.  C++'s OOP stuff is just pure syntactic
sugar, nothing more, nothing less.

Python's OO nature is a bit deeper, since we're talking a dynamic
language.  Scheme, another dynamic language, is not inherently OO or
non-OO.  You can use it in either fashion.

> 
> I do appreciate you taking the time to respond to my inquiry and offer
> a few C++ wrapper API's for the Python C API. Take care!

Any C++ version of the python API is by definition going to be a wrapper
around the C version.  Even the C version is a wrapper around the python
object model.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: C++ version of the C Python API?

2007-10-21 Thread Carl Banks
On Sun, 21 Oct 2007 16:17:19 -0500, Robert Dailey wrote:
> On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
>> No, I literally meant that the Python C API is object-oriented. You
>> don't need an object-oriented language to write object-oriented code.
> 
> I disagree with this statement. C is not an object oriented language,
> and I've seen attempts to make it somewhat object oriented, however it
> failed miserably in readability and manageability overhead. However,
> this isn't the place to discuss such a thing so I've got nothing more to
> say than that.

What he means is that the C API provides a complete, if boilerplate-
heavy, interface to object oriented aspects of Python.  I.e., you can 
write Python types completely in C, including all the OOPy stuff like 
inheritance and so on.  You don't need a language with built-in support 
of OOP to do that.

Now, a C++ API for CPython would necessarily be built on top of the C 
API, which carries some limitations relative to the OOP abilities of C++ 
itself.  I suspect all you'll get from a C++ binding is a slightly more 
comfortable (to people who like C++) calling interface.  It could help 
bring some unity to your extension code, and maybe get rid of a few 
typecasts and simplify function names.  But you shouldn't expect anything 
like the ability to freely inherit between C++ and Python classes.


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

Re: C++ version of the C Python API?

2007-10-21 Thread Alex Martelli
"Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
   ...
> The most popular ones are Boost.Python, CXX, and PySTL.

I think SIP is also pretty popular (see
).


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


Re: Splitting URLs

2007-10-21 Thread Steven D'Aprano
On Sun, 21 Oct 2007 14:55:01 -0500, Tim Chase wrote:

> there are some goodies in urllib for doing some of this splitting. 
> Example code at the bottom of my reply (though it seems to choke on
> certain protocols such as "mailto:"; and "ssh:" because urlparse doesn't
> return the netloc properly)

It doesn't? That's... bad. But for my application, probably not 
important: I only care about HTTP.

Thanks for the reply and sample code.


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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Owen Jacobson
On Oct 21, 3:11 pm, Lew <[EMAIL PROTECTED]> wrote:

> Try using reason, logic and evidence for your points instead of merely
> shouting obscenities, hm?

You're expecting logic from someone who asserts that

> llothar wrote:
> >  only contribution to software development was the theory of
> > "literate" programming.

Good luck, mate.

-o

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


Problem with regexp and text injection

2007-10-21 Thread Panagiotis Atmatzidis
Hello,

I want to create a script in python that search for .html files in the
predefined directory and subdirectories. Then it checks if a specific
snippet of code exists in the .html file, if not it injects/adds the
code right below the string  otherwise bypasses the file.

I wrote the first part, I managed to write search function and I'm
trying to find my way out of regular expressions reading the manuals.
However I don't know what kind of function and module to use in order
to write this function, re.search(), re.string() or re.match() or
maybe re.compile() ?

I have not much programming experience. Programming is not my cup of
tea.

Can someone help by pointing me to a sample code with comments if
possible.

Regards,

atma

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
llothar wrote:
> On 21 Okt., 22:45, Lew <[EMAIL PROTECTED]> wrote:
> 
>> Evidence is that TeX development is dead.
> 
> Exactly and Knuths only contribution to software development was the
> theory of
> "literate" programming. As i said for me algorithms are not software
> development,
> this is programming in the small (something left for coding apes), not
> programming
> in the large. There are no problems anymore with programming the
> small, sure you
> can try to develop Judy Arrays or another more optimized sorting
> algorithm, but
> this has no real world effect. It is theoretical computer science -
> well a few
> people seem to like this.
> 
> And as an evidence that this theory works ("literate" programming) -
> there is no
> easy prove about efficient workflow - was his TeX program where only
> some parts
> are handled like this. But drawing an conclusion from a "developement
> dead"
> project to other "in development" projects is just sorry: fucking
> stupid.

No, I conclude that literate programming works from the prevalence of tools 
like Javadoc and Doxygen, and the Sun and MS coding standards documents.  I 
see the direct benefits in my own work every day.

Proposing a straw-man argument then knocking it down with mere purple prose 
like "just sorry: [sic] fucking stupid" is, sorry, just fucking stupid.  See? 
  No logic there at all.  Thus proving that there's no logic there at all.

> Everythink in the real world says that "literate" programming is not
> useable.

Rrr?  "Everythink" does, eh?  Maybe what the world needs instead is literate 
programmers, then.

Cite some specifics, please?  And remember, when you say "everything" that 
even one counter-example disproves.

There is evidence that aspects of "literate" programming do work.  Besides, 
that a theory is wrong is part of science, not a denigration of the scientist. 
  Even a wrong theory, like Newtonian mechanics, advances the science (e.g., 
physics) and is evidence that the scientist (Isaac Newton) is a genius.  Like 
Donald Knuth.

> Sure if you are an academic guy you can do endless post-mortem
> analysis you might
> find this amazing but it is just as worthless for the real world as a
> guy building
> a copy of the Eiffel tower from burned matches - a pure hobby.

So you say, again with just rhetoric and complete lack of evidence or argument 
to support the outrageous assertion.  Many people, myself included, have seen 
your so-called "real world" benefit significantly from academic results. 
Object-oriented programming is an example.  The fertilization works both ways; 
check out how the science of computer graphics expanded thanks to LucasFilms.

Try using reason, logic and evidence for your points instead of merely 
shouting obscenities, hm?

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


parallel NumPy: PyMPI, myMPI or something else?

2007-10-21 Thread smithken04
Hi!

I am trying to find my way to a running parallel NumPy installation.
Can you help me getting started wihtout losing my way several times?

PyMPI and myMPI are apperently not too actively developed. Is this
true? Are they mature enough so that they don't need any more updates?
Have they been replaced by more recent modules?

Then, if I have NumPy running with PyMPI or whatever, is NumPy already
optimized for a MPI environment so that for example matrix
multiplication, iterative solvers etc. are automatically distributed?
Or do I have to split each problem myself to make use of the
parallelism?

Thank you
Ken

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


Re: C++ version of the C Python API?

2007-10-21 Thread Robert Dailey
On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> No, I literally meant that the Python C API is object-oriented.
> You don't need an object-oriented language to write object-oriented
> code.

I disagree with this statement. C is not an object oriented language,
and I've seen attempts to make it somewhat object oriented, however it
failed miserably in readability and manageability overhead. However,
this isn't the place to discuss such a thing so I've got nothing more
to say than that.

I do appreciate you taking the time to respond to my inquiry and offer
a few C++ wrapper API's for the Python C API. Take care!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: C++ version of the C Python API?

2007-10-21 Thread Martin v. Löwis
> Could you emphasize a little more? I haven't worked much at all with
> the Python C API, so I may be misunderstanding. First of all, you say
> that the "Python C API is object oriented", which is contradictory
> because it should read "Python C++ API is object oriented". Perhaps
> this is a typo, or maybe you're referencing some C++ wrapper for the
> Python C API that you failed to mention the name of.

No, I literally meant that the Python C API is object-oriented.
You don't need an object-oriented language to write object-oriented
code.

> You also mentioned that there are "multiple C++ wrappers arround the
> Python C API Available"... could you provide names for a few of the
> popular ones?

The most popular ones are Boost.Python, CXX, and PySTL.

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


Re: C++ version of the C Python API?

2007-10-21 Thread Robert Dailey
On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> I think you are misinterpreting what you are seeing. The Python C API
> *is* object-oriented. It has all features of object-orientation:
> classes, encapsulation, polymorphism, late binding, ...
>
> As for "make your own": people have tried this before; there are
> multiple C++ wrappers around the Python C API available.
>
> Regards,
> Martin

Could you emphasize a little more? I haven't worked much at all with
the Python C API, so I may be misunderstanding. First of all, you say
that the "Python C API is object oriented", which is contradictory
because it should read "Python C++ API is object oriented". Perhaps
this is a typo, or maybe you're referencing some C++ wrapper for the
Python C API that you failed to mention the name of.

You also mentioned that there are "multiple C++ wrappers arround the
Python C API Available"... could you provide names for a few of the
popular ones?

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


Re: using "request" variable in python web program

2007-10-21 Thread sami
> However, it shouldn't be too bad to set Django up, really, especially
> if people have taken some time to explain something very close to what
> you want to do using Django. Moreover, there's a Google group (django-
> users) where you could ask general questions, and I imagine that
> people will be quite happy to help you out. But I can totally
> understand that creating databases and installing various packages
> seems somewhat peripheral to a task which could arguably be done using
> a CGI script (as far as I can see).
>
Thanks a ton Paul for the information. I am using CGI and my host
(nearlyfreespeech.net) does not have django hosting - and being mainly
a C/dekstop apps programmer I really don't want to learn the whole MVC
concept and its implementation (and quirks) in django - I want to use
abstractions only when I feel the need for them

Since a django user made pyfacebook, hopefully someone on the forum
will help out

Thanks again

Sami

> Paul
>
> P.S. I'm not too impressed by the lack of a common high-level Web API
> for Python, either. However, I've mostly ignored the discussions and
> stuck with my own API (WebStack) in the knowledge that if it doesn't
> work for me, at least I know how I might fix it.


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


Re: using "request" variable in python web program

2007-10-21 Thread Paul Boddie
On 21 Okt, 21:59, sami <[EMAIL PROTECTED]> wrote:
>
> Thanks a ton Paul for the information. I am using CGI and my host
> (nearlyfreespeech.net) does not have django hosting - and being mainly
> a C/dekstop apps programmer I really don't want to learn the whole MVC
> concept and its implementation (and quirks) in django - I want to use
> abstractions only when I feel the need for them

See the library reference for information on how to get the value of
form/request parameters from the CGI environment:

http://docs.python.org/lib/node561.html

Paul

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


Re: C++ version of the C Python API?

2007-10-21 Thread Martin v. Löwis
> Well C++ implicitly includes OOP since that is the foundation of the
> language. I was more or less asking if there was an object oriented
> version of the Python embedded API or perhaps an OO wrapper. However
> it doesn't seem that way, so I may have to make my own.

I think you are misinterpreting what you are seeing. The Python C API
*is* object-oriented. It has all features of object-orientation:
classes, encapsulation, polymorphism, late binding, ...

As for "make your own": people have tried this before; there are
multiple C++ wrappers around the Python C API available.

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


Re: Splitting URLs

2007-10-21 Thread Tim Chase
> URL = 'http://steve:[EMAIL PROTECTED]:82/dir" + \
> 'ectory/file.html;params?query#fragment'
> 
> If I split the URL, I would like to get the following components:
> 
> scheme = 'http'
> netloc = 'steve:[EMAIL PROTECTED]:82'
> username = 'steve'
> password = 'secret'
> hostname = 'www.domain.com.au'
> port = 82
> path = '/directory/file.html'
> parameters = 'params'
> query = 'query'
> fragment = 'fragment'
> 
> I can get *most* of the way with urlparse.urlparse: it will split the URL 
> into a tuple:
> 
> ('http', 'steve:[EMAIL PROTECTED]:82', '/directory/file.html', 
> 'params', 'query', 'fragment')
> 
> If I'm using Python 2.5, I can split the netloc field further with named 
> attributes. Unfortunately, I can't rely on Python 2.5 (for my sins I have 
> to support 2.4). Before I write code to split the netloc field by hand (a 
> nuisance, but doable) I thought I'd ask if there was a function somewhere 
> in the standard library I had missed.

there are some goodies in urllib for doing some of this
splitting.  Example code at the bottom of my reply (though it
seems to choke on certain protocols such as "mailto:"; and "ssh:"
because urlparse doesn't return the netloc properly)

> This second question isn't specifically Python related, but I'm asking it 
> anyway...
> 
> I'd also like to split the domain part of a HTTP netloc into top level 
> domain (.au), second level (.com), etc. I don't need to validate the TLD, 
> I just need to split it. Is splitting on dots sufficient, or will that 
> miss some odd corner case of the HTTP specification?

I believe that dots are the sanctioned separator, HOWEVER, you
can have a non-qualified machine-name with local scope, so you
can easily have NO TLD, such as

  http://user:[EMAIL PROTECTED]:8000/path/to/thing

There's also the ambiguity of what "TLD" means if you use IP
addresses:

 http://user:[EMAIL PROTECTED]:8000/path/to/thing

Does that make the TLD "1"?  Other odd edge-cases that are
usually allowable (but frowned upon, mostly used by
spammers/phishers) include using a long-int as the domain-name,
such as

  http://user:[EMAIL PROTECTED]:8000/path/to/thing

In an attempt to play with these functions, I present the code below.

-tkc


import urlparse, urllib
tests = (
  'http://steve:[EMAIL PROTECTED]:82/'
'directory/file.html;params?query#fragment',
  'http://user:[EMAIL PROTECTED]/path/to/thing/',
  'http://192.168.1.2/path/to/thing/',
  'http://2130706433/path/to/thing/',
  'http://localhost/path/to/thing/',
  'http://user:[EMAIL PROTECTED]/path/to/thing/',
  'telnet://[EMAIL PROTECTED]',
  'ssh://[EMAIL PROTECTED]',
  'gopher://wais.example.edu',
  'svn+ssh://user:[EMAIL PROTECTED]/svn/here/there/',
  'mailto:[EMAIL PROTECTED]',
  )

def is_ip_address(s):
  for i, part in enumerate(s.split('.')):
try:
  assert 0 <= int(i) <= 255
except:
  return False
  return i == 3

def steve_parse(url):
  (scheme, netloc, path,
params, query, fragment) = urlparse.urlparse(url)
  creds, host = urllib.splituser(netloc)
  username, password = urllib.splitpasswd(creds or '')
  host, port = urllib.splitport(host)
  if '.' in host and not is_ip_address(host):
  domain, tld = host.rsplit('.', 1)
  else:
domain = host
tld = ''
  return (
scheme, username, password,
domain, tld, port,
path, params, query,
fragment)
if __name__ == '__main__':
  for test in tests:
print test
(scheme, username, password,
  domain, tld, port,
  path, params, query,
  fragment) = steve_parse(test)
print '\tScheme: ', scheme
print '\tUsername: ', username
print '\tPassword: ', password
print '\tDomain: ', domain
print '\tTLD: ', tld
print '\tPort: ', port
print '\tPath: ', path
print '\tParams: ', params
print '\tQuery: ', query
print '\tFragment: ', fragment
print '='*50





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


Re: C++ version of the C Python API?

2007-10-21 Thread Robert Dailey
On 10/21/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> > Is there a C++ version of the C Python API packaged with python 2.5?
>
> Stargaming has already mentioned the fine points; the first answer is:
> yes, the API packaged python 2.5 can be used with C++. It is a C++
> version of the same API as it adds proper extern "C" declarations around
> all prototypes, and it was specifically cleaned up (ten years ago)
> to work with C++.
>
> This API does not make use of many of the C++ features, including
> classes, templates, or overloading.
>
> Regards,
> Martin
>

Well C++ implicitly includes OOP since that is the foundation of the
language. I was more or less asking if there was an object oriented
version of the Python embedded API or perhaps an OO wrapper. However
it doesn't seem that way, so I may have to make my own.

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


Re: Problem with format string / MySQL cursor

2007-10-21 Thread Gabriel Genellina
En Sat, 20 Oct 2007 18:40:38 -0300, Dennis Lee Bieber  
<[EMAIL PROTECTED]> escribi�:

> On Fri, 19 Oct 2007 18:50:20 -0300, "Gabriel Genellina"
> <[EMAIL PROTECTED]> declaimed the following in comp.lang.python:

>> If the MySQLdb adapter actually converts and inserts the arguments  
>> itself
>> into the supplied SQL sentence, generating a new string for each call,
>> this advantage -and many others- are cancelled, defeating the purpose of
>> bound variables.
>
>   Okay, I'm a bit behind the time... The book I keep on the floor next
> to my computer is the old brown/black version covering version 3.x and
> introducing ver 4.0 (my newer books are across the room in shelves
> behind the couch that take time to reach)
>
>   It can't be fully blamed on the MySQLdb adapter... After crawling
> through too many reference books, it looks like MySQL itself didn't
> support "prepared statements" until sometime in the ver 4.1.x period --
> I believe the MySQLdb adapter is still ver 3.x compatible, using the
> mysql_query(connection, SQL_string) call, rather than the half-dozen
> newer functions for separately binding parameters to prepared
> statements.

Yes, if the database doesn't allow for prepared statements the poor  
adapter can't do much...

>   Since, to my experience, db-api 2 doesn't expose the concepts of
> prepared statements to the user, about the only place using them would
> offer a true speed-up would be in the .executemany() call (and even then
> it would seem to depend upon which is more costly: formatting a properly  
> [...]

Some databases automatically cache SQL statements. I know DB2 does that,  
and I think Oracle does too (or is it the JDBC layer?). So it's not  
required that user code explicitely prepares SQL statements.
Prepared statements have other advantages, apart from the speed gain when  
using repetitive queries: they help to keep the statement length below  
some size limit, they help to lower the cpu load on the server (by not  
having to parse and optimize the query again), and they avoid SQL  
injection (else, you have to rely on the quoting and escaping being well  
done, even on the DB-API adapter).

>   If the api exposed them to the user, I could see a potential use for
> them: an application with, say, multiple forms (each of one or more DB
> tables)... By preparing and saving a set of statements for each form
> (parameterized select, update, insert, delete, say) during application
> startup (or conditionally on first entry to a form) one would only need
> to reference the prepared statements for the forms as the end-user
> navigates the forms.

But DB-API 2.0 already allows that. PEP 249 says, when describing  
cursor.execute:

 "A reference to the operation will be retained by the
 cursor.  If the same operation object is passed in again,
 then the cursor can optimize its behavior.  This is most
 effective for algorithms where the same operation is used,
 but different parameters are bound to it (many times)."

So nothing special is required to enable prepared statements; the adapter  
is free to prepare and re-use queries if desired.
BTW, the situation is similar to the re module: you can pre-compile your  
regular expressions, but it's not required, as the re module caches  
compiled expressions, reusing them later when the same r.e. is seen.

> {At least we're not discussing Firebird... 1000+ page book on it and the
> closest it comes to discussing a C-language API is to mention that the C
> header file defining the functions is included with the binary
> install... And for other APIs it just gives URLs}

Nice book! :)

-- 
Gabriel Genellina

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

Re: what is the difference between the two kinds of brackets?

2007-10-21 Thread James Stroud
Hendrik van Rooyen wrote:
> "Paul Hankin"  wrote:
> 
>> If everything else is equal, use tuples.
> 
> Interesting point of view - mine is just the opposite.
> 
> I wonder if its the philosophical difference between:
> 
> "Anything not expressly allowed is forbidden"
> 
> and
> 
> "Anything not expressly forbidden is allowed"  ?
> 
> - Hendrik
> 

The latter is how I interpret any religious moral code--life is a lot 
more fun that way. Maybe that percolates to how I use python?

James

-- 
James Stroud
UCLA-DOE Institute of Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: errors while building a program with Python

2007-10-21 Thread jeffstatin
On Oct 21, 1:31 pm, "Gabriel Genellina" <[EMAIL PROTECTED]>
wrote:
> En Sun, 21 Oct 2007 13:52:43 -0300, <[EMAIL PROTECTED]> escribi?:
>
> > I'm trying to build a program (MixMinion) with Python 2.5.1, MSVS 2003
> > SP1 and Windows XP Home SP2 but I'm getting a couple of errors.
>
> > Here are the two errors I am getting:
> > (1) .\contrib\OpenSSL\lib\Builder5\ssleay32.lib : fatal error LNK1136:
> > invalid or corrupt file
>
> Ensure that your downloaded files are not corrupt. You could try to
> download and compile OpenSSL yourself but this may be a bit tricky; I
> think it would be a lot better to ask this directly on the MixMinion dev
> list.
>
> --
> Gabriel Genellina

You are correct on all counts.  I have already re-downloaded openssl
and the curropution error went away. I originally thought the error
was a python issue, hence  my message here.

Thank you

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


Tkinter Status on OSX

2007-10-21 Thread stephen
Hey guys,
  What is that status of Tkinter on OSX (10.4.10)? I have tried several
installations (Python 2.4.4, 2.5 and 2.5.1) all from the
official distro sites and others each version has the same major
issue.Theproblem is simple to recreate,
use any of the simple sample code available here:
http://www.pythonware.com/library/tkinter/introduction/x5819-patterns.htm
The menu widgets never display...When I literally cut and paste this same
code into a VMWare image (windows and linux)
the same code executes as you'd expect it, all the widgets display and work
properlyliterally the same code cut and
pasted from OSX into windows/linux Vmware images, gets different results.

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

Re: Problem Converting Word to UTF8 Text File

2007-10-21 Thread patrick . waldo
Indeed, the shutil.copyfile(doc,txt_doc) was causing the problem for
the reason you stated.  So, I changed it to this:

for doc in glob.glob(input):
txt_split = os.path.splitext(doc)
txt_doc = txt_split[0] + '.txt'
txt_doc_dir = os.path.join(input_dir,txt_doc)
doc_dir = os.path.join(input_dir,doc)
shutil.copy(doc_dir,txt_doc_dir)


However, I still cannot read the unicode from the Word file.  If take
out the first for-statement, I get a bunch of garbled text, which
isn't helpful.  I would save them all manually, but I want to figure
out how to do it in Python, since I'm just beginning.

My intuition says the problem is with

FileFormat=win32com.client.constants.wdFormatText

because it converts fine to a text file, just not a utf-8 text file.
How can I  modify this or is there another way to code this type of
file conversion from *.doc to *.txt with unicode characters?

Thanks

On Oct 21, 7:02 pm, "Gabriel Genellina" <[EMAIL PROTECTED]>
wrote:
> En Sun, 21 Oct 2007 13:35:43 -0300, <[EMAIL PROTECTED]> escribi?:
>
> > Hi all,
>
> > I'm trying to copy a bunch of microsoft word documents that have
> > unicode characters into utf-8 text files.  Everything works fine at
> > the beginning.  The word documents get converted and new utf-8 text
> > files with the same name get created.  And then I try to copy the data
> > and I keep on getting "TypeError: coercing to Unicode: need string or
> > buffer, instance found".  I'm probably copying the word document
> > wrong.  What can I do?
>
> Always remember to provide the full traceback.
> Where do you get the error? In the last line: shutil.copyfile?
> If the file already contains the text in utf-8, and you just want to make
> a copy, use shutil.copy as before.
> (or, why not tell Word to save the file using the .txt extension in the
> first place?)
>
> > for doc in glob.glob(input):
> > txt_split = os.path.splitext(doc)
> > txt_doc = txt_split[0] + '.txt'
> > txt_doc = codecs.open(txt_doc,'w','utf-8')
> > shutil.copyfile(doc,txt_doc)
>
> copyfile expects path names as arguments, not a
> codecs-wrapped-file-like-object
>
> --
> Gabriel Genellina


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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Slobodan Blazeski
On Oct 20, 6:20 pm, Daniel Pitts <[EMAIL PROTECTED]> wrote:
> On Oct 20, 2:04 pm, llothar <[EMAIL PROTECTED]> wrote:
>
> > > I love math. I respect Math. I'm nothing but a menial servant to
> > > Mathematics.
>
> > Programming and use cases are not maths. Many mathematics are
> > the worst programmers i've seen because they want to solve things and
> > much more often you just need heuristics. Once they are into exact
> > world they loose there capability to see the factor of relevance in
> > algorithms.
>
> > And they almost never match the mental model that the average
> > user has about a problem.
>
> I read somewhere that for large primes, using Fermat's Little Theorem
> test is *good enough* for engineers because the chances of it being
> wrong are less likely than a cosmic particle hitting your CPU at the
> exact instant to cause a failure of the same sort.  This is the
> primary difference between engineers and mathematicians.

Carmichael number are the ones who are making the problem , but they
are very rare.
There are 1,401,644 Carmichael numbers between 1 and 1018
(approximately one in 700 billion numbers.)
http://en.wikipedia.org/wiki/Carmichael_number If you want to be sure
use Miller-Rabin test.

Slobodan Blazeski

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


Re: compiler module bug?

2007-10-21 Thread Brian Blais

On Oct 21, 2007, at Oct 21:2:05 PM, Gabriel Genellina wrote:


The parseFile function does exactly that, along with this comment:


thanks!



bb
--
Brian Blais
[EMAIL PROTECTED]
http://web.bryant.edu/~bblais



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

Re: compiler module bug?

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 14:33:00 -0300, Brian Blais <[EMAIL PROTECTED]>  
escribió:

> On Oct 21, 2007, at Oct 21:1:15 PM, Gabriel Genellina wrote:

>> The comment itself is not a problem; but the last line in the
>> source must
>> end in a newline.
>
> then, even if it is known problem, the docs are wrong.  the two
> (parseFile(path) and parse(open(path).read())) are *not* the same:
> one can handle a file which doesn't end in a newline, another one
> can't handle the same file.

Feel free to submit a bug report to http://bugs.python.org

> Can one hack it like:
>
>  filestr=open(filename).read()
>  filestr+="\n"

The parseFile function does exactly that, along with this comment:

 # XXX The parser API tolerates files without a trailing newline,
 # but not strings without a trailing newline.  Always add an extra
 # newline to the file contents, since we're going through the string
 # version of the API.

The compile function in py_compile.py that I've menctioned earlier does  
the same but only when needed:

 f = open(file, 'U')
 codestring = f.read()
 f.close()
 if codestring and codestring[-1] != '\n':
 codestring = codestring + '\n'

-- 
Gabriel Genellina

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Joachim Durchholz
Lew schrieb:
> I am afraid that your conclusion is quite mistaken.  Knuth is, if 
> anything, a huge success in the field of software engineering, whether 
> you rate it as making a contribution to the art, or as being paid to 
> perform the art.

Well, sort of.
Some of the code given is unreadable. (He obviously didn't take the 
"structured programming" thing to heart.)
Worse, some of the code given is inscrutable, and remains unexplained 
(e.g. the code for the spectral test algorithm).
Whole classes of algorithms were omitted. This is probably no fault of 
Knuth as a programmer, but simply a field that's moving faster than a 
single person can keep up with.

These are small detractions from a large overall contribution.
In particular, I find llothars characterization of TeX wrong: it is one 
of the least buggy typesetting programs ever written (not a small feat), 
and it *still* produces output that is as least as good as what other 
programs do, and in fact better than the vast majority.
It also has downsides, most notably the markup language is pure horror.

TeX's markup language is a dead end.
TeX's algorithm isn't. Actually it has been extracted from the software 
and is available as a functional program, waiting to be embedded into a 
typesetting system with more modern qualities.

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


Re: compiler module bug?

2007-10-21 Thread Brian Blais

On Oct 21, 2007, at Oct 21:1:15 PM, Gabriel Genellina wrote:


En Sun, 21 Oct 2007 13:36:46 -0300, Brian Blais <[EMAIL PROTECTED]>
escribi�:


I am experiencing a problem with the compiler module.  Is this a bug,
or am I doing something wrong?


I think it's a well-known fact...


it seems like a comment at the end breaks the parse command, but not
parseFile.  Is this reproducible by others?


The comment itself is not a problem; but the last line in the  
source must

end in a newline.
See the py_compile/compileall modules as an example.



I didn't see anything in that module which mentions this issue  
(perhaps I missed it).  however, if the documentation states:


parseFile(
path)
Return an abstract syntax tree for the Python source code in the file  
specified by path. It is equivalent to parse(open(path).read()).


then, even if it is known problem, the docs are wrong.  the two  
(parseFile(path) and parse(open(path).read())) are *not* the same:  
one can handle a file which doesn't end in a newline, another one  
can't handle the same file.


Can one hack it like:

filestr=open(filename).read()
filestr+="\n"

before going to parse, or will that give problems?

thanks,

bb


--
Brian Blais
[EMAIL PROTECTED]
http://web.bryant.edu/~bblais



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

Re: errors while building a program with Python

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 13:52:43 -0300, <[EMAIL PROTECTED]> escribi�:

> I'm trying to build a program (MixMinion) with Python 2.5.1, MSVS 2003
> SP1 and Windows XP Home SP2 but I'm getting a couple of errors.
>
> Here are the two errors I am getting:
> (1) .\contrib\OpenSSL\lib\Builder5\ssleay32.lib : fatal error LNK1136:
> invalid or corrupt file

Ensure that your downloaded files are not corrupt. You could try to  
download and compile OpenSSL yourself but this may be a bit tricky; I  
think it would be a lot better to ask this directly on the MixMinion dev  
list.

-- 
Gabriel Genellina

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

Re: Visibility of symbols between extension modules

2007-10-21 Thread Sudharshan S
Hi,

On Sun, 2007-10-21 at 13:43 -0300, Gabriel Genellina wrote:
> En Sun, 21 Oct 2007 08:21:50 -0300, Sudharshan S <[EMAIL PROTECTED]>  
> escribi�:
>
> What is foo? a directory? And bar/_foo/baz, source files in C? Each one  
> defining a module object, or is there a single module - foo perhaps?
> 

Sorry, let me explain things a bit, foo is a directory with an
__init__.py to tell the interpreter that foo is a package and bar, _foo,
baz are shared extension objects, with their sources as bar.c, _foo.c
and baz.c, each with its own PyMODINIT_FUNC function.

> Is it a global C variable, or a module attribute? If you want it to be  
> available to other Python code, it should be a module attribute. In this  
> case, you retrieve the value using PyObject_GetAttrString as with any  
> other object.
> If it's a global C variable, once it's assigned it should be visible to  
> all (but decades of warning against using global variables can't be  
> wrong...)
> The single most common error using the Python API is getting wrong the  
> reference counts. If you lose a reference, your object may be garbage  
> collected. If you leak a reference, it will never be freed. Maybe this is  
> what happens here.

Its not a module attribute, Just a good old C structure. I thought I
couldnt use Py_INCREF on non-PyObjects. After a gdb session, I found
that my variable say spam, is initialised when the _foo.so is loaded but
the moment baz.so or something get loaded, it becomes NULL again,
although its still in the current scope. (found that on my backtrace). I
hope I am right with the loading of .so part. Is that how python works,
bringing all the symbols in the different modules in a common
namespace?. If so why is spam losing its value. 

I also found that the interpreter calls init functions of all the
modules the moment I do a "import foo". I also suspect my setup script
is kinda doing something wrong. 

> Perhaps if you explain a bit more what you want to do someone can give  
> some advice.

Well, my code should tell everything. But a word of request, try not to
laugh at it. 
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/python-gsmd/?root=python-openmoko
It would be great if anyone could take a look and guide me out of this. 
The variable in question is "lgsmh" defined in _pygsmd.c.

I really feel I am missing something very trivial yet important thing.

Thanks for all the help..
-- 
Sudharshan S
http://www.sudharsh.wordpress.com

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

Re: compiler module bug?

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 13:36:46 -0300, Brian Blais <[EMAIL PROTECTED]>  
escribi�:

> I am experiencing a problem with the compiler module.  Is this a bug,
> or am I doing something wrong?

I think it's a well-known fact...

> it seems like a comment at the end breaks the parse command, but not
> parseFile.  Is this reproducible by others?

The comment itself is not a problem; but the last line in the source must  
end in a newline.
See the py_compile/compileall modules as an example.

-- 
Gabriel Genellina

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

Re: C++ version of the C Python API?

2007-10-21 Thread Martin v. Löwis
> Is there a C++ version of the C Python API packaged with python 2.5?

Stargaming has already mentioned the fine points; the first answer is:
yes, the API packaged python 2.5 can be used with C++. It is a C++
version of the same API as it adds proper extern "C" declarations around
all prototypes, and it was specifically cleaned up (ten years ago)
to work with C++.

This API does not make use of many of the C++ features, including
classes, templates, or overloading.

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


Re: Problem Converting Word to UTF8 Text File

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 13:35:43 -0300, <[EMAIL PROTECTED]> escribi�:

> Hi all,
>
> I'm trying to copy a bunch of microsoft word documents that have
> unicode characters into utf-8 text files.  Everything works fine at
> the beginning.  The word documents get converted and new utf-8 text
> files with the same name get created.  And then I try to copy the data
> and I keep on getting "TypeError: coercing to Unicode: need string or
> buffer, instance found".  I'm probably copying the word document
> wrong.  What can I do?

Always remember to provide the full traceback.
Where do you get the error? In the last line: shutil.copyfile?
If the file already contains the text in utf-8, and you just want to make  
a copy, use shutil.copy as before.
(or, why not tell Word to save the file using the .txt extension in the  
first place?)

> for doc in glob.glob(input):
> txt_split = os.path.splitext(doc)
> txt_doc = txt_split[0] + '.txt'
> txt_doc = codecs.open(txt_doc,'w','utf-8')
> shutil.copyfile(doc,txt_doc)

copyfile expects path names as arguments, not a  
codecs-wrapped-file-like-object

-- 
Gabriel Genellina

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

Re: Dealing with "funny" characters

2007-10-21 Thread John Nagle
Diez B. Roggisch wrote:
>>No, no, that's wrong.  MySQL and the Python interface to it understand
>> Unicode.  You don't want to convert data to UTF-8 before putting it in a
>> database; the database indexing won't work.
> 
> I doubt that indexing has anything to do with it whatsoever.

 Of course it does.  ORDER BY, LIKE, TRIM, and other SQL expressions that
do more than an equal comparison need to know the actual data representation.
If you were to convert to UTF-8 or UCS-2 in the Python program and send
the resulting byte string to MySQL, with MySQL thinking it was storing
ASCII or a BLOB, many SQL functions won't work right.  A database is
not a file system; a database looks at the data.
> 
>>Here's how to do it right.
>>
>>First, tell MySQL, before you create your MySQL tables, that the 
>> tables are
>> to be stored in Unicode:
>>
>> ALTER database yourdatabasename DEFAULT CHARACTER SET utf8;
>>
>> You can also do this on a table by table basis, or even for single 
>> fields,
>> but you'll probably get confused if you do.
>>
>>Then, when you connect to the database in Python, use something 
>> like this:
>>
>> db = MySQLdb.connect(host="localhost",
>> use_unicode = True, charset = "utf8",
>> user=username, passwd=password, db=database)
>>
>> That tells MySQLdb to talk to the database in Unicode, and it tells 
>> the database
>> (via "charset") that you're talking Unicode.
> 
> You confuse unicode with utf-8 here.
... pontification deleted

> But due to e.g. environmental settings, opened connections will deliver 
> the contents in e.g. latin1. Which of course will lead to problems if 
> you try to return data from the table with the topmost chines first names.
   ???
> 
> So you can alter the encoding the connection delivers and expects 
> byte-strings in. In mysql, this can be done explcit using
> 
> cursor.execute("set names ")
> 
> Or - as you said - as part of a connection-string.
> 
> db = MySQLdb.connect(host="localhost",
> use_unicode = True, charset = "utf8",
> user=username, passwd=password, db=database)
> 
> 
> But there is more to it. If the DB-API supports it, then the API itself 
> will decode the returned strings, using the specified encoding, so that 
> the user will only deal with "real" unicode-objects, greatly reducing 
> the risk of mixing byte-strings with unicode-objects. That's what the 
> use_unicod-parameter is for: it makes the API accept and deliver 
> unicod-objects. But it would do so even if the charset-parameter was 
> "latin1".

 Yes, and that's taken care of if the connection is set up as above.
For legacy reasons, there are both "unicode" and "charset" parameters
to "connect", and they can be set in incompatible ways.
Also, you need MySQL 5 or later to get full Unicode support.

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


errors while building a program with Python

2007-10-21 Thread jeffstatin
Hi,

I'm trying to build a program (MixMinion) with Python 2.5.1, MSVS 2003
SP1 and Windows XP Home SP2 but I'm getting a couple of errors.

Here are the two errors I am getting:
(1) .\contrib\OpenSSL\lib\Builder5\ssleay32.lib : fatal error LNK1136:
invalid or corrupt file
(2) error: command '"C:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link.exe"' failed with exit status 1136


Here is the terminal output log:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner>cd C:\MixMinion\Mixminion-0.0.8alpha3

C:\MixMinion\Mixminion-0.0.8alpha3>python setup.py build
Host is little-endian
C:\Python25\Lib\config\Makefile
running build
running build_py
creating build\lib.win32-2.5
creating build\lib.win32-2.5\mixminion
copying lib\mixminion\benchmark.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\BuildMessage.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\ClientAPI.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\ClientDirectory.py -> build
\lib.win32-2.5\mixminion
copying lib\mixminion\ClientMain.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\ClientUtils.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Common.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Config.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Crypto.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Filestore.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Fragments.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Main.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\MMTPClient.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\NetUtils.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\Packet.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\ScheduleUtils.py -> build
\lib.win32-2.5\mixminion
copying lib\mixminion\ServerInfo.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\SExpression.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\test.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\testSupport.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\ThreadUtils.py -> build\lib.win32-2.5\mixminion
copying lib\mixminion\TLSConnection.py -> build
\lib.win32-2.5\mixminion
copying lib\mixminion\__init__.py -> build\lib.win32-2.5\mixminion
creating build\lib.win32-2.5\mixminion\server
copying lib\mixminion\server\DNSFarm.py -> build
\lib.win32-2.5\mixminion\server
copying lib\mixminion\server\EventStats.py -> build
\lib.win32-2.5\mixminion\serv
er
copying lib\mixminion\server\HashLog.py -> build
\lib.win32-2.5\mixminion\server
copying lib\mixminion\server\MMTPServer.py -> build
\lib.win32-2.5\mixminion\serv
er
copying lib\mixminion\server\Modules.py -> build
\lib.win32-2.5\mixminion\server
copying lib\mixminion\server\PacketHandler.py -> build
\lib.win32-2.5\mixminion\s
erver
copying lib\mixminion\server\Pinger.py -> build\lib.win32-2.5\mixminion
\server
copying lib\mixminion\server\ServerConfig.py -> build
\lib.win32-2.5\mixminion\se
rver
copying lib\mixminion\server\ServerKeys.py -> build
\lib.win32-2.5\mixminion\serv
er
copying lib\mixminion\server\ServerMain.py -> build
\lib.win32-2.5\mixminion\serv
er
copying lib\mixminion\server\ServerQueue.py -> build
\lib.win32-2.5\mixminion\ser
ver
copying lib\mixminion\server\__init__.py -> build
\lib.win32-2.5\mixminion\server

creating build\lib.win32-2.5\mixminion\directory
copying lib\mixminion\directory\DirCGI.py -> build
\lib.win32-2.5\mixminion\direc
tory
copying lib\mixminion\directory\Directory.py -> build
\lib.win32-2.5\mixminion\di
rectory
copying lib\mixminion\directory\DirFormats.py -> build
\lib.win32-2.5\mixminion\d
irectory
copying lib\mixminion\directory\DirMain.py -> build
\lib.win32-2.5\mixminion\dire
ctory
copying lib\mixminion\directory\ServerInbox.py -> build
\lib.win32-2.5\mixminion\
directory
copying lib\mixminion\directory\ServerList.py -> build
\lib.win32-2.5\mixminion\d
irectory
copying lib\mixminion\directory\__init__.py -> build
\lib.win32-2.5\mixminion\dir
ectory
running build_ext
building 'mixminion._minionlib' extension
creating build\temp.win32-2.5
creating build\temp.win32-2.5\Release
creating build\temp.win32-2.5\Release\src
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /
nologo /Ox
 /MD /W3 /GX /DNDEBUG -DMM_L_ENDIAN=1 -I.\contrib\OpenSSL\include -I.
\contrib\op
enssl\include -Isrc -IC:\Python25\include -IC:\Python25\PC /Tcsrc/
crypt.c /Fobui
ld\temp.win32-2.5\Release\src/crypt.obj
crypt.c
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /
nologo /Ox
 /MD /W3 /GX /DNDEBUG -DMM_L_ENDIAN=1 -I.\contrib\OpenSSL\include -I.
\contrib\op
enssl\include -Isrc -IC:\Python25\include -IC:\Python25\PC /Tcsrc/
aes_ctr.c /Fob
uild\temp.win32-2.5\Release\src/aes_ctr.obj
aes_ctr.c
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /
nologo /Ox
 /MD /W3 /GX

Error when python script run as cgi script

2007-10-21 Thread sophie_newbie
Hi, I'm running a python script which if I run from the command line
as root runs fine. But if I run it through the web-browser as a cgi
script gives the following error "Error in X11: unable to start device
PNG".

Now I should say that this python script is calling fucntions in R (a
scripting languange used in statistics) using the python module RPy,
so this I dunno if this is entirely a Python question, because as far
as I can see the error is being thrown by R. But then as I say, when
the script is run by the root user from the command line everything
goes off without a hitch.

So I dunno is there some way to run a CGI script as root, maybe thats
a bad idea because of security? But any ideas would be welcome.

-Thanks.

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


Re: Visibility of symbols between extension modules

2007-10-21 Thread Gabriel Genellina
En Sun, 21 Oct 2007 08:21:50 -0300, Sudharshan S <[EMAIL PROTECTED]>  
escribi�:

> I have been learning to write extension modules using the C API that
> python provides, and have hit a minor roadblock that is turning out to
> be major headache.
> My project essentially is organized as follows,
>
>  foo
>   |
>-
>|  ||
>   bar_foo baz

What is foo? a directory? And bar/_foo/baz, source files in C? Each one  
defining a module object, or is there a single module - foo perhaps?

> _foo basically does some init stuff, nothing much. Thats where the
> problem starts. The "handler" variable which is initialized in _foo
> isn't visible to others. One solution that worked was calling the
> initializing function in each of the module's PyMODINIT_FUNC. Debugging
> through the interpreter I found out the it loads all the .so's and
> executes PyMODINIT_FUNCs. But by doing so, the routine to initialize the
> handle gets executed three times, something which i find to be sort of
> unclean.

Ah, ok, after rereading it I see you have three modules.

> The definition of the variable is included in a header and the sources
> of the other modules include this master header, So I do have that
> variable in scope, but its not initialized. _foo does the job of
> declaring that variable.

Is it a global C variable, or a module attribute? If you want it to be  
available to other Python code, it should be a module attribute. In this  
case, you retrieve the value using PyObject_GetAttrString as with any  
other object.
If it's a global C variable, once it's assigned it should be visible to  
all (but decades of warning against using global variables can't be  
wrong...)
The single most common error using the Python API is getting wrong the  
reference counts. If you lose a reference, your object may be garbage  
collected. If you leak a reference, it will never be freed. Maybe this is  
what happens here.

> I did my share of RTFM and found CObjects as a potential alternative.
> But I feel its use rather complicated for a single variable that goes
> out of scope. Is there any other way to solve this, or is my approach
> itself borked =(?, What am I missing?

Perhaps if you explain a bit more what you want to do someone can give  
some advice.

-- 
Gabriel Genellina

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

Problem Converting Word to UTF8 Text File

2007-10-21 Thread patrick . waldo
Hi all,

I'm trying to copy a bunch of microsoft word documents that have
unicode characters into utf-8 text files.  Everything works fine at
the beginning.  The word documents get converted and new utf-8 text
files with the same name get created.  And then I try to copy the data
and I keep on getting "TypeError: coercing to Unicode: need string or
buffer, instance found".  I'm probably copying the word document
wrong.  What can I do?

Thanks,
Patrick


import os, codecs, glob, shutil, win32com.client
from win32com.client import Dispatch

input = 'C:\\text_samples\\source\\*.doc'
output_dir = 'C:\\text_samples\\source\\output'
FileFormat=win32com.client.constants.wdFormatText

for doc in glob.glob(input):
doc_copy = shutil.copy(doc,output_dir)
WordApp = Dispatch("Word.Application")
WordApp.Visible = 1
WordApp.Documents.Open(doc)
WordApp.ActiveDocument.SaveAs(doc, FileFormat)
WordApp.ActiveDocument.Close()
WordApp.Quit()


for doc in glob.glob(input):
txt_split = os.path.splitext(doc)
txt_doc = txt_split[0] + '.txt'
txt_doc = codecs.open(txt_doc,'w','utf-8')
shutil.copyfile(doc,txt_doc)

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


compiler module bug?

2007-10-21 Thread Brian Blais

Hello,

I am experiencing a problem with the compiler module.  Is this a bug,  
or am I doing something wrong?


so I have the following code:

from compiler import parse, parseFile

filename='blah.py'

if False:  # turn this to false, to get it to work
ast = parse(open(filename).read())   # this line gives a syntax  
error

else:
ast = parseFile(filename)  # this line works


print ast


the documentation, here http://docs.python.org/lib/module- 
compiler.html  says that the two lines with parse and parseFile are  
equivalent.


the file I am trying to parse is simply:

def main():

a=10

# comment at the end of the file




it seems like a comment at the end breaks the parse command, but not  
parseFile.  Is this reproducible by others?


am I doing something wrong?

thanks,

Brian Blais



--
Brian Blais
[EMAIL PROTECTED]
http://web.bryant.edu/~bblais



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

Endless GIL and thread confusion

2007-10-21 Thread enska
Can someone clarify the steps needed to make access to the interpreter
safe from multiple threads?

I've been reading the docs for days and I still find them very confusing
and misleading. For example does the PyGILState_Ensure() function lock the
GIL or just create the thread state? Is thread supposed to call it once on
creation and then the release function before exiting or is this the
preferred mechanism to handle the locking? Most of the confusion stems
from this segment in the documentation.

"...when threads are created from C, they don't have the global
interpreter lock, nor is there a thread state data structure for them.
Such threads must bootstrap themselves into existence, by first creating a
thread state data structure, then acquiring the lock, and finally storing
their thread state pointer, before they can start using the Python/C API.
When they are done, they should reset the thread state pointer, release
the lock, and finally free their thread state data structure.

Beginning with version 2.3, threads can now take advantage of the
PyGILState_*() functions to do all of the above automatically." 


Anyway, currently my code looks like this:

void foobar(...) 
{
PyGILState state = PyGILState_Ensure();

// make python calls

PyGILState_Release(state);
}

void blablah(...) 
{
PyGILState state = PyGILState_Ensure();

// make python calls

PyGILState_Release(state);
}

My python Initialization code looks like this

void init_python(char* progname, char* bindir)
{
Py_SetProgramName(progname);
PyEval_InitThreads();
Py_InitializeEx(0);

char* argv[] = {progname, bindir};
PySys_SetArgv(2, argv);
}

calling foobar() or blablah() from the main thread works as expected, but
if the second thread calls them it locks up in the call to
PyGILState_Ensure(). 

I have tried adding a call to PyEval_ReleaseLock() in the init_python
function to make sure that the main thread is not holding the GIL, but
this causes the application to segfault when it is calling Py_Finalize()
so it is clear that this is not correct.

Please advice.

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


Re: General module name clash problem?

2007-10-21 Thread jipjip

I hope, i get it right now. :-)

So i worked out an extreme
not-module-name-clashing-example.

Type 'python start.py' at root.

Thanks, jipjip



root.tar.gz
Description: GNU Zip compressed data
-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
llothar wrote:
> Well programming in the small like sort algorithms for sure. But not
> for his great discoveries but for one of the first man who was paid
> for this by this university employee.

What a curious thesis.

> But in the field of software enginering as i said before he
> completely
> failed.

As you said, but for which you provided absolutely no evidence, and the 
counter evidence that Arne provided is that he has not "completely" failed for 
any useful value of "failed".  Statements of absolute only need one 
counterexample.  /The Art of Programming/ is arguably the most significant 
contribution to the field of software engineering.  By any reasonable 
assessment, on the basis of that one work alone Knuth was a success.

Your rhetorical tack of unfounded assertions and inflammatory 
characterizations, not to say complete disregard for the reality of the 
situation, do not make a cogent case, much less a convincing one.

I am afraid that your conclusion is quite mistaken.  Knuth is, if anything, a 
huge success in the field of software engineering, whether you rate it as 
making a contribution to the art, or as being paid to perform the art.

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread llothar
>
> Depends obvious a bot on what you consider serious math.
>
> Expression evaluation, floating point characteristics, relational
> database theory, simulation, optimum location, encryption etc.
> are all based on mathematics of different levels.

Thats not i call serious maths. You just need a very little
understanding
here for all this concepts. A "extended high school degress" should be
well
enough (based on our education system in Germany - don't know how much
math
you do in a US high schoool). A little bit set theory and of course
boolean
algebra (on a very low level but unfortunately not teached in school).

But where do you need the way to prove mathematical theorems and this
is what
i call as serious math. You don't need to prove anything you just need
to
use it. (In 95% of all programming, except some embedded programming
with
DSP's or numeric.)

> > Depends. I would call Knuth as one of the worst programmers. Look at
> > his total
> > failures on literature programming. Software Engineering is something
> > very
> > different.
>
> I think you will find it very difficult to write a piece of code
> that are not heavily influenced by Knuth.

Well programming in the small like sort algorithms for sure. But not
for his great discoveries but for one of the first man who was paid
for this by this university employee.

But in the field of software enginering as i said before he
completely
failed. And for me programming is just another word for software
engineering these days.


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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
llothar wrote:
> On 21 Okt., 21:39, Arne Vajhøj <[EMAIL PROTECTED]> wrote:
> 
>> That level of activity could be considered dead.
> 
> For me at least 2% of the total line count should be changed
> to call it non dead.
> 
> I don't say it it not used anymore for users it might be
> not dead but this is not the point under discussion here.

No, there are two points - not whether Tex is "dead", but whether it's a "dead 
end" (which do you mean?), and whether in any way that says anything about 
Knuth's ability as a programmer.

Evidence is that TeX development is dead.  There is not yet firm evidence that 
Tex is a "dead end" (or even what that means), and there has been none (nor, I 
expect, is there any) that any of that reflects on Knuth's skill as a 
programmer.

The switch from asserting "dead end" to asserting "dead" is sort of an 
interesting rhetorical device.  Just pick one or the other, or if you prefer, 
assert both, but please be clear.  Should we just accept that you meant, "less 
than 2% of total line count changed"?  Per year?  Per century?  What if the 
code is perfect and has no need of change?  Is it (a) dead (end)?

(Who uses line count as a metric of anything any more?)

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

Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread llothar
On 21 Okt., 21:39, Arne Vajhøj <[EMAIL PROTECTED]> wrote:

> That level of activity could be considered dead.

For me at least 2% of the total line count should be changed
to call it non dead.

I don't say it it not used anymore for users it might be
not dead but this is not the point under discussion here.


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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
OMouse wrote:
> For the love of the Perl, Python, Lisp, Java and functional
> programmers, please just give an abstract of what you've written and
> link to it?

I expect you'll be ignored on that.  Xah Lee reposts and reposts these essays 
from years agone.  I don't even read his posts, just the responses.

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
Arne Vajhøj wrote:
> Lew wrote:
>>> very
>>> different. Having a dead - i mean end of development line software
>>> like TeX - and
>>
>> Based on what do you call it "dead end".  It's used, it's outlasted 
>> many other flashes in the pan, it does what its users require.  You 
>> will need evidence for such a claim.
> 
> According to wikipedia the last version is from december 2002.
> 
> That level of activity could be considered dead.
> 
> It would for almost any other software. Tex has some
> "absolute" over it, so I am not sure normal software
> practices apply.
> 
> But you could argue based on that.

No, you present good evidence that TeX is a dead end.  It still doesn't 
support the claim llothar wrote:
>> Depends. I would call Knuth as one of the worst programmers. 

Plenty of brilliant programmers have written software that is no longer used 
(except in legacy use cases).  Good software, too.  I suppose what I was 
reacting to was the notion that TeX was a dead end at the time Knuth came up 
with it, and that that somehow invalidated the accomplishment of coming up 
with TeX.

The fact that it is still in use even five years after cessation of 
development does mitigate the "dead end" assessment at least potentially.

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

Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread OMouse
For the love of the Perl, Python, Lisp, Java and functional
programmers, please just give an abstract of what you've written and
link to it?

-Rudolf

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


Re: logging module - restricted mode error

2007-10-21 Thread Vinay Sajip
On 21 Oct, 07:50, Paul Rudin <[EMAIL PROTECTED]> wrote:
> > Can you say a little bit more about the execution environment? For
> > example, are you running under mod_python? If so, which version?
>
> I'm not running under mod_python - but this is using cherrypy. I also
> do some passing of pickled objects between two python processes, which
> I guess could be relevant.
>
> > When googling, did you search for the exact text of the error message?
> > For example, did you see the following post?
>
> > http://mail-archives.apache.org/mod_mbox/httpd-python-dev/200404.mbox/[EMAIL
> >  PROTECTED]
>
> I hadn't noticed that particularly, but I'm still a little unclear as
> to what's going on. That thread dates from 3 years ago and it seems to
> imply that mod python is using restricted mode (in the sense of the
> the rexec module), which won't run in 2.5 will it?
>
> One parts that says:
>
>   "Restricted mode is a strange beast, in that there isn't really
>anything like a "restricted mode" flag, but it looks at a pointer
>somwhere (don't remember now), and if it's not what is expected, it
>concludes that it's in restricted mode. So this behaviour is
>actually a sign of a bug where an object is created in one
>subinterpreter but is running in another... These bugs can be hard
>to track down."
>
> What exactly is meant by a subinterpreter? Python running in a
> subprocess?

I'm no mod_python expert: I just wondered whether you might be hitting
the same problem. The way I read it, the "restricted mode" referred to
in that post is not in the rexec sense, but based on some more obscure
heuristic to do with multiple interpreters. Anyway: I don't think it's
specifically a logging problem, except that logging does introspect
(look at LogRecord.__dict__) and this raises the error. But in that,
it's no different to lots of other stdlib and third party modules.

Vinay

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Arne Vajhøj
llothar wrote:
>> I'm, not sure that I'm getting your point, but are you trying to argue that
>> _not_ knowing mathemathics makes you a better programmer?
> 
> No but it doesn't help you very much either. They are just different
> skills.

Many things within programming have a foundation in mathematics
and mathematical logic.

>> Or maybe that learning math is useless to a programmer?
> 
> No and at least the mathematical idea of building a universe on a
> basic set
> of axioms is pretty exciting for a programmer. But it's the idea not
> the real
> wisdom (I never had to use any serious maths in my 25 years of
> programming)
> that you need as a programmer

Depends obvious a bot on what you consider serious math.

Expression evaluation, floating point characteristics, relational
database theory, simulation, optimum location, encryption etc.
are all based on mathematics of different levels.

>> This must be the most ignorant post I've seen
>> this week. The *best* programmers I've seen actually had mathematic 
>> education.
> 
> Depends. I would call Knuth as one of the worst programmers. Look at
> his total
> failures on literature programming. Software Engineering is something
> very
> different.

I think you will find it very difficult to write a piece of code
that are not heavily influenced by Knuth.

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Arne Vajhøj
Lew wrote:
>> very
>> different. Having a dead - i mean end of development line software
>> like TeX - and
> 
> Based on what do you call it "dead end".  It's used, it's outlasted many 
> other flashes in the pan, it does what its users require.  You will need 
> evidence for such a claim.

According to wikipedia the last version is from december 2002.

That level of activity could be considered dead.

It would for almost any other software. Tex has some
"absolute" over it, so I am not sure normal software
practices apply.

But you could argue based on that.

Arne

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


Splitting URLs

2007-10-21 Thread Steven D'Aprano
I'm trying to split a URL into components. For example:

URL = 'http://steve:[EMAIL PROTECTED]:82/dir" + \
'ectory/file.html;params?query#fragment'


(joining the strings above with plus has no significance, it's just to 
avoid word-wrapping)

If I split the URL, I would like to get the following components:

scheme = 'http'
netloc = 'steve:[EMAIL PROTECTED]:82'
username = 'steve'
password = 'secret'
hostname = 'www.domain.com.au'
port = 82
path = '/directory/file.html'
parameters = 'params'
query = 'query'
fragment = 'fragment'

I can get *most* of the way with urlparse.urlparse: it will split the URL 
into a tuple:

('http', 'steve:[EMAIL PROTECTED]:82', '/directory/file.html', 
'params', 'query', 'fragment')

If I'm using Python 2.5, I can split the netloc field further with named 
attributes. Unfortunately, I can't rely on Python 2.5 (for my sins I have 
to support 2.4). Before I write code to split the netloc field by hand (a 
nuisance, but doable) I thought I'd ask if there was a function somewhere 
in the standard library I had missed.

This second question isn't specifically Python related, but I'm asking it 
anyway...

I'd also like to split the domain part of a HTTP netloc into top level 
domain (.au), second level (.com), etc. I don't need to validate the TLD, 
I just need to split it. Is splitting on dots sufficient, or will that 
miss some odd corner case of the HTTP specification?

(If it does, I might decide to live with the lack... it depends on how 
odd the corner is, and how much work it takes to fix.)



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


Re: ACM SIGAPL / APL2007 Conference / Montreal / one week away

2007-10-21 Thread Dan Nagle
Hello,

Can we please have a little trimming of newsgroups?

Fortran's character set is a nice safe subset
of seven-bit ASCII.

Veli-Matti wrote:
> Gosi wrote:
> ..
>> I can not use the APL character set at all.
>> It is too mixed up with my national characters.
> 
> What about a unicode version of APL?
> 
> Honestly, I cannot use J because it mixes with all
> the characters I use... ;)
> -Veli-Matti
> 
> 
> 
> 


-- 

Dan Nagle
Purple Sage Computing Solutions, Inc.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Lew
llothar wrote:
> Depends. I would call Knuth as one of the worst programmers. Look at
> his total
> failures on literature programming. Software Engineering is something

Umm, the term is "literate" programmer and there is evidence that it is not a 
"failure".

> very
> different. Having a dead - i mean end of development line software
> like TeX - and

Based on what do you call it "dead end".  It's used, it's outlasted many other 
flashes in the pan, it does what its users require.  You will need evidence 
for such a claim.

> then trying to base a theory about software engineering (which is
> based on changes)

"base a theory" on what?  There's a clause missing here.

> is so absolutely stupid ...

Is that a technical evaluation?  It looks like random inflammatory comments 
without basis in logic or evidence.  Can stupidity be absolute?  What is the 
metric of stupidity?

How would you disprove that assertion?  Oh, wait, there wasn't an assertion. 
The sentence was incomplete.  What are you asserting?

A theory based on what, exactly, is "so absolutely stupid"?

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread llothar
> I'm, not sure that I'm getting your point, but are you trying to argue that
> _not_ knowing mathemathics makes you a better programmer?

No but it doesn't help you very much either. They are just different
skills.

> Or maybe that learning math is useless to a programmer?

No and at least the mathematical idea of building a universe on a
basic set
of axioms is pretty exciting for a programmer. But it's the idea not
the real
wisdom (I never had to use any serious maths in my 25 years of
programming)
that you need as a programmer

> This must be the most ignorant post I've seen
> this week. The *best* programmers I've seen actually had mathematic education.

Depends. I would call Knuth as one of the worst programmers. Look at
his total
failures on literature programming. Software Engineering is something
very
different. Having a dead - i mean end of development line software
like TeX - and
then trying to base a theory about software engineering (which is
based on changes)
is so absolutely stupid ...



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


Re: Selection error...

2007-10-21 Thread Guilherme Polo
2007/10/21, Abandoned <[EMAIL PROTECTED]>:
>
> > cursor.execute("SELECT id from templinks where url=%s", (URL,) )
> Yes i already try this before ask.
>
> URL.decode('latin-1').encode('utf-8') to transcode it into utf-8.
> i know this but how do you know the html encoding's a latin-1 ?

Try using chardet to detect the encoding

> Html
> encoding is to be iso-8859-9 or ascii or cp1254 ... For this reason
> URL.decode('latin-1').encode('utf-8') must give me error. I'm trying
> now and whet it finished i write the result here.
> Thank you very much for your helps.
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>


-- 
-- Guilherme H. Polo Goncalves
-- 
http://mail.python.org/mailman/listinfo/python-list


Visibility of symbols between extension modules

2007-10-21 Thread Sudharshan S
Hi all,
I have been learning to write extension modules using the C API that
python provides, and have hit a minor roadblock that is turning out to
be major headache.
My project essentially is organized as follows,

 foo
  |
   -
   |  ||
  bar_foo baz

_foo basically does some init stuff, nothing much. Thats where the
problem starts. The "handler" variable which is initialized in _foo
isn't visible to others. One solution that worked was calling the
initializing function in each of the module's PyMODINIT_FUNC. Debugging
through the interpreter I found out the it loads all the .so's and
executes PyMODINIT_FUNCs. But by doing so, the routine to initialize the
handle gets executed three times, something which i find to be sort of
unclean. 
The definition of the variable is included in a header and the sources
of the other modules include this master header, So I do have that
variable in scope, but its not initialized. _foo does the job of
declaring that variable.
I did my share of RTFM and found CObjects as a potential alternative.
But I feel its use rather complicated for a single variable that goes
out of scope. Is there any other way to solve this, or is my approach
itself borked =(?, What am I missing?

Thanks for your help
-- 
Sudharshan S
http://www.sudharsh.wordpress.com

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


Re: ACM SIGAPL / APL2007 Conference / Montreal / one week away

2007-10-21 Thread Veli-Matti
Gosi wrote:
..
> I can not use the APL character set at all.
> It is too mixed up with my national characters.

What about a unicode version of APL?

Honestly, I cannot use J because it mixes with all
the characters I use... ;)
-Veli-Matti




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


Re: ACM SIGAPL / APL2007 Conference / Montreal / one week away

2007-10-21 Thread Wade Ward


"Gosi" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> On Oct 20, 10:46 pm, rbe <[EMAIL PROTECTED]> wrote:
>> On Oct 15, 5:22 am, Mike Kent <[EMAIL PROTECTED]> wrote:
>>
>> > Conference page
>> > // with links to program details //
>> > (updated Friday 10/12)
>>
>> >http://www.sigapl.org/apl2007.html...
>>
>> At APL2007, I'll be announcing the release of the APEX APL compiler,
>> version 0.0.0, under GPL Version 2.
>> If you can't wait until then, you can download it for Dyalog Linux 
>> atwww.snakeisland.com.
>>
>> Bob
>
> Congratulations on your compiler.
>
> I looked through your pages and came across this
>
> "[This article originally appeared in the ACM SIGAPL Quote Quad, vol.
> 21, no.1, September 1990.]
>
> The APL character set has contributed, more than any other facet of
> the language, to its lack of acceptance in the computing community at
> large. The character set is a metaproblem -- not a problem in and of
> itself, but a creator of other recurring problems of hardware,
> software, ergonomics, and psychology. The adoption of new, ASCII-base
> dialects of APL, such as J, is suggested as one solution to the
> character set problem. "
>
> This is also the reason for why I will not be downloading your new
> compiler until there will be a J version of it, something I hope will
> be coming soon.
>
> I can not use the APL character set at all.
> It is too mixed up with my national characters.
>

witch ones?
-- 
wade ward
[EMAIL PROTECTED]
"Der Katze tritt die Treppe hoch;  Der Kater tritt sie krumm.%
% De Teufel geit um; er bringt de menschen allet dumm."
schau, schau 


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


Shed Skin Python-to-C++ compiler 0.0.24, 0.0.25

2007-10-21 Thread Mark Dufour
Hi all,

I've just released Shed Skin 0.0.25. Together with the (unannounced)
0.0.24 release, there have been some interesting changes. Most
importantly perhaps, Shed Skin now caches (most) 1-length strings,
which can improve performance dramatically for string-intensive
programs. I also performed a long-overdue rewrite of the virtual
function detection code, which should work much more reliably now, at
least for relatively simple cases :)

0.0.24:
-1-length string caching

0.0.25
-improved detection of virtual functions
-further set optimizations
-fix for extension modules and certain default arguments
-exhaustive checking of C++ keywords
-fix for some combinations of arguments to min, max
-several minor bug fixes

As always, I could really use more help in pushing Shed Skin forward.
Let me know if you'd like to help out, but are not sure where to
begin.

The Shed Skin homepage:
http://mark.dufour.googlepages.com


Thanks,
Mark.
--
"One of my most productive days was throwing away 1000 lines of code"
- Ken Thompson
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ACM SIGAPL / APL2007 Conference / Montreal / one week away

2007-10-21 Thread Gosi
On Oct 20, 10:46 pm, rbe <[EMAIL PROTECTED]> wrote:
> On Oct 15, 5:22 am, Mike Kent <[EMAIL PROTECTED]> wrote:
>
> > Conference page
> > // with links to program details //
> > (updated Friday 10/12)
>
> >http://www.sigapl.org/apl2007.html...
>
> At APL2007, I'll be announcing the release of the APEX APL compiler,
> version 0.0.0, under GPL Version 2.
> If you can't wait until then, you can download it for Dyalog Linux 
> atwww.snakeisland.com.
>
> Bob

Congratulations on your compiler.

I looked through your pages and came across this

"[This article originally appeared in the ACM SIGAPL Quote Quad, vol.
21, no.1, September 1990.]

The APL character set has contributed, more than any other facet of
the language, to its lack of acceptance in the computing community at
large. The character set is a metaproblem -- not a problem in and of
itself, but a creator of other recurring problems of hardware,
software, ergonomics, and psychology. The adoption of new, ASCII-base
dialects of APL, such as J, is suggested as one solution to the
character set problem. "

This is also the reason for why I will not be downloading your new
compiler until there will be a J version of it, something I hope will
be coming soon.

I can not use the APL character set at all.
It is too mixed up with my national characters.

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


Re: Distributed RVS, Darcs, tech love

2007-10-21 Thread Timofei Shatrov
On Sat, 20 Oct 2007 14:04:06 -0700, llothar <[EMAIL PROTECTED]> tried to confuse
everyone with this message:

>
>> I love math. I respect Math. I'm nothing but a menial servant to
>> Mathematics.
>
>Programming and use cases are not maths. Many mathematics are
>the worst programmers i've seen because they want to solve things and
>much more often you just need heuristics. Once they are into exact
>world they loose there capability to see the factor of relevance in
>algorithms.
>
>And they almost never match the mental model that the average
>user has about a problem.

I'm, not sure that I'm getting your point, but are you trying to argue that 
_not_ knowing mathemathics makes you a better programmer? Or maybe that learning
math is useless to a programmer? This must be the most ignorant post I've seen
this week. The *best* programmers I've seen actually had mathematic education.
The programmers who don't know math are the ones who end up on DailyWTF.

-- 
|Don't believe this - you're not worthless  ,gr-.ru
|It's us against millions and we can't take them all... |  ue il   |
|But we can take them on!   | @ma  |
|   (A Wilhelm Scream - The Rip)|__|
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Selection error...

2007-10-21 Thread Abandoned

> cursor.execute("SELECT id from templinks where url=%s", (URL,) )
Yes i already try this before ask.

URL.decode('latin-1').encode('utf-8') to transcode it into utf-8.
i know this but how do you know the html encoding's a latin-1 ? Html
encoding is to be iso-8859-9 or ascii or cp1254 ... For this reason
URL.decode('latin-1').encode('utf-8') must give me error. I'm trying
now and whet it finished i write the result here.
Thank you very much for your helps.

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


Re: logging module - restricted mode error

2007-10-21 Thread Paul Rudin
Vinay Sajip <[EMAIL PROTECTED]> writes:

> On 16 Oct, 04:14, Paul Rudin <[EMAIL PROTECTED]> wrote:
>> I'm occasionally seeing tracebacks like this:
>>
>> Traceback (most recent call last):
>>   File "logging/__init__.py", line 744, in emit
>>   File "logging/__init__.py", line 630, in format
>>   File "logging/__init__.py", line 421, in format
>> RuntimeError: instance.__dict__ not accessible in restricted mode
>>
>> I'm not sure what it means. Googling leads me to
>>  but that says that those
>> modules were disabled in 2.3 and I'm running 2.5.1. In any case I'm
>> not using them (although it could be that one of the 3rd party modules
>> I'm using does something.)
>>
>> Could someone please explain what this error means?
>
> Can you say a little bit more about the execution environment? For
> example, are you running under mod_python? If so, which version?

I'm not running under mod_python - but this is using cherrypy. I also
do some passing of pickled objects between two python processes, which
I guess could be relevant.

>
> When googling, did you search for the exact text of the error message?
> For example, did you see the following post?
>
> http://mail-archives.apache.org/mod_mbox/httpd-python-dev/200404.mbox/[EMAIL 
> PROTECTED]
>

I hadn't noticed that particularly, but I'm still a little unclear as
to what's going on. That thread dates from 3 years ago and it seems to
imply that mod python is using restricted mode (in the sense of the
the rexec module), which won't run in 2.5 will it?

One parts that says:

  "Restricted mode is a strange beast, in that there isn't really
   anything like a "restricted mode" flag, but it looks at a pointer
   somwhere (don't remember now), and if it's not what is expected, it
   concludes that it's in restricted mode. So this behaviour is
   actually a sign of a bug where an object is created in one
   subinterpreter but is running in another... These bugs can be hard
   to track down."

What exactly is meant by a subinterpreter? Python running in a
subprocess?
-- 
http://mail.python.org/mailman/listinfo/python-list