RE: Run pyc file without specifying python path ?

2009-07-30 Thread Barak, Ron

 -Original Message-
 From: Dave Angel [mailto:da...@ieee.org] 
 Sent: Wednesday, July 29, 2009 21:05
 To: Barak, Ron
 Cc: 'python-list@python.org'
 Subject: Re: Run pyc file without specifying python path ?
 
 Barak, Ron wrote:
  Hi,
 
  I wanted to make a python byte-code file executable, 
 expecting to be able to run it without specifying python on 
 the (Linux bash) command line.
 
  So, I wrote the following:
 
  [r...@vmlinux1 python]# cat test_pyc.py #!/usr/bin/env python
 
  print hello
  [r...@vmlinux1 python]#
 
  and made its pyc file executable:
 
  [r...@vmlinux1 python]# ls -ls test_pyc.pyc
  4 -rwxr-xr-x  1 root root 106 Jul 29 14:22 test_pyc.pyc
  [r...@vmlinux1 python]#
 
  So, I see:
 
  [r...@vmlinux1 python]# file test_pyc.py*
  test_pyc.py:  a python script text executable
  test_pyc.pyc: python 2.3 byte-compiled
  [r...@vmlinux1 python]#
 
  If I try to do the following, no problem:
 
  [r...@vmlinux1 python]# python test_pyc.pyc hello
  [r...@vmlinux1 python]#
 
  However, the following fails:
 
  [r...@vmlinux1 python]# ./test_pyc.pyc
  -bash: ./test_pyc.pyc: cannot execute binary file
  [r...@vmlinux1 python]#
 
  Is there a way to run a pyc file without specifying the 
 python path ?
 
  Bye,
  Ron.
 

 I don't currently run Unix, but I think I know the problem.
 
 In a text file, the shell examines the first line, and if it 
 begins #! 
 it's assumed to point to the executable of an interpreter for 
 that text file.  Presumably the same trick doesn't work for a 
 .pyc file.
 
 Why not write a trivial wrapper.py file, don't compile it, 
 and let that invoke the main code in the .pyc file?
 
 Then make wrapper.py executable, and you're ready to go.
 
 DaveA
 
 

Hi Dave,
Your solution sort of defeats my intended purpose (sorry for not divulging my 
'hidden agenda').
I wanted my application to hide the fact that it's a python script, and look 
as much as possible like it's a compiled program.
The reason I don't just give my user a py file, is that I don't want a cleaver 
user to change the innards of the script.
On the other hand, I don't want to make a compiled (freezed?) version of the 
application, because it'll grow the resulting file significantly, and I don't 
have the experience to know how it will run on different Linuxes.
Bye,
Ron. 
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Diez B. Roggisch

Nick Craig-Wood schrieb:

Diez B. Roggisch de...@nospam.web.de wrote:

 MalC0de schrieb:

hello there, I've a question :
I want to know does python have any capability for using Ring0 and
kernel functions for driver and device development stuff .
if there's such a feature it is very good, and if there something for
this kind that you know please refer me to some reference and show me
some snippet .
 No, it can't do such things. At least it isn't embedded in the kernel - 
 in theory that might be possible, but given the timing-constraints and 
 concurrency-requirements, it's not really feasible.


You can write FUSE (file systems in userspace) drivers in python I believe.
Not the same as running in ring0 but in most senses a kernel driver...


No. That's why it is called userspace. The kernel just hooks into a 
running program.


Diez

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


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Peter Otten
pdlem...@earthlink.net wrote:

 I've used python a few months and expected to find cmath seperately
 sort of as a  header file.  A text search failed.  I now understand
 its in the Python Standard Library, which I assume is that big file
 Python30\LIBS\libpython30.a

Python 3.1 is no longer maintained. I recommend that you upgrade to Python 3.1.

 And this is not readable as text.

The module is written in C. The source code for the 3.1 version is here:

http://svn.python.org/view/python/branches/release31-maint/Modules/cmathmodule.c?view=markup

If you want the source for all parts of python written in C you can download 
the sourcecode at

http://www.python.org/download/releases/3.1/

Peter


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


Re: Connecting multiple test cases in a sort of pipe

2009-07-30 Thread Diez B. Roggisch

Raghuram Devarakonda schrieb:

Hi,

I have three functions - create(), list(), and delete(). create()
creates a new name in the file system hierarchy while list() displays
all such created names and delete() removes them. I would like to
write test cases for each of these functions, say, test_create() ,
test_list(), and test_delete() using the unittest module. It easily
follows that test_list() and test_delete() will need to know the exact
name that was created in test_create() in order to properly validate
list() and delete(). One option is for test_create() to always use a
hard coded name but unfortunately this is not feasible.

Another way would be for test_create() to pass the new name down to
the next test case test_list() which would do the same and pass the
name down to test_delete(). In other words, the requirement is to
connect all three test cases in a kind of pipe. This facility is
obviously not currently present in the unittest module and nor does it
seem to be available in other frameworks (such as py.test and nose, I
only skimmed the feature list).

I am thinking of implementing this feature on top of unittest.TestCase
and would like to know what others think of the idea. Is there a
framework that has similar feature? Or perhaps, given my requirement
as stated above, is there some alternate way of implementing it? I
greatly appreciate any feed back.


Write a TestCase-subclass that simply works like this:


class FileTests(TestCase):


   def test_create(self):
   self.created_file = create()
   assert something


   def test_list(self):
   self.test_create()
   delete(self.created_file)


Passing state around is one of the reasons objects have been invented :) 
And nobody ever said that you can't invoke a test-method from somewhere 
else.


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


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Chris Rebert
On Wed, Jul 29, 2009 at 11:41 PM, Peter Otten__pete...@web.de wrote:
 pdlem...@earthlink.net wrote:

 I've used python a few months and expected to find cmath seperately
 sort of as a  header file.  A text search failed.  I now understand
 its in the Python Standard Library, which I assume is that big file
 Python30\LIBS\libpython30.a

 Python 3.1 is no longer maintained. I recommend that you upgrade to Python 
 3.1.

(He meant to say 3.0.x is no longer maintained.)

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


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Peter Otten
Chris Rebert wrote:

 On Wed, Jul 29, 2009 at 11:41 PM, Peter Otten__pete...@web.de wrote:
 pdlem...@earthlink.net wrote:

 I've used python a few months and expected to find cmath seperately
 sort of as a  header file.  A text search failed.  I now understand
 its in the Python Standard Library, which I assume is that big file
 Python30\LIBS\libpython30.a

 Python 3.1 is no longer maintained. I recommend that you upgrade to
 Python 3.1.
 
 (He meant to say 3.0.x is no longer maintained.)

Ouch. Thanks for the correction.

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


beautiful soup

2009-07-30 Thread xubin.cz
hi, everyone

Is there any pakage or module handling html document like beautiful
soup?

thanks a lot
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: beautiful soup

2009-07-30 Thread Diez B. Roggisch

xubin.cz schrieb:

hi, everyone

Is there any pakage or module handling html document like beautiful
soup?


why don't you *use* beautiful soup? It is a module...

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


Re: beautiful soup

2009-07-30 Thread Masklinn

On 30 Jul 2009, at 09:30 , Diez B. Roggisch wrote:

xubin.cz schrieb:

hi, everyone
Is there any pakage or module handling html document like beautiful
soup?


why don't you *use* beautiful soup? It is a module...
Or lxml, which works a bit better than BF 3.1 (post parser change)  
nowadays.

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Michel Claveau - MVP
Hi!

 Python is interpreted

No. Python is compiled (-- .pyc)
But the term to compile is not always unambiguous...
And the notion of compiler is not attached to Python (the language), but is 
attached to the implementation.

@+

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


Bug in IEHtmlWindow?

2009-07-30 Thread Massi
Hi everyone, I'm trying to use IEHtmlWindow in my application (python
2.5, wxpython 2.8 on win xp). Everything is ok, but I encountered a
problem which also affects the demo. If I make a research on google a
strange message appears, saying (I'll try to translate from italian):

Error during execution.
Do you want to run the debug?

line 29:
error: 'r' is NULL or it is not an object

Did anybody have the same problem? is it a bug?
Thanks in advance for your help.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Martin P. Hellwig

Marcus Wanner wrote:
cut
Look for example to libusb, which provides a userspace environment and 
pyusb which uses that and provides an interface to Python.



iicr pyusb uses a c interface to libusb, not python...



According to them they use ctypes indeed. Sorry if I was misleading in 
my explanation.


--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
--
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Martin P. Hellwig

Michel Claveau - MVP wrote:

Hi!


Python is interpreted


No. Python is compiled (-- .pyc)
But the term to compile is not always unambiguous...
And the notion of compiler is not attached to Python (the language), but is 
attached to the implementation.

@+

MCI


Well the pyc, which I thought was the Python bytecode, is then 
interpreted by the VM.


--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
--
http://mail.python.org/mailman/listinfo/python-list


string.Template issue

2009-07-30 Thread Javier Collado
Hello,

In the string.Template documentation
(http://docs.python.org/library/string.html) it's explained that if a
custom regular expression for pattern substitution is needed, it's
possible to override idpattern class attribute (whose default value is
[_a-z][_a-z0-9]*).

However, if the custom pattern that is needed is just uppercase
letters something like [A-Z]+ won't work because of the following line
in the _TemplateMetaclass class __init__ method:
cls.pattern = _re.compile(pattern, _re.IGNORECASE | _re.VERBOSE)

I would say that this is an error (IGNORECASE just shouldn't be there)
and that the line above should be:
cls.pattern = _re.compile(pattern, _re.VERBOSE)
and the default value for idpattern:
[_a-zA-Z][_a-zA-Z0-9]*

Do you agree on this? Is there any reason for the IGNORECASE option to
be passed to re.compile?

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Christian Heimes
Martin P. Hellwig wrote:
 Well the pyc, which I thought was the Python bytecode, is then
 interpreted by the VM.

Python is often referred as byte-code interpreted language. Most modern
languages are interpreted languages. The list [1] is rather long.
Technically speaking even native code is interpreted by the micro code
of most CPUs.

[1] http://en.wikipedia.org/wiki/Interpreted_language
[2] http://en.wikipedia.org/wiki/Microcode

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread PythonAB



Hi Dave,
Your solution sort of defeats my intended purpose (sorry for not  
divulging my 'hidden agenda').
I wanted my application to hide the fact that it's a python  
script, and look as much as possible like it's a compiled program.
The reason I don't just give my user a py file, is that I don't want  
a cleaver user to change the innards of the script.
On the other hand, I don't want to make a compiled (freezed?)  
version of the application, because it'll grow the resulting file  
significantly, and I don't have the experience to know how it will  
run on different Linuxes.

Bye,
Ron.


Hey Ron,

What i usually do to accomplish this is compile the script to a .pyc  
just like you

did and then call that pyc from another script that's not compiled.
so in your case the not compiled script looks like:

#!/usr/bin/env python

import test_pyc.pyc



then run that script...

hope this helps...



alternatively you might have a look at:
http://www.pyinstaller.org/



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


Pyplot

2009-07-30 Thread Kaan AKŞİT
I am a newbee in Python. I have some problem with usage of Pyplot. I have a
loop that creates plot in every end of it. Problem starts here: The first
plot is fine but the second one is plotted onto the first plot. I use:

plt.cla()
plt.draw()
plt.hold(False)
plt.close()
plt.clf()

but nothing works. Perhaps I am having a problem with basics, please help me
if you know something about it.

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Christian Heimes
Barak, Ron wrote:
 Your solution sort of defeats my intended purpose (sorry for not divulging my 
 'hidden agenda').
 I wanted my application to hide the fact that it's a python script, and 
 look as much as possible like it's a compiled program.
 The reason I don't just give my user a py file, is that I don't want a 
 cleaver user to change the innards of the script.
 On the other hand, I don't want to make a compiled (freezed?) version of the 
 application, because it'll grow the resulting file significantly, and I don't 
 have the experience to know how it will run on different Linuxes.

Ask Google for binfmt-support. Hint: Each Python version has its own
magic header.

Christian

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


Re: Pyplot

2009-07-30 Thread Kaan AKŞİT
Please help me I have been dealing with this little piece of code for 2
days. I am stuck and loosing time with it.

plt.figure(count)
plt.xlabel(Time steps)
plt.ylabel(Values)
plt.title(Output of ADCs)
plt.plot(timing,adc0)
plt.plot(timing,adc1)
plt.plot(timing,adc3)
plt.show()
plt.clf()
plt.cla()
plt.close()

30 Temmuz 2009 11:02 tarihinde Kaan AKŞİT kun...@gmail.com yazdı:

 I am a newbee in Python. I have some problem with usage of Pyplot. I have a
 loop that creates plot in every end of it. Problem starts here: The first
 plot is fine but the second one is plotted onto the first plot. I use:

 plt.cla()
 plt.draw()
 plt.hold(False)
 plt.close()
 plt.clf()

 but nothing works. Perhaps I am having a problem with basics, please help
 me if you know something about it.

 Kaan

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


Can you easy_install from your localhost?

2009-07-30 Thread Ronn Ross
I have a package i would like to store locally. If it is stored locally can
I do something like ' easy_install http://localhost/package ' ? Thanks
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: set variable to looping index?

2009-07-30 Thread Bearophile
Martin:
 for f in var1_fn, var2_fn, var3_fn:
     if f.split('.')[0] == 'var1':
         var1 = call_some_function(f)
         .
         .
         .
       etc

As usual I have big problems in understanding what you want to do.

Please, show an example of the contents of var1_fn, var2_fn, etc.

Generally you can create a dict:
results = {}

And then fill it with name-result pairs:
name = value.split('_')[0]
results[name] = some_function(value)

Bye,
bearophile
-- 
http://mail.python.org/mailman/listinfo/python-list


Compiling Python for uCLinux appliance?

2009-07-30 Thread Gilles Ganault
Hello

I just got a small appliance based on a Blackfin CPU with 64MB RAM and
258MB NAND flash. Using the stock software, there's about 30MB of RAM
left.

Besides C/C++ and shel scripts, I was wondering if it were realistic
to upload a few Python scripts in such a small appliance?

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


Re: Can you easy_install from your localhost?

2009-07-30 Thread Christian Heimes
Ronn Ross schrieb:
 I have a package i would like to store locally. If it is stored locally can
 I do something like ' easy_install http://localhost/package ' ? Thanks

You can do:

  easy_install /path/to/package-0.1.tar.gz

or you can put your packages into
/some/directory/simple/packagename/package-0.1.tar.gz and do:

  easy_install -i file:///some/directory packagename

Christian

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


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Steven D'Aprano
On Wed, 29 Jul 2009 21:34:07 -0700, Chris Rebert wrote:

 The difference is that it handles complex numbers, whereas the plain
 math module doesn't.
 I would guess the reason there are separate modules is for performance,
 so as to avoid having to dispatch on type at runtime. But this is only a
 guess.


My understanding is that it is to avoid people who don't care about 
complex numbers being confused when math.sqrt(-1) returns 1j instead of 
raising an error.



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


Help on Reading Attached Image on Excel

2009-07-30 Thread eman
Anyone know how to read included images in Excel using Python?

I've tried xlrd and pyexcelerator, but i couldn't figure out how to do
it.

If anyone has experience in this, please help.

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


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Chris Rebert
On Thu, Jul 30, 2009 at 3:10 AM, Steven
D'Apranoste...@remove.this.cybersource.com.au wrote:
 On Wed, 29 Jul 2009 21:34:07 -0700, Chris Rebert wrote:

 The difference is that it handles complex numbers, whereas the plain
 math module doesn't.
 I would guess the reason there are separate modules is for performance,
 so as to avoid having to dispatch on type at runtime. But this is only a
 guess.

 My understanding is that it is to avoid people who don't care about
 complex numbers being confused when math.sqrt(-1) returns 1j instead of
 raising an error.

That seems a better and more plausible rationale than my guess. Kudos.

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Steven D'Aprano
On Thu, 30 Jul 2009 07:01:28 +0100, Barak, Ron wrote:

 I wanted my application to hide the fact that it's a python script,
 and look as much as possible like it's a compiled program.

What do you think the c in .pyc stands for?

What it's not is a compiled to machine-code stand alone executable.


 The reason I don't just give my user a py file, is that I don't want 
 a cleaver user to change the innards of the script.

It's not the clever users you need to worry about, because they'll fix 
your bugs. It's the not-as-clever-as-they-think-they-are users you have 
to worry about. But frankly, the best way to deal with them is to make it 
absolutely clear that you don't provide free support for modified 
versions of the script, and as soon as they report a problem, you diff 
their version with the official version. If they vary, then you start 
charging them.

Before you go spending vast amounts of time and energy creating a fragile 
solution, it's worth you working out what it actually is you're trying to 
prevent. If it's just I don't want anybody touching my precious, 
precious code! then I have no sympathy and have no interest in helping 
you. If it's The damn users have mucked up the script AGAIN and now they 
expect me to fix it for free!!!, then that's a social problem, not a 
technical one, and a social solution might save you a lot of wasted 
effort.




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


Re: socket send

2009-07-30 Thread Francesco Bochicchio
On Jul 30, 5:52 am, NighterNet darkne...@gmail.com wrote:
 I am trying to figure out how to send text or byte in python 3.1. I am
 trying to send data to flash socket to get there. I am not sure how to
 work it.

 buff= 'id=' , self.id , ':balive=False\n'
 clientSock.send(buff);

Try putting a 'b' before the constant string that you want to send:

 type(b'123')
class 'bytes'

or use something like this to convert non constant strings (with only
ASCII characters) into bytes:

 s = A non-constant string : %d  % n
 s
'A non-constant string : 12 '
 type(s)
class 'str'
 b = bytes ( ord(c) for c in s )
 b
b'A non-constant string : 12 '

You could also use struct.pack , that in python 3.x returns bytes and
not strings. In this case you need to specify the size of the string
(extra
bytes are zero-filled):

import struct

 struct.pack( 30s, A non-constant string : %d  % n )
b'A non-constant string : 12 \x00\x00\x00'



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


Re: Confessions of a Python fanboy

2009-07-30 Thread Marco Mariani

r wrote:


My adventures in Ruby.


Oh, it's you.
Good boy.
Now, why don't you have a look at javascript and come back in six months?
Or better yet, haskell and twelve months.

thanks

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


Re: New implementation of re module

2009-07-30 Thread Wolfgang Rohdewald
On Tuesday 28 July 2009, Christopher Arndt wrote:
 setup(name='regex',
 version='1.0',
 py_modules = ['regex'],
 ext_modules=[Extension('_regex', ['_regex.c'])],
 )

 Also, you need to copy unicodedata_db.h from the Modules
 directory of the Python source tree to your working directory,
 since this file apparently is not installed into the include
 directory of a Python installation.

using issue2636-20090729.zip

I have Python 2.6.2 on ubuntu 9.04

with ggc-4.3:
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -
Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o
_regex.c: In Funktion »bmatch_context«:
_regex.c:1462: Fehler: Als Erhöhungsoperand wird L-Wert erfordert
_regex.c:1470: Fehler: Als Erhöhungsoperand wird L-Wert erfordert
_regex.c:1478: Fehler: Als Verringerungsoperand wird L-Wert erfordert

with gcc-4.4:
gcc-4.4 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-
prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o
_regex.c: In function ‘bmatch_context’:
_regex.c:1462: error: lvalue required as increment operand
_regex.c:1470: error: lvalue required as increment operand
_regex.c:1478: error: lvalue required as decrement operand


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


RE: Run pyc file without specifying python path ?

2009-07-30 Thread Barak, Ron



From: PythonAB [mailto:pyt...@rgbaz.eu]
Sent: Thursday, July 30, 2009 12:18
To: Barak, Ron
Cc: 'Dave Angel'; 'python-list@python.org'
Subject: Re: Run pyc file without specifying python path ?


Hi Dave,
Your solution sort of defeats my intended purpose (sorry for not divulging my 
'hidden agenda').
I wanted my application to hide the fact that it's a python script, and look 
as much as possible like it's a compiled program.
The reason I don't just give my user a py file, is that I don't want a cleaver 
user to change the innards of the script.
On the other hand, I don't want to make a compiled (freezed?) version of the 
application, because it'll grow the resulting file significantly, and I don't 
have the experience to know how it will run on different Linuxes.
Bye,
Ron.

Hey Ron,

What i usually do to accomplish this is compile the script to a .pyc just like 
you
did and then call that pyc from another script that's not compiled.
so in your case the not compiled script looks like:

#!/usr/bin/env python

import test_pyc.pyc



then run that script...

hope this helps...



alternatively you might have a look at:
http://www.pyinstaller.org/



gr
Arno
[BR] Thanks for the answer Arno. But, I wonder -

How is your suggestion, which to the user would look like:
python wrapper.py

different (from the user's point-of-view) than the following:
python test_pyc.pyc ?

I'm trying to avoide having to write python on the command line.
Of course, I could write the wrapper is bourne shell, but that interoduces 
other problems (especially when considering that my real application needs to 
parse many command line options).
.
Bye,
Ron.
-- 
http://mail.python.org/mailman/listinfo/python-list


Python processors? : WAS Re: Does python have the capability for driver development ?

2009-07-30 Thread Francesco Bochicchio
On Jul 30, 11:10 am, Christian Heimes li...@cheimes.de wrote:
 Martin P. Hellwig wrote:
  Well the pyc, which I thought was the Python bytecode, is then
  interpreted by the VM.

 Python is often referred as byte-code interpreted language. Most modern
 languages are interpreted languages. The list [1] is rather long.
 Technically speaking even native code is interpreted by the micro code
 of most CPUs.

 [1]http://en.wikipedia.org/wiki/Interpreted_language
 [2]http://en.wikipedia.org/wiki/Microcode

Once upon a time there where lisp machines, whith processors designed
to fastly execute lisp code  ... I worked with one of them for 2
years.
I wonder: has anybody thought of making a python-machine, or at least
a processor able to directly execute high-level bytecode (LLVM-like?).
I think the main feature of such a machine should be hyper-fast hash
lookup. Then dynamic memory management hardware ...

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Chris Rebert
On Thu, Jul 30, 2009 at 3:42 AM, Barak, Ronron.ba...@lsi.com wrote:


 
 From: PythonAB [mailto:pyt...@rgbaz.eu]
 Sent: Thursday, July 30, 2009 12:18
 To: Barak, Ron
 Cc: 'Dave Angel'; 'python-list@python.org'
 Subject: Re: Run pyc file without specifying python path ?


 Hi Dave,
 Your solution sort of defeats my intended purpose (sorry for not divulging
 my 'hidden agenda').
 I wanted my application to hide the fact that it's a python script, and
 look as much as possible like it's a compiled program.
 The reason I don't just give my user a py file, is that I don't want a
 cleaver user to change the innards of the script.
 On the other hand, I don't want to make a compiled (freezed?) version of the
 application, because it'll grow the resulting file significantly, and I
 don't have the experience to know how it will run on different Linuxes.
 Bye,
 Ron.

 Hey Ron,
 What i usually do to accomplish this is compile the script to a .pyc just
 like you
 did and then call that pyc from another script that's not compiled.
 so in your case the not compiled script looks like:
 #!/usr/bin/env python
 import test_pyc.pyc


 then run that script...
 hope this helps...


 alternatively you might have a look at:
 http://www.pyinstaller.org/


 gr
 Arno
 [BR] Thanks for the answer Arno. But, I wonder -

 How is your suggestion, which to the user would look like:
 python wrapper.py

No, with the shebang line (and assuming execute permissions on the
file), it would look like:

./wrapper.py

(or just `wrapper.py` depending on whether the file is placed in the $PATH)

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


Re: New implementation of re module

2009-07-30 Thread MRAB

Wolfgang Rohdewald wrote:

On Tuesday 28 July 2009, Christopher Arndt wrote:

setup(name='regex',
version='1.0',
py_modules = ['regex'],
ext_modules=[Extension('_regex', ['_regex.c'])],
)

Also, you need to copy unicodedata_db.h from the Modules
directory of the Python source tree to your working directory,
since this file apparently is not installed into the include
directory of a Python installation.


using issue2636-20090729.zip

I have Python 2.6.2 on ubuntu 9.04

with ggc-4.3:
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -
Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o

_regex.c: In Funktion »bmatch_context«:
_regex.c:1462: Fehler: Als Erhöhungsoperand wird L-Wert erfordert
_regex.c:1470: Fehler: Als Erhöhungsoperand wird L-Wert erfordert
_regex.c:1478: Fehler: Als Verringerungsoperand wird L-Wert erfordert

with gcc-4.4:
gcc-4.4 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-
prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o

_regex.c: In function ‘bmatch_context’:
_regex.c:1462: error: lvalue required as increment operand
_regex.c:1470: error: lvalue required as increment operand
_regex.c:1478: error: lvalue required as decrement operand


There are other lines which are similar, eg line 1487. Do they all give
the same/similar error with your compiler?
--
http://mail.python.org/mailman/listinfo/python-list


Re: Confessions of a Python fanboy

2009-07-30 Thread Masklinn

On 30 Jul 2009, at 06:04 , alex23 wrote:

On Jul 30, 1:06 pm, r rt8...@gmail.com wrote:

1.) No need to use () to call a function with no arguments.
Python -- obj.m2().m3() --ugly
  Ruby -- obj.m1.m2.m3  -- sweeet!
Man, i must admit i really like this, and your code will look so much
cleaner.


How do you distinguish between calling a method with no arguments, and
getting access to the method object itself (because it _is_ an object,
y'know, it's OO all the way down...)?

As chris pointed out, there's a method for that, to which a symbol is  
provided: `Object#method(methodname)`, which is basically equivalent  
to `getattr(object, methodname)` in Python.



2.) the .each method
container.each{|localVar| block}
This method can really cleanup some ugly for loops, although i really
like the readability of for loops.


map(lambda localVar: block, sequence)

or:

def usefully_named_func(var):
   block
   return var

transformed = [usefully_named_func(v) for v in sequence]

The issue here is of course that `map` and comprehensions are  
transformations. `#each` exists for effectful iterations (Ruby has  
`#map` for the map operation). So the intent expressed by `#each` and  
`map` isn't the same. Furthermore and this is the most problematic  
limitation of Python here, `lambda` doesn't allow complex  
transformations due to its restrictions, so one has to switch to named  
functions which works but isn't sexy (and tends to lower readability  
imo).



3.) true OOP
Now before you go and get all huffy over this statement, hear me
out. Python is the best language in the world. But it damn sure has
some warts! len(this) instead of obj.length max(that) instead of
[1,2,3,4,5].max().


As the Zen says: '[P]racticality beats purity'. Personally, I'm not
sure how a handful of convenient built-in functions make a language in
which _everything is an object_ somehow false OO.

That's an interesting point, but not relevant at the end of the day:  
`foo.length` and `length(foo)` have the same practicality. On the  
other hand Ruby can be praised for the coherence: everything's a  
method period end of the story; while Python does have a dichotomy  
between methods and functions/generic methods (whether or not that  
dichotomy bothers users is another issue).



With max(), this is a built-in that takes _any_ iterable and an
optional key function, and returns the highest value as per the key.
This means that _every_ iterable object - as _well_ as every object
that supports enough of the iterator protocol - can be handed to max()
and a result obtained. So at best, I just need to make sure my new
sequence-type provides the iterator protocol and viola, it works with
max() without me having to hand-code a .max() that's specialised for
my new type, and without Python forcing me to have a complex
inheritance chain just to make sure I include the right
MaxableSequence ancestor to inherit the right .max().

Well interestingly, Ruby works pretty much the same way. Where Python  
asks that you implement the iterator protocol to have `max` work, Ruby  
asks that you implement the `each` method (also called the Enumerable  
protocol) and mixin `Enumerable` (http://ruby-doc.org/core/classes/Enumerable.html 
). Then you get max (and min, map, etc…) for free. Of course you're  
free to re-implement all of them manually if you wish to do so (or if  
you need those operations to return your custom collection rather than  
arrays). Enumerable is merely a convenience mixin. So there's no big  
difference here (and note that mixins aren't necessarily part of the  
inheritance chain, though they're implemented that way in Ruby).


Also, it's voilà not viola (a viola is a bowed string instrument,  
slightly bigger than a violin, whereas voilà is a french interjection  
used to call attention or suggest the appearance of something, as if  
by magic).



PS stay tuned for more from this series


Is this going to be more of you telling us - without any apparent
irony whatsoever - how Ruby has some valid points after all your
vilification last year when we said the same to you?  If so, where can
I sign up?!

I fear I'll have to agree with that sentiment.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Does underscore has any special built-in meaningin Python ?

2009-07-30 Thread Bruno Desthuilliers

Ben Finney a écrit :

dandi kain dandi.k...@gmail.com writes:


What is the functionality of __ or _ , leading or trailing an object ,
class ot function ?


OP
Please note that in Python, classes and functions are objects too. But 
anyway, these underscores are part of *identifiers*, not objects 
themselves !-)

/OP


foo  Ordinary name, part of public interface
_foo Ordinary name, part of internal-only interface
__fooOrdinary name, but will be mangled (this style used rarely)
__foo__  Name which is used in a special way by Python


And FWIW:

 foo_ When you want to use a reserved name for identifier (ie: 
'class_' , 'or_', 'and_' etc)

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


Re: Confessions of a Python fanboy

2009-07-30 Thread superpollo

Masklinn wrote:
...
That's an interesting point, but not relevant at the end of the day:  
`foo.length` and `length(foo)` have the same practicality. On the  
other hand Ruby can be praised for the coherence: everything's a  method 
period end of the story; while Python does have a dichotomy  between 
methods and functions/generic methods (whether or not that  dichotomy 
bothers users is another issue).

...
how would you correct a newbie (like me) who says:

well, the main difference between a function and a method (from the 
caller's pow) is a syntactic one:


fun(obj, arguments)

as opposed to:

obj.met(arguments)

but the effect is just about the same.

?

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


Re: Looking for a dream language: sounds like Python to me.

2009-07-30 Thread ray
 Where can I find a Python functionality like simulink  ?

Stef,

I saw this at:
http://showmedo.com/videotutorials/video?name=743fromSeriesID=743

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


Re: Confessions of a Python fanboy

2009-07-30 Thread Jean-Michel Pichavant

superpollo wrote:

Masklinn wrote:
...
That's an interesting point, but not relevant at the end of the day:  
`foo.length` and `length(foo)` have the same practicality. On the  
other hand Ruby can be praised for the coherence: everything's a  
method period end of the story; while Python does have a dichotomy  
between methods and functions/generic methods (whether or not that  
dichotomy bothers users is another issue).

...
how would you correct a newbie (like me) who says:

well, the main difference between a function and a method (from the 
caller's pow) is a syntactic one:


fun(obj, arguments)

as opposed to:

obj.met(arguments)

but the effect is just about the same.

?

bye


My suggestion

- OO programming:
length(foo) calls the foo instance(or class for some language) length method
length(bar) calls the bar instance length method, it is **not** the same 
than the foo method


- non OO programming:
length(foo) calls the length function with foo as parameter
length(bar) calls the **same** length function with the bar parameter 
(so you better make sure length is handling both foo and bar)


So the difference is definitely **not** a syntactic one, but it is true 
that the syntax obj.method() better illustrates the bind mechanism of 
the OO programming.


JM

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


Re: Python processors? : WAS Re: Does python have the capability for driver development ?

2009-07-30 Thread Chris Rebert
On Thu, Jul 30, 2009 at 3:49 AM, Francesco Bochicchiobieff...@gmail.com wrote:
 On Jul 30, 11:10 am, Christian Heimes li...@cheimes.de wrote:
 Martin P. Hellwig wrote:
  Well the pyc, which I thought was the Python bytecode, is then
  interpreted by the VM.

 Python is often referred as byte-code interpreted language. Most modern
 languages are interpreted languages. The list [1] is rather long.
 Technically speaking even native code is interpreted by the micro code
 of most CPUs.

 [1]http://en.wikipedia.org/wiki/Interpreted_language
 [2]http://en.wikipedia.org/wiki/Microcode

 Once upon a time there where lisp machines, whith processors designed
 to fastly execute lisp code  ... I worked with one of them for 2
 years.
 I wonder: has anybody thought of making a python-machine, or at least
 a processor able to directly execute high-level bytecode (LLVM-like?).
 I think the main feature of such a machine should be hyper-fast hash
 lookup. Then dynamic memory management hardware ...

Yes, it was considered a decade ago:
http://mail.python.org/pipermail/python-list/1999-June/004451.html

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


Re: New implementation of re module

2009-07-30 Thread Wolfgang Rohdewald
On Thursday 30 July 2009, MRAB wrote:
 There are other lines which are similar, eg line 1487. Do they all
 give the same/similar error with your compiler?

yes. The full output with gcc-4.3:


notebook:~/kmj/src$ LANG=C python setup.py  build
running build
running build_py
running build_ext
building '_regex' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -
Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o
_regex.c: In function 'bmatch_context':
_regex.c:1462: error: lvalue required as increment operand
_regex.c:1470: error: lvalue required as increment operand
_regex.c:1478: error: lvalue required as decrement operand
_regex.c:1487: error: lvalue required as decrement operand
_regex.c:1593: error: lvalue required as increment operand
_regex.c:1606: error: lvalue required as decrement operand
_regex.c:1616: error: lvalue required as increment operand
_regex.c:1625: error: lvalue required as increment operand
_regex.c:1634: error: lvalue required as decrement operand
_regex.c:1643: error: lvalue required as decrement operand
_regex.c:2036: error: lvalue required as increment operand
_regex.c:2047: error: lvalue required as increment operand
_regex.c:2059: error: lvalue required as decrement operand
_regex.c:2070: error: lvalue required as decrement operand
_regex.c:2316: error: lvalue required as increment operand
In file included from _regex.c:2431:
_regex.c: In function 'umatch_context':
_regex.c:1462: error: lvalue required as increment operand
_regex.c:1470: error: lvalue required as increment operand
_regex.c:1478: error: lvalue required as decrement operand
_regex.c:1487: error: lvalue required as decrement operand
_regex.c:1593: error: lvalue required as increment operand
_regex.c:1606: error: lvalue required as decrement operand
_regex.c:1616: error: lvalue required as increment operand
_regex.c:1625: error: lvalue required as increment operand
_regex.c:1634: error: lvalue required as decrement operand
_regex.c:1643: error: lvalue required as decrement operand
_regex.c:2036: error: lvalue required as increment operand
_regex.c:2047: error: lvalue required as increment operand
_regex.c:2059: error: lvalue required as decrement operand
_regex.c:2070: error: lvalue required as decrement operand
_regex.c:2316: error: lvalue required as increment operand
error: command 'gcc' failed with exit status 1

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


Re: Confessions of a Python fanboy

2009-07-30 Thread Masklinn

On 30 Jul 2009, at 14:03 , superpollo wrote:

Masklinn wrote:
...
That's an interesting point, but not relevant at the end of the  
day:  `foo.length` and `length(foo)` have the same practicality.  
On the other hand Ruby can be praised for the coherence:  
everything's a  method period end of the story; while Python does  
have a dichotomy  between methods and functions/generic methods  
(whether or not that  dichotomy bothers users is another issue).

...
how would you correct a newbie (like me) who says:

well, the main difference between a function and a method (from the  
caller's pow) is a syntactic one:


fun(obj, arguments)

as opposed to:

obj.met(arguments)

but the effect is just about the same.

?
Depending on the way things are implemented, it can be very similar  
(see CLOS' generic functions, which have the same look as functions  
but dispatch based on parameter types).


In Python, the difference would be that functions don't automatically  
dispatch (you have a function for everybody, and any dispatch you  
perform based on argument types or other qualifiers has to be done  
manually) whereas methods do dispatch on the first [implied] argument  
(you execute a precise method corresponding to the object it's being  
called on).


So fun(obj, *arguments) will call the same `fun` whether `obj` is an  
int, a string or an HTTPFactory whereas obj.met(*arguments) will call  
a different `met` each time (they all have the same unqualified name  
[and signature if it's part of a protocol], but might very well be  
implemented completely differently). Therefore -- in python -- the  
effect isn't anywhere just about the same.


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


Regexp problem

2009-07-30 Thread Beldar
Hi there!

I have a problem and i'm not very good at regular expressions.
I have a text like lalala lalala tiruri beldar-is-listening tiruri
lalala I need a regexp to get the 'beldar' part, the format is
'something-is-listening', i need to get the something part, use it in
my code, and then replace the whole 'something-is-listening' for
another string.

Someone can help me please? Thank you!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Nobody
On Wed, 29 Jul 2009 23:24:11 -0500, pdlemper wrote:

 The following numerical approximation for Euler's Gamma function
 is found in http://en.wikipedia.org/wiki/Lanczos_approximation
 
 from cmath import *

 This works in Python 3.0
   
 But I can't figure out where it gets cmath.Searching the Python 
 directory reveals no more than a test_cmath.  The only cmath I can find
 is a header file in another directory  turboc++\Borland\include\
 
 dir(cmath) reveals 23 functions overlapping the 37 functions of
 the math module.
 
 What is cmath, where did it come from and how does it differ from
 the standard math module  ?

If you're looking for the file, it's written in C, so it's typically a
dynamic library, e.g.:

/usr/lib/python2.5/lib-dynload/cmath.so

You won't find a cmath.py file.

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


Image merging

2009-07-30 Thread James Matthews
Hi,

I need to create an app that takes to images and mergers them. After
googling around I have found 4 graphic library's that I can use. However
since I am new to image programming can you please tell me which one you
think would be the best.

The ones I found were

cairographics
PIL
Imagemagick
GraphicsMagick

Any tips?

Thanks
James

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread PythonAB


On 30 jul 2009, at 12:57, Chris Rebert wrote:


On Thu, Jul 30, 2009 at 3:42 AM, Barak, Ronron.ba...@lsi.com wrote:




From: PythonAB [mailto:pyt...@rgbaz.eu]
Sent: Thursday, July 30, 2009 12:18
To: Barak, Ron
Cc: 'Dave Angel'; 'python-list@python.org'
Subject: Re: Run pyc file without specifying python path ?


Hi Dave,
Your solution sort of defeats my intended purpose (sorry for not  
divulging

my 'hidden agenda').
I wanted my application to hide the fact that it's a python  
script, and

look as much as possible like it's a compiled program.
The reason I don't just give my user a py file, is that I don't  
want a

cleaver user to change the innards of the script.
On the other hand, I don't want to make a compiled (freezed?)  
version of the
application, because it'll grow the resulting file significantly,  
and I
don't have the experience to know how it will run on different  
Linuxes.

Bye,
Ron.

Hey Ron,
What i usually do to accomplish this is compile the script to  
a .pyc just

like you
did and then call that pyc from another script that's not compiled.
so in your case the not compiled script looks like:
#!/usr/bin/env python
import test_pyc.pyc


then run that script...
hope this helps...


alternatively you might have a look at:
http://www.pyinstaller.org/


gr
Arno
[BR] Thanks for the answer Arno. But, I wonder -

How is your suggestion, which to the user would look like:
python wrapper.py


No, with the shebang line (and assuming execute permissions on the
file), it would look like:

./wrapper.py

(or just `wrapper.py` depending on whether the file is placed in the  
$PATH)


Cheers,
Chris



yes exactly, chris

you can distribute a pyc containing your program, and have the  
wrapper.py execute it


gr
Arno 
--

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


Re: New implementation of re module

2009-07-30 Thread MRAB

Wolfgang Rohdewald wrote:

On Thursday 30 July 2009, MRAB wrote:

There are other lines which are similar, eg line 1487. Do they all
give the same/similar error with your compiler?


yes. The full output with gcc-4.3:


notebook:~/kmj/src$ LANG=C python setup.py  build
running build
running build_py
running build_ext
building '_regex' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -
Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o 
build/temp.linux-i686-2.6/_regex.o

_regex.c: In function 'bmatch_context':
_regex.c:1462: error: lvalue required as increment operand

[snip]

error: command 'gcc' failed with exit status 1


So it complains about:

++(RE_CHAR*)context-text_ptr

but not about:

++info-repeat.count

Does this mean that the gcc compiler thinks that the cast makes it an
rvalue? I'm using Visual C++ 2008 Express Edition, which doesn't
complain. What does the C standard say?
--
http://mail.python.org/mailman/listinfo/python-list


RE: Run pyc file without specifying python path ?

2009-07-30 Thread Dave Angel

Barak, Ron wrote:

-Original Message-
From: Dave Angel [mailto:da...@ieee.org] 
Sent: Wednesday, July 29, 2009 21:05

To: Barak, Ron
Cc: 'python-list@python.org'
Subject: Re: Run pyc file without specifying python path ?

Barak, Ron wrote:


Hi,

I wanted to make a python byte-code file executable, 
  
expecting to be able to run it without specifying python on 
the (Linux bash) command line.


So, I wrote the following:

[r...@vmlinux1 python]# cat test_pyc.py #!/usr/bin/env python

print hello
[r...@vmlinux1 python]#

and made its pyc file executable:

[r...@vmlinux1 python]# ls -ls test_pyc.pyc
4 -rwxr-xr-x  1 root root 106 Jul 29 14:22 test_pyc.pyc
[r...@vmlinux1 python]#

So, I see:

[r...@vmlinux1 python]# file test_pyc.py*
test_pyc.py:  a python script text executable
test_pyc.pyc: python 2.3 byte-compiled
[r...@vmlinux1 python]#

If I try to do the following, no problem:

[r...@vmlinux1 python]# python test_pyc.pyc hello
[r...@vmlinux1 python]#

However, the following fails:

[r...@vmlinux1 python]# ./test_pyc.pyc
-bash: ./test_pyc.pyc: cannot execute binary file
[r...@vmlinux1 python]#

Is there a way to run a pyc file without specifying the 
  

python path ?


Bye,
Ron.

  
  

I don't currently run Unix, but I think I know the problem.

In a text file, the shell examines the first line, and if it 
begins #! 
it's assumed to point to the executable of an interpreter for 
that text file.  Presumably the same trick doesn't work for a 
.pyc file.


Why not write a trivial wrapper.py file, don't compile it, 
and let that invoke the main code in the .pyc file?


Then make wrapper.py executable, and you're ready to go.

DaveA





Hi Dave,
Your solution sort of defeats my intended purpose (sorry for not divulging my 
'hidden agenda').
I wanted my application to hide the fact that it's a python script, and look 
as much as possible like it's a compiled program.
The reason I don't just give my user a py file, is that I don't want a cleaver 
user to change the innards of the script.
On the other hand, I don't want to make a compiled (freezed?) version of the 
application, because it'll grow the resulting file significantly, and I don't 
have the experience to know how it will run on different Linuxes.
Bye,
Ron. 
  
Most of the other answers basically paraphrased my suggestion of making 
a wrapper file, not compiling it, and making it executable.  With that 
approach, the user just types   wrapper.py on his command line.


And wrapper.py only needs two lines, a shebang, and an import, no big 
deal if the user modifies it.  The rest of your code can be .pyc files.


Steven makes some good points.  You have to define what level of clever 
you're protecting from.  A determined hacker will get in no matter what 
you do, unless you want to ship the program in a proprietary embedded 
system, encased in epoxy.  Further, if you have an extension of .py or 
.pyc, a knowledgeable hacker will know it's probably python.


You imply you want it to run unmodifed on multiple unknown Linux 
versions.  I think that lets out binfmt solutions.  That means you need 
to test and support not only multiple Linux implementations, but 
multiple Python versions, because who knows what the user may have 
installed.  I think you need to rethink your support strategy.  And 
maybe concentrate on being able to detect change, rather than prevent it.


DaveA


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


Re: Regexp problem

2009-07-30 Thread Tim Chase

I have a problem and i'm not very good at regular expressions.
I have a text like lalala lalala tiruri beldar-is-listening tiruri
lalala I need a regexp to get the 'beldar' part, the format is
'something-is-listening', i need to get the something part, use it in
my code, and then replace the whole 'something-is-listening' for
another string.



Pretty easy:

   import re
   s = lalala lalala tiruri beldar-is-listening tiruri lalala
   r = re.compile(r'(\w+)-is-listening')
   r.search(s).group(1)
  'beldar'
   r.sub('this is a replacement', s)
  'lalala lalala tiruri this is a replacement tiruri lalala'

-tkc


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


Re: Regexp problem

2009-07-30 Thread MRAB

Beldar wrote:

Hi there!

I have a problem and i'm not very good at regular expressions.
I have a text like lalala lalala tiruri beldar-is-listening tiruri
lalala I need a regexp to get the 'beldar' part, the format is
'something-is-listening', i need to get the something part, use it in
my code, and then replace the whole 'something-is-listening' for
another string.


\w+ will match a word and enclosing it in (...) will capture what was
matched:

m = re.search(r(\w+)-is-listening, text)
print Captured '%s' % m.group(1)
print Matched from %d to %d % (m.start(), m.end())
--
http://mail.python.org/mailman/listinfo/python-list


Re: New implementation of re module

2009-07-30 Thread Wolfgang Rohdewald
On Thursday 30 July 2009, MRAB wrote:
 So it complains about:

  ++(RE_CHAR*)context-text_ptr

 but not about:

  ++info-repeat.count

 Does this mean that the gcc compiler thinks that the cast makes it
 an rvalue? I'm using Visual C++ 2008 Express Edition, which doesn't
 complain. What does the C standard say?

I am not really a C expert but I found some links. Most helpful:
http://developer.apple.com/DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/C-Dialect-Options.html

(search -fnon-lvalue-assign)

so I did the conversion mentioned there. This works: 

--- _regex.c2009-07-29 11:34:00.0 +0200
+++ n   2009-07-30 15:15:22.0 +0200
@@ -1459,7 +1459,7 @@
 if (text_ptr  (RE_CHAR*)context-slice_end  text_ptr[0] != '\n')
   {
 context-node = node-next_1;
-++(RE_CHAR*)context-text_ptr;
+++*(RE_CHAR**)context-text_ptr;
 } else
 context = reject_context(state, context);
 break;


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


Re: Python ctypes on win64

2009-07-30 Thread ulf
On Jul 25, 3:09 am, a...@pythoncraft.com (Aahz) wrote:
 In article f415d834-b2ac-4036-afb1-a12c79480...@i6g2000yqj.googlegroups.com,
Thanks, I'll try there.


 ulf  wfl...@gmail.com wrote:

 Does anybody know if python includes a win64 version ofctypes?

 According to the documentation it should be included - at least
 there's no special remarks for win64, and I haven't found any recent
 notes saying that it shouldn't work on win64. Yet it looks like both
 the installer from Python.org and from ActiveState.com have disabled
 it.

 Nobody seems to have followed up to this, you may have better luck on
 the capi-sig mailing list.
 --
 Aahz (a...@pythoncraft.com)           *        http://www.pythoncraft.com/

 At Resolver we've found it useful to short-circuit any doubt and just        
 refer to comments in code as 'lies'. :-)
 --Michael Foord paraphrases Christian Muirhead on python-dev, 2009-03-22

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Dave Angel

Martin P. Hellwig wrote:
div class=moz-text-flowed style=font-family: -moz-fixedMichel 
Claveau - MVP wrote:

Hi!


Python is interpreted


No. Python is compiled (-- .pyc)
But the term to compile is not always unambiguous...
And the notion of compiler is not attached to Python (the 
language), but is attached to the implementation.


@+

MCI


Well the pyc, which I thought was the Python bytecode, is then 
interpreted by the VM.


As Michel says, to compile is not always unambiguous.  My definition 
includes a one-way transformation from human-readable source text into 
something that can be more efficiently interpreted by other code, or by 
hardware.  The compiler really doesn't care whether the machine it's 
targeting is real or virtual.


The CPython implementation of Python compiles the source text into a 
bytecode file, with extension .pyc.That certainly is a compilation 
step.  Followed (much) later by an interpreted one.


To pick a specific implementation of C++,  Microsoft C++ compiles C++ 
source text into an executable file,  with extension .exe  (I'm 
ignoring little details, like the linker).  That's a compilation step.  
Then the exe file is (later) interpreted by the microcode on the Pentium 
chip.


As far as I know, nobody has yet built a microcode implementation of a 
Python VM (Virtual Machine).  Nor have I seen one for the Java VM.  
However, in the early 80's there was a microcode implementation of the 
P-system VM.  It was never a commercial success, but it existed.  And 
there have been at least three Forth machines, where the hardware itself 
was designed to support the language's VM.  No microcode at all.


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


Re: New implementation of re module

2009-07-30 Thread Wolfgang Rohdewald
On Thursday 30 July 2009, Wolfgang Rohdewald wrote:
 so I did the conversion mentioned there. This works:

I actually do not know if it works - but it compiles.

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Ben Finney
Michel Claveau - MVPenleverlesx_xx...@xmclavxeaux.com writes:

 Hi!
 
  Python is interpreted
 
 No.

Yes. The same Python code is both interpreted and compiled so as to run
it.

 Python is compiled (-- .pyc)

The Python bytecode (the contents of the compiled ‘foo.pyc’ file) is
then interpreted by the run-time Python interpreter, to actually run the
program.

-- 
 \   “Value your freedom or you will lose it, teaches history. |
  `\ “Don't bother us with politics,” respond those who don't want |
_o__)   to learn.” —Richard Stallman, 2002 |
Ben Finney

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


Re: Regexp problem

2009-07-30 Thread Beldar
On 30 jul, 15:07, MRAB pyt...@mrabarnett.plus.com wrote:
 Beldar wrote:
  Hi there!

  I have a problem and i'm not very good at regular expressions.
  I have a text like lalala lalala tiruri beldar-is-listening tiruri
  lalala I need a regexp to get the 'beldar' part, the format is
  'something-is-listening', i need to get the something part, use it in
  my code, and then replace the whole 'something-is-listening' for
  another string.

 \w+ will match a word and enclosing it in (...) will capture what was
 matched:

      m = re.search(r(\w+)-is-listening, text)
      print Captured '%s' % m.group(1)
      print Matched from %d to %d % (m.start(), m.end())

Ok, thank you all, it was very helpful!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: PyPDF and print restrictions

2009-07-30 Thread Chris Curvey
On Jul 27, 4:16 pm, Chris Curvey ccur...@gmail.com wrote:
 Has anyone out there been able to enforce print restrictions on a PDF
 document by usingPyPDF? The documentation for encrypt states:

  # @param user_pwd The user password, which allows for opening and
 reading
  # the PDF file with the restrictions provided.

 But there is no parameter for providing a restriction, and I can't
 find a reference to any kind of restriction besides this comment in
 the docs.

 Thanks in advance!

I found some (I think old-ish) documentation on encryption and
permissions (of course, I've lost the link).  I think there are
additional permissions that have been implemented since the doc that I
found, but this patch works for me.

Index: C:/Documents and Settings/ccurvey/PyPDF/pyPdf/pdf.py
===
--- C:/Documents and Settings/ccurvey/PyPDF/pyPdf/pdf.py(revision 1)
+++ C:/Documents and Settings/ccurvey/PyPDF/pyPdf/pdf.py(revision 2)
@@ -118,7 +118,10 @@
 # @param use_128bit Boolean argument as to whether to use 128bit
 # encryption.  When false, 40bit encryption will be used.  By
default, this
 # flag is on.
-def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True):
+# @param perm_mask bitmask of the permissions that should be
granted.
+# Defaults to -1, which is everything permitted
+def encrypt(self, user_pwd, owner_pwd = None, use_128bit = True,
+perm_mask=-1):
 import md5, time, random
 if owner_pwd == None:
 owner_pwd = user_pwd
@@ -130,8 +133,8 @@
 V = 1
 rev = 2
 keylen = 40 / 8
-# permit everything:
-P = -1
+
+P = perm_mask
 O = ByteStringObject(_alg33(owner_pwd, user_pwd, rev,
keylen))
 ID_1 = md5.new(repr(time.time())).digest()
 ID_2 = md5.new(repr(random.random())).digest()
Index: C:/Documents and Settings/ccurvey/PyPDF/pyPdf/__init__.py
===
--- C:/Documents and Settings/ccurvey/PyPDF/pyPdf/__init__.py
(revision 1)
+++ C:/Documents and Settings/ccurvey/PyPDF/pyPdf/__init__.py
(revision 2)
@@ -1,2 +1,11 @@
 from pdf import PdfFileReader, PdfFileWriter
+
+PERM_NONE = 0
+PERM_PRINT = 2
+PERM_MODIFY = 4
+PERM_COPY_TEXT = 8
+PERM_ANNOTATE = 16
+
+PERM_ALL = PERM_PRINT | PERM_MODIFY | PERM_COPY_TEXT | PERM_ANNOTATE
+
 __all__ = [pdf]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Regexp problem

2009-07-30 Thread Marcus Wanner

On 7/30/2009 9:32 AM, Beldar wrote:

On 30 jul, 15:07, MRAB pyt...@mrabarnett.plus.com wrote:

Beldar wrote:

Hi there!
I have a problem and i'm not very good at regular expressions.
I have a text like lalala lalala tiruri beldar-is-listening tiruri
lalala I need a regexp to get the 'beldar' part, the format is
'something-is-listening', i need to get the something part, use it in
my code, and then replace the whole 'something-is-listening' for
another string.

\w+ will match a word and enclosing it in (...) will capture what was
matched:

 m = re.search(r(\w+)-is-listening, text)
 print Captured '%s' % m.group(1)
 print Matched from %d to %d % (m.start(), m.end())


Ok, thank you all, it was very helpful!

Wow, I really need to learn more about regexp...
Any tutorials you guys can recommend?

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


Re: New implementation of re module

2009-07-30 Thread Piet van Oostrum
 MRAB pyt...@mrabarnett.plus.com (M) wrote:

M Hi all,
M I've been working on a new implementation of the re module. The details
M are at http://bugs.python.org/issue2636, specifically from
M http://bugs.python.org/issue2636#msg90954. I've included a .pyd file for
M Python 2.6 on Windows if you want to try it out.

M I'm interested in how fast it is generally, compared with the current re
M module, but especially when faced with those 'pathological' regular
M expressions which seem to take a long time to finish, for example:

M re.search(r^(.+|D)*A$, x * 25 + B)

M which on my PC (1.8GHz) takes 18.98secs with the re module but 0.01secs
M with this new implementation.

Is this version also going to use the Thompson approach?
-- 
Piet van Oostrum p...@cs.uu.nl
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Martin P. Hellwig

Dave Angel wrote:
cut definition/interpretation of compiling
Ah yes, we thread on the territory of word definition and difference in 
interpretation. Any argument is doomed to fail if not agreed or at least 
taken in perspective of the terminology used by users.


I could be (well it is quite likely) wrong in my interpretation of the 
terminology, but here goes it anyway:


Machine Code:
Whatever the machine executes, it could be that the CPU uses an 
abstraction of microcode to do this but from the perspective of the 
user, this is all done in the same 'black box'


Compiling:
Translate words/symbols/mnemonics to machine code, which than can be 
either loaded, linked and executed by an OS or read and executed by the 
BIOS.


Interpreted:
Instructions which can be fed to a previous compiled program that is 
able to dynamically change its execution and flow without the need to 
recompile itself.


--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
--
http://mail.python.org/mailman/listinfo/python-list


Re: Semaphore Techniques

2009-07-30 Thread Piet van Oostrum
 Carl Banks pavlovevide...@gmail.com (CB) wrote:

CB On Jul 29, 7:14 am, Piet van Oostrum p...@cs.uu.nl wrote:
  Carl Banks pavlovevide...@gmail.com (CB) wrote:
 CB On Jul 28, 3:15 pm, John D Giotta jdgio...@gmail.com wrote:
  I'm looking to run a process with a limit of 3 instances, but each
  execution is over a crontab interval. I've been investigating the
  threading module and using daemons to limit active thread objects, but
  I'm not very successful at grasping the documentation.
 
  Is it possible to do what I'm trying to do and if so anyone know of a
  useful example to get started?
 CB It seems like you want to limit the number of processes to three; the
 CB threading module won't help you there because it deals with threads
 CB within a single process.
 CB What I'd do is to simply run the system ps to see how many processes
 CB are running (ps is pretty versatile on most systems and can find
 CB specifically targeted processes like you program), and exit if there
 CB are already three.
 
 That will surely run into some race conditions.

CB What, the OS might not have gotten around to update the process table
CB to include a process started minutes ago?  (He said he was starting
CB the processes over crontab intervals, not that he communicated what he
CB wanted well.)

No but between the time you get the ps output and decide not to start a
new process one of the processes might have exited. As I said it
probably is not a big deal, but you (he) should be aware of it I think.

The other possible race condition: two processes starting at
approximately the same time and both not detecting the other will
probably not occur because of the time distance between starting the
processes by cron. Unless the system is so busy that ps takes a lng
time. 

The problem is similar to the sleeping barber problem (3 sleeping
barbers actually).
-- 
Piet van Oostrum p...@cs.uu.nl
URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4]
Private email: p...@vanoostrum.org
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: gamma approximation : what is module cmath and where is it located ?

2009-07-30 Thread Dave Angel

pdlem...@earthlink.net wrote:

from cmath import *
 
snip

What is cmath, where did it come from and how does it differ from
the standard math module  ?

Dave WB3DWE
   I saw the number 4 in silver,  Guido
 (apologies to Wm Carlos Williams)

  


I'm surprised that with all the responses, nobody has pointed out the 
dangers involved in using

from cmath import *

In general, this form of import is discouraged.   I presume there's no 
problem if you're not also importing 'math' and all your calls are 
intending to be for the complex versions.  But if you're mixing things 
up, consider using the more conventional

import  cmath

and using cmath.   as a prefix before the function calls.

DaveA

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


Re: socket send

2009-07-30 Thread Mark Tolonen


NighterNet darkne...@gmail.com wrote in message 
news:55aba832-df6d-455f-bf34-04d37eb06...@i4g2000prm.googlegroups.com...

I am trying to figure out how to send text or byte in python 3.1. I am
trying to send data to flash socket to get there. I am not sure how to
work it.

buff= 'id=' , self.id , ':balive=False\n'
clientSock.send(buff);
--
http://mail.python.org/mailman/listinfo/python-list



Python 3.1 strings are Unicode (think characters not bytes).  When writing 
to files, sockets, etc. bytes must be used.  Unicode strings have an 
encode() method, where you can specify an appropriate encoding (ascii, 
latin-1, windows-1252, utf-8, etc.):


   clientSock.send(buff.encode('ascii'))

When reading from the socket, you can decode() the byte strings back into 
Unicode strings.


   data = clientSock.recv(1024).decode('ascii')

-Mark


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


Re: No PyPI search for 3.x compatible packages

2009-07-30 Thread Francesco Bochicchio
On 30 Lug, 01:55, Neil Hodgson nyamatongwe+thun...@gmail.com wrote:
    There appears to be no way to search PyPI for packages that are
 compatible with Python 3.x. There are classifiers for 'Programming
 Language' including 'Programming Language :: Python :: 3' but that seems
 to be for implementation language since there are so many packages that
 specify C. There are a total of 109 packages classified with Python ::
 [3, 3.0, 3.1] out of a total of 4829 
 packages.http://pypi.python.org/pypi?:action=browseshow=allc=214c=533

    The search box appears to search for any word entered so a search
 like xml 3.0 or xml AND 3.0 does not help.

    Some packages include version information in the Py Version column of
 their download lists or embedded in the download file names. Projects
 are often constrained to a particular set of Python versions so need to
 choose packages that will work with those versions. It would be helpful
 if PyPI made this information more visible and searchable.

    Neil

Are you sure? I note that for example pygtk has as language tags both
C and python. So maybe a C extension
for python3 would have both C and python 3 as language tags.

I suspect that the 109 packages you found are the only ones obf the
4829 which works with python3 (but I hope
to be wrong ).

Ciao
-
FB

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


Re: Regexp problem

2009-07-30 Thread Peter Brett
Marcus Wanner marc...@cox.net writes:

 On 7/30/2009 9:32 AM, Beldar wrote:
 On 30 jul, 15:07, MRAB pyt...@mrabarnett.plus.com wrote:
 Beldar wrote:
 Hi there!
 I have a problem and i'm not very good at regular expressions.
 I have a text like lalala lalala tiruri beldar-is-listening tiruri
 lalala I need a regexp to get the 'beldar' part, the format is
 'something-is-listening', i need to get the something part, use it in
 my code, and then replace the whole 'something-is-listening' for
 another string.
 \w+ will match a word and enclosing it in (...) will capture what was
 matched:

  m = re.search(r(\w+)-is-listening, text)
  print Captured '%s' % m.group(1)
  print Matched from %d to %d % (m.start(), m.end())

 Ok, thank you all, it was very helpful!
 Wow, I really need to learn more about regexp...
 Any tutorials you guys can recommend?

I have to confess that after fiddling with regexps for quite a while
with no great success, I learnt the hard (and best) way, i.e. using
them to write something vile and horrible. [*] I commend this path to
you also. ;-)

Cheers,

  Peter

[*] http://git.gpleda.org/?p=gaf.git;a=blob;f=libgeda/desktop-i18n;h=6fab9b85b

-- 
Peter Brett pe...@peter-b.co.uk
Remote Sensing Research Group
Surrey Space Centre
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: No PyPI search for 3.x compatible packages

2009-07-30 Thread Paul Moore
2009/7/30 Francesco Bochicchio bieff...@gmail.com:
 On 30 Lug, 01:55, Neil Hodgson nyamatongwe+thun...@gmail.com wrote:
    There appears to be no way to search PyPI for packages that are
 compatible with Python 3.x. There are classifiers for 'Programming
 Language' including 'Programming Language :: Python :: 3' but that seems
 to be for implementation language since there are so many packages that
 specify C. There are a total of 109 packages classified with Python ::
 [3, 3.0, 3.1] out of a total of 4829 
 packages.http://pypi.python.org/pypi?:action=browseshow=allc=214c=533

    The search box appears to search for any word entered so a search
 like xml 3.0 or xml AND 3.0 does not help.

    Some packages include version information in the Py Version column of
 their download lists or embedded in the download file names. Projects
 are often constrained to a particular set of Python versions so need to
 choose packages that will work with those versions. It would be helpful
 if PyPI made this information more visible and searchable.

    Neil

 Are you sure? I note that for example pygtk has as language tags both
 C and python. So maybe a C extension
 for python3 would have both C and python 3 as language tags.

 I suspect that the 109 packages you found are the only ones obf the
 4829 which works with python3 (but I hope
 to be wrong ).

Also, of course, they may not be the only ones that work, but merely
the only ones where the author has checked they work and tagged the
entry. It's quite possible that some packages will work unmodified...

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Dave Angel

Martin P. Hellwig wrote:
div class=moz-text-flowed style=font-family: -moz-fixedDave 
Angel wrote:

cut definition/interpretation of compiling
Ah yes, we thread on the territory of word definition and difference 
in interpretation. Any argument is doomed to fail if not agreed or at 
least taken in perspective of the terminology used by users.


I could be (well it is quite likely) wrong in my interpretation of the 
terminology, but here goes it anyway:


Machine Code:
Whatever the machine executes, it could be that the CPU uses an 
abstraction of microcode to do this but from the perspective of the 
user, this is all done in the same 'black box'


Compiling:
Translate words/symbols/mnemonics to machine code, which than can be 
either loaded, linked and executed by an OS or read and executed by 
the BIOS.


Interpreted:
Instructions which can be fed to a previous compiled program that is 
able to dynamically change its execution and flow without the need to 
recompile itself.


Depending on the level of understanding of the user, plus his history 
and his biases, he will include more or less in his black box.  In the 
old days, microcode was not on-chip but stored separately in control 
memory.  And on many machines, it was changeable at will.


To many users these days, the entire system including software is a 
black box, which gradually breaks down (gets slow, runs out of space, 
crashes a lot) and must be replaced.  They don't distinguish operating 
system from application, real memory from virtual, or viruses from 
bugs.  But of course those users wouldn't be participating in this 
discussion.


My background includes specifying hardware instruction sets and 
architecture.  And writing microcode for multiple machines.  And writing 
parts of compilers, interpreters, assemblers, and so on.  And 
microcoding interpreters.  And hooking into compilers to modify how they 
would generate code.   And hooking into runtimes to test running code in 
realtime.


So I tend to have very flexible definition of compiler and interpreter.  
Probably the only reason I jumped in here was the unmentioned bias that 
somehow a compiler is superior to an interpreter.


I think I'd better extend my definition of compilation.  It's a step 
that's statically taken over a series of instructions (not necessarily 
text source), that transforms it into a form closer to the targeted 
enviromment, real or virtual. Most C++ compilers have two compilers 
operating serially, the first to turn the source code into an 
intermediate form (like byte code), and the second to generate what is 
commonly called machine code.  The second part of course is duplicated 
for each different target processor.


So Java is compiled into byte code, and the typical java VM then 
compiles that piecewise into machine code (so called JIT compiling, for 
just in time).


BTW, interpreters don't have to be written in a compiled language.


Anyway, I don't object to your definitions.  We all have different 
perspectives.


DaveA

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


[ANN] pyKook 0.0.2 - a simple build tool similar to Make or Ant

2009-07-30 Thread kwatch

Hi,

I have released pyKook 0.0.2.
http://pypi.python.org/pypi/Kook/0.0.2
http://www.kuwata-lab.com/kook/
http://www.kuwata-lab.com/kook/pykook-users-guide.html


Overview


pyKook is a simple build tool similar to Make, Ant, Rake, or SCons.
pyKook regards software project as cooking.
Terms used in pyKook are cooking terms.
For example:

cookbook-  Makefile
product -  target file
ingredient  -  source file
recipe  -  how to create target from source
spices  -  command-line options for recipe


Cookbook (= Makefile) is written in pure Python.
You can write any statements or expressions in cookbook.

NOTICE: pyKook is under alpha release. Spec and features may be
changed
in the future without previous announcement.


Example
---

Example of cookbook (Kookbook.py):

--
##
## properties
##
cc = prop('cc', 'gcc')
cflags = prop('cflags', '-g -Wall')


##
## recipes
##
@ingreds(hello)
def task_all(c):
pass

@product(hello)
@ingreds(hello.o)
def file_command(c):
generates hello command
system(c%$(cc) $(cflags) -o $(product) $(ingred))

@product(*.o)
@ingreds($(1).c, if_exists($(1).h))
def file_ext_o(c):
compile '*.c' and '*.h'
system(c%$(cc) $(cflags) -c $(1).c)

def task_clean(c):
rm_f(*.o)
--


Exampe of result:

==
bash ls
Kookbook.py   hello.chello.h

bash pykook -l
Properties:
  cc  : 'gcc'
  cflags  : '-g -Wall'

Task recipes:
  all : cook all products
  clean   : remove by-products

File recipes:
  hello   : generates hello command
  *.o : compile '*.c' and '*.h'

(Tips: you can set 'kook_default_product' variable in your
kookbook.)

bash pykook all   # or, pykook --cc=gcc4 all
### *** hello.o (func=file_ext_o)
$ gcc -g -Wall -c hello.c
### ** hello (func=file_command)
$ gcc -g -Wall -o hello hello.o
### * all (func=task_all)
==


See users-guide for more details.
http://www.kuwata-lab.com/kook/pykook-users-guide.html


Enhancements, Changes, Bug fixes sice 0.0.1
---


Enhancements:

- Python 3 support.

- Add 'kk' script which is shortcat for kk command.


Changes:

- Decorator '@cmdopts()' is renamed to '@spices()', and
  there is no need to call parse_cmdopts().

  ### prev version
  @cmdopts('-v: verbose', '-f file: filename')
  def task_example(c, *args):
  opts, rests = c.parse_cmdopts(args)
  verbose = opts.get('v', False):
  fileame = opts.get('f', None)

  ### since this release (0.0.2)
  @spices('-v: verbose', '-f file: filename')
  def task_example(c, *args, *kwargs):
  opts, rests = kwarts, args
  verbose = opts.get('v', False):
  fileame = opts.get('f', None)

- Remove 'pyk' script

- Testing library is changed from Python's unittest library
  into 'test/oktest.py'.


Bugfixes:

- glob2() now recognizes files on current directory.



Have fun!

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


Re: Very Strange Problem

2009-07-30 Thread Simon Forman
On Wed, Jul 29, 2009 at 3:10 PM, Omer Khalidomer.kha...@cern.ch wrote:
 Hi Dave,

 Thanks for your reply. I actually didn't cut and paste my code as it was
 dispersed in different places, i typed the logic behind my code in the email
 (and obiviously made some typos, indentations is some thing else) but my

Please, do not do  that.  It's very difficult to debug code that
hasn't been seen.  The code you posted has numerous problems (that
likely have nothing to do with your actual problem.)

If you're going to post code, try to recreate the issue with a small
runnable script.  If you can't do that, as it sounds like it would be
difficult in this case as your code is dispersed in different places,
at least post the relevant portions of the actual code.  Don't
re-type.

 real code does not have these problems as my application runs fine with out
 errors...

 Except that the line where i want to update the value doesn't get updated
 and no exception is thrown. What's surprising for me is that i am doing the
 same thing in hundreds of places in my 3k+ line code but by some reason this
 part doesn't work...

 As far as the global variables are concerned, i am using them in other
 places too and didn't see any problems.

 I think some thing else is going on here as the statement above and below my
 modified lines get executed.

If the statements above and below that line(s) are executed, then that
line is certainly being executed as well.

Try introducing some additional print statements to verify your mental
model of what's happening:

# set it to 1
print jobs
print jobs[index]
print jobs[index]['v']
jobs[index]['v'] = 1
print jobs
print jobs[index]
print jobs[index]['v']
print Set to 1

 Is there a way in Python to debug memory address or to see where in memory
 this object is stored, and is there a lock on it or else?

You are barking up the wrong tree.  Somewhere in your code you're
doing something silly that's causing your issue.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Grant Edwards
On 2009-07-30, Dave Angel da...@dejaviewphoto.com wrote:

 Steven makes some good points.  You have to define what level
 of clever you're protecting from.  A determined hacker will
 get in no matter what you do, unless you want to ship the
 program in a proprietary embedded system, encased in epoxy.

That won't stop a dedicated reverse-engineering effort.  It
might take an X-ray machine, machine tools, various nasty
chemicals, and quite a bit of skill and patience -- but it can
be done.

 Further, if you have an extension of .py or .pyc, a
 knowledgeable hacker will know it's probably python.

 You imply you want it to run unmodifed on multiple unknown
 Linux versions.  I think that lets out binfmt solutions.  That
 means you need to test and support not only multiple Linux
 implementations, but multiple Python versions, because who
 knows what the user may have installed.  I think you need to
 rethink your support strategy.  And maybe concentrate on being
 able to detect change, rather than prevent it.

Or even being able to benefit from change. :)

-- 
Grant Edwards   grante Yow! FROZEN ENTREES may
  at   be flung by members of
   visi.comopposing SWANSON SECTS ...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Ben Finney
Martin P. Hellwig martin.hell...@dcuktec.org writes:

 Machine Code:
 Whatever the machine executes, it could be that the CPU uses an
 abstraction of microcode to do this but from the perspective of the
 user, this is all done in the same 'black box'

This requires, of course, defining what is the machine. Python bytecode
targets a virtual machine that is implemented differently for each
hardware platform.

 Compiling:
 Translate words/symbols/mnemonics to machine code, which than can be
 either loaded, linked and executed by an OS or read and executed by
 the BIOS.

Related to the above point, the “machine code” can just as easily be
codes for a virtual machine specification. This is the case for the
bytecode instructions Python gets compiled to.

 Interpreted:
 Instructions which can be fed to a previous compiled program that is
 able to dynamically change its execution and flow without the need to
 recompile itself.

This doesn't make much sense to me, I must say.

I'd say, instead, that a program is interpreted if its instruction are
dynamically translated to underlying platform instructions at execution
time. This is the case for the bytecode instructions interpreted by the
Python virtual machine.

-- 
 \  “Often, the surest way to convey misinformation is to tell the |
  `\   strict truth.” —Mark Twain, _Following the Equator_ |
_o__)  |
Ben Finney
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Grant Edwards
On 2009-07-30, Martin P. Hellwig martin.hell...@dcuktec.org wrote:
 Michel Claveau - MVP wrote:

 Python is interpreted
 
 No. Python is compiled (-- .pyc)
 But the term to compile is not always unambiguous...
 And the notion of compiler is not attached to Python (the
 language), but is attached to the implementation.

 Well the pyc, which I thought was the Python bytecode,

It is, but that's just one particular implementation you're
talking about (though by far the most widely used one).

 is then interpreted by the VM.

Yup.  Just like .exe files are interpreted by the microcode in
the processor that implements the IA32 VM.  It would be quite
possible to put a Python VM into hardware.  Alternatevly, you
can compiler Python into Java bytecode and run that directly
on hardware.

-- 
Grant Edwards   grante Yow! It don't mean a
  at   THING if you ain't got
   visi.comthat SWING!!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Connecting multiple test cases in a sort of pipe

2009-07-30 Thread Raghuram Devarakonda
On Jul 30, 2:43 am, Diez B. Roggisch de...@nospam.web.de wrote:
 Write a TestCase-subclass that simply works like this:

 class FileTests(TestCase):

 def test_create(self):
 self.created_file = create()
 assert something

 def test_list(self):
 self.test_create()
 delete(self.created_file)

 Passing state around is one of the reasons objects have been invented :)
 And nobody ever said that you can't invoke a test-method from somewhere
 else.

Just to be clear, are you suggesting that these tests be run by a
custom runnner rather than by the default runner from unittest?

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread Grant Edwards
On 2009-07-30, Dave Angel da...@ieee.org wrote:

 As far as I know, nobody has yet built a microcode implementation of a 
 Python VM (Virtual Machine).  Nor have I seen one for the Java VM.  

Didn't Sun or somebody do one 10-12 years ago?  Or did I
misinterpret some press release or something?  Off to google...

 However, in the early 80's there was a microcode implementation of the
 P-system VM.

Ah yes.  I remember sitting at an Intel MDS-80 blue box CP/M
system entering assembly language by hand for a simple Pascal
- P-code compiler.  IIRC, I typed it from a listing in the
Byte Big Book of Pascal.  That machine was pretty high-tech,
since I could save my work on an 8 floppy rather than a spool
of paper tape.  The floppy disks didn't leave big oil stains in
your backpack!

I got the compiler working, but I don't remember ever having a
VM and run-time system.

 It was never a commercial success, but it existed.  And there
 have been at least three Forth machines, where the hardware
 itself was designed to support the language's VM.  No
 microcode at all.

-- 
Grant Edwards   grante Yow! When you get your
  at   PH.D. will you get able to
   visi.comwork at BURGER KING?
-- 
http://mail.python.org/mailman/listinfo/python-list


Use existing IE cookie

2009-07-30 Thread KB
Hi there,

Relevant versions: Python 2.5, Vista Home, IE7

I am trying to scrape a website I have browsed manually in the past,
and also manually selected my options, and now want python to use my
existing cookie from the manual browse when downloading data.

Using: http://code.activestate.com/recipes/80443/ I have found the
name of the relevant cookie, just after reading urllib2 docs, I
can't see how to send or have my python instance use MY existing
cookie.

Using the following:

***
import re
import urllib2, cookielib

# set things up for cookies

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)

reply = urllib2.urlopen('foo.html').read()

print reply

***

This does return data, just default data, not the data from the
options I set up when manually browsing.

My sense is that I need something in the () part of
HTTPCookieProcessor() but I have no idea as to what... the docs say
cookiejar but the only code examples I have found are to create a
cookiejar for the existing Python session, not to use the cookies from
my prior manual meanderings.

Any help greatly appreciated.
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: Run pyc file without specifying python path ?

2009-07-30 Thread Barak, Ron
Hi Dave,

On second thoughts, I may have a problem implementing the wrapper solution, 
because my actual test_pyc.pyc, needs to parse its command line.
Namely, the actual call to test_pyc.pyc looks something like this:

$ python  test_pyc.py -U dave -PpasswoRD -C CreateMcGroupOnVolume --SVMs_IPs 
'10.1.1.1 , 10.1.1.2' -n host1,host2 -g gn -j jn -s svn -t tvn -p pool1 -l -c

And I don't know of a way to add these parameters to the import  test_pyc in 
wrapper

Is there a way to pass information to an imported module ? (Sorry if there's an 
obvious answer, I just cannot figure it out).

Bye,
Ron.

 -Original Message-
 From: Dave Angel [mailto:da...@dejaviewphoto.com] 
 Sent: Thursday, July 30, 2009 16:03
 To: Barak, Ron
 Cc: 'Dave Angel'; 'python-list@python.org'
 Subject: RE: Run pyc file without specifying python path ?
 
 Barak, Ron wrote:
  -Original Message-
  From: Dave Angel [mailto:da...@ieee.org]
  Sent: Wednesday, July 29, 2009 21:05
  To: Barak, Ron
  Cc: 'python-list@python.org'
  Subject: Re: Run pyc file without specifying python path ?
 
  Barak, Ron wrote:
  
  Hi,
 
  I wanted to make a python byte-code file executable,

  expecting to be able to run it without specifying python on the 
  (Linux bash) command line.
  
  So, I wrote the following:
 
  [r...@vmlinux1 python]# cat test_pyc.py #!/usr/bin/env python
 
  print hello
  [r...@vmlinux1 python]#
 
  and made its pyc file executable:
 
  [r...@vmlinux1 python]# ls -ls test_pyc.pyc
  4 -rwxr-xr-x  1 root root 106 Jul 29 14:22 test_pyc.pyc
  [r...@vmlinux1 python]#
 
  So, I see:
 
  [r...@vmlinux1 python]# file test_pyc.py*
  test_pyc.py:  a python script text executable
  test_pyc.pyc: python 2.3 byte-compiled
  [r...@vmlinux1 python]#
 
  If I try to do the following, no problem:
 
  [r...@vmlinux1 python]# python test_pyc.pyc hello
  [r...@vmlinux1 python]#
 
  However, the following fails:
 
  [r...@vmlinux1 python]# ./test_pyc.pyc
  -bash: ./test_pyc.pyc: cannot execute binary file
  [r...@vmlinux1 python]#
 
  Is there a way to run a pyc file without specifying the

  python path ?
  
  Bye,
  Ron.
 


  I don't currently run Unix, but I think I know the problem.
 
  In a text file, the shell examines the first line, and if 
 it begins 
  #!
  it's assumed to point to the executable of an interpreter for that 
  text file.  Presumably the same trick doesn't work for a .pyc file.
 
  Why not write a trivial wrapper.py file, don't compile it, and let 
  that invoke the main code in the .pyc file?
 
  Then make wrapper.py executable, and you're ready to go.
 
  DaveA
 
 
  
 
  Hi Dave,
  Your solution sort of defeats my intended purpose (sorry 
 for not divulging my 'hidden agenda').
  I wanted my application to hide the fact that it's a 
 python script, and look as much as possible like it's a 
 compiled program.
  The reason I don't just give my user a py file, is that I 
 don't want a cleaver user to change the innards of the script.
  On the other hand, I don't want to make a compiled 
 (freezed?) version of the application, because it'll grow the 
 resulting file significantly, and I don't have the experience 
 to know how it will run on different Linuxes.
  Bye,
  Ron. 

 Most of the other answers basically paraphrased my suggestion 
 of making a wrapper file, not compiling it, and making it 
 executable.  With that 
 approach, the user just types   wrapper.py on his command line.
 
 And wrapper.py only needs two lines, a shebang, and an 
 import, no big deal if the user modifies it.  The rest of 
 your code can be .pyc files.
 
 Steven makes some good points.  You have to define what level 
 of clever you're protecting from.  A determined hacker will 
 get in no matter what you do, unless you want to ship the 
 program in a proprietary embedded system, encased in epoxy.  
 Further, if you have an extension of .py or .pyc, a 
 knowledgeable hacker will know it's probably python.
 
 You imply you want it to run unmodifed on multiple unknown 
 Linux versions.  I think that lets out binfmt solutions.  
 That means you need to test and support not only multiple 
 Linux implementations, but multiple Python versions, because 
 who knows what the user may have installed.  I think you need 
 to rethink your support strategy.  And maybe concentrate on 
 being able to detect change, rather than prevent it.
 
 DaveA
 
 
 
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Use existing IE cookie

2009-07-30 Thread Diez B. Roggisch
KB wrote:

 Hi there,
 
 Relevant versions: Python 2.5, Vista Home, IE7
 
 I am trying to scrape a website I have browsed manually in the past,
 and also manually selected my options, and now want python to use my
 existing cookie from the manual browse when downloading data.
 
 Using: http://code.activestate.com/recipes/80443/ I have found the
 name of the relevant cookie, just after reading urllib2 docs, I
 can't see how to send or have my python instance use MY existing
 cookie.
 
 Using the following:
 
 ***
 import re
 import urllib2, cookielib
 
 # set things up for cookies
 
 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
 urllib2.install_opener(opener)
 
 reply = urllib2.urlopen('foo.html').read()
 
 print reply
 
 ***
 
 This does return data, just default data, not the data from the
 options I set up when manually browsing.
 
 My sense is that I need something in the () part of
 HTTPCookieProcessor() but I have no idea as to what... the docs say
 cookiejar but the only code examples I have found are to create a
 cookiejar for the existing Python session, not to use the cookies from
 my prior manual meanderings.

Because this is a completely different beast. You need to find out if and
how to access IE-cookies from python - I guess some win32-road is to be
walked down for that.

Once you get a hold on them, you can build up whatever cookiejar urllib2
needs.

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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Grant Edwards
On 2009-07-30, Barak, Ron ron.ba...@lsi.com wrote:
 Hi Dave,

 On second thoughts, I may have a problem implementing the
 wrapper solution, because my actual test_pyc.pyc, needs to
 parse its command line. Namely, the actual call to
 test_pyc.pyc looks something like this:

 $ python  test_pyc.py -U dave -PpasswoRD -C CreateMcGroupOnVolume --SVMs_IPs 
 '10.1.1.1 , 10.1.1.2' -n host1,host2 -g gn -j jn -s svn -t tvn -p pool1 -l 
 -c

 And I don't know of a way to add these parameters to the
 import test_pyc in wrapper

 Is there a way to pass information to an imported module ?
 (Sorry if there's an obvious answer, I just cannot figure it
 out).

I don't understand your problem.  The module would parse
sys.argv just like always.

If you don't like that for some reason, you could define an
entry point in the module and call it:

#!/usr/bin/python
import sys,test_pyc
test_pyc.main(*sys.argv)

-- 
Grant Edwards   grante Yow! We just joined the
  at   civil hair patrol!
   visi.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Use existing IE cookie

2009-07-30 Thread KB

  Using:http://code.activestate.com/recipes/80443/


Thanks for the prompt reply, Diez! Using the above I have found the
name of the cookie (I did google how to use IE cookies in python and
that was the best match) but it only tells me the name of the cookie,
not how to use it.

Any clues?

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


Help with Regex for domain names

2009-07-30 Thread Feyo
I'm trying to figure out how to write efficiently write a regex for
domain names with a particular top level domain. Let's say, I want to
grab all domain names with country codes .us, .au, and .de.

I could create three different regexs that would work:
regex = re.compile(r'[\w\-\.]+\.us)
regex = re.compile(r'[\w\-\.]+\.au)
regex = re.compile(r'[\w\-\.]+\.de)

How would I write one to accommodate all three, or, better yet, to
accommodate a list of them that I can pass into a method call? Thanks!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread Martin P. Hellwig

Ben Finney wrote:

Martin P. Hellwig martin.hell...@dcuktec.org writes:


Machine Code:
Whatever the machine executes, it could be that the CPU uses an
abstraction of microcode to do this but from the perspective of the
user, this is all done in the same 'black box'


This requires, of course, defining what is the machine. Python bytecode
targets a virtual machine that is implemented differently for each
hardware platform.



I would further define 'black box' as the hardware a kernel programmer 
writes to.


cut


Interpreted:
Instructions which can be fed to a previous compiled program that is
able to dynamically change its execution and flow without the need to
recompile itself.


This doesn't make much sense to me, I must say.

I'd say, instead, that a program is interpreted if its instruction are
dynamically translated to underlying platform instructions at execution
time. This is the case for the bytecode instructions interpreted by the
Python virtual machine.



Yes that is indeed a much better description, I'll steal that from you :-)

--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
--
http://mail.python.org/mailman/listinfo/python-list


Re: Use existing IE cookie

2009-07-30 Thread Diez B. Roggisch
KB wrote:

 
  Using:http://code.activestate.com/recipes/80443/

 
 Thanks for the prompt reply, Diez! Using the above I have found the
 name of the cookie (I did google how to use IE cookies in python and
 that was the best match) but it only tells me the name of the cookie,
 not how to use it.

Ah, sorry, should have read the recipe also. 

For me it looks as if findIECookie from that recipe is to be called with the
name. Then it should return the value, or None

What does you full example look like, including the
cookie-acquisition-stuff?

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


Re: Does python have the capability for driver development ?

2009-07-30 Thread MRAB

Dave Angel wrote:
[snip]
As far as I know, nobody has yet built a microcode implementation of a 
Python VM (Virtual Machine).  Nor have I seen one for the Java VM.  
However, in the early 80's there was a microcode implementation of the 
P-system VM.  It was never a commercial success, but it existed.  And 
there have been at least three Forth machines, where the hardware itself 
was designed to support the language's VM.  No microcode at all.



There's Jazelle: http://en.wikipedia.org/wiki/Jazelle.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Does python have the capability for driver development ?

2009-07-30 Thread MRAB

Ben Finney wrote:

Martin P. Hellwig martin.hell...@dcuktec.org writes:


Machine Code:
Whatever the machine executes, it could be that the CPU uses an
abstraction of microcode to do this but from the perspective of the
user, this is all done in the same 'black box'


This requires, of course, defining what is the machine. Python bytecode
targets a virtual machine that is implemented differently for each
hardware platform.


Compiling:
Translate words/symbols/mnemonics to machine code, which than can be
either loaded, linked and executed by an OS or read and executed by
the BIOS.


Related to the above point, the “machine code” can just as easily be
codes for a virtual machine specification. This is the case for the
bytecode instructions Python gets compiled to.


Interpreted:
Instructions which can be fed to a previous compiled program that is
able to dynamically change its execution and flow without the need to
recompile itself.


This doesn't make much sense to me, I must say.

I'd say, instead, that a program is interpreted if its instruction are
dynamically translated to underlying platform instructions at execution
time. This is the case for the bytecode instructions interpreted by the
Python virtual machine.


Interpretation doesn't necessarily mean translating to machine code at
execution time. What you're describing is more like JIT.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Help with Regex for domain names

2009-07-30 Thread Tim Daneliuk
Feyo wrote:
 I'm trying to figure out how to write efficiently write a regex for
 domain names with a particular top level domain. Let's say, I want to
 grab all domain names with country codes .us, .au, and .de.
 
 I could create three different regexs that would work:
 regex = re.compile(r'[\w\-\.]+\.us)
 regex = re.compile(r'[\w\-\.]+\.au)
 regex = re.compile(r'[\w\-\.]+\.de)
 
 How would I write one to accommodate all three, or, better yet, to
 accommodate a list of them that I can pass into a method call? Thanks!

Just a point of interest:  A correctly formed domain name may have a
trailing period at the end of the TLD [1].  Example:

   foo.bar.com.

Though you do not often see this, it's worth accommodating just in
case...


[1] 
http://homepages.tesco.net/J.deBoynePollard/FGA/web-fully-qualified-domain-name.html



-- 

Tim Daneliuk tun...@tundraware.com
PGP Key: http://www.tundraware.com/PGP/
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Help with Regex for domain names

2009-07-30 Thread MRAB

Feyo wrote:

I'm trying to figure out how to write efficiently write a regex for
domain names with a particular top level domain. Let's say, I want to
grab all domain names with country codes .us, .au, and .de.

I could create three different regexs that would work:
regex = re.compile(r'[\w\-\.]+\.us)
regex = re.compile(r'[\w\-\.]+\.au)
regex = re.compile(r'[\w\-\.]+\.de)

How would I write one to accommodate all three, or, better yet, to
accommodate a list of them that I can pass into a method call? Thanks!


regex = re.compile(r'[\w\-\.]+\.(?:us|au|de)')

If you have a list of country codes [us, au, de] then you can
build the regular expression from it:

regex = re.compile(r'[\w\-\.]+\.(?:%s)' % '|'.join(domains))
--
http://mail.python.org/mailman/listinfo/python-list


Re: Use existing IE cookie

2009-07-30 Thread KB

 What does you full example look like, including the
 cookie-acquisition-stuff?

 Diez

I ran them seperately, hoping for a clue as to what my cookiejar
was.

The cookie-acquisition stuff returns screener.ashx?v=151 when I
search with my domain I am interested in. I have tried
urllib2.HTTPCookieProcessor('screener.ashx?v=151') but that failed
with attr has no cookie header.

From the HTTPCookieProcessor doco, it appears that non-IE browsers
have a cookie file (and example code) but from what I can tell IE uses
a hidden folder. (you can set your location in IE but it appends a
folder \Temporary Internet Files  -

From: http://docs.python.org/dev/library/cookielib.html

***
This example illustrates how to open a URL using your Netscape,
Mozilla, or Lynx cookies (assumes Unix/Netscape convention for
location of the cookies file):

import os, cookielib, urllib2
cj = cookielib.MozillaCookieJar()
cj.load(os.path.join(os.environ[HOME], .netscape/cookies.txt))
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open(http://example.com/;)
***

Not sure how to adapt this for IE.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: socket send

2009-07-30 Thread NighterNet
On Jul 30, 6:56 am, Mark Tolonen metolone+gm...@gmail.com wrote:
 NighterNet darkne...@gmail.com wrote in message

 news:55aba832-df6d-455f-bf34-04d37eb06...@i4g2000prm.googlegroups.com...

 I am trying to figure out how to send text or byte in python3.1. I am
  trying to send data to flashsocketto get there. I am not sure how to
  work it.

  buff= 'id=' , self.id , ':balive=False\n'
  clientSock.send(buff);
  --
 http://mail.python.org/mailman/listinfo/python-list

 Python3.1strings are Unicode (think characters not bytes).  When writing
 to files, sockets, etc. bytes must be used.  Unicode strings have an
 encode() method, where you can specify an appropriate encoding (ascii,
 latin-1, windows-1252, utf-8, etc.):

     clientSock.send(buff.encode('ascii'))

 When reading from thesocket, you can decode() the byte strings back into
 Unicode strings.

     data = clientSock.recv(1024).decode('ascii')

 -Mark

I am not sure how to use struct package.
Here an example for the input:
{id:1,playername:guest,x:100,y:50}
{id:2,playername:tester,x:100,y:50}

struct.pack(? )
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Confessions of a Python fanboy

2009-07-30 Thread Colin J. Williams

Some have treated this as a troll.  I don't.
r wrote:
[snip]


1.) No need to use () to call a function with no arguments.
Python -- obj.m2().m3() --ugly
  Ruby -- obj.m1.m2.m3  -- sweeet!
Man, i must admit i really like this, and your code will look so much
cleaner.


+1

2.) the .each method
container.each{|localVar| block}
This method can really cleanup some ugly for loops, although i really
like the readability of for loops.


Not clear.

3.) true OOP
Now before you go and get all huffy over this statement, hear me
out. Python is the best language in the world. But it damn sure has
some warts! len(this) instead of obj.length max(that) instead of
[1,2,3,4,5].max(). You know what i am talking about here people. We
all get complacent and It seems easier to just cope with these
problems instead of fighting for change. But look at the French,  WHAT
THE HELL HAS THAT DONE FOR THEM, *NOTHING*


+0.6
or better [1, 2, 3, 4, 5].len or [1, 2, 3, 4, 5].max

What has this got to do with true OOP?

[snip]
--
http://mail.python.org/mailman/listinfo/python-list


Re: Use existing IE cookie

2009-07-30 Thread Diez B. Roggisch
KB wrote:

 
 What does you full example look like, including the
 cookie-acquisition-stuff?

 Diez
 
 I ran them seperately, hoping for a clue as to what my cookiejar
 was.
 
 The cookie-acquisition stuff returns screener.ashx?v=151 when I
 search with my domain I am interested in. I have tried
 urllib2.HTTPCookieProcessor('screener.ashx?v=151') but that failed
 with attr has no cookie header.
 
 From the HTTPCookieProcessor doco, it appears that non-IE browsers
 have a cookie file (and example code) but from what I can tell IE uses
 a hidden folder. (you can set your location in IE but it appends a
 folder \Temporary Internet Files  -
 
 From: http://docs.python.org/dev/library/cookielib.html
 
 ***
 This example illustrates how to open a URL using your Netscape,
 Mozilla, or Lynx cookies (assumes Unix/Netscape convention for
 location of the cookies file):
 
 import os, cookielib, urllib2
 cj = cookielib.MozillaCookieJar()
 cj.load(os.path.join(os.environ[HOME], .netscape/cookies.txt))
 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
 r = opener.open(http://example.com/;)
 ***
 
 Not sure how to adapt this for IE.

You could create a file that resembles the cookies.txt - no idea how that
looks, but I guess it's pretty simple. 

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


Re: Confessions of a Python fanboy

2009-07-30 Thread Falcolas
On Jul 29, 9:06 pm, r rt8...@gmail.com wrote:

 1.) No need to use () to call a function with no arguments.
 Python -- obj.m2().m3() --ugly
   Ruby -- obj.m1.m2.m3  -- sweeet!
 Man, i must admit i really like this, and your code will look so much
 cleaner.

I personally would not prefer this, and would likely continue to use
(), precisely for code clarity - let me explain:

foo.nextval
foo.val
foo.previousval

Which of the calls above referenced instance variables, and which ones
called functions which changed the internal state of foo? I would have
trouble saying, just based on the calls above. I would have to go back
to the definition or documentation of foo to identify which is doing
what. On the other hand, the following gives a better clue as to what
is happening (granted not perfect, but better):

foo.nextval()
foo.val
foo.previousval()

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


Re: Use existing IE cookie

2009-07-30 Thread KB
On Jul 30, 9:23 am, Diez B. Roggisch de...@nospam.web.de wrote:
 KB wrote:

  What does you full example look like, including the
  cookie-acquisition-stuff?

  Diez

  I ran them seperately, hoping for a clue as to what my cookiejar
  was.

  The cookie-acquisition stuff returns screener.ashx?v=151 when I
  search with my domain I am interested in. I have tried
  urllib2.HTTPCookieProcessor('screener.ashx?v=151') but that failed
  with attr has no cookie header.

  From the HTTPCookieProcessor doco, it appears that non-IE browsers
  have a cookie file (and example code) but from what I can tell IE uses
  a hidden folder. (you can set your location in IE but it appends a
  folder \Temporary Internet Files  -

  From:http://docs.python.org/dev/library/cookielib.html

  ***
  This example illustrates how to open a URL using your Netscape,
  Mozilla, or Lynx cookies (assumes Unix/Netscape convention for
  location of the cookies file):

  import os, cookielib, urllib2
  cj = cookielib.MozillaCookieJar()
  cj.load(os.path.join(os.environ[HOME], .netscape/cookies.txt))
  opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
  r = opener.open(http://example.com/;)
  ***

  Not sure how to adapt this for IE.

 You could create a file that resembles the cookies.txt - no idea how that
 looks, but I guess it's pretty simple.

 Diez- Hide quoted text -

 - Show quoted text -

Yeah unfortunately I just tried Firefox and it uses cookies.sqlite
now... more dead ends :)
-- 
http://mail.python.org/mailman/listinfo/python-list


ANN: Leo 4.6.1 final released

2009-07-30 Thread Edward K Ream
Leo 4.6.1 final is now available at:
http://sourceforge.net/project/showfiles.php?group_id=3458package_id=29106

Leo is a text editor, data organizer, project manager and much more. See:
http://webpages.charter.net/edreamleo/intro.html

Leo 4.6.1 fixes several minor bugs in Leo 4.6.

The highlights of Leo 4.6
--
- Cached external files *greatly* reduces the time to load .leo files.
- Leo now features a modern Qt interface by default.
  Leo's legacy Tk interface can also be used.
- New --config, --file and --gui command-line options.
- Leo tests syntax of .py files when saving them.
- Leo can now open any kind of file into @edit nodes.
- @auto-rst nodes allow easy editing of reStructuredText files.
- Properties of commanders, positions and nodes simplify programming.
- Improved Leo's unit testing framework.
- Leo now requires Python 2.5 or later.
- Dozens of small improvements and bug fixes.

Links:
--
Leo:  http://webpages.charter.net/edreamleo/front.html
Forum:http://groups.google.com/group/leo-editor
Download: http://sourceforge.net/project/showfiles.php?group_id=3458
Bzr:  http://code.launchpad.net/leo-editor/
Quotes:   http://webpages.charter.net/edreamleo/testimonials.html

Edward K. Ream   email:  edream...@yahoo.com
Leo: http://webpages.charter.net/edreamleo/front.html



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


Re: Confessions of a Python fanboy

2009-07-30 Thread Inky 788
On Jul 30, 12:04 am, alex23 wuwe...@gmail.com wrote:
 On Jul 30, 1:06 pm, r rt8...@gmail.com wrote:

  1.) No need to use () to call a function with no arguments.
  Python -- obj.m2().m3() --ugly
    Ruby -- obj.m1.m2.m3  -- sweeet!
  Man, i must admit i really like this, and your code will look so much
  cleaner.

 How do you distinguish between calling a method with no arguments, and
 getting access to the method object itself (because it _is_ an object,
 y'know, it's OO all the way down...)?

I agree with alex here. Will take the explicit syntax over the extra
cognitive load of figuring out exactly what's going on with
`obj.m1.m2.m3`.

Python has its warts, but requiring ()'s on function calls isn't one
of them. :)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: socket send

2009-07-30 Thread Francesco Bochicchio
On 30 Lug, 18:06, NighterNet darkne...@gmail.com wrote:
 On Jul 30, 6:56 am, Mark Tolonen metolone+gm...@gmail.com wrote:





  NighterNet darkne...@gmail.com wrote in message

 news:55aba832-df6d-455f-bf34-04d37eb06...@i4g2000prm.googlegroups.com...

  I am trying to figure out how to send text or byte in python3.1. I am
   trying to send data to flashsocketto get there. I am not sure how to
   work it.

   buff= 'id=' , self.id , ':balive=False\n'
   clientSock.send(buff);
   --
  http://mail.python.org/mailman/listinfo/python-list

  Python3.1strings are Unicode (think characters not bytes).  When writing
  to files, sockets, etc. bytes must be used.  Unicode strings have an
  encode() method, where you can specify an appropriate encoding (ascii,
  latin-1, windows-1252, utf-8, etc.):

      clientSock.send(buff.encode('ascii'))

  When reading from thesocket, you can decode() the byte strings back into
  Unicode strings.

      data = clientSock.recv(1024).decode('ascii')

  -Mark

 I am not sure how to use struct package.
 Here an example for the input:
 {id:1,playername:guest,x:100,y:50}
 {id:2,playername:tester,x:100,y:50}

 struct.pack(? )

If your messages are ASCII, like it seems, forget about struct, which
is for 'binary' message format.
Format the string as you would in 2.6 ( using % or string.format for
instance ) and then use encode
as instructed.


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


Re: Run pyc file without specifying python path ?

2009-07-30 Thread Dave Angel

Barak, Ron wrote:

Hi Dave,

On second thoughts, I may have a problem implementing the wrapper solution, 
because my actual test_pyc.pyc, needs to parse its command line.
Namely, the actual call to test_pyc.pyc looks something like this:

$ python  test_pyc.py -U dave -PpasswoRD -C CreateMcGroupOnVolume --SVMs_IPs '10.1.1.1 , 
10.1.1.2' -n host1,host2 -g gn -j jn -s svn -t tvn -p pool1 -l -c

And I don't know of a way to add these parameters to the import  test_pyc in 
wrapper

Is there a way to pass information to an imported module ? (Sorry if there's an 
obvious answer, I just cannot figure it out).

Bye,
Ron.

  

-Original Message-
From: Dave Angel [mailto:da...@dejaviewphoto.com] 
Sent: Thursday, July 30, 2009 16:03

To: Barak, Ron
Cc: 'Dave Angel'; 'python-list@python.org'
Subject: RE: Run pyc file without specifying python path ?

Barak, Ron wrote:


-Original Message-
From: Dave Angel [mailto:da...@ieee.org]
Sent: Wednesday, July 29, 2009 21:05
To: Barak, Ron
Cc: 'python-list@python.org'
Subject: Re: Run pyc file without specifying python path ?

Barak, Ron wrote:



Hi,

I wanted to make a python byte-code file executable,
  
  
expecting to be able to run it without specifying python on the 
(Linux bash) command line.



So, I wrote the following:

[r...@vmlinux1 python]# cat test_pyc.py #!/usr/bin/env python

print hello
[r...@vmlinux1 python]#

and made its pyc file executable:

[r...@vmlinux1 python]# ls -ls test_pyc.pyc
4 -rwxr-xr-x  1 root root 106 Jul 29 14:22 test_pyc.pyc
[r...@vmlinux1 python]#

So, I see:

[r...@vmlinux1 python]# file test_pyc.py*
test_pyc.py:  a python script text executable
test_pyc.pyc: python 2.3 byte-compiled
[r...@vmlinux1 python]#

If I try to do the following, no problem:

[r...@vmlinux1 python]# python test_pyc.pyc hello
[r...@vmlinux1 python]#

However, the following fails:

[r...@vmlinux1 python]# ./test_pyc.pyc
-bash: ./test_pyc.pyc: cannot execute binary file
[r...@vmlinux1 python]#

Is there a way to run a pyc file without specifying the
  
  

python path ?



Bye,
Ron.

  
  
  

I don't currently run Unix, but I think I know the problem.

In a text file, the shell examines the first line, and if 

it begins 


#!
it's assumed to point to the executable of an interpreter for that 
text file.  Presumably the same trick doesn't work for a .pyc file.


Why not write a trivial wrapper.py file, don't compile it, and let 
that invoke the main code in the .pyc file?


Then make wrapper.py executable, and you're ready to go.

DaveA





Hi Dave,
Your solution sort of defeats my intended purpose (sorry 
  

for not divulging my 'hidden agenda').

I wanted my application to hide the fact that it's a 
  
python script, and look as much as possible like it's a 
compiled program.

The reason I don't just give my user a py file, is that I 
  

don't want a cleaver user to change the innards of the script.

On the other hand, I don't want to make a compiled 
  
(freezed?) version of the application, because it'll grow the 
resulting file significantly, and I don't have the experience 
to know how it will run on different Linuxes.


Bye,
Ron. 
  
  
Most of the other answers basically paraphrased my suggestion 
of making a wrapper file, not compiling it, and making it 
executable.  With that 
approach, the user just types   wrapper.py on his command line.


And wrapper.py only needs two lines, a shebang, and an 
import, no big deal if the user modifies it.  The rest of 
your code can be .pyc files.


Steven makes some good points.  You have to define what level 
of clever you're protecting from.  A determined hacker will 
get in no matter what you do, unless you want to ship the 
program in a proprietary embedded system, encased in epoxy.  
Further, if you have an extension of .py or .pyc, a 
knowledgeable hacker will know it's probably python.


You imply you want it to run unmodifed on multiple unknown 
Linux versions.  I think that lets out binfmt solutions.  
That means you need to test and support not only multiple 
Linux implementations, but multiple Python versions, because 
who knows what the user may have installed.  I think you need 
to rethink your support strategy.  And maybe concentrate on 
being able to detect change, rather than prevent it.


DaveA





(Please don't top-post.  It puts responses out of order)

You don't have to do anything special.  Any module can import sys, and 
parse sys.argv, as long as it wasn't yet modified.


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


Re: Confessions of a Python fanboy

2009-07-30 Thread r
On Jul 30, 11:31 am, Falcolas garri...@gmail.com wrote:
 On Jul 29, 9:06 pm, r rt8...@gmail.com wrote:

  1.) No need to use () to call a function with no arguments.
  Python -- obj.m2().m3() --ugly
    Ruby -- obj.m1.m2.m3  -- sweeet!
  Man, i must admit i really like this, and your code will look so much
  cleaner.

 I personally would not prefer this, and would likely continue to use
 (), precisely for code clarity - let me explain:

 foo.nextval
 foo.val
 foo.previousval

 Which of the calls above referenced instance variables, and which ones
 called functions which changed the internal state of foo? I would have
 trouble saying, just based on the calls above. I would have to go back
 to the definition or documentation of foo to identify which is doing
 what. On the other hand, the following gives a better clue as to what
 is happening (granted not perfect, but better):

 foo.nextval()
 foo.val
 foo.previousval()

 ~G

I held your exact same view before i learned the Ruby language. And
your veiw makes some good points, however, naming conventions with
eliminate this problem all together. All method names should use the
underscore to separate words, variable names should use camelCase,
constants in all caps, and class defs in titlecase.

def go_and_do_this_for_me_now(self, *args)
self.variableNameHere
MyClassNameHere
THISISACONSTANT -or- THIS_IS_A_CONSTANT


in your example i would have used the following

foo.next_value
foo.value
foo.prev_value

good naming conventions will make your life (and everybody else's)
much easier when debugging code.



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


Re: Confessions of a Python fanboy

2009-07-30 Thread Masklinn

On 30 Jul 2009, at 18:31 , Falcolas wrote:

On Jul 29, 9:06 pm, r rt8...@gmail.com wrote:


1.) No need to use () to call a function with no arguments.
Python -- obj.m2().m3() --ugly
  Ruby -- obj.m1.m2.m3  -- sweeet!
Man, i must admit i really like this, and your code will look so much
cleaner.


I personally would not prefer this, and would likely continue to use
(), precisely for code clarity - let me explain:

foo.nextval
foo.val
foo.previousval

Which of the calls above referenced instance variables
Well, that's very simple: none of them. In Ruby (as in Smalltalk),  
public instance variables simply don't exist.


and which ones called functions which changed the internal state of  
foo?
That you can't say, but neither can you say in Python as they could  
all be properties. And of course just because it's a method doesn't  
mean it mutates the object.



I would have
trouble saying, just based on the calls above. I would have to go back
to the definition or documentation of foo to identify which is doing
what. On the other hand, the following gives a better clue as to what
is happening (granted not perfect, but better):

Well... it doesn't give much of a clue no really.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Confessions of a Python fanboy

2009-07-30 Thread Masklinn

On 30 Jul 2009, at 19:01 , Inky 788 wrote:

On Jul 30, 12:04 am, alex23 wuwe...@gmail.com wrote:

On Jul 30, 1:06 pm, r rt8...@gmail.com wrote:


1.) No need to use () to call a function with no arguments.
Python -- obj.m2().m3() --ugly
  Ruby -- obj.m1.m2.m3  -- sweeet!
Man, i must admit i really like this, and your code will look so  
much

cleaner.


How do you distinguish between calling a method with no arguments,  
and
getting access to the method object itself (because it _is_ an  
object,

y'know, it's OO all the way down...)?


I agree with alex here. Will take the explicit syntax over the extra
cognitive load of figuring out exactly what's going on with
`obj.m1.m2.m3`.
There's no cognitive load whatsoever: it's calling methods. Always.  
Ruby simply gives you no other option. Now it could be very simple  
methods to instance attributes, akin to a java getter, but it's still  
only methods.


Furthermore Ruby has a pretty nice convention (sadly not used enough I  
think) taken from Scheme where it's possible to postfix a method name  
with ! (note: the ! is part of the name, there's no magic) to  
indicate that this method modifies the object it's called on rather  
than simply returning stuff.


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


NASA using Python / Django for NEBULA (cloud comp.)

2009-07-30 Thread Mehdi H
Hello Python devs!

I'm supporting NASA on their NEBULA project and they're looking for
Python / Django experts to join their team here in Mountain View, CA.

If you're interested, let me know and we can talk more on how they're
using Django in their environment!


Thanks,
Mehdi


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


  1   2   3   >