Re: How to change string or number passed as argument?

2009-09-20 Thread Hendrik van Rooyen
On Sunday 20 September 2009 03:59:21 Peng Yu wrote:

> I know that strings or numbers are immutable when they passed as
> arguments to functions. But there are cases that I may want to change
> them in a function and propagate the effects outside the function. I
> could wrap them in a class, which I feel a little bit tedious. I am
> wondering what is the common practice for this problem.

You can just ignore the immutability.
Nothing stops you doing something like this;

def reader(port,buffer):
buffer += port.read()
return buffer

and calling it repetitively until buffer is as long as you want it.

- Hendrik

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


Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Dave Angel



Peng Yu wrote:



def __str__(self):
return 'Bin(%s, %s)' %(self.x, self.y)
__repr__ =_str__

Please use an initial capital letter when defining a class, this is
the accepted way in many languages!!!



I want to understand the exact meaning of the last line ('__repr__ __str__'). 
Would you please point me to the section of the python
manual that describes such usage.

Regards,
Peng

  
I don't know where to look in the various manuals, but what we have here 
are class attributes.  Inside the class definition, each method 
definition is a class attribute.  In addition, any "variable" definition 
is a class attribute as well.  For example,

 class  MyClass(object):
   counter = 0
   def __str__(self):
 return "Kilroy"+str(self.value)
   def __init__(self, num):
 self.value = num+1

counter is a class attribute, initialized to zero.  That attribute is 
shared among all the instances, unlike data attributes, which are 
independently stored in each instance.


Anyway, the   __repr__ = __str__   simply copies a class attribute.  So 
now you have two names which call the same method.  To explicitly call 
one of them, you might use:



obj = MyClass(42)
mystring = obj.__str__()#mystring is now "Kilroy43"


But normally, you don't directly call such methods, except for debug 
purposes.  They are implicitly called by functions like print().



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


Re: An assessment of the Unicode standard

2009-09-20 Thread Greg Ewing

Hendrik van Rooyen wrote:

Yikes!  If I follow you, it is a bit like having a hollow dumb-bell with a 
hollow handle of zero length, and wanting a word for that opening between the 
knobs.


That's pretty much it, yes. Although "opening" doesn't
quite cut it, because there can be two of them sharing
an edge with no physical substance in between, yet
they are two distinct entities rather than a single
opening.

I do not think that you are likely to find a word in *any* language 
for that


Probably not in any everyday language, no. It's a fairly
abstract concept. But programming has a way of taking
abstract concepts and turning them into concrete ones.
I had this object in my data structure, and I needed a
name for it.

In any case, it doesn't affect my point, which was that
I was thinking about something that I didn't have a word,
or even a convenient phrase for.

That is probably true, but on the other hand, it is not totally rubbish 
either, as it is hard to think of stuff you have never heard of, whether you 
have an undefined word for it or not.


I quite agree that there is *some* interaction between
the language we use and the way we think, but it's a
two-way process. As a species, we're quite capable of
thinking about new things and inventing words to express
them when the need arises.

It's possible that some individuals do this more
frequently than others, e.g. mathematicians and other
people who are in the habit of exploring new ideas may
be less influenced by the constraints of language
than the general population.

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


Re: control CPU usage

2009-09-20 Thread Dave Angel

Jiang Fung Wong wrote:

Dear All,

Thank you for the information. I think I've some idea what the problem is
about after seeing the replies.

More information about my system and my script

PIII 1Ghz, 512MB RAM, Windows XP SP3

The script monitors global input using PyHook,
and calculates on the information collected from the events to output some
numbers. Based on the numbers, the script then performs some automation
using SendKeys module.

here is the memory usage:
firefox.exe, 69MB, 109MB
svchost.exe, 26MB, 17MB
pythonw.exe, 22MB, 17MB
searchindexer.exe, 16MB, 19MB

My first guess is that the script calculated for too long time after
receiving an event before propagating it to the default handler, resulting
the system to be non-responsive. I will try to implement the calculation
part in another thread.
Then the separate will have 100% CPU usage, hope the task scheduling of
Windows works in my favour.

  
(You top-posted this message, putting the whole stream out of order.  So 
I deleted the history.)


All my assumptions about your environment are now invalid.  You don't 
have a CPU-bound application, you have a Windows application with event 
loop.  Further, you're using SendKeys to generate a keystroke to the 
other process.  So there are many things that could be affecting your 
latency, and all my previous guesses are useless.


Adding threads to your application will probably slow the system down 
much more.  You need to find out what your present problem is before 
complicating it.


You haven't really described the problem.  You say the system is 
unresponsive, but you made it that way by creating a global hook;  a 
notoriously inefficient mechanism.  That global hook inserts code into 
every process in the system, and you've got a pretty low-end environment 
to begin with.  So what's the real problem, and how severe is it?  And 
how will you measure improvement?  The Task manager numbers are probably 
irrelevant.


My first question is whether the pyHook event is calling the SendKeys 
function directly (after your "lengthy" calculation) or whether there 
are other events firing off  in between.  If it's all being done in the 
one event, then measure its time, and gather some statistics (min time, 
max time, average...).  The task manager has far too simplistic 
visibility to be useful for this purpose.


What else is this application doing when it's waiting for a pyHook 
call?  Whose event loop implementation are you using?  And the program 
you're trying to control -- is there perhaps another way in?


DaveA

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


Re: What are the naming convention for private member variable, and private and public member function?

2009-09-20 Thread Dave Angel

Peng Yu wrote:

Hi,

It says in http://www.python.org/dev/peps/pep-0008/

"Method Names and Instance Variables

  Use the function naming rules: lowercase with words separated by
  underscores as necessary to improve readability.

  Use one leading underscore only for non-public methods and
instance
  variables."

I am wondering what is the different between member function and
member variable in term of naming convention.

Regards,
Peng

  
Member functions are verbs or sometimes adjectives, while member 
variables are nouns.


DaveA

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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
On Sep 19, 9:34 pm, Peng Yu  wrote:
> On Sep 19, 6:05 pm, Robert Kern  wrote:
> >http://nedbatchelder.com/text/python-parsers.html
>
> This is more a less just a list of parsers. I would like some detailed
> guidelines on which one to choose for various parsing problems.

it would be simpler if you described what you want to do - parsers can
be used for a lot of problems.

also, the parsers do not exist in isolation - you need to worry about
whether they are supported, how good the documentation is, etc.

and different parsers handle different grammars - see
http://wiki.python.org/moin/LanguageParsing - so if you already have a
particular grammar then your life is simpler if you choose a parser
that matches.


these are the three that i know most about - i think all three are
currently maintained:

for simple parsing problems, i think pyparsing is the most commonly
used - http://pyparsing.wikispaces.com/

my own lepl - http://www.acooke.org/lepl/ - tries to combine ease of
use with some more advanced features

the nltk - http://www.nltk.org/ - is particularly targeted at parsing
natural languages and includes a wide variety of tools.


but for parsing a large project you might be better interfacing to a
compiled parser (lepl has memoisation, so should scale quite well, but
it's not something i've looked at in detail yet).

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


Pickle Encoding Errors

2009-09-20 Thread Dan
To demonstrate the problem I have written the following program:

___  Code Start

import pickle

destruct=1

class PickleTest:
library={}

def __init__(self):
self.unpickle()
def __del__(self):
if destruct:
print "Pickling from destructor..."
self.pickle()

def unpickle(self):
try:
f=open("pickle.txt")
self.library=pickle.load(f)
f.close()
print "Unpickled just fine"
except:
print "Error unpickling"
self.library={u"A": 1,
  u"B": 2,
  u"C": 3}

def pickle(self):
f=open("pickle.txt","w")
pickle.dump(self.library,f)
f.close()
print "Pickled just fine"

if __name__=="__main__":
pt=PickleTest()
if not destruct:
print "Pickling from __main__..."
pt.pickle()
___ Code End


Running the program with "pickle.txt" not created and destruct=1
generates the following output:

Error unpickling
Pickling from destructor...
Exception exceptions.LookupError: 'unknown encoding: raw-unicode-
escape' in > ignored

If I now change destruct to 0 the output is:

Error unpickling
Pickling from __main__...
Pickled just fine

Even more odd is that with an existing "pickle.txt" and destruct set
to 1 it seems to work correctly:

Unpickled just fine
Pickling from destructor...
Pickled just fine



I'm running Python 2.5.4 on Debian Sid.

If anybody understands the error please enlighten me.

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


Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 4:42 AM, Dave Angel  wrote:
>
>
> Peng Yu wrote:
>>
>> 
>>>
>>>    def __str__(self):
>>>        return 'Bin(%s, %s)' %(self.x, self.y)
>>>    __repr__ =_str__
>>>
>>> Please use an initial capital letter when defining a class, this is
>>> the accepted way in many languages!!!
>>>
>>
>> I want to understand the exact meaning of the last line ('__repr__
>> __str__'). Would you please point me to the section of the python
>> manual that describes such usage.
>>
>> Regards,
>> Peng
>>
>>
>
> I don't know where to look in the various manuals, but what we have here are
> class attributes.  Inside the class definition, each method definition is a
> class attribute.  In addition, any "variable" definition is a class
> attribute as well.  For example,
>  class  MyClass(object):
>       counter = 0
>       def __str__(self):
>             return "Kilroy"+str(self.value)
>       def __init__(self, num):
>             self.value = num+1
>
> counter is a class attribute, initialized to zero.  That attribute is shared
> among all the instances, unlike data attributes, which are independently
> stored in each instance.
>
> Anyway, the   __repr__ = __str__   simply copies a class attribute.  So now
> you have two names which call the same method.  To explicitly call one of
> them, you might use:

Is __repr__ = __str__ copy by reference or by value? If I change
__str__ later on, will __repr__ be changed automatically?

Regards,
Peng

> obj = MyClass(42)
> mystring = obj.__str__()        #mystring is now "Kilroy43"
>
>
> But normally, you don't directly call such methods, except for debug
> purposes.  They are implicitly called by functions like print().
>
>
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 6:50 AM, andrew cooke  wrote:
> On Sep 19, 9:34 pm, Peng Yu  wrote:
>> On Sep 19, 6:05 pm, Robert Kern  wrote:
>> >http://nedbatchelder.com/text/python-parsers.html
>>
>> This is more a less just a list of parsers. I would like some detailed
>> guidelines on which one to choose for various parsing problems.
>
> it would be simpler if you described what you want to do - parsers can
> be used for a lot of problems.

I have never used any parser. The task at my hand right now is to
parse this http://genome.ucsc.edu/goldenPath/help/wiggle.html, which
is a fairly simple even without any parser package.

I think that it is worthwhile for me to learn some parser packages to
try to parse this format. So that I may in future parse more complex
syntax. Do you have any suggestion what parser I should use for now?

Regards,
Peng

> also, the parsers do not exist in isolation - you need to worry about
> whether they are supported, how good the documentation is, etc.
>
> and different parsers handle different grammars - see
> http://wiki.python.org/moin/LanguageParsing - so if you already have a
> particular grammar then your life is simpler if you choose a parser
> that matches.
>
>
> these are the three that i know most about - i think all three are
> currently maintained:
>
> for simple parsing problems, i think pyparsing is the most commonly
> used - http://pyparsing.wikispaces.com/
>
> my own lepl - http://www.acooke.org/lepl/ - tries to combine ease of
> use with some more advanced features
>
> the nltk - http://www.nltk.org/ - is particularly targeted at parsing
> natural languages and includes a wide variety of tools.
>
>
> but for parsing a large project you might be better interfacing to a
> compiled parser (lepl has memoisation, so should scale quite well, but
> it's not something i've looked at in detail yet).
>
> andrew
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread alex23
Peng Yu  wrote:
> Is __repr__ = __str__ copy by reference or by value? If I change
> __str__ later on, will __repr__ be changed automatically?

What would you expect the outcome to be if these were functions rather
than class methods? (Or any type of object, really...)

Wouldn't it be quicker (and certainly less spammy) to test this out in
the interpreter?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to get the minimum number that can be represented?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 12:46 AM, Daniel Fetchinson
 wrote:
>> Suppose I want to define a function that return the minimum number
>> that can be represented.
>>
>> def f(x):
>>   #body
>>
>> That it, if I call f(10), f will return the minimum integer that can
>> be represented in the machine; if I cal f(10.5), f will return the
>> minimum float that can be represented in the machine.
>>
>> Could somebody let me know what should be in the function body?
>
> I'm not sure this is what you are looking for but have a look at
>
> import sys
> print sys.maxint

The problem is how to know what type of the argument and call the
corresponding function.

In C++, it is relatively easy ( header). Is there an
equivalent in python?

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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
On Sep 20, 8:11 am, Peng Yu  wrote:
> On Sun, Sep 20, 2009 at 6:50 AM, andrew cooke  wrote:
> > On Sep 19, 9:34 pm, Peng Yu  wrote:
> >> On Sep 19, 6:05 pm, Robert Kern  wrote:
> >> >http://nedbatchelder.com/text/python-parsers.html
>
> >> This is more a less just a list of parsers. I would like some detailed
> >> guidelines on which one to choose for various parsing problems.
>
> > it would be simpler if you described what you want to do - parsers can
> > be used for a lot of problems.
>
> I have never used any parser. The task at my hand right now is to
> parse thishttp://genome.ucsc.edu/goldenPath/help/wiggle.html, which
> is a fairly simple even without any parser package.
>
> I think that it is worthwhile for me to learn some parser packages to
> try to parse this format. So that I may in future parse more complex
> syntax. Do you have any suggestion what parser I should use for now?

pyparsing would work fine for that, and has a broad community of users
that will probably be helpful.

i am currently working on an extension to lepl that is related, and i
may use that format as an example.  if so, i'll tell you.  but for
now, i think pyparsing makes more sense for you.

andrew

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


Re: Pickle Encoding Errors

2009-09-20 Thread Laszlo Nagy



I'm running Python 2.5.4 on Debian Sid.

If anybody understands the error please enlighten me.
  


Very interesting! Here is a minimalist version:

import pickle
class PickleTest:
   def __init__(self):
   self.library={u"A": 1,u"B": 2,u"C": 3}
   def __del__(self):
   self.pickle()
   def pickle(self):
   pickle.dumps(self.library)
pt=PickleTest()

However, the exception is not thrown if dictionary keys are not 
unicodes. cPickle version is even more strange:


import cPickle
class PickleTest:
   def __init__(self):
   self.library={u"A": 1,u"B": 2,u"C": 3}
   def __del__(self):
   self.pickle()
   def pickle(self):
   cPickle.dumps(self.library)

pt=PickleTest()

Result:

Exception AttributeError: "'NoneType' object has no attribute 'dumps'" 
in method PickleTest.__del__ of <__main__.PickleTest instance at 
0x00CC1F08>> ignored


Of course the error is gone if you do this:

if __name__ == "__main__":
   pt=PickleTest()
   del pt # No more references to object, will be destroyed before the 
main program starts exiting.


You should NOT write files from object destructors anyway. You can never 
know when an object willl be destroyed. The correct way to implement 
this is to put it in try - finally


pt=PickleTest()
try:
   do_something_with(pt)
finally:
   pt.pickle()

Best.

  Laszlo





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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
On Sep 19, 11:39 pm, TerryP  wrote:
[...]
> For flat data, simple unix style rc or dos style ini file will often
> suffice, and writing a parser is fairly trivial; in fact writing a
[...]

python already includes parsers for ".ini" configuration files.

[...]
> The best way to choose a parser, is experiment with several, test (and
> profile!) them according to the project, then pick the one you like
> best, out of those that are suitable for the task. Profiling can be
> very important.

profiling is going to show you the constant complexity, but - unless
you think hard - it's not going to explain how a parser will scale
(how performance changes as the amount of text to be parsed
increases).  for that, you need to look at the algorithm used, which
is usually documented somewhere.  there's going to be trade-offs -
parsers that handle large texts better could well be more complex and
slower on small texts.

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


Re: Pickle Encoding Errors

2009-09-20 Thread Christian Heimes
Dan wrote:
> Error unpickling
> Pickling from destructor...
> Exception exceptions.LookupError: 'unknown encoding: raw-unicode-
> escape' in  instance at 0xb7d3decc>> ignored
> 
> If I now change destruct to 0 the output is:
> 
> Error unpickling
> Pickling from __main__...
> Pickled just fine
> 
> Even more odd is that with an existing "pickle.txt" and destruct set
> to 1 it seems to work correctly:
> 
> Unpickled just fine
> Pickling from destructor...
> Pickled just fine
> 
> 
> 
> I'm running Python 2.5.4 on Debian Sid.
> 
> If anybody understands the error please enlighten me.

__del__ is called in an indeterministic order. Most of the Python
environment is already gone when your __del__ method is called. The
pickle module doesn't have enough bits left to fulfill its job.

Christian

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


Re: pygame and py2app : big package

2009-09-20 Thread Pierre-Alain Dorange
TerryP  wrote:

> > I used py2app on Mac to build a package of my game (using pygame).
> > It works fine (better than py2exe, i can'tmake work at tht time).
> >
> > But the package is very big.
> > The biggest "thing" is numpy lib : 19 MB !
> >
> > numpy is very big and i doubt all is reallly needed
> >
> 
> Excuse me, but what was the point? (id est, are you just saying this
> or do you wish to ask a question?;)

Sorry, it was not clear.
But i want to know if i can make the package smaller, because the total
package weight 59.4 MB just for a small arcade game.

-- 
Pierre-Alain Dorange

MicroWar 2.0 : tuez des PC

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


Re: Pickle Encoding Errors

2009-09-20 Thread Dan
On 20 Sep, 13:29, Christian Heimes  wrote:
> Dan wrote:
> > Error unpickling
> > Pickling from destructor...
> > Exception exceptions.LookupError: 'unknown encoding: raw-unicode-
> > escape' in  > instance at 0xb7d3decc>> ignored
>
> > If I now change destruct to 0 the output is:
>
> > Error unpickling
> > Pickling from __main__...
> > Pickled just fine
>
> > Even more odd is that with an existing "pickle.txt" and destruct set
> > to 1 it seems to work correctly:
>
> > Unpickled just fine
> > Pickling from destructor...
> > Pickled just fine
>
> > I'm running Python 2.5.4 on Debian Sid.
>
> > If anybody understands the error please enlighten me.
>
> __del__ is called in an indeterministic order. Most of the Python
> environment is already gone when your __del__ method is called. The
> pickle module doesn't have enough bits left to fulfill its job.
>
> Christian

Thank you both for your advice. Python is very new to me so still
plenty to learn.
I still think it's interesting that once the file exists there is no
error generated but at least I know how it should be done.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke

One word of warning - the documentation for that format says at the
beginning that it is compressed in some way.  I am not sure if that
means within some program, or on disk.  But most parsers will not be
much use with a compressed file - you will need to uncompress it first.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 7:20 AM, andrew cooke  wrote:
> On Sep 20, 8:11 am, Peng Yu  wrote:
>> On Sun, Sep 20, 2009 at 6:50 AM, andrew cooke  wrote:
>> > On Sep 19, 9:34 pm, Peng Yu  wrote:
>> >> On Sep 19, 6:05 pm, Robert Kern  wrote:
>> >> >http://nedbatchelder.com/text/python-parsers.html
>>
>> >> This is more a less just a list of parsers. I would like some detailed
>> >> guidelines on which one to choose for various parsing problems.
>>
>> > it would be simpler if you described what you want to do - parsers can
>> > be used for a lot of problems.
>>
>> I have never used any parser. The task at my hand right now is to
>> parse thishttp://genome.ucsc.edu/goldenPath/help/wiggle.html, which
>> is a fairly simple even without any parser package.
>>
>> I think that it is worthwhile for me to learn some parser packages to
>> try to parse this format. So that I may in future parse more complex
>> syntax. Do you have any suggestion what parser I should use for now?
>
> pyparsing would work fine for that, and has a broad community of users
> that will probably be helpful.
>
> i am currently working on an extension to lepl that is related, and i
> may use that format as an example.  if so, i'll tell you.  but for
> now, i think pyparsing makes more sense for you.

The file size of a wig file can be very large (GB). Most tasks on this
file format does not need the parser to save all the lines read from
the file in the memory to produce the parsing result. I'm wondering if
pyparsing is capable of parsing large wig files by keeping only
minimum required information in the memory.

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


Re: How to get the minimum number that can be represented?

2009-09-20 Thread Radu Grigore
On Sep 20, 1:15 pm, Peng Yu  wrote:
> The problem is how to know what type of the argument and call the
> corresponding function.

>>> type(1)

>>> type(1.2)

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


Re: control CPU usage

2009-09-20 Thread kakarukeys
On Sep 20, 6:24 pm, Dave Angel  wrote:
> Jiang Fung Wong wrote:
> > Dear All,
>
> > Thank you for the information. I think I've some idea what the problem is
> > about after seeing the replies.
>
> > More information about my system and my script
>
> > PIII 1Ghz, 512MB RAM, Windows XP SP3
>
> > The script monitors global input using PyHook,
> > and calculates on the information collected from the events to output some
> > numbers. Based on the numbers, the script then performs some automation
> > using SendKeys module.
>
> > here is the memory usage:
> > firefox.exe, 69MB, 109MB
> > svchost.exe, 26MB, 17MB
> > pythonw.exe, 22MB, 17MB
> > searchindexer.exe, 16MB, 19MB
>
> > My first guess is that the script calculated for too long time after
> > receiving an event before propagating it to the default handler, resulting
> > the system to be non-responsive. I will try to implement the calculation
> > part in another thread.
> > Then the separate will have 100% CPU usage, hope the task scheduling of
> > Windows works in my favour.
>
> (You top-posted this message, putting the whole stream out of order.  So
> I deleted the history.)
>
> All my assumptions about your environment are now invalid.  You don't
> have a CPU-bound application, you have a Windows application with event
> loop.  Further, you're using SendKeys to generate a keystroke to the
> other process.  So there are many things that could be affecting your
> latency, and all my previous guesses are useless.
>
> Adding threads to your application will probably slow the system down
> much more.  You need to find out what your present problem is before
> complicating it.
>
> You haven't really described the problem.  You say the system is
> unresponsive, but you made it that way by creating a global hook;  a
> notoriously inefficient mechanism.  That global hook inserts code into
> every process in the system, and you've got a pretty low-end environment
> to begin with.  So what's the real problem, and how severe is it?  And
> how will you measure improvement?  The Task manager numbers are probably
> irrelevant.
>
> My first question is whether the pyHook event is calling the SendKeys
> function directly (after your "lengthy" calculation) or whether there
> are other events firing off  in between.  If it's all being done in the
> one event, then measure its time, and gather some statistics (min time,
> max time, average...).  The task manager has far too simplistic
> visibility to be useful for this purpose.
>
> What else is this application doing when it's waiting for a pyHook
> call?  Whose event loop implementation are you using?  And the program
> you're trying to control -- is there perhaps another way in?
>
> DaveA

Hi,

Sorry I wasn't sure how to use Google groups to post a msg to the
newsgroup, I used Gmail to write my previous reply. What you and the
other guy have provided me isn't useless. Now I understand the non-
responsiveness may not be caused by high CPU usage, as the OS, be it
Windows or Linux, has a way to prioritize the tasks. This is a vital
clue to me.

By "not responsive", I mean, for some time, the mouse pointer is not
moving smoothly, to such extent that I can't do anything with the
mouse. It's like playing a multi-player game on a connection with a
lot of lag. It's not caused by global hook, because it happens under
certain condition, i.e. when fpa.ProcessEvent(word) is computing.

I included my main script for your reference. Comments:
(1) The automation method tc.Auto() is slow, but it doesn't cause any
problem, because the user would wait for the automation to finish,
before he continues to do something.

(2) all other methods invoked are fast, except fpa.ProcessEvent(word)
(this information is obtained from profiling). It is this method that
causes 100% CPU usage. I'm planning to move this method to a separate
thread, so that OnEvent(event) can finish executing, while the
separate thread goes on to finish its calculation. Is this a good
idea?

import pyHook
import TypingAnalyzer
import GUI

def OnEvent(event):
if hasattr(event, "Key") and event.Ascii == 9 and event.Key == "Tab"
and event.Injected == 0 and event.Alt == 0:
tc.Auto()
return False
else:
recognized = rk.ProcessEvent(event)
if recognized:
tc.MatchChar(recognized)
paragraph = rc.ProcessEvent(recognized)
if paragraph:
for word in paragraph:
fpa.ProcessEvent(word)

return True

hm = pyHook.HookManager()
hm.MouseAllButtonsDown = OnEvent
hm.KeyDown = OnEvent
hm.HookMouse()
hm.HookKeyboard()

rk = TypingAnalyzer.ReadKey()
rc = TypingAnalyzer.ReadChar()
fpa =  TypingAnalyzer.Analysis()
tc = TypingAnalyzer.Automation(fpa)

if __name__ == '__main__':
app = GUI.AWAApp()
app.MainLoop()

Thank you for your attention.
-- 
ht

Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
> The file size of a wig file can be very large (GB). Most tasks on this
> file format does not need the parser to save all the lines read from
> the file in the memory to produce the parsing result. I'm wondering if
> pyparsing is capable of parsing large wig files by keeping only
> minimum required information in the memory.

ok, now you are getting into the kind of detail where you will need to
ask the authors of individual packages.

lepl is stream oriented and should behave as you want (it will only
keep in memory what it needs, and will read data gradually from a
file) but (1) it's fairly new and i have not tested the memory use -
there may be some unexpected memory leak; (2) it's python 2.6/3 only;
(3) parsing line-based formats like this is not yet supported very
well (you can do it, but you have to explicitly match the newline
character to find the end of line); (4) the community for support is
small.

so i would suggest asking on the pyparsing list for advice on using
that with large data files (you are getting closer to the point where
i would recommend lepl - but of course i am biased as i wrote it).

andrew

ps is there somewhere can download example files?  this would be
useful for my own testing.  thanks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke

also, parsing large files may be slow.  in which case you may be
better with a non-python solution (even if you call it from python).

your file format is so simple that you may find a lexer is enough for
what you want, and they should be stream oriented.  have a look at the
"shlex" package that is already in python.  will that help?

alternatively, perhaps plex - 
http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex/
- that is pure python, but greg ewing is a good programmer and he says
on that page it is as fast as possible for python, so it is probably
going to be quite fast.

andrew

ps maybe you already know, but a lexer is simpler than a parser in
that it doesn't use the context to decide how to treat things.  so it
can recognise something is a number, or a word, or a quoted string,
but not whether it is part of a track definition line or a data value,
for example.  but in this case the format is so simple that a lexer
might do quite a ot of what you want, and would make the remaining
plain python program very simple.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Compile kinterbasdb with mingw32 and python 2.6 - DLL load failed

2009-09-20 Thread David Robinow
On Mon, Sep 21, 2009 at 12:23 AM, Laszlo Nagy  wrote:
> This is what I did so far:
>
> #1. Install Python 2.6, Firebird 1.5 server (with libs and headers), egenix
> mx base and mingw C compiler
> #2. put "c:\MinGW\bin"  on the PATH (or wherever it is)
> #3. extract kinterbasdb source to a temp folder
> #4. hack setup.cfg. Change the build section:
>
> [build]
> compiler=mingw32
>
> #5. hack setup.py
>
> Replace this:
>       customCompilerName = 'msvc'
> With this:
>       customCompilerName = 'mingw32-gcc'
>
> #6. run "python setup.py install"
>
> The building and installation went find. But I cannot "import kinterbasdb"
> because I get a "DLL load failed" error. I figured out that has something to
> do with msvcr90 and "_ftime". Can you please give me some advice how to
> solve this problem?

Download Microsoft Visual C++.2008 Express Edition
-- 
http://mail.python.org/mailman/listinfo/python-list


List comprehension vs generator expression memory allocation

2009-09-20 Thread candide
Let's code a function allowing access to the multiples of a given
integer (say m) in the range from a to b where a and b are two given
integers. For instance, with data input

a,b,m=17, 42, 5

the function allows access to :

20 25 30 35 40


Each of the following two functions mult1() and mult2() solves the
question :


# -
def mult1(a,b,m):
return (x for x in range(a,b)[(m-a%m)%m:b:m])

def mult2(a,b,m):
return range(a,b)[(m-a%m)%m:b:m]
# -


mult2() function returns a list and obviously mult2() needs Python to
allocate memory for this list. What I was wondering is if the same might
be said about mult1(). More precisely, does Python allocate memory for
the whole target list range(a,b)[m-a%m:b:m]?



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


Re: Comparison of parsers in python?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 8:19 AM, andrew cooke  wrote:
>
> also, parsing large files may be slow.  in which case you may be
> better with a non-python solution (even if you call it from python).
>
> your file format is so simple that you may find a lexer is enough for
> what you want, and they should be stream oriented.  have a look at the
> "shlex" package that is already in python.  will that help?
>
> alternatively, perhaps plex - 
> http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex/
> - that is pure python, but greg ewing is a good programmer and he says
> on that page it is as fast as possible for python, so it is probably
> going to be quite fast.
>
> andrew
>
> ps maybe you already know, but a lexer is simpler than a parser in
> that it doesn't use the context to decide how to treat things.  so it
> can recognise something is a number, or a word, or a quoted string,
> but not whether it is part of a track definition line or a data value,
> for example.  but in this case the format is so simple that a lexer
> might do quite a ot of what you want, and would make the remaining
> plain python program very simple.

I don't quite understand this point.  If I don't use a parser, since
python can read numbers line by line, why I need a lexer package?

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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
> I don't quite understand this point.  If I don't use a parser, since
> python can read numbers line by line, why I need a lexer package?

for the lines of numbers it would make no difference; for the track
definition lines it would save you some work.

as you said, this is a simple format, so the case for any tool is
marginal - i'm just exploring the options.

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


Re: List comprehension vs generator expression memory allocation

2009-09-20 Thread Jon Clements
On 20 Sep, 14:35, candide  wrote:
> Let's code a function allowing access to the multiples of a given
> integer (say m) in the range from a to b where a and b are two given
> integers. For instance, with data input
>
> a,b,m=17, 42, 5
>
> the function allows access to :
>
> 20 25 30 35 40
>
> Each of the following two functions mult1() and mult2() solves the
> question :
>
> # -
> def mult1(a,b,m):
>     return (x for x in range(a,b)[(m-a%m)%m:b:m])
>
> def mult2(a,b,m):
>     return range(a,b)[(m-a%m)%m:b:m]
> # -
>
> mult2() function returns a list and obviously mult2() needs Python to
> allocate memory for this list. What I was wondering is if the same might
> be said about mult1(). More precisely, does Python allocate memory for
> the whole target list range(a,b)[m-a%m:b:m]?

Yes - range always creates a list (in the 2.x series) -- mult1 creates
a list, then returns a generator, so list(mult1(a,b,m)) is identical
to mult2(a,b,m).

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


Re: Comparison of parsers in python?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 8:49 AM, andrew cooke  wrote:
>> I don't quite understand this point.  If I don't use a parser, since
>> python can read numbers line by line, why I need a lexer package?
>
> for the lines of numbers it would make no difference; for the track
> definition lines it would save you some work.

So for the track definition, using a lexer package would be better
than using regex in python, right?

> as you said, this is a simple format, so the case for any tool is
> marginal - i'm just exploring the options.
>
> andrew
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Dave Angel

Peng Yu wrote:



you might use:



Is __repr__ =_str__ copy by reference or by value? If I change
__str__ later on, will __repr__ be changed automatically?

Regards,
Peng

  

Reference or value?  Neither one.  This assignment is no different than 
any other attribute assignment in Python.  Technically, it binds the 
name __repr__ to the function object already bound by __str__.  You now 
have a second name pointing to the same object.  Rebinding one of those 
names  to yet another different object won't affect the other name.


name1 = "this is a test"
name2 = name1
name1 = "another string"   #this has no effect on name2

print name1, name2

DaveA

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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
> So for the track definition, using a lexer package would be better
> than using regex in python, right?

they are similar.  a lexer is really just a library that packages
regular expressions in a certain way.  so you could write your own
code and you would really be writing a simple lexer.  the advantage of
writing your own code is that it will be easier to modify and you will
get more experience with regular expressions.  the advantage of using
a library (a lexer) is that it has already been tested by other
people, it is already packaged and so your code will be better
structured, and it may have features (perhaps logging, or handling of
quoted strings, for example) that will save you some work in the
future.

andrew

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


Re: How to get the minimum number that can be represented?

2009-09-20 Thread Grant Edwards
On 2009-09-20, Peng Yu  wrote:

> Suppose I want to define a function that return the minimum number
> that can be represented.
>
> def f(x):
>   #body
>
> That it, if I call f(10), f will return the minimum integer that can
> be represented in the machine; if I cal f(10.5), f will return the
> minimum float that can be represented in the machine.
>
> Could somebody let me know what should be in the function body?

The stuff you wan is in the "sys" module.

For example:

>>> sys.float_info
sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024,
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.2204460492503131e-16, radix=2, 
rounds=1)

>>> sys.maxint
2147483647

You might also want to read up on the type() builtin

-- 
Grant

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


Re: control CPU usage

2009-09-20 Thread Dave Angel

kakarukeys wrote:

On Sep 20, 6:24 pm, Dave Angel  wrote:
  

Jiang Fung Wong wrote:


Dear All,
  
Thank you for the information. I think I've some idea what the problem is

about after seeing the replies.
  
More information about my system and my script
  
PIII 1Ghz, 512MB RAM, Windows XP SP3
  
The script monitors global input using PyHook,

and calculates on the information collected from the events to output some
numbers. Based on the numbers, the script then performs some automation
using SendKeys module.
  
here is the memory usage:

firefox.exe, 69MB, 109MB
svchost.exe, 26MB, 17MB
pythonw.exe, 22MB, 17MB
searchindexer.exe, 16MB, 19MB
  
My first guess is that the script calculated for too long time after

receiving an event before propagating it to the default handler, resulting
the system to be non-responsive. I will try to implement the calculation
part in another thread.
Then the separate will have 100% CPU usage, hope the task scheduling of
Windows works in my favour.
  

(You top-posted this message, putting the whole stream out of order.  So
I deleted the history.)

All my assumptions about your environment are now invalid.  You don't
have a CPU-bound application, you have a Windows application with event
loop.  Further, you're using SendKeys to generate a keystroke to the
other process.  So there are many things that could be affecting your
latency, and all my previous guesses are useless.

Adding threads to your application will probably slow the system down
much more.  You need to find out what your present problem is before
complicating it.

You haven't really described the problem.  You say the system is
unresponsive, but you made it that way by creating a global hook;  a
notoriously inefficient mechanism.  That global hook inserts code into
every process in the system, and you've got a pretty low-end environment
to begin with.  So what's the real problem, and how severe is it?  And
how will you measure improvement?  The Task manager numbers are probably
irrelevant.

My first question is whether the pyHook event is calling the SendKeys
function directly (after your "lengthy" calculation) or whether there
are other events firing off  in between.  If it's all being done in the
one event, then measure its time, and gather some statistics (min time,
max time, average...).  The task manager has far too simplistic
visibility to be useful for this purpose.

What else is this application doing when it's waiting for a pyHook
call?  Whose event loop implementation are you using?  And the program
you're trying to control -- is there perhaps another way in?

DaveA



Hi,

Sorry I wasn't sure how to use Google groups to post a msg to the
newsgroup, I used Gmail to write my previous reply. What you and the
other guy have provided me isn't useless. Now I understand the non-
responsiveness may not be caused by high CPU usage, as the OS, be it
Windows or Linux, has a way to prioritize the tasks. This is a vital
clue to me.

By "not responsive", I mean, for some time, the mouse pointer is not
moving smoothly, to such extent that I can't do anything with the
mouse. It's like playing a multi-player game on a connection with a
lot of lag. It's not caused by global hook, because it happens under
certain condition, i.e. when fpa.ProcessEvent(word) is computing.

I included my main script for your reference. Comments:
(1) The automation method tc.Auto() is slow, but it doesn't cause any
problem, because the user would wait for the automation to finish,
before he continues to do something.

(2) all other methods invoked are fast, except fpa.ProcessEvent(word)
(this information is obtained from profiling). It is this method that
causes 100% CPU usage. I'm planning to move this method to a separate
thread, so that OnEvent(event) can finish executing, while the
separate thread goes on to finish its calculation. Is this a good
idea?

import pyHook
import TypingAnalyzer
import GUI

def OnEvent(event):
if hasattr(event, "Key") and event.Ascii == 9 and event.Key == "Tab"
and event.Injected == 0 and event.Alt == 0:
tc.Auto()
return False
else:
recognized = rk.ProcessEvent(event)
if recognized:
tc.MatchChar(recognized)
paragraph = rc.ProcessEvent(recognized)
if paragraph:
for word in paragraph:
fpa.ProcessEvent(word)

return True

hm = pyHook.HookManager()
hm.MouseAllButtonsDown = OnEvent
hm.KeyDown = OnEvent
hm.HookMouse()
hm.HookKeyboard()

rk = TypingAnalyzer.ReadKey()
rc = TypingAnalyzer.ReadChar()
fpa =  TypingAnalyzer.Analysis()
tc = TypingAnalyzer.Automation(fpa)

if __name__ == '__main__':
app = GUI.AWAApp()
app.MainLoop()

Thank you for your attention.

  
I can't readily comment on your code, since it's entirely written to

Re: Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 9:19 AM, Dave Angel  wrote:
> Peng Yu wrote:
>>
>> 
>>>
>>> you might use:
>>>
>>
>> Is __repr__ =_str__ copy by reference or by value? If I change
>> __str__ later on, will __repr__ be changed automatically?
>>
>> Regards,
>> Peng
>>
>>
>
> Reference or value?  Neither one.  This assignment is no different than any
> other attribute assignment in Python.  Technically, it binds the name
> __repr__ to the function object already bound by __str__.  You now have a
> second name pointing to the same object.  Rebinding one of those names  to
> yet another different object won't affect the other name.
>
> name1 = "this is a test"
> name2 = name1
> name1 = "another string"           #this has no effect on name2
>
> print name1, name2

I am more familiar with C++ than python. So I need to connect python
concept to C++ concept so that I can understand it better.

name1 and name are all references (in the C++ sense), right?

__repr__  and __str__ are references (in the C++ sense) to functions
and both of them could refer to the same function or two different
ones, right?

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


How python source code in large projects are organized?

2009-09-20 Thread Peng Yu
Hi,

I am wondering what is the best way of organizing python source code
in a large projects. There are package code, testing code. I'm
wondering if there has been any summary on previous practices.

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


Re: How to get the minimum number that can be represented?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 9:37 AM, Grant Edwards  wrote:
> On 2009-09-20, Peng Yu  wrote:
>
>> Suppose I want to define a function that return the minimum number
>> that can be represented.
>>
>> def f(x):
>>   #body
>>
>> That it, if I call f(10), f will return the minimum integer that can
>> be represented in the machine; if I cal f(10.5), f will return the
>> minimum float that can be represented in the machine.
>>
>> Could somebody let me know what should be in the function body?
>
> The stuff you wan is in the "sys" module.
>
> For example:
>
 sys.float_info
> sys.floatinfo(max=1.7976931348623157e+308, max_exp=1024,
> max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021,
> min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.2204460492503131e-16, 
> radix=2, rounds=1)
>
 sys.maxint
> 2147483647
>
> You might also want to read up on the type() builtin

I want avoid using any 'if' statement. In C++, I can use template. How
to do not use 'if' statement in python?

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


Re: List comprehension vs generator expression memory allocation

2009-09-20 Thread Dave Angel

Jon Clements wrote:

On 20 Sep, 14:35, candide  wrote:
  

Let's code a function allowing access to the multiples of a given
integer (say m) in the range from a to b where a and b are two given
integers. For instance, with data input

a,b,m, 42, 5

the function allows access to :

20 25 30 35 40

Each of the following two functions mult1() and mult2() solves the
question :

# -
def mult1(a,b,m):
return (x for x in range(a,b)[(m-a%m)%m:b:m])

def mult2(a,b,m):
return range(a,b)[(m-a%m)%m:b:m]
# -

mult2() function returns a list and obviously mult2() needs Python to
allocate memory for this list. What I was wondering is if the same might
be said about mult1(). More precisely, does Python allocate memory for
the whole target list range(a,b)[m-a%m:b:m]?



Yes - range always creates a list (in the 2.x series) -- mult1 creates
a list, then returns a generator, so list(mult1(a,b,m)) is identical
to mult2(a,b,m).

Jon.

  
First, you're clearly using python 2.x, since in version 3, you'd get an 
error in each of the definitions, doing the slice on a generator.


Both of those functions create the identical list (after first creating 
a bigger one!).  Then mult1() creates a generator object that owns the 
list, and passes back the generator object.  The list isn't freed till 
the calling code releases the generator object.


The code in mult2() just passes the list back directly, and it'll get 
freed when the calling code stops using it (eg. reuses the attribute 
which references it).


So mult1() adds extra complexity without saving any memory.  If you want 
to save memory, try (not thoroughly tested):


def mult3(a, b, m):
   start =  m*((a-1)/m + 1)
   end = m*((b-1)/m + 1)
   return xrange(start, end, m)


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


How to refer to class name and function name in a python program?

2009-09-20 Thread Peng Yu
Hi,

I have the following code. I want to change the function body of
__repr__ to something like

return 'In %s::%s' % ($class_name, $function_name)

I'm wondering what I should write for $class_name and $function_name in python.

Regards,
Peng

class A:
  def __init__(self):
pass

  def __repr__(self):
return 'In A::__repr__'

a = A()
print a
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread r
On Sep 20, 10:16 am, Peng Yu  wrote:
(snip)
> I am more familiar with C++ than python. So I need to connect python
> concept to C++ concept so that I can understand it better.
>
> name1 and name are all references (in the C++ sense), right?
>
> __repr__  and __str__ are references (in the C++ sense) to functions
> and both of them could refer to the same function or two different
> ones, right?

Don't ever try and map C++ to Python on a 1:1 basis or you will get
quite confused. Try this thought experiment, and remember, the Python
shell is your best friend now!

IDLE 2.6.2
>>> a = 1
>>> b = 1
>>> a
1
>>> b
1
>>> id(a)
27822424
>>> id(b)
27822424
>>> help(id)
Help on built-in function id in module __builtin__:

id(...)
id(object) -> integer

Return the identity of an object.  This is guaranteed to be unique
among
simultaneously existing objects.  (Hint: it's the object's memory
address.)


NOW you can apply that logic 1:1 to your python problem ;-)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pygame and py2app : big package

2009-09-20 Thread TerryP


Pierre-Alain Dorange wrote:
> Sorry, it was not clear.
> But i want to know if i can make the package smaller, because the total
> package weight 59.4 MB just for a small arcade game.
>

You would need to skip or strip out any unneeded components that are
being packed. Either by playing with how py2app sucks them up (I don't
use py2app) or by post processing the file it produces in order to
remove them. (I'm not familiar with OSX beyond the unix portions.)

On my laptop, the entire standard libraries .py/.pyc/.pyo files is
about 54M.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: An assessment of the Unicode standard

2009-09-20 Thread Tim Rowe
2009/9/19 r :

> Snap (sort of).
> Does anybody know where the concept of the purple people eater comes
> from?
> I mean is there a children's book or something?
> - Hendrik

I've always assumed it to go back to the 1958 Sheb Wooley song. Which
I remember, although I was only 3 when it was released.

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


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread r
On Sep 20, 10:38 am, Peng Yu  wrote:
> Hi,
>
> I have the following code. I want to change the function body of
> __repr__ to something like
>
>     return 'In %s::%s' % ($class_name, $function_name)
>
> I'm wondering what I should write for $class_name and $function_name in 
> python.
>
> Regards,
> Peng
>
> class A:
>   def __init__(self):
>     pass
>
>   def __repr__(self):
>     return 'In A::__repr__'
>
> a = A()
> print a

well thats easy ;-)

return 'A, __repr__'

was that too easy?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread Duncan Booth
Peng Yu  wrote:

> Hi,
> 
> I have the following code. I want to change the function body of
> __repr__ to something like
> 
> return 'In %s::%s' % ($class_name, $function_name)
> 
> I'm wondering what I should write for $class_name and $function_name
> in python. 
> 
> Regards,
> Peng
> 
> class A:
>   def __init__(self):
> pass
> 
>   def __repr__(self):
> return 'In A::__repr__'
> 
> a = A()
> print a
> 

  def __repr__(self):
return 'In %s::__repr__' % self.__class__.__name__

You already know the function is called __repr__ so you don't need to look 
it up anywhere. If you really wanted to do it the hard way:

import inspect
...
  def __repr__(self):
return 'In %s::%s' % (self.__class__.__name__,
inspect.getframeinfo(inspect.currentframe()).function)

but just repeating __repr__ explicitly is less typing.
-- 
http://mail.python.org/mailman/listinfo/python-list


I look for proxy cache like apt-pro xy (for Debian Package) but for python eggs package…

2009-09-20 Thread Klein Stéphane

Hi,

I look for a tools to do proxy cache like apt-proxy (for Debian Package) but 
for python eggs package.

Can a easy-install option perform this feature ?

Thanks for your help,
Stephane

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


Re: control CPU usage

2009-09-20 Thread kakarukeys
On Sep 20, 10:57 pm, Dave Angel  wrote:
> kakarukeys wrote:
> > On Sep 20, 6:24 pm, Dave Angel  wrote:
>
> >> Jiang Fung Wong wrote:
>
> >>> Dear All,
>
> >>> Thank you for the information. I think I've some idea what the problem is
> >>> about after seeing the replies.
>
> >>> More information about my system and my script
>
> >>> PIII 1Ghz, 512MB RAM, Windows XP SP3
>
> >>> The script monitors global input using PyHook,
> >>> and calculates on the information collected from the events to output some
> >>> numbers. Based on the numbers, the script then performs some automation
> >>> using SendKeys module.
>
> >>> here is the memory usage:
> >>> firefox.exe, 69MB, 109MB
> >>> svchost.exe, 26MB, 17MB
> >>> pythonw.exe, 22MB, 17MB
> >>> searchindexer.exe, 16MB, 19MB
>
> >>> My first guess is that the script calculated for too long time after
> >>> receiving an event before propagating it to the default handler, resulting
> >>> the system to be non-responsive. I will try to implement the calculation
> >>> part in another thread.
> >>> Then the separate will have 100% CPU usage, hope the task scheduling of
> >>> Windows works in my favour.
>
> >> (You top-posted this message, putting the whole stream out of order.  So
> >> I deleted the history.)
>
> >> All my assumptions about your environment are now invalid.  You don't
> >> have a CPU-bound application, you have a Windows application with event
> >> loop.  Further, you're using SendKeys to generate a keystroke to the
> >> other process.  So there are many things that could be affecting your
> >> latency, and all my previous guesses are useless.
>
> >> Adding threads to your application will probably slow the system down
> >> much more.  You need to find out what your present problem is before
> >> complicating it.
>
> >> You haven't really described the problem.  You say the system is
> >> unresponsive, but you made it that way by creating a global hook;  a
> >> notoriously inefficient mechanism.  That global hook inserts code into
> >> every process in the system, and you've got a pretty low-end environment
> >> to begin with.  So what's the real problem, and how severe is it?  And
> >> how will you measure improvement?  The Task manager numbers are probably
> >> irrelevant.
>
> >> My first question is whether the pyHook event is calling the SendKeys
> >> function directly (after your "lengthy" calculation) or whether there
> >> are other events firing off  in between.  If it's all being done in the
> >> one event, then measure its time, and gather some statistics (min time,
> >> max time, average...).  The task manager has far too simplistic
> >> visibility to be useful for this purpose.
>
> >> What else is this application doing when it's waiting for a pyHook
> >> call?  Whose event loop implementation are you using?  And the program
> >> you're trying to control -- is there perhaps another way in?
>
> >> DaveA
>
> > Hi,
>
> > Sorry I wasn't sure how to use Google groups to post a msg to the
> > newsgroup, I used Gmail to write my previous reply. What you and the
> > other guy have provided me isn't useless. Now I understand the non-
> > responsiveness may not be caused by high CPU usage, as the OS, be it
> > Windows or Linux, has a way to prioritize the tasks. This is a vital
> > clue to me.
>
> > By "not responsive", I mean, for some time, the mouse pointer is not
> > moving smoothly, to such extent that I can't do anything with the
> > mouse. It's like playing a multi-player game on a connection with a
> > lot of lag. It's not caused by global hook, because it happens under
> > certain condition, i.e. when fpa.ProcessEvent(word) is computing.
>
> > I included my main script for your reference. Comments:
> > (1) The automation method tc.Auto() is slow, but it doesn't cause any
> > problem, because the user would wait for the automation to finish,
> > before he continues to do something.
>
> > (2) all other methods invoked are fast, except fpa.ProcessEvent(word)
> > (this information is obtained from profiling). It is this method that
> > causes 100% CPU usage. I'm planning to move this method to a separate
> > thread, so that OnEvent(event) can finish executing, while the
> > separate thread goes on to finish its calculation. Is this a good
> > idea?
>
> > import pyHook
> > import TypingAnalyzer
> > import GUI
>
> > def OnEvent(event):
> >    if hasattr(event, "Key") and event.Ascii == 9 and event.Key == "Tab"
> > and event.Injected == 0 and event.Alt == 0:
> >            tc.Auto()
> >            return False
> >    else:
> >            recognized = rk.ProcessEvent(event)
> >            if recognized:
> >                    tc.MatchChar(recognized)
> >                    paragraph = rc.ProcessEvent(recognized)
> >                    if paragraph:
> >                            for word in paragraph:
> >                                    fpa.ProcessEvent(word)
>
> >            return True
>
> > hm = pyHook.HookManager()
> > hm.MouseAllButtonsDown = OnE

Re: How to refer to class name and function name in a python program?

2009-09-20 Thread Vijayendra Bapte
On Sep 20, 8:38 pm, Peng Yu  wrote:
> Hi,
>
> I have the following code. I want to change the function body of
> __repr__ to something like
>
>     return 'In %s::%s' % ($class_name, $function_name)
>
> I'm wondering what I should write for $class_name and $function_name in 
> python.
>
> Regards,
> Peng
>
> class A:
>   def __init__(self):
>     pass
>
>   def __repr__(self):
>     return 'In A::__repr__'
>
> a = A()
> print a

Using decorator:


def echo(func):
def _echo(self, *args, **kw):
return "In %s.%s" % (self.__class__.__name__, func.func_name)

return _echo

class A:

@echo
def __repr__(self):
pass

a = A()
print a

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


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 11:32 AM, Vijayendra Bapte
 wrote:
> On Sep 20, 8:38 pm, Peng Yu  wrote:
>> Hi,
>>
>> I have the following code. I want to change the function body of
>> __repr__ to something like
>>
>>     return 'In %s::%s' % ($class_name, $function_name)
>>
>> I'm wondering what I should write for $class_name and $function_name in 
>> python.
>>
>> Regards,
>> Peng
>>
>> class A:
>>   def __init__(self):
>>     pass
>>
>>   def __repr__(self):
>>     return 'In A::__repr__'
>>
>> a = A()
>> print a
>
> Using decorator:
> 
>
> def echo(func):
>    def _echo(self, *args, **kw):
>        return "In %s.%s" % (self.__class__.__name__, func.func_name)
>
>    return _echo
>
> class A:
>
>   �...@echo
>    def __repr__(self):
>        pass
>
> a = A()
> print a

What does @echo mean?

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


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread r
On Sep 20, 10:38 am, Peng Yu  wrote:
> Hi,
>
> I have the following code. I want to change the function body of
> __repr__ to something like


PS: Methods get angry when you refer to them as functions . You see,
methods feel that they are more than a mere lowly function, and have
developed a superiority complex about it. And you would not want to
get them upset either -- since they have friends in high places
(classes) and can really put a hurt on you. ;-)

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


Re: Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Benjamin Kaplan
On Sun, Sep 20, 2009 at 11:16 AM, Peng Yu  wrote:
> On Sun, Sep 20, 2009 at 9:19 AM, Dave Angel  wrote:
>> Peng Yu wrote:
>>>
>>> 

 you might use:

>>>
>>> Is __repr__ =_str__ copy by reference or by value? If I change
>>> __str__ later on, will __repr__ be changed automatically?
>>>
>>> Regards,
>>> Peng
>>>
>>>
>>
>> Reference or value?  Neither one.  This assignment is no different than any
>> other attribute assignment in Python.  Technically, it binds the name
>> __repr__ to the function object already bound by __str__.  You now have a
>> second name pointing to the same object.  Rebinding one of those names  to
>> yet another different object won't affect the other name.
>>
>> name1 = "this is a test"
>> name2 = name1
>> name1 = "another string"           #this has no effect on name2
>>
>> print name1, name2
>
> I am more familiar with C++ than python. So I need to connect python
> concept to C++ concept so that I can understand it better.
>
> name1 and name are all references (in the C++ sense), right?
>
> __repr__  and __str__ are references (in the C++ sense) to functions
> and both of them could refer to the same function or two different
> ones, right?
>

Sort of, but it would be best to forget about the C++ ideas of
references and values because it will only confuse you. In python,
everything is an object and every attribute is stored as a dict key,
including functions. When you do __repr__ = __str__, you are making
the name '__repr__' refer to the same object as the name '__str__'.
Since they are the same object, any mutations made to one object will
appear in the other. However, a reassignment does not change the value
of the object, it just makes that key refer to another object. So if
you were to later change __str__ to a different method, __repr__
wouldn't change.

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


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread Benjamin Kaplan
On Sun, Sep 20, 2009 at 12:43 PM, Peng Yu  wrote:
> On Sun, Sep 20, 2009 at 11:32 AM, Vijayendra Bapte
>  wrote:
>> On Sep 20, 8:38 pm, Peng Yu  wrote:
>>> Hi,
>>>
>>> I have the following code. I want to change the function body of
>>> __repr__ to something like
>>>
>>>     return 'In %s::%s' % ($class_name, $function_name)
>>>
>>> I'm wondering what I should write for $class_name and $function_name in 
>>> python.
>>>
>>> Regards,
>>> Peng
>>>
>>> class A:
>>>   def __init__(self):
>>>     pass
>>>
>>>   def __repr__(self):
>>>     return 'In A::__repr__'
>>>
>>> a = A()
>>> print a
>>
>> Using decorator:
>> 
>>
>> def echo(func):
>>    def _echo(self, *args, **kw):
>>        return "In %s.%s" % (self.__class__.__name__, func.func_name)
>>
>>    return _echo
>>
>> class A:
>>
>>   �...@echo
>>    def __repr__(self):
>>        pass
>>
>> a = A()
>> print a
>
> What does @echo mean?
>
> Regards,
> Peng

It's a decorator, which wraps the function with another function it's
the equivalent of calling

def __repr__(self) :
pass

__repr__ = echo(__repr__)

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


Re: How to get the minimum number that can be represented?

2009-09-20 Thread Grant Edwards
On 2009-09-20, Peng Yu  wrote:

>> You might also want to read up on the type() builtin
>
> I want avoid using any 'if' statement.

Why?

> In C++, I can use template.

If you want to write C++ code, then you should use a C++
compiler.

> How to do not use 'if' statement in python?

In python you use the 'if' statement.

-- 
Grant Edwards   grante Yow! I am covered with
  at   pure vegetable oil and I am
   visi.comwriting a best seller!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How python source code in large projects are organized?

2009-09-20 Thread Daniel Fetchinson
> I am wondering what is the best way of organizing python source code
> in a large projects. There are package code, testing code. I'm
> wondering if there has been any summary on previous practices.

I suggest looking at the source code of large projects like twisted,
PIL, django, turbogears, etc. These have different styles, pick the
one you like best.

HTH,
Daniel

-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread Robert Kern

Peng Yu wrote:


The file size of a wig file can be very large (GB). Most tasks on this
file format does not need the parser to save all the lines read from
the file in the memory to produce the parsing result. I'm wondering if
pyparsing is capable of parsing large wig files by keeping only
minimum required information in the memory.


I cannot recommend pyparsing for large amounts of text. Even before you hit 
memory limits, you will run into the problem that pyparsing runs many functions 
for each character of text. Python function calls are expensive.


Since the format is line-oriented, one option is to use pyparsing or other 
parser to handle the track definition lines and just str.split(), float() and 
int() for the data lines.


--
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


Python/MySQL Frustration

2009-09-20 Thread Victor Subervi
Hi;
I have the following code:

 while i < num:
  cat = 'cat' + str(i)
  cat = form.getfirst(cat, '')
  item = 'item' + str(i)
  item = form.getfirst(item, '')
  descr = 'descr' + str(i)
  descr = form.getfirst(descr, '')
  uom = 'uom' + str(i)
  uom = form.getfirst(uom, '')
  price = 'price' + str(i)
  price = form.getfirst(price, '')
  sql = 'Category="' + cat + '", Item="' + item + '", Description="' +
descr + '", UOM="' + uom + '", Price="' + price + '"'
  sql = 'insert into %s values (%s);' % (company, sql)
  cursor.execute(sql)
  i += 1
Now, all of this posts to the mysql database, but it forms an infinite loop!
I have num == 1! I have printed num to make sure it's actually only 1 (or 2,
depending). What in the heck am I doing wrong?
TIA,
Victor
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: I look for proxy cache like apt-proxy (for Debian Package) but for python eggs package…

2009-09-20 Thread Diez B. Roggisch

Klein Stéphane schrieb:

Hi,

I look for a tools to do proxy cache like apt-proxy (for Debian Package) 
but for python eggs package.


Can a easy-install option perform this feature ?


No. But you might install EggBasket, which is a PyPI-like server.

  http://www.chrisarndt.de/projects/eggbasket/

However, it is *not* a proxy, and to the best of my knowledge that's not 
easily done anyway due to the way easy_install is working. It scrapes 
the website it is pointed to, and when it finds something it likes, 
follows that.


Thus the server doesn't get an idea *what* easy_install is looking for, 
and thus can't relay the request to the "real" PyPI, fetching the egg, 
storing it locally, and then re-deliver it.


Instead what we do with eggbasket is to copy all the eggs we obtained by 
other means into a central repository that he serves. Thus we have them 
backed-up & available even if PyPI or the actual package go away.


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


Re: Python/MySQL Frustration

2009-09-20 Thread Philip Semanchuk


On Sep 20, 2009, at 2:25 PM, Victor Subervi wrote:


Hi;
I have the following code:

while i < num:
 cat = 'cat' + str(i)
 cat = form.getfirst(cat, '')
 item = 'item' + str(i)
 item = form.getfirst(item, '')
 descr = 'descr' + str(i)
 descr = form.getfirst(descr, '')
 uom = 'uom' + str(i)
 uom = form.getfirst(uom, '')
 price = 'price' + str(i)
 price = form.getfirst(price, '')
 sql = 'Category="' + cat + '", Item="' + item + '",  
Description="' +

descr + '", UOM="' + uom + '", Price="' + price + '"'
 sql = 'insert into %s values (%s);' % (company, sql)
 cursor.execute(sql)
 i += 1
Now, all of this posts to the mysql database, but it forms an  
infinite loop!
I have num == 1! I have printed num to make sure it's actually only  
1 (or 2,

depending). What in the heck am I doing wrong?




Are you sure that num is a integer and not a string?

What happens when you step through the code with a debugger?

Simplify your code, for your sake and ours. Begin commenting out  
lines, starting with cursor.execute(sql) and working your way up to  
the first line below the while statement. (You can replace the  
cursor.execute() with a print statement to monitor the value of i.)  
Does your infinite loop disappear when you get rid of that stuff?



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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
On Sep 20, 9:12 am, andrew cooke  wrote:
> ps is there somewhere can download example files?  this would be
> useful for my own testing.  thanks.

i replied to a lot of your questions here; any chance you could reply
to this one of mine?

the wig format looks like it could be a good test for lepl.

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


Re: How python source code in large projects are organized?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 11:31 AM, Daniel Fetchinson
 wrote:
>> I am wondering what is the best way of organizing python source code
>> in a large projects. There are package code, testing code. I'm
>> wondering if there has been any summary on previous practices.
>
> I suggest looking at the source code of large projects like twisted,
> PIL, django, turbogears, etc. These have different styles, pick the
> one you like best.

Is there a webpage or a document that describes various practices?

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


Re: Am I doing this wrong? Why does this seem so clumsy (time, datetime vs. DateTime)

2009-09-20 Thread AggieDan04
On Sep 19, 9:22 pm, Schif Schaf  wrote:
> The other day I needed to convert a date like "August 2009" into a
> "seconds-since-epoch" value (this would be for the first day of that
> month, at the first second of that day).
>
> In Python, I came up with this:
>
> 
> #!/usr/bin/env python
>
> import datetime
> import time
>
> time_in_sse = time.mktime(
>     datetime.datetime(2009, 8, 1).timetuple()
> )

(datetime.datetime(2009, 8, 1) - datetime.datetime(1970, 1, 1)).days *
86400

But still, this should be part of the datetime class.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Comparison of parsers in python?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 1:35 PM, andrew cooke  wrote:
> On Sep 20, 9:12 am, andrew cooke  wrote:
>> ps is there somewhere can download example files?  this would be
>> useful for my own testing.  thanks.
>
> i replied to a lot of your questions here; any chance you could reply
> to this one of mine?
>
> the wig format looks like it could be a good test for lepl.

I missed your question. I have only some files that I only use a
subset of the syntax in wig. Here is one example.



track type=wiggle_0 name="MACS_counts_after_shifting" description="H3K4me1B"
variableStep chrom=chr10 span=10
3001871 1
3001881 1
3001891 1
3001901 1
track type=wiggle_0 name="MACS_counts_after_shifting" description="H3K4me1B"
variableStep chrom=chr11 span=10
3000331 3
3000341 3
3000351 3
3000361 3
3000371 3
3000381 3
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python/MySQL Frustration

2009-09-20 Thread Victor Subervi
Yeah, that was the problem..."num" was a string ;) Just caught it myself,
too. Thanks,
V

On Sun, Sep 20, 2009 at 2:37 PM, Philip Semanchuk wrote:

>
> On Sep 20, 2009, at 2:25 PM, Victor Subervi wrote:
>
>  Hi;
>> I have the following code:
>>
>>while i < num:
>> cat = 'cat' + str(i)
>> cat = form.getfirst(cat, '')
>> item = 'item' + str(i)
>> item = form.getfirst(item, '')
>> descr = 'descr' + str(i)
>> descr = form.getfirst(descr, '')
>> uom = 'uom' + str(i)
>> uom = form.getfirst(uom, '')
>> price = 'price' + str(i)
>> price = form.getfirst(price, '')
>> sql = 'Category="' + cat + '", Item="' + item + '", Description="' +
>> descr + '", UOM="' + uom + '", Price="' + price + '"'
>> sql = 'insert into %s values (%s);' % (company, sql)
>> cursor.execute(sql)
>> i += 1
>> Now, all of this posts to the mysql database, but it forms an infinite
>> loop!
>> I have num == 1! I have printed num to make sure it's actually only 1 (or
>> 2,
>> depending). What in the heck am I doing wrong?
>>
>
>
>
> Are you sure that num is a integer and not a string?
>
> What happens when you step through the code with a debugger?
>
> Simplify your code, for your sake and ours. Begin commenting out lines,
> starting with cursor.execute(sql) and working your way up to the first line
> below the while statement. (You can replace the cursor.execute() with a
> print statement to monitor the value of i.) Does your infinite loop
> disappear when you get rid of that stuff?
>
>
> HTH
> Philip
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


SQLObject 0.10.7

2009-09-20 Thread Oleg Broytmann
Hello!

I'm pleased to announce version 0.10.7, a minor bugfix release of 0.10 branch
of SQLObject.


What is SQLObject
=

SQLObject is an object-relational mapper.  Your database tables are described
as classes, and rows are instances of those classes.  SQLObject is meant to be
easy to use and quick to get started with.

SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite,
Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB).


Where is SQLObject
==

Site:
http://sqlobject.org

Development:
http://sqlobject.org/devel/

Mailing list:
https://lists.sourceforge.net/mailman/listinfo/sqlobject-discuss

Archives:
http://news.gmane.org/gmane.comp.python.sqlobject

Download:
http://cheeseshop.python.org/pypi/SQLObject/0.10.7

News and changes:
http://sqlobject.org/News.html


What's New
==

News since 0.10.6
-

* Fixed a bug: Sybase tables with identity column fire two identity_inserts.

* Fixed a bug: q.startswith(), q.contains() and q.endswith() escape (with a
  backslash) all special characters (backslashes, underscores and percent
  signs).

For a more complete list, please see the news:
http://sqlobject.org/News.html

Oleg.
-- 
 Oleg Broytmannhttp://phd.pp.ru/p...@phd.pp.ru
   Programmers don't die, they just GOSUB without RETURN.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How python source code in large projects are organized?

2009-09-20 Thread exarkun

On 07:10 pm, pengyu...@gmail.com wrote:

On Sun, Sep 20, 2009 at 11:31 AM, Daniel Fetchinson
 wrote:

I am wondering what is the best way of organizing python source code
in a large projects. There are package code, testing code. I'm
wondering if there has been any summary on previous practices.


I suggest looking at the source code of large projects like twisted,
PIL, django, turbogears, etc. These have different styles, pick the
one you like best.


Is there a webpage or a document that describes various practices?


I wrote very briefly on this topic, hope it helps:

 http://jcalderone.livejournal.com/39794.html

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


easy question, how to double a variable

2009-09-20 Thread daggerdvm
 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Granularity of OSError

2009-09-20 Thread ryles
On Sep 19, 9:22 pm, MRAB  wrote:
> The point is that it's sometimes a good idea to do a cheap check first
> before attempting an operation that's 'expensive' even when it fails.

Strongly agree. Furthermore, with LBYL it's often easier to give a
user clearer error messages for common usage errors, rather than
waiting for an exception in a much lower-level place where it's less
clear to them what the cause is.
-- 
http://mail.python.org/mailman/listinfo/python-list


Name 'NewAxis' is not defined

2009-09-20 Thread mo

I found such a script - a gas model.
http://des.memphis.edu/lurbano/vpython/gas/Temp_KE_07.py
Can anybody help and find a mistake. There is a message:
Name 'NewAxis' is not defined.
I tried Python 25 with numpy 121 and Python 26 with scipy 071.
(Win Vista).
--
mo (not proffessional programmer ;)
--
http://mail.python.org/mailman/listinfo/python-list


Re: Name 'NewAxis' is not defined

2009-09-20 Thread Robert Kern

mo wrote:

I found such a script - a gas model.
http://des.memphis.edu/lurbano/vpython/gas/Temp_KE_07.py
Can anybody help and find a mistake. There is a message:
Name 'NewAxis' is not defined.
I tried Python 25 with numpy 121 and Python 26 with scipy 071.
(Win Vista).


This file was written expecting that VPython would be using Numeric, numpy's 
predecessor, and exposing its symbols. Numeric.NewAxis == numpy.newaxis.


--
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: easy question, how to double a variable

2009-09-20 Thread MRAB

daggerdvm wrote:

 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this


That's a very basic question. Try a tutorial.
--
http://mail.python.org/mailman/listinfo/python-list


Re: easy question, how to double a variable

2009-09-20 Thread Tim Chase

daggerdvm wrote:

 Write the definition of a function  twice , that receives an  int
parameter and returns an  int that is twice the value of the
parameter.

how can i do this


Read over your textbook and the notes you took in class -- I'm 
sure therein you'll find how to define functions, how to specify 
parameters, how to return values, and how to do basic arithmetic 
operations.  You can also hit up python.org and 
diveintopython.org for more reading if you need.


I'll give you a hint:  If you use

  twice = lambda x: int(x**2/(0.5*x))

I suspect your professor will flunk you for cheating.

-tkc




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


Re: Name 'NewAxis' is not defined

2009-09-20 Thread MRAB

mo wrote:

I found such a script - a gas model.
http://des.memphis.edu/lurbano/vpython/gas/Temp_KE_07.py
Can anybody help and find a mistake. There is a message:
Name 'NewAxis' is not defined.
I tried Python 25 with numpy 121 and Python 26 with scipy 071.
(Win Vista).


I can't see a definition for NewAxis. Is it defined in one of the
module's you import, 'visual' or 'visual.graph'?
--
http://mail.python.org/mailman/listinfo/python-list


Re: on package import, have it conditionally import a subpackage

2009-09-20 Thread ryles
On Sep 19, 4:06 pm, Gabriel Rossetti 
wrote:
> Hello everyone,
>
> I'd like to ba able to import a package and have it's __init__
> conditionally import a subpackage. Suppose that you have this structure :
>
> mybase/
> mybase/__init__.py
> mybase/mypkg
> mybase/mypkg/__init__.py
> mybase/mypkg/module0.py
> mybase/mypkg/type1
> mybase/mypkg/type1/__init__.py
> mybase/mypkg/type1/module1.py
> mybase/mypkg/type1/module2.py
> mybase/mypkg/type2
> mybase/ mypkg/type2/__init__.py
> mybase/ mypkg/type2/module1.py
> mybase/ mypkg/type2/module2.py
>
> I'd like to do something like th following in my code
>
>  >>> import mybase
>  >>> mybase.setType("type1")
>  >>> from mybase.mypkg import module0, module1, module2
>  >>> module0.__file__
> 'mybase/mypkg/module0.pyc'
>  >>> module1.__file__
> 'mybase/mypkg/type1/module1.pyc'
>  >>> module2.__file__
> 'mybase/mypkg/type1/module2.pyc'
>
> but I can't figure out how to do this.
>
> Thank you,
> Gabriel

You might try something like the following:

$ export PYTHONPATH=/home/ryles


$ cat mybase_test.py

import mybase

mybase.type = "type2"

from mybase.mypkg import module0, module1, module2

print module0.__file__
print module1.__file__
print module2.__file__


$ python mybase_test.py
/home/ryles/mybase/mypkg/module0.pyc
/home/ryles/mybase/mypkg/type2/module1.pyc
/home/ryles/mybase/mypkg/type2/module2.pyc


$ ls -l mybase/
-rw-r--r--  1 ryles None  44 Sep 20 16:59 __init__.py
drwxr-xr-x+ 4 ryles None   0 Sep 20 17:06 mypkg


$ cat mybase/__init__.py

default_type = "type1"

type = default_type


$ ls -l mybase/mypkg/
-rw-r--r--  1 ryles None 307 Sep 20 17:06 __init__.py
-rw-r--r--  1 ryles None   0 Sep 20 16:51 module0.py
drwxr-xr-x+ 2 ryles None   0 Sep 20 17:02 type1
drwxr-xr-x+ 2 ryles None   0 Sep 20 17:02 type2


$ ls -l mybase/mypkg/type1/
-rw-r--r-- 1 ryles None   0 Sep 20 16:49 __init__.py
-rw-r--r-- 1 ryles None   0 Sep 20 16:49 module1.py
-rw-r--r-- 1 ryles None   0 Sep 20 16:51 module2.py


$ ls -l mybase/mypkg/type2/
-rw-r--r-- 1 ryles None   0 Sep 20 16:48 __init__.py
-rw-r--r-- 1 ryles None   0 Sep 20 16:51 module1.py
-rw-r--r-- 1 ryles None   0 Sep 20 16:49 module2.py


$ cat mybase/mypkg/__init__.py

# These modules are hard-coded.
from mybase.mypkg import module0

# These modules are resolved dynamically.
from mybase import type
for module_name in ["module1", "module2"]:
full_name = "mybase.mypkg." + type + '.' + module_name
globals()[module_name] = __import__(full_name, {}, {},
[full_name])

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


Re: pyjamas pyv8run converts python to javascript, executes under command-line

2009-09-20 Thread lkcl
On Sep 19, 8:36 pm, Daniel Fetchinson 
wrote:
> >> the pyjamas project is taking a slightly different approach to achieve
> >> this same goal: beat the stuffing out of the pyjamas compiler, rather
> >> than hand-write such large sections of code in pure javascript, and
> >> double-run regression tests (once as python, second time converted to
> >> javascript under pyv8run, d8 or spidermonkey).
>
> >> anyway, just thought there might be people who would be intrigued (or
> >> horrified enough to care what's being done in the name of computer
> >> science) by either of these projects.
>
> > I've added pyjamas to the implementations page on the Python Wiki in
> > the compilers section:
>
> >http://wiki.python.org/moin/implementation
>
> In what way is pyjamas a python implementation? As far as I know
> pyjamas is an application written in python that is capable of
> generating javascript code.

 it's strictly speaking, according to wikipedia, a "language
translator".  i'm just in the process of adding an AST parser (based
on lib2to3, from sgraham's work in skulpt) which will become the basis
of an "exec" function, just like in the skulpt demo.

 also to answer your question: pyjamas has [roughly] two modes: -O and
--strict.  "-O" is the one where you have to write in a subset of
python, and you can (unfortunately) do things like 5 + "px" (which
doesn't throw an exception).  this saves _vast_ amounts of CPU
cycles.

"--strict" as you would expect is the python-strict converter, where
we're beginning to add implementations of __add__ etc. etc. and
generally cope with the nasty grungy bits of javascript that would
otherwise make arbitrary python applications keel over.

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


Re: pyjamas pyv8run converts python to javascript, executes under command-line

2009-09-20 Thread lkcl
On Sep 20, 12:05 am, exar...@twistedmatrix.com wrote:

> Does pyjamas convert any Python program into a JavaScript program with
> the same behavior?

 that's one of the sub-goals of the pyjamas project, yes.

> I don't intend to imply that it doesn't - I haven't
> been keeping up with pyjamas development, so I have no idea idea.  I
> think that the case *used* to be (perhaps a year or more ago) that
> pyjamas only operated on a fairly limited subset of Python.  If this was
> the case but has since changed, it might explain why some people are
> confused to hear pyjamas called a Python implementation now.

 yup.  "-O" now equals [roughly] pyjamas 0.3 to 0.5p1 behaviour, aka
"pythonscript" - a mishmash of python grammar/syntax with javascriptic
execution.

 since kees joined, he's been steaming ahead with python
interoperability (--strict option).  he first started out by improving
the pyjamas compiler and support libraries to the point where the
python version of http://puremvc.org could be compiled to javascript
as-is, and it's gone from there, really.

 on the roadmap is to take a look at what the unladen/swallow team
have done, when they get to their stage 2 "unboxing", and see if
calling out to PyV8 or Python-SpiderMonkey objects can be done from
intobject.c, longobject.c etc.

 if the early experiments are anything to go by, python will then have
_yet another_ python accelerator.

 but, really, for that to properly happen, python has _got_ to get
some type-checking decorators on functions:

 @paramtypecheck(foo=int, bar=[int, str])
 @paramtypecheck(int, [int, str]) # or this
 @returntypecheck(int)
 def randomfunction(foo, bar):
 if isinstance(bar, str):
 bar = int(bar)
 return foo + bar


 this kind of type-checking guidance would _drastically_ help out all
of the compilers (such as that python-to-c++ one), and could probably
also be utilised by http://python.org itself, ultimately, to speed up
function execution.

 it's also just good software engineering practice to check parameters
and return results.

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


Re: Comparison of parsers in python?

2009-09-20 Thread andrew cooke
On Sep 20, 3:16 pm, Peng Yu  wrote:
> On Sun, Sep 20, 2009 at 1:35 PM, andrew cooke  wrote:
> > On Sep 20, 9:12 am, andrew cooke  wrote:
> >> ps is there somewhere can download example files?  this would be
> >> useful for my own testing.  thanks.
>
> > i replied to a lot of your questions here; any chance you could reply
> > to this one of mine?
>
> > the wig format looks like it could be a good test for lepl.
>
> I missed your question. I have only some files that I only use a
> subset of the syntax in wig. Here is one example.

ah, thanks.  i'll see if i can find something on the 'net - i am
hoping to test how / whether gigabytes of data can be parsed.

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


Re: How to refer to class name and function name in a python program?

2009-09-20 Thread alex23
Peng Yu  wrote:
> What does @echo mean?

Have you read _any_ of the documentation? Or is this all an exercise
in seeing if you can convince a group of disparate strangers to teach
you Python for free?

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


Re: Python/MySQL Frustration

2009-09-20 Thread John Nagle

Dennis Lee Bieber wrote:

On Sun, 20 Sep 2009 14:25:53 -0400, Victor Subervi
 declaimed the following in
gmane.comp.python.general:


Hi;
I have the following code:

 while i < num:
  cat = 'cat' + str(i)
  cat = form.getfirst(cat, '')
  item = 'item' + str(i)
  item = form.getfirst(item, '')
  descr = 'descr' + str(i)
  descr = form.getfirst(descr, '')
  uom = 'uom' + str(i)
  uom = form.getfirst(uom, '')
  price = 'price' + str(i)
  price = form.getfirst(price, '')
  sql = 'Category="' + cat + '", Item="' + item + '", Description="' +
descr + '", UOM="' + uom + '", Price="' + price + '"'
  sql = 'insert into %s values (%s);' % (company, sql)
  cursor.execute(sql)
  i += 1


Forgive me, but that is a bit of a mess... And from what I can see,
does not even generate valid insert statements unless MySQL has expanded
the syntax greatly.


You're probably throwing an exception at "cursor.execute".  Are you catching
exceptions somewhere else?

Also, you need to call "commit()" when you're done updating, or, at program
exit, all your changes to the database will be undone, at least if you're using
any of the database engines that do transactions.

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


Re: control CPU usage

2009-09-20 Thread Dave Angel

kakarukeys wrote:

On Sep 20, 10:57 pm, Dave Angel  wrote:
  

kakarukeys wrote:


On Sep 20, 6:24 pm, Dave Angel  wrote:
  

Jiang Fung Wong wrote:


Dear All,
  
Thank you for the information. I think I've some idea what the problem is

about after seeing the replies.
  
More information about my system and my script
  
PIII 1Ghz, 512MB RAM, Windows XP SP3
  
The script monitors global input using PyHook,

and calculates on the information collected from the events to output some
numbers. Based on the numbers, the script then performs some automation
using SendKeys module.
  
here is the memory usage:

firefox.exe, 69MB, 109MB
svchost.exe, 26MB, 17MB
pythonw.exe, 22MB, 17MB
searchindexer.exe, 16MB, 19MB
  
My first guess is that the script calculated for too long time after

receiving an event before propagating it to the default handler, resulting
the system to be non-responsive. I will try to implement the calculation
part in another thread.
Then the separate will have 100% CPU usage, hope the task scheduling of
Windows works in my favour.
  

(You top-posted this message, putting the whole stream out of order.  So
I deleted the history.)

All my assumptions about your environment are now invalid.  You don't

have a CPU-bound application, you have a Windows application with event
loop.  Further, you're using SendKeys to generate a keystroke to the
other process.  So there are many things that could be affecting your
latency, and all my previous guesses are useless.

Adding threads to your application will probably slow the system down

much more.  You need to find out what your present problem is before
complicating it.

You haven't really described the problem.  You say the system is

unresponsive, but you made it that way by creating a global hook;  a
notoriously inefficient mechanism.  That global hook inserts code into
every process in the system, and you've got a pretty low-end environment
to begin with.  So what's the real problem, and how severe is it?  And
how will you measure improvement?  The Task manager numbers are probably
irrelevant.

My first question is whether the pyHook event is calling the SendKeys

function directly (after your "lengthy" calculation) or whether there
are other events firing off  in between.  If it's all being done in the
one event, then measure its time, and gather some statistics (min time,
max time, average...).  The task manager has far too simplistic
visibility to be useful for this purpose.

What else is this application doing when it's waiting for a pyHook

call?  Whose event loop implementation are you using?  And the program
you're trying to control -- is there perhaps another way in?

DaveA


Hi,
  
Sorry I wasn't sure how to use Google groups to post a msg to the

newsgroup, I used Gmail to write my previous reply. What you and the
other guy have provided me isn't useless. Now I understand the non-
responsiveness may not be caused by high CPU usage, as the OS, be it
Windows or Linux, has a way to prioritize the tasks. This is a vital
clue to me.
  
By "not responsive", I mean, for some time, the mouse pointer is not

moving smoothly, to such extent that I can't do anything with the
mouse. It's like playing a multi-player game on a connection with a
lot of lag. It's not caused by global hook, because it happens under
certain condition, i.e. when fpa.ProcessEvent(word) is computing.
  
I included my main script for your reference. Comments:

(1) The automation method tc.Auto() is slow, but it doesn't cause any
problem, because the user would wait for the automation to finish,
before he continues to do something.
  
(2) all other methods invoked are fast, except fpa.ProcessEvent(word)

(this information is obtained from profiling). It is this method that
causes 100% CPU usage. I'm planning to move this method to a separate
thread, so that OnEvent(event) can finish executing, while the
separate thread goes on to finish its calculation. Is this a good
idea?
  
import pyHook

import TypingAnalyzer
import GUI
  
def OnEvent(event):

   if hasattr(event, "Key") and event.Ascii =9 and event.Key == "Tab"
and event.Injected =0 and event.Alt == 0:
   tc.Auto()
   return False
   else:
   recognized =k.ProcessEvent(event)
   if recognized:
   tc.MatchChar(recognized)
   paragraph =c.ProcessEvent(recognized)
   if paragraph:
   for word in paragraph:
   fpa.ProcessEvent(word)
  
   return True
  
hm =yHook.HookManager()

hm.MouseAllButtonsDown =nEvent
hm.KeyDown =nEvent
hm.HookMouse()
hm.HookKeyboard()
  
rk =ypingAnalyzer.ReadKey()

rc =ypingAnalyzer.ReadChar()
fpa =TypingAnalyzer.Analysis()
tc =ypingAnalyzer.Automation(fpa)
  
if __name__ ='__main__':

   app =

Is there a concerted effort afoot to improve the Python Wiki?

2009-09-20 Thread skip

I've noticed over the past few weeks a huge increase in the frequency of
edits in the Python wiki.  Many of those are due to Carl Trachte's work on
non-English pages about Python.  There are plenty of other pages going under
the knife as well though.  Is there some community movement people are aware
of to wrangle the wiki into better shape?

Thanks,

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


Re: Can print() be reloaded for a user defined class?

2009-09-20 Thread Dave Angel

Peng Yu wrote:

On Sun, Sep 20, 2009 at 9:19 AM, Dave Angel  wrote:
  

Peng Yu wrote:



  

you might use:



Is __repr__ =tr__ copy by reference or by value? If I change
__str__ later on, will __repr__ be changed automatically?

Regards,
Peng


  

Reference or value?  Neither one.  This assignment is no different than any
other attribute assignment in Python.  Technically, it binds the name
__repr__ to the function object already bound by __str__.  You now have a
second name pointing to the same object.  Rebinding one of those names  to
yet another different object won't affect the other name.

name1 =this is a test"
name2 =ame1
name1 =another string"   #this has no effect on name2

print name1, name2



I am more familiar with C++ than python. So I need to connect python
concept to C++ concept so that I can understand it better.

name1 and name are all references (in the C++ sense), right?

__repr__  and __str__ are references (in the C++ sense) to functions
and both of them could refer to the same function or two different
ones, right?

Regards,
Peng

  
By limiting yourself to C++ terminology, you're restricting how well you 
can understand it.  But I'll try.


C++ references cannot change.  And C++ functions cannot be created on 
the fly.  But otherwise, these names work kinda like C++ references.


Perhaps it'd help if I try to describe how some of this stuff works.  
For now, let's skip classes entirely, and just deal with top-level stuff 
(global scope).


Let's say we're in a module called mymodule.py.  So there's an object 
called mymodule, with a dictionary in it containing some attributes  
This dictionary works just like any dictionary you might define, but 
it's "under the covers," so to speak.  You add stuff to this dictionary 
by doing an "assignment."


name1= "value"

creates a new string object, and adds a dictionary item with key of 
"name1" and value of  pointer-to-the-string-object


name2 = 42

does the same thing, but it's an int object.

name1 = name2   doesn't create a new dictionary item, since it's already 
there.  But it changes the value of the item from ptr-to-int  to 
ptr-to-string.  At this point, the string object doesn't have any refs, 
so it probably gets freed.  And the int object has two refs.  It doesn't 
know what they are, just that the count is two.


def  myfunct():
 return 12

creates a code object, and adds a dictionary item with key of "myfunct" 
and value of pointer-to-the-code-object.


otherfunct = myfunct   creates a new dictionary item with the same value 
as the existing one.  And ref count goes to two.


Notice that there's nothing stopping you from doing

name1 = myfunct

and now name1 acts like a function, instead of a string or an int.  All 
these things are first-class objects.


One more piece for today's lesson:

import othermodule

This creates an entry in our module dictionary with key of "othermodule" 
and value pointing to the imported module.


Now,  we can get at our own symbols by  name1, or name2.  And we can get 
at symbols from othermodule by   othermodule.name3


This simply finds othermodule in the current global dictionary, then 
looks up name3 in that othermodule's dictionary.


Clearer ?


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


Re: Where are python module installed?

2009-09-20 Thread Chris Rebert
On Sun, Sep 20, 2009 at 6:30 PM, Peng Yu  wrote:
> Hi,
>
> I configured python-2.6.2 with my own --prefix, then 'make' and 'make
> install'. I only find the following dirs and I don't find any python
> modules in the directory. Do python modules come with python-2.6.2?
>
> $ ls
> bin  include  lib  share

$ ls -R lib

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


Re: Where are python module installed?

2009-09-20 Thread Wolodja Wentland
On Sun, Sep 20, 2009 at 20:30 -0500, Peng Yu wrote:
> I configured python-2.6.2 with my own --prefix, then 'make' and 'make
> install'. I only find the following dirs and I don't find any python
> modules in the directory. Do python modules come with python-2.6.2?
Yes.

> $ ls
> bin  include  lib  share
^^^ here

with kind regards

Wolodja Wentland


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


Re: Where are python module installed?

2009-09-20 Thread Daniel Fetchinson
> I configured python-2.6.2 with my own --prefix, then 'make' and 'make
> install'. I only find the following dirs and I don't find any python
> modules in the directory. Do python modules come with python-2.6.2?
>
> $ ls
> bin  include  lib  share

Try 'ls lib/python*' and also 'ls lib/python*/site-packages/'

HTH,
Daniel

-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is there a concerted effort afoot to improve the Python Wiki?

2009-09-20 Thread Rami Chowdhury

Hi Skip,

I've noticed over the past few weeks a huge increase in the  
frequency of
edits in the Python wiki.  Many of those are due to Carl Trachte's  
work on
non-English pages about Python.  There are plenty of other pages  
going under
the knife as well though.  Is there some community movement people  
are aware

of to wrangle the wiki into better shape?



I'm sure you've been emailed a few times regarding my edits :-(

There's currently a lot of things being discussed on divers...@python.org 
 regarding improvements to the wiki and its possible use as a space  
for drafts to go up, it's possible that's where changes are  
originating...




-
Rami Chowdhury
"Never assume malice when stupidity will suffice." -- Hanlon's Razor
408-597-7068 (US) / 07875-841-046 (UK) / 0189-245544 (BD)




On Sep 20, 2009, at 17:52 , s...@pobox.com wrote:



I've noticed over the past few weeks a huge increase in the  
frequency of
edits in the Python wiki.  Many of those are due to Carl Trachte's  
work on
non-English pages about Python.  There are plenty of other pages  
going under
the knife as well though.  Is there some community movement people  
are aware

of to wrangle the wiki into better shape?

Thanks,

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


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


Re: Where are python module installed?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 8:37 PM, Daniel Fetchinson
 wrote:
>> I configured python-2.6.2 with my own --prefix, then 'make' and 'make
>> install'. I only find the following dirs and I don't find any python
>> modules in the directory. Do python modules come with python-2.6.2?
>>
>> $ ls
>> bin  include  lib  share
>
> Try 'ls lib/python*' and also 'ls lib/python*/site-packages/'

Do I need to set PYTHONPATH to lib/python* because I changed the
default 'prefix'?

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


testing code in python source package

2009-09-20 Thread Peng Yu
Hi,

I'm wondering if the development of python is test driven. If it is,
where in the Python-2.6.2 source directory is the test code for the
modules in ./Lib?

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


Re: Re: How to get the minimum number that can be represented?

2009-09-20 Thread Dave Angel

Peng Yu wrote:

On Sun, Sep 20, 2009 at 9:37 AM, Grant Edwards  wrote:
  

On 2009-09-20, Peng Yu  wrote:



Suppose I want to define a function that return the minimum number
that can be represented.

def f(x):
  #body

That it, if I call f(10), f will return the minimum integer that can
be represented in the machine; if I cal f(10.5), f will return the
minimum float that can be represented in the machine.

Could somebody let me know what should be in the function body?
  

The stuff you wan is in the "sys" module.

For example:



sys.float_info
  

sys.floatinfo(max=7976931348623157e+308, max_exp24,
max_10_exp08, min=2.2250738585072014e-308, min_exp=-1021,
min_10_exp=07, dig, mant_digS, epsilon=2.2204460492503131e-16, radix=2, 
rounds=1)



sys.maxint
  

2147483647

You might also want to read up on the type() builtin



I want avoid using any 'if' statement. In C++, I can use template. How
to do not use 'if' statement in python?

Regards,
Peng

  
So if the homework assignment is for C++, do it in C++.  If this is 
supposed to be some kind of programming challenge, then you need to 
state all the rules up front.  For example, you could write something like


def f(x):
  return [-10, 42][2*x - 20]

and it'll return -10 for value 10  and 42 for value 10.5

Or:

def f(x):
result = raw_input("What's the smallest value of the same type as " 
+ str(x))

return result

And of course if the constraint is not to use the if statement, and you 
can use Python 2.6, how about a conditional expression?



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


Where are python module installed?

2009-09-20 Thread Peng Yu
Hi,

I configured python-2.6.2 with my own --prefix, then 'make' and 'make
install'. I only find the following dirs and I don't find any python
modules in the directory. Do python modules come with python-2.6.2?

$ ls
bin  include  lib  share


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


Re: pyjamas pyv8run converts python to javascript, executes under command-line

2009-09-20 Thread Daniel Fetchinson
>> >> the pyjamas project is taking a slightly different approach to achieve
>> >> this same goal: beat the stuffing out of the pyjamas compiler, rather
>> >> than hand-write such large sections of code in pure javascript, and
>> >> double-run regression tests (once as python, second time converted to
>> >> javascript under pyv8run, d8 or spidermonkey).
>>
>> >> anyway, just thought there might be people who would be intrigued (or
>> >> horrified enough to care what's being done in the name of computer
>> >> science) by either of these projects.
>>
>> > I've added pyjamas to the implementations page on the Python Wiki in
>> > the compilers section:
>>
>> >http://wiki.python.org/moin/implementation
>>
>> In what way is pyjamas a python implementation? As far as I know
>> pyjamas is an application written in python that is capable of
>> generating javascript code.
>
>  it's strictly speaking, according to wikipedia, a "language
> translator".

Yep, this sounds more like what I originally had in mind.
But if people insist on calling it a python implementation, it's fine by me :)

Cheers,
Daniel


> i'm just in the process of adding an AST parser (based
> on lib2to3, from sgraham's work in skulpt) which will become the basis
> of an "exec" function, just like in the skulpt demo.
>
>  also to answer your question: pyjamas has [roughly] two modes: -O and
> --strict.  "-O" is the one where you have to write in a subset of
> python, and you can (unfortunately) do things like 5 + "px" (which
> doesn't throw an exception).  this saves _vast_ amounts of CPU
> cycles.
>
> "--strict" as you would expect is the python-strict converter, where
> we're beginning to add implementations of __add__ etc. etc. and
> generally cope with the nasty grungy bits of javascript that would
> otherwise make arbitrary python applications keel over.


-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is there a concerted effort afoot to improve the Python Wiki?

2009-09-20 Thread kirby
On Sep 20, 5:52 pm, s...@pobox.com wrote:
> I've noticed over the past few weeks a huge increase in the frequency of
> edits in the Python wiki.  Many of those are due to Carl Trachte's work on
> non-English pages about Python.  There are plenty of other pages going under
> the knife as well though.  Is there some community movement people are aware
> of to wrangle the wiki into better shape?
>
> Thanks,
>
> Skip

Yes, as Rami says, there are moves afoot.  I've been working with
Carl, who is no longer with divers...@python.org -- something of a
hornets nest is you ask me.  We're hoping to go open archive so it's
not such a Chamber of Whispers.

Here's an excerpt from the archive (subscribers only) for your
edificiation.  You'll find more at this Wiki page, which starts with
the PSF version of the Diversity statement, developed independently of
the private Aahz list initiative.

http://wiki.python.org/moin/DiversityStatementDiscussion (I distance
myself from this page, except for the PSF statement, as too punitive
and threatening, also amateurish).

I should put my cards on the table that I'm a "Quaker animist" and
think training monkeys to write "Hello world" in Python might be a
good way to improve user group diversity.


-- Forwarded message --
From: kirby urner 
Date: Tue, Sep 15, 2009 at 11:36 AM
Subject: Fwd: [PSF-Members] All-positive diversity statement
To: divers...@python.org

<< snip >>

Python is *not* just for humans at the end of the day (that's if you
wanna talk diversity for real).



http://www.youtube.com/watch?v=c2hRrcvxRFE



Not a direct quote from PSF version (polished it some):



==

How about something like:

Diversity Statement:

Python is free and open source and is therefore deliberately placed in
the public commons for all humans to use, other species if they gain
this ability.

If you're a racist, bigoted pig from hell whom nobody loves, and you
choose to use Python, you're welcome.

If anyone says you have no right to use Python, because of all the
evil nonsense you pump out in the world, or because you're
"untouchable"
(for some reason), they're wrong.

You may be in prison for other offenses, but using Python will never
be one of them  Using Python is not a crime.  Just use it.

That being said, the PSF does protect against counterfeits so if you
change the source in any way and try to conceal this, while pretending
you're sharing the "real" Python, expect repercussions.  That's an
offense.  Expect retaliation.





Send your comments, suggestions for revisions directly to
snake...@python.org

(never mind the error message -- everyone gets those)



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


Re: testing code in python source package

2009-09-20 Thread alex23
Peng Yu  wrote:
> I'm wondering if the development of python is test driven. If it is,
> where in the Python-2.6.2 source directory is the test code for the
> modules in ./Lib?

Unsurprisingly, they're located in Lib/test. Is it _really_ that
difficult to find?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Am I doing this wrong? Why does this seem so clumsy (time, datetime vs. DateTime)

2009-09-20 Thread Carl Banks
On Sep 19, 11:02 pm, Ben Morrow  wrote:
> [This is not a Perl question. F'ups set to c.l.python.]

Heh, I didn't notice the cross-post.  Glad I decided against following
up with minor philosophical rant.


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


Re: Where are python module installed?

2009-09-20 Thread Diez B. Roggisch

Peng Yu schrieb:

On Sun, Sep 20, 2009 at 8:37 PM, Daniel Fetchinson
 wrote:

I configured python-2.6.2 with my own --prefix, then 'make' and 'make
install'. I only find the following dirs and I don't find any python
modules in the directory. Do python modules come with python-2.6.2?

$ ls
bin  include  lib  share

Try 'ls lib/python*' and also 'ls lib/python*/site-packages/'


Do I need to set PYTHONPATH to lib/python* because I changed the
default 'prefix'?


It would have taken shorter to *try* that than it would to write this 
mail. So go, try it. Hint:



>>> import foo
>>> foo.__file__

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


Re: Where are python module installed?

2009-09-20 Thread Peng Yu
On Sun, Sep 20, 2009 at 10:25 PM, Diez B. Roggisch  wrote:
> Peng Yu schrieb:
>>
>> On Sun, Sep 20, 2009 at 8:37 PM, Daniel Fetchinson
>>  wrote:

 I configured python-2.6.2 with my own --prefix, then 'make' and 'make
 install'. I only find the following dirs and I don't find any python
 modules in the directory. Do python modules come with python-2.6.2?

 $ ls
 bin  include  lib  share
>>>
>>> Try 'ls lib/python*' and also 'ls lib/python*/site-packages/'
>>
>> Do I need to set PYTHONPATH to lib/python* because I changed the
>> default 'prefix'?
>
> It would have taken shorter to *try* that than it would to write this mail.
> So go, try it. Hint:
>
>
 import foo
 foo.__file__

The newly compiled python does pick up the newly installed module. How
does it do so? Is the module path hard coded in the python executable
when the executable is compiled?

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


Re: Programming ideas?

2009-09-20 Thread Alan G Isaac

You could learn a lot of Python contributing to
docutils or bibstuff, and if you write papers
or presentations, it may pay off directly.

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


Re: easy question, how to double a variable

2009-09-20 Thread Steven D'Aprano
On Sun, 20 Sep 2009 13:27:07 -0700, daggerdvm wrote:

> Write the definition of a function  twice , that receives an  int
> parameter and returns an  int that is twice the value of the parameter.
> 
> how can i do this

Yes, that certainly is an easy question.

Here's my solution:

class MultiplierFactory(object):
def __init__(self, factor=1):
self.__factor = factor
@property
def factor(self):
return getattr(self, '_%s__factor' % self.__class__.__name__)
def __call__(self, factor=None):
if not factor is not None is True:
factor = self.factor
class Multiplier(object):
def __init__(self, factor=None):
self.__factor = factor
@property
def factor(self):
return getattr(self, 
'_%s__factor' % self.__class__.__name__)
def __call__(self, n):
return self.factor*n
Multiplier.__init__.im_func.func_defaults = (factor,)
return Multiplier(factor)

twice = MultiplierFactory(2)()


It needs some error checking, but otherwise should work.


Ever-helpful-ly y'rs,



-- 
Steven

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


Invitation to connect on LinkedIn

2009-09-20 Thread jesse zhao
LinkedIn


jesse zhao requested to add you as a connection on LinkedIn:
--

Jaime,

I'd like to add you to my professional network on LinkedIn.

- jesse

Accept invitation from jesse zhao
http://www.linkedin.com/e/uxOQ69ImZimIx24lNcLQYYImZimIb2pJuVw/blk/I341425974_3/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfPdvd3sVdj8QcjgPiiZMkCl2p5Bjc2YRdz0UcPwVd3sLrCBxbOYWrSlI/EML_comm_afe/

View invitation from jesse zhao
http://www.linkedin.com/e/uxOQ69ImZimIx24lNcLQYYImZimIb2pJuVw/blk/I341425974_3/0PnPgTejkOd34QcQALqnpPbOYWrSlI/svi/

--

Why might connecting with jesse zhao be a good idea?

People jesse zhao knows can discover your profile:
Connecting to jesse zhao will attract the attention of LinkedIn users. See 
who's been viewing your profile:

http://www.linkedin.com/e/wvp/inv18_wvmp/

 
--
(c) 2009, LinkedIn Corporation

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


Re: Where are python module installed?

2009-09-20 Thread TerryP

Maybe you should try reading the source?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: easy question, how to double a variable

2009-09-20 Thread Xavier Ho
On Mon, Sep 21, 2009 at 6:27 AM, daggerdvm  wrote:

>  Write the definition of a function  twice , that receives an  int
> parameter and returns an  int that is twice the value of the
> parameter.
>
> how can i do this
>

I thought it was easier to implement this twice function than to find this
mailing list. Aren't you being a little lazy? =]

Cheers,
Xav
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to change string or number passed as argument?

2009-09-20 Thread Simon Forman
On Sep 19, 9:59 pm, Peng Yu  wrote:
> Hi,
>
> I know that strings or numbers are immutable when they passed as
> arguments to functions. But there are cases that I may want to change
> them in a function and propagate the effects outside the function. I
> could wrap them in a class, which I feel a little bit tedious. I am
> wondering what is the common practice for this problem.
>
> Regards,
> Peng

Python strings and numbers are always immutable, not just when passed
as arguments.

"propagate the effects outside the function" is a little vague.

You can return new data objects (like str.lower() etc.. do) or you can
wrap them in a namespace (a dict or class instance) or you can pass a
list object that contains the string or int or whatever, and your
functions can replace the values in the dict/instance/list.

HTH,
~Simon
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What are the naming convention for private member variable, and private and public member function?

2009-09-20 Thread Simon Forman
On Sep 19, 11:33 pm, Peng Yu  wrote:
> Hi,
>
> It says inhttp://www.python.org/dev/peps/pep-0008/
>
> "    Method Names and Instance Variables
>
>       Use the function naming rules: lowercase with words separated by
>       underscores as necessary to improve readability.
>
>       Use one leading underscore only for non-public methods and
> instance
>       variables."
>
> I am wondering what is the different between member function and
> member variable in term of naming convention.
>
> Regards,
> Peng

The naming convention for both to indicate that attributes of a class
should be considered internal is a leading underscore.
-- 
http://mail.python.org/mailman/listinfo/python-list


  1   2   >