Re: Usefulness of the "not in" operator

2011-10-13 Thread Jussi Piitulainen
Chris Angelico writes:
> On Sun, Oct 9, 2011 at 12:07 AM, Jussi Piitulainen wrote:
> > But both negations can be avoided by modus tollens.
> >
> > "If you are able to start the car, the key is in the ignition."
> 
> But this translation implies looking at the result and ascertaining
> the state, which is less appropriate to a programming language. It's
> more like:
> 
> "If you found that you were able to start the car, the key must have
> been in the ignition."
> 
> and is thus quite inappropriate to the imperative style. A
> functional language MAY be able to use this style, but Python wants
> to have the condition and then the action.

This is not in an imperative context. The context is (generalized)
Boolean expressions, where there should not be any action, just
expressions returning values that are combined to produce a
(generalized) Boolean value.

Defined order of evaluation and short-circuiting complicate the
picture, but as a matter of style, I think there should not be any
action part in such an expression. Usually.

And "not in" is fine as far as I am concerned.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Embedding a "frame" into a movie using python

2011-10-13 Thread J
>> My objective is to have the user put together some images html and embed the 
>> image as a frame into a video file (any embeddable format e.g. swf). 

>SWF isn't the easiest format to work with; it's not necessarily a 
video, but might be a scripted object. Try working with real video 
formats such as avi, mpg, or ogv. 

>You may wish to look into PiTiVi, an open source video editor; it's 
written in Python. I'm not sure if you can achieve what you want by 
simply driving PiTiVi externally, but at very least, it's worth a 
peek. 

>ChrisA 

Hi Chris,

thank you for your response. I am format agnostic for processing so am happy to 
work with avi etc., however in displaying the final film to the user I think 
I'd need to convert whatever I've made to swf to make it a little less 
downloadable. I'll check out PiTiVi - perhaps I can hack it to work on the back 
of appengine...

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


Reading screen width of a Tkinter widget.

2011-10-13 Thread peter
I recently had a problem while trying to set up a Tkinter Canvas
widget as a progress bar.  Everything seemed to be working, except
that at 100% completion the progress bar spanned only about 75% of the
canvas width.  Eventually I tracked the problem down to the canvas bar
'width' property as read using w=cnvProgess['width'].  It turned out
the value returned was the original width of the canvas bar, and not
the screen width after the canvas had been gridded using 'sticky=W+E'.

Once I realised this it was not a show stopper, as I replaced the grid
sticky option with a specific width instruction.  But this is a bit
less flexible than my original method.  Is there any Tkinter command
which will return the actual dimensions of a widget which has had the
grid sticky option applied?

Peter

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


Opportunity missed by Python ?

2011-10-13 Thread candide

Dart is the very new language created by Google to replace Javascript.
So Python was not able to do the job? Or may be they don't know about 
Python at Google ;) ?

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


Re: Opportunity missed by Python ?

2011-10-13 Thread Andreas Neudecker
Am 13.10.2011 11:45, schrieb candide:
> Dart is the very new language created by Google to replace Javascript.
> So Python was not able to do the job? Or may be they don't know about
> Python at Google ;) ?

What needs to be done to make Python replace JS in Browsers/HTML? (or at
least make it a viable alternative to JS)

Can the Python community do this without involvment in browser development?

Regards

Andreas


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


Re: 1/2 evaluates to 0

2011-10-13 Thread Laurent Claessens



 Wohaw. This means that this behavior is going to be default in a
 foreseeable future ?


 It's the default in 3.x. I can't imagine it ever being the default in 2.x.



2.7 is now in "bug-fix only" mode, so no new features, and there won't be a
2.8, so true division will never be the default in 2.x.


Thanks all for your ansers. I'll import division from __future__
Most of what I'm using in Python is with Sage[1]. Thus I'm not about to 
step to 3.x :(


Laurent

[1] www.sagemath.org
--
http://mail.python.org/mailman/listinfo/python-list


Re: Opportunity missed by Python ?

2011-10-13 Thread Chris Angelico
On Thu, Oct 13, 2011 at 8:45 PM, candide  wrote:
> Dart is the very new language created by Google to replace Javascript.
> So Python was not able to do the job? Or may be they don't know about Python
> at Google ;) ?
>

Python, as I found out to my detriment, is practically impossible to
sandbox effectively. Any language that hopes to gain full traction in
a browser-based environment MUST be secure against scripts gaining too
much control over the browser chrome.

Also, Dart is looking to support (optional) strict typing, which
Python doesn't do. That's a fairly major performance enhancement.

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


Re: Embedding a "frame" into a movie using python

2011-10-13 Thread Chris Angelico
On Thu, Oct 13, 2011 at 7:51 PM, J <1jason.whatf...@gmail.com> wrote:
> thank you for your response. I am format agnostic for processing so am happy 
> to work with avi etc., however in displaying the final film to the user I 
> think I'd need to convert whatever I've made to swf to make it a little less 
> downloadable. I'll check out PiTiVi - perhaps I can hack it to work on the 
> back of appengine...

SWF is just as downloadable as any other format. I recommend doing the
fewest translations you can get away with, to avoid unnecessary loss
of quality.

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


Re: Opportunity missed by Python ?

2011-10-13 Thread Terry Reedy

On 10/13/2011 6:07 AM, Chris Angelico wrote:

On Thu, Oct 13, 2011 at 8:45 PM, candide  wrote:

Dart is the very new language created by Google to replace Javascript.
So Python was not able to do the job? Or may be they don't know about Python
at Google ;) ?



Python, as I found out to my detriment, is practically impossible to
sandbox effectively. Any language that hopes to gain full traction in
a browser-based environment MUST be secure against scripts gaining too
much control over the browser chrome.


I believe there was some idea of translating Dart into Javascript, which 
can be done with Python also (Pyjamas).


Also, Dart is looking to support (optional) strict typing, which
Python doesn't do. That's a fairly major performance enhancement.


Cython support optional typing.


--
Terry Jan Reedy

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


Re: Opportunity missed by Python ?

2011-10-13 Thread Chris Rebert
On Thu, Oct 13, 2011 at 3:07 AM, Chris Angelico  wrote:
> On Thu, Oct 13, 2011 at 8:45 PM, candide  wrote:
>> Dart is the very new language created by Google to replace Javascript.
>> So Python was not able to do the job? Or may be they don't know about Python
>> at Google ;) ?
>>
>
> Python, as I found out to my detriment, is practically impossible to
> sandbox effectively. Any language that hopes to gain full traction in
> a browser-based environment MUST be secure against scripts gaining too
> much control over the browser chrome.
>
> Also, Dart is looking to support (optional) strict typing, which
> Python doesn't do. That's a fairly major performance enhancement.

Actually, they can't use it as much more than an optimization hint,
per their own spec (see Sec 13.1 of the draft):

"Static type annotations are used during static checking and when
running programs in checked mode. They have no effect whatsoever in
production mode.
[...]
A Dart implementation must provide a static checker that detects and
reports exactly those situations this specification identifies as
static warnings. However:
• Running the static checker on a program P is not required for
compiling and running P.
• Running the static checker on a program P must not prevent
successful compilation of P nor may it prevent the execution of P,
regardless of whether any static warnings occur."

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


Re: Opportunity missed by Python ?

2011-10-13 Thread Duncan Booth
candide  wrote:

> Dart is the very new language created by Google to replace Javascript.
> So Python was not able to do the job? Or may be they don't know about 
> Python at Google ;) ?

I take it you haven't actually looked at the Dart tools then? They're 
largely written in Python.

-- 
Duncan Booth http://kupuguy.blogspot.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Dynamically altering __init__

2011-10-13 Thread Kääriäinen Anssi
Hello all,

I am trying to alter the init method of a class by source to AST -> alter AST
-> AST back to code -> f = types.FunctionType(code, {}, '__init__') ->
mt = types.MethodType(f, None, Foo) -> Foo.__init__ = mt

I have two problems, first I haven't yet figured out how to make the AST back
to code, so that it will be accepted by types.FunctionType. Also, I can't make
the Foo.__init__ be callable with arguments. Here is an example without
using AST:

class Foo(object):
def __init__(self):
 pass

src = """
def my_init_func(self, *args):
print "here"
"""

class Foo(object):
pass

import parser
import types
st = parser.suite(src)
dyn_func = parser.compilest(st)
f = types.FunctionType(dyn_func, {}, '__init__')
im = types.MethodType(f, None, Foo)
Foo()
Foo.__init__ = im
Foo(1, 2, 3)

The result is: TypeError: () takes no arguments (4 given). I have
figured out that when I call f(), I am actually executing the src as is, not
the defined function in the src. But I can't figure out how to get a 
reference to my_init_func.

You might be wondering why I am doing this. I am trying to rewrite this:

class Foo(object):
attrs = ['spam', 'eggs']
def __init__(self, *args):
for attname, val in izip(Foo.attrs, args):
setattr(self, attname, val)

into this:
...
def __init__(self, *args):
 self.spam, self.eggs = args

This is done for performance reasons. There is about 2x difference when
creating 1 objects. While it is a nice improvement, this is still mostly
just for learning purposes.

If you can help me it would be great. I am probably doing a lot of things
wrong, but there isn't too much information available about these shorts
of things. Link to example code would be perfect.

 - Anssi Kääriäinen
-- 
http://mail.python.org/mailman/listinfo/python-list


Python gp.ListFeatureClasses return only one file

2011-10-13 Thread yo
Hi All,
I m using the gp.ListFeatureClasses to make a list of file in my
directory (containing several hundreds of file)
however when I print the variable in which the List is supposed to be
stored, the print just return one file name
does any one have an idea

# Import system modules
import sys, string, os, arcgisscripting, glob, arcpy

# Create the Geoprocessor object
gp = arcgisscripting.create()
# define the workspace
gp.Workspace = r"F:\front\shp_Files\calving_front"
# list the file in the workspace

try:
shpList = gp.ListFeatureClasses("*.shp")
shp = shpList.Next()
print shp

except:
print arcpy.GetMessages() # allows to get error message when they
happen
-- 
http://mail.python.org/mailman/listinfo/python-list


Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Martin P. Hellwig
First of all let me say that I have no authority or knowledge of 
language design or multi-processing except from a user point of view, 
having a decade or so experience.
I would like your opinion and appreciate any feedback and value any 
hints to documentation, procedures or related ramblings :-).


I was wondering if there could be an advantage to add another control 
flow statement.
For the purpose of this writing let's say "ooo" which stands for 'out of 
order'.


For example;

def do_something():
a = 4
b = 2
c = 1
ooo:
a += 1
b += 2
c += 3
print(a, b, c)

What I would expect to happen that all statements within the ooo block 
may be executed out
of order. The block itself waits till all statements are returned before 
continuing.


What do you think?
--
http://mail.python.org/mailman/listinfo/python-list


Re: 1/2 evaluates to 0

2011-10-13 Thread SigmundV
On Oct 13, 10:04 am, Laurent Claessens  wrote:
> Thanks all for your ansers. I'll import division from __future__
> Most of what I'm using in Python is with Sage[1]. Thus I'm not about to
> step to 3.x :(

You should get in touch with the Sage developers. In the Sage FAQ they
say that "until SciPy is ported to run with Python 3.x and Cython
supports Python 3.x, Sage will continue to use Python 2.x."

However, both SciPy and Cython are currently compatible with Python
3.2. From the Cython FAQ: "As of 0.14, the Cython compiler runs in all
Python versions from 2.3 to 3.2 inclusive." NumPy has supported Python
3 since version 1.5.0. From the release notes: "This is the first
NumPy release which is compatible with Python 3." SciPy has supported
Python 3 since version 0.9.0. From the release notes: "Scipy 0.9.0 is
the first SciPy release to support Python 3. The only module that is
not yet ported is ``scipy.weave``."

So according to the Sage FAQ there is no reason why Sage shouldn't
support Python 3.


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


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Chris Angelico
On Thu, Oct 13, 2011 at 11:35 PM, Martin P. Hellwig
 wrote:
> What I would expect to happen that all statements within the ooo block may
> be executed out
> of order. The block itself waits till all statements are returned before
> continuing.
>

In a statically-typed language such as C, this can be done by an
optimizing compiler, without any hints from the programmer. But in
Python, what you're looking for is either a guarantee from the
programmer that none of the statements has a side effect that affects
any other, or that you're prepared to wear it and have a horrendous
debugging job if anyone monkey-patches your code or you do anything
that makes a, b, or c into something more complex than an integer.

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


Re: Python gp.ListFeatureClasses return only one file

2011-10-13 Thread Andreas Perstinger

On 2011-10-13 14:00, yo wrote:

Hi All,
I m using the gp.ListFeatureClasses to make a list of file in my
directory (containing several hundreds of file)
however when I print the variable in which the List is supposed to be
stored, the print just return one file name
does any one have an idea


Depending on the version you are using, "ListFeatureClasses()" returns 
either a list or an enumeration object:

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=ListFeatureClasses_method

You are just printing the first item. To print all, something like the 
following should work (assuming you are using version 9.2):


shpList = gp.ListFeatureClasses("*.shp")
shp = shpList.Next()
while shp:
print shp
shp = shpList.Next()

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


Re: Opportunity missed by Python ?

2011-10-13 Thread Alain Ketterlin
Chris Angelico  writes:

> On Thu, Oct 13, 2011 at 8:45 PM, candide  wrote:
>> Dart is the very new language created by Google to replace Javascript.
>> So Python was not able to do the job? Or may be they don't know about Python
>> at Google ;) ?
>
> Python, as I found out to my detriment, is practically impossible to
> sandbox effectively. Any language that hopes to gain full traction in
> a browser-based environment MUST be secure against scripts gaining too
> much control over the browser chrome.

A first step in that direction would be to have a specification for a
python virtual machine.

I guess engineers at Google know very well the limitations of Python in
its current state. After all, python's inventor works there. Also,
they've tried the optimization road with unladden-swallow. And failed.

> Also, Dart is looking to support (optional) strict typing, which
> Python doesn't do. That's a fairly major performance enhancement.

I think you're absolutely right. They've already included a "better
DOM". The use of typing will let them provide a very efficient standard
library.

I am willing to bet that Google's next step will be to provide a
plugin/extension/whatever to directly execute Dart programs in the
browsers. And then a JIT compiler inside the VM. And then everybody will
want to move, for performance reason. All the Javascript compatibility
is transitional stuff.

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


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Stefan Behnel

Martin P. Hellwig, 13.10.2011 14:35:

I was wondering if there could be an advantage to add another control flow
statement.


Changes at that level must be very well justified, are often rejected for 
the reason of being not too complicated to write in some other form and are 
close to impossible to get accepted when requiring a new keyword.


Also, the right place to discuss (and, more importantly, search for 
previous) ideas about language changes is the python-ideas mailing list.




For the purpose of this writing let's say "ooo" which stands for 'out of
order'.

For example;

def do_something():
  a = 4
  b = 2
  c = 1
  ooo:
a += 1
b += 2
c += 3
  print(a, b, c)

What I would expect to happen that all statements within the ooo block may
be executed out
of order. The block itself waits till all statements are returned before
continuing.


This looks like a rather special case. What if you need more than one 
statement to accomplish a single step? What if the number of parallel tasks 
is not fixed at coding time? I don't think there are many problems that you 
can solve with this feature.


Also: the GIL will not allow you to take a major advantage from the 
parallel execution of a set of statements, as only one of the statements 
can use the interpreter at a time.


And, on a related note: Cython has freshly gained support for parallel 
loops based on OpenMP, so you may be able to solve your problem with Cython 
instead of using plain Python.


Stefan

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


Re: MySQLdb on Mac Lion

2011-10-13 Thread Tim Johnson
* Ned Deily  [111012 18:12]:
> In article <20111013005244.gk6...@johnsons-web.com>,
>  Tim Johnson  wrote:
> > I'm most experienced with MySQLdb on ubuntu, which is installed via
> > apt-get or synaptic.
> > 
> > I am setting up a mac mini with osX 10.7 (Lion). Macports makes
> > py27-mysql 1.2.2 available, but are there any .dmg packages
> > available?
> 
> I strongly recommend you stick with MacPorts or Homebrew.  There are too 
> many things that can go wrong on OS X 10.6 or 10.7 if you try to install 
> MySQL client libraries, MySQLdb, and Python from different places.  IME, 
> the binary installers for OS X provided by the MySQL are inconsistently 
> built between versions and often need the library paths need to be 
> tweaked.   The only major drawback of using MacPorts is that it will 
> download (and possibly build) its own version of Python but it's a small 
> price to pay: search the archives of Stackoverflow to see how 
> dismayingly often this topic comes up.
  Thanks for that Ned.
-- 
Tim 
tim at tee jay forty nine dot com or akwebsoft dot com
http://www.akwebsoft.com
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Opportunity missed by Python ?

2011-10-13 Thread Westley Martínez
On Thu, Oct 13, 2011 at 11:45:06AM +0200, candide wrote:
> Dart is the very new language created by Google to replace Javascript.
> So Python was not able to do the job? Or may be they don't know
> about Python at Google ;) ?

Google's a big supporter for Python...I think Guido working being
employed there has something to do with it, but I could be conspiring.

Python is not an appropriate language for client-side web scripts, it's
just too good for such a lowly job. ;)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Opportunity missed by Python ?

2011-10-13 Thread Westley Martínez
On Thu, Oct 13, 2011 at 09:07:09PM +1100, Chris Angelico wrote:
> On Thu, Oct 13, 2011 at 8:45 PM, candide  wrote:
> > Dart is the very new language created by Google to replace Javascript.
> > So Python was not able to do the job? Or may be they don't know about Python
> > at Google ;) ?
> >
> 
> Python, as I found out to my detriment, is practically impossible to
> sandbox effectively. Any language that hopes to gain full traction in
> a browser-based environment MUST be secure against scripts gaining too
> much control over the browser chrome.
> 
> Also, Dart is looking to support (optional) strict typing, which
> Python doesn't do. That's a fairly major performance enhancement.
> 
> ChrisA

You mean static typing?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread jkn
FWIW, this looks rather like the 'PAR' construct of Occam to me.

http://en.wikipedia.org/wiki/Occam_%28programming_language%29

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


Re: 1/2 evaluates to 0

2011-10-13 Thread Laurent Claessens



You should get in touch with the Sage developers. In the Sage FAQ they
say that "until SciPy is ported to run with Python 3.x and Cython
supports Python 3.x, Sage will continue to use Python 2.x."

``scipy.weave``."


So according to the Sage FAQ there is no reason why Sage shouldn't
support Python 3.


Maybe the FAQ is not up to date. Nowadays the reason for not stepping to 
3.x is "manpower" ;)
(this question comes back two or three times a year on the Sages' list. 
Next time the question arises, I'll point out your remark)


Scipy and Cython are just two of the biggest python parts in Sage, but 
there are many others ... 'till sage itself.


Have a good afternoon
Laurent
--
http://mail.python.org/mailman/listinfo/python-list


Re: Dynamically altering __init__

2011-10-13 Thread Ian Kelly
2011/10/13 Kääriäinen Anssi :
> import parser
> import types
> st = parser.suite(src)
> dyn_func = parser.compilest(st)
> f = types.FunctionType(dyn_func, {}, '__init__')
> im = types.MethodType(f, None, Foo)
> Foo()
> Foo.__init__ = im
> Foo(1, 2, 3)
>
> The result is: TypeError: () takes no arguments (4 given). I have
> figured out that when I call f(), I am actually executing the src as is, not
> the defined function in the src. But I can't figure out how to get a
> reference to my_init_func.

You can either pull the function code object out of the module code
object constants:

...
st_code = parser.compilest(st)
func_code = st_code.co_consts[0]
f = types.FunctionType(func_code, {}, '__init__')
...

But you should take care to ensure that the function code object
actually is the first constant.  Or you can just exec your suite and
pull the function from its globals.

src_globals = {}
exec src in src_globals
my_init_func = src_globals['my_init_func']

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


RE: Dynamically altering __init__

2011-10-13 Thread Kääriäinen Anssi
Ian Kelly wrote:
"""
You can either pull the function code object out of the module code
object constants:

...
st_code = parser.compilest(st)
func_code = st_code.co_consts[0]
f = types.FunctionType(func_code, {}, '__init__')
...

But you should take care to ensure that the function code object
actually is the first constant.  Or you can just exec your suite and
pull the function from its globals.

src_globals = {}
exec src in src_globals
my_init_func = src_globals['my_init_func']
"""

Thank you very much. I will post a link to a complete example once
I have done the AST transformations etc. I hope this will be useful to
readers of this list. I didn't find such an example, so maybe the next
asker will find it... And when I inevitably do something the wrong
way in my example, I am sure you will correct me :) 

However, this might take some time before ready, I am new to this
stuff. If there is already an example somewhere, that would be really
helpful to me.

Just a quick note, I tested this on Python2.6, and got around 2.3 seconds
per million objects. With an init doing the setattr loop, I got around 4.7
seconds. So the speed difference is there, but as expected, it isn't that
big. Python3 had similar results.

 - Anssi Kääriäinen
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Martin P. Hellwig

On 13/10/2011 15:13, Stefan Behnel wrote:

Martin P. Hellwig, 13.10.2011 14:35:

I was wondering if there could be an advantage to add another control
flow
statement.


Changes at that level must be very well justified, are often rejected
for the reason of being not too complicated to write in some other form
and are close to impossible to get accepted when requiring a new keyword.

Also, the right place to discuss (and, more importantly, search for
previous) ideas about language changes is the python-ideas mailing list.



For the purpose of this writing let's say "ooo" which stands for 'out of
order'.

For example;

def do_something():
a = 4
b = 2
c = 1
ooo:
a += 1
b += 2
c += 3
print(a, b, c)

What I would expect to happen that all statements within the ooo block
may
be executed out
of order. The block itself waits till all statements are returned before
continuing.


This looks like a rather special case. What if you need more than one
statement to accomplish a single step?


Aah yes haven't thought about that, was more thinking like wrap multiple 
steps in a function and put that as one line, but yeah that kind of 
stuff gets very unpythonic very quickly.



What if the number of parallel
tasks is not fixed at coding time? I don't think there are many problems
that you can solve with this feature.

Also: the GIL will not allow you to take a major advantage from the
parallel execution of a set of statements, as only one of the statements
can use the interpreter at a time.


Well I was more or less thinking in the line that the interpreter when 
parsing such a statement can, if there are multiple cpu's available, 
fire the appropriate amount of other interpreters and do all the passing 
and locking of data for you.




And, on a related note: Cython has freshly gained support for parallel
loops based on OpenMP, so you may be able to solve your problem with
Cython instead of using plain Python.

Well funny enough I don't really have a problem with it, I am a happy 
consumer of multiprocessing, but I was just wondering if there would be 
a way to do it simpler and more pythonic.



Stefan



Thanks for your feedback it was very enlightening although for what the 
idea is concerned disappointing as it more or less makes it obvious that 
such a thing is a no-go.


Cheers,

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


Re: Opportunity missed by Python ?

2011-10-13 Thread BartC



"candide"  wrote in message 
news:4e96b324$0$1007$426a3...@news.free.fr...

Dart is the very new language created by Google to replace Javascript.
So Python was not able to do the job? Or may be they don't know about 
Python at Google ;) ?


The entire resources of Google available, and they re-invent C!

https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/client/samples/spirodraw/Spirodraw.dart

--
Bartc 


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


Re: Opportunity missed by Python ?

2011-10-13 Thread Chris Angelico
On Fri, Oct 14, 2011 at 8:38 AM, BartC  wrote:
> The entire resources of Google available, and they re-invent C!

Syntactically, C has a lot going for it. If you want to invent a new
language and have developers grok it easily, borrowing syntax from C
will help a lot. But in this case, I think the derivation is from
JavaScript (which itself derives from C), making Dart a more-similar
replacement.

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


Reading a file into a data structure....

2011-10-13 Thread MrPink
This is a continuing to a post I made in August:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/b072cfadf998deae/ce6d4d09911e4107?lnk=gst&q=MrPink#ce6d4d09911e4107

I got some free time to work with Python again and have some followup
questions.

For example, I have a list in a text file like this:
Example list of lottery drawings:
date,wb,wb,wb,wb,wb,bb
4/1/2011,5,1,45,23,27,27
5/1/2011,15,23,8,48,22,32
6/1/2011,33,49,21,16,34,1
7/1/2011,9,3,13,22,45,41
8/1/2011,54,1,24,39,35,18


Ticket:
startdate,enddate,wb,wb,wb,wb,wb,bb
4/1/2011,8/1/2011,5,23,32,21,3,27

I am trying to determine the optimal way to organize the data
structure of the drawing list, search the drawing list, and mark the
matches in the drawing list.

f = open("C:\temp\drawinglist.txt", "r")
lines = f.readlines()
f.close()
drawing = lines[1].split()

The results in drawing is this:
drawing[0] = '4/1/2011'
drawing[1] = '5'
drawing[2] = '1'
drawing[3] = '45'
drawing[4] = '23'
drawing[5] = '27'
drawing[6] = '27'

I need to convert drawing[0] to a date datatype.  This works, but I'm
sure there is a better way.
from datetime import date
month, day, year = drawing[0].split('/')
drawing[0] = date(int(year), int(month), int(day))

For searching, I need to determine if the date of the drawing is
within the date range of the ticket.  If yes, then mark which numbers
in the drawing match the numbers in the ticket.

ticket[0] = '4/1/2011'
ticket[0] = '8/1/2011'
ticket[0] = '5'
ticket[0] = '23'
ticket[0] = '32'
ticket[0] = '21'
ticket[0] = '3'
ticket[0] = 27'

drawing[0] = '4/1/2011' (match)
drawing[1] = '5' (match)
drawing[2] = '1'
drawing[3] = '45'
drawing[4] = '23' (match)
drawing[5] = '27'
drawing[6] = '27' (match)


I'm debating on structuring the drawing list like this:
drawing[0] = '4/1/2011'
drawing[1][0] = '5'
drawing[1][1] = '1'
drawing[1][2] = '45'
drawing[1][3] = '23'
drawing[1][4] = '27'
drawing[2] = '27'

Sort drawing[1] from low to high
drawing[1][0] = '1'
drawing[1][1] = '5'
drawing[1][2] = '23'
drawing[1][3] = '27'
drawing[1][4] = '45'

I want to keep the drawing list in memory for reuse.

Any guidance would be most helpful and appreciated.
BTW, I want to learn, so be careful not to do too much of the work for
me.
I'm using WingIDE to do my work.

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


Re: Opportunity missed by Python ?

2011-10-13 Thread 88888 dihedral
As long as there are tools to translate scripts or source code between the two 
languages. More new evolved powerful programming  languages arenot problems at 
all for experienced programmers.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Rhodri James

On Thu, 13 Oct 2011 15:33:27 +0100, jkn  wrote:


FWIW, this looks rather like the 'PAR' construct of Occam to me.

http://en.wikipedia.org/wiki/Occam_%28programming_language%29


I was going to say the same thing.  Occam's answer to Stefan's
question about what to do if you want more than one statement
executed per step was to wrap sequences of statements in a
SEQ construct.  You end up indenting a long way very fast if
you aren't careful.

I'm afraid much as I love PAR, Python's dynamicism makes it
rather more 'exciting' than it was in occam.

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


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Neil Hodgson
jkn:

> FWIW, this looks rather like the 'PAR' construct of Occam to me.
> 
> http://en.wikipedia.org/wiki/Occam_%28programming_language%29

   Earlier than that, 'par' is from Algol 68:
http://en.wikipedia.org/wiki/ALGOL_68#par:_Parallel_processing

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


Re: Reading a file into a data structure....

2011-10-13 Thread Ian Kelly
On Thu, Oct 13, 2011 at 3:59 PM, MrPink  wrote:
> This is a continuing to a post I made in August:
> http://groups.google.com/group/comp.lang.python/browse_thread/thread/b072cfadf998deae/ce6d4d09911e4107?lnk=gst&q=MrPink#ce6d4d09911e4107
>
> I got some free time to work with Python again and have some followup
> questions.
>
> For example, I have a list in a text file like this:
> Example list of lottery drawings:
> date,wb,wb,wb,wb,wb,bb
> 4/1/2011,5,1,45,23,27,27
> 5/1/2011,15,23,8,48,22,32
> 6/1/2011,33,49,21,16,34,1
> 7/1/2011,9,3,13,22,45,41
> 8/1/2011,54,1,24,39,35,18
> 
>
> Ticket:
> startdate,enddate,wb,wb,wb,wb,wb,bb
> 4/1/2011,8/1/2011,5,23,32,21,3,27
>
> I am trying to determine the optimal way to organize the data
> structure of the drawing list, search the drawing list, and mark the
> matches in the drawing list.
>
> f = open("C:\temp\drawinglist.txt", "r")
> lines = f.readlines()
> f.close()
> drawing = lines[1].split()

That looks like a CSV file.  If the contents are tightly constrained
then it may not matter, but if not then you should consider using the
csv module to read the lines, which will handle inconvenient details
like quoting and escape characters for you.

> I need to convert drawing[0] to a date datatype.  This works, but I'm
> sure there is a better way.
> from datetime import date
> month, day, year = drawing[0].split('/')
> drawing[0] = date(int(year), int(month), int(day))

If you already know the format:

from datetime import datetime
drawing[0] = datetime.strptime(drawing[0], '%m/%d/%Y').date()

If you can't be sure of the format, then I recommend using the
python-dateutil parser.parse() function, which will try to work it out
on the fly.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reading a file into a data structure....

2011-10-13 Thread Jon Clements
On Oct 13, 10:59 pm, MrPink  wrote:
> This is a continuing to a post I made in 
> August:http://groups.google.com/group/comp.lang.python/browse_thread/thread/...
>
> I got some free time to work with Python again and have some followup
> questions.
>
> For example, I have a list in a text file like this:
> Example list of lottery drawings:
> date,wb,wb,wb,wb,wb,bb
> 4/1/2011,5,1,45,23,27,27
> 5/1/2011,15,23,8,48,22,32
> 6/1/2011,33,49,21,16,34,1
> 7/1/2011,9,3,13,22,45,41
> 8/1/2011,54,1,24,39,35,18
> 
>
> Ticket:
> startdate,enddate,wb,wb,wb,wb,wb,bb
> 4/1/2011,8/1/2011,5,23,32,21,3,27
>
> I am trying to determine the optimal way to organize the data
> structure of the drawing list, search the drawing list, and mark the
> matches in the drawing list.
>
> f = open("C:\temp\drawinglist.txt", "r")
> lines = f.readlines()
> f.close()
> drawing = lines[1].split()
>
> The results in drawing is this:
> drawing[0] = '4/1/2011'
> drawing[1] = '5'
> drawing[2] = '1'
> drawing[3] = '45'
> drawing[4] = '23'
> drawing[5] = '27'
> drawing[6] = '27'
>
> I need to convert drawing[0] to a date datatype.  This works, but I'm
> sure there is a better way.
> from datetime import date
> month, day, year = drawing[0].split('/')
> drawing[0] = date(int(year), int(month), int(day))
>
> For searching, I need to determine if the date of the drawing is
> within the date range of the ticket.  If yes, then mark which numbers
> in the drawing match the numbers in the ticket.
>
> ticket[0] = '4/1/2011'
> ticket[0] = '8/1/2011'
> ticket[0] = '5'
> ticket[0] = '23'
> ticket[0] = '32'
> ticket[0] = '21'
> ticket[0] = '3'
> ticket[0] = 27'
>
> drawing[0] = '4/1/2011' (match)
> drawing[1] = '5' (match)
> drawing[2] = '1'
> drawing[3] = '45'
> drawing[4] = '23' (match)
> drawing[5] = '27'
> drawing[6] = '27' (match)
>
> I'm debating on structuring the drawing list like this:
> drawing[0] = '4/1/2011'
> drawing[1][0] = '5'
> drawing[1][1] = '1'
> drawing[1][2] = '45'
> drawing[1][3] = '23'
> drawing[1][4] = '27'
> drawing[2] = '27'
>
> Sort drawing[1] from low to high
> drawing[1][0] = '1'
> drawing[1][1] = '5'
> drawing[1][2] = '23'
> drawing[1][3] = '27'
> drawing[1][4] = '45'
>
> I want to keep the drawing list in memory for reuse.
>
> Any guidance would be most helpful and appreciated.
> BTW, I want to learn, so be careful not to do too much of the work for
> me.
> I'm using WingIDE to do my work.
>
> Thanks,

- Use the csv module to read the file
- Use strptime to process the date field
- Use a set for draw numbers (you'd have to do pure equality on the
bb)
- Look at persisting in a sqlite3 DB (maybe with a custom convertor)

hth,

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


Re: [Python-ideas] Implement comparison operators for range objects

2011-10-13 Thread 88888 dihedral
How about iterable objects supported in python?  Is a countable  object 
iterable definitely? Also the tail recursion technique is useful for the same 
function with few arguments that calls itself. The lisp compiler would emit 
machine codes with   fast jumps and passing arguments in registers or stacks 
very efficiently.  
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Language Enhancement Idea to help with multi-processing (your opinions please)

2011-10-13 Thread Steven D'Aprano
Martin P. Hellwig wrote:

> I was wondering if there could be an advantage to add another control
> flow statement.
> For the purpose of this writing let's say "ooo" which stands for 'out of
> order'.
[...]
> What I would expect to happen that all statements within the ooo block
> may be executed out
> of order. The block itself waits till all statements are returned before
> continuing.

Why do you think this needs to be a language statement?

You can have that functionality *right now*, without waiting for a syntax
update, by use of the multiprocessing module, or a third party module.

http://docs.python.org/library/multiprocessing.html
http://wiki.python.org/moin/ParallelProcessing

There's no need for forcing language changes on everyone, whether they need
it or not, for features that can easily be implemented as library code.



-- 
Steven

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


Looking for browser emulator

2011-10-13 Thread Roy Smith
I've got to write some tests in python which simulate getting a page of 
HTML from an http server, finding a link, clicking on it, and then 
examining the HTML on the next page to make sure it has certain features.

I can use urllib to do the basic fetching, and lxml gives me the tools 
to find the link I want and extract its href attribute.  What's missing 
is dealing with turning the href into an absolute URL that I can give to 
urlopen().  Browsers implement all sorts of stateful logic such as "if 
the URL has no hostname, use the same hostname as the current page".  
I'm talking about something where I can execute this sequence of calls:

urlopen("http://foo.com:/bar";)
urlopen("/baz")

and have the second one know that it needs to get 
"http://foo.com:/baz";.  Does anything like that exist?

I'm really trying to stay away from Selenium and go strictly with 
something I can run under unittest.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Jon Clements
On Oct 14, 3:19 am, Roy Smith  wrote:
> I've got to write some tests in python which simulate getting a page of
> HTML from an http server, finding a link, clicking on it, and then
> examining the HTML on the next page to make sure it has certain features.
>
> I can use urllib to do the basic fetching, and lxml gives me the tools
> to find the link I want and extract its href attribute.  What's missing
> is dealing with turning the href into an absolute URL that I can give to
> urlopen().  Browsers implement all sorts of stateful logic such as "if
> the URL has no hostname, use the same hostname as the current page".  
> I'm talking about something where I can execute this sequence of calls:
>
> urlopen("http://foo.com:/bar";)
> urlopen("/baz")
>
> and have the second one know that it needs to get
> "http://foo.com:/baz";.  Does anything like that exist?
>
> I'm really trying to stay away from Selenium and go strictly with
> something I can run under unittest.

lxml.html.make_links_absolute() ?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Jon Clements
On Oct 14, 3:19 am, Roy Smith  wrote:
> I've got to write some tests in python which simulate getting a page of
> HTML from an http server, finding a link, clicking on it, and then
> examining the HTML on the next page to make sure it has certain features.
>
> I can use urllib to do the basic fetching, and lxml gives me the tools
> to find the link I want and extract its href attribute.  What's missing
> is dealing with turning the href into an absolute URL that I can give to
> urlopen().  Browsers implement all sorts of stateful logic such as "if
> the URL has no hostname, use the same hostname as the current page".  
> I'm talking about something where I can execute this sequence of calls:
>
> urlopen("http://foo.com:/bar";)
> urlopen("/baz")
>
> and have the second one know that it needs to get
> "http://foo.com:/baz";.  Does anything like that exist?
>
> I'm really trying to stay away from Selenium and go strictly with
> something I can run under unittest.

lxml.html.make_links_absolute() ?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Roy Smith
In article 
<2323f3d7-42ff-4de5-9006-4741e865f...@a9g2000yqo.googlegroups.com>,
 Jon Clements  wrote:

> On Oct 14, 3:19 am, Roy Smith  wrote:
> > I've got to write some tests in python which simulate getting a page of
> > HTML from an http server, finding a link, clicking on it, and then
> > examining the HTML on the next page to make sure it has certain features.
> >
> > I can use urllib to do the basic fetching, and lxml gives me the tools
> > to find the link I want and extract its href attribute.  What's missing
> > is dealing with turning the href into an absolute URL that I can give to
> > urlopen().  Browsers implement all sorts of stateful logic such as "if
> > the URL has no hostname, use the same hostname as the current page".  
> > I'm talking about something where I can execute this sequence of calls:
> >
> > urlopen("http://foo.com:/bar";)
> > urlopen("/baz")
> >
> > and have the second one know that it needs to get
> > "http://foo.com:/baz";.  Does anything like that exist?
> >
> > I'm really trying to stay away from Selenium and go strictly with
> > something I can run under unittest.
> 
> lxml.html.make_links_absolute() ?

Interesting.  That might be exactly what I'm looking for.  Thanks!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Miki Tebeka
IIRC mechanize can do that.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Gary Herron

On 10/13/2011 07:19 PM, Roy Smith wrote:

I've got to write some tests in python which simulate getting a page of
HTML from an http server, finding a link, clicking on it, and then
examining the HTML on the next page to make sure it has certain features.

I can use urllib to do the basic fetching, and lxml gives me the tools
to find the link I want and extract its href attribute.  What's missing
is dealing with turning the href into an absolute URL that I can give to
urlopen().  Browsers implement all sorts of stateful logic such as "if
the URL has no hostname, use the same hostname as the current page".
I'm talking about something where I can execute this sequence of calls:

urlopen("http://foo.com:/bar";)
urlopen("/baz")

and have the second one know that it needs to get
"http://foo.com:/baz";.  Does anything like that exist?

I'm really trying to stay away from Selenium and go strictly with
something I can run under unittest.



Try mechanize
  http://wwwsearch.sourceforge.net/mechanize/
billed as
  Stateful programmatic web browsing in Python.


I handles clicking on links, cookies, logging in/out, and filling in of 
forms in the same way as a "real" browser, but it's all under 
programmatic control from Python.



In Ubuntu, it's the python-mechanize package.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Looking for browser emulator

2011-10-13 Thread Roy Smith
In article ,
 Gary Herron  wrote:
 
> Try mechanize
>http://wwwsearch.sourceforge.net/mechanize/
> billed as
>Stateful programmatic web browsing in Python.

Wow, this is cool, thanks!  It even does cookies!
-- 
http://mail.python.org/mailman/listinfo/python-list


argparse zero-length switch

2011-10-13 Thread Carl Banks
Is it possible to specify a zero-length switch?  Here's what I mean.

I have a use case where some users would have to enter a section name on the 
command line almost every time, whereas other users (the ones using only one 
section) will never have to enter the section name.  I don't want to burden 
users with only one "section" to always enter the section name as a required 
argument, but I also want to make it as convenient as possible to enter the 
section name for those who need to.

My thought, on the thinking that practicality beats purity, was to create a 
zero-length switch using a different prefix character (say, @) to indicate the 
section name.  So instead of typing this:

   sp subcommand -s abc foo bar

they could type this:

   sp subcommand @abc foo bar

Admittedly a small benefit.  I tried the following but argparse doesn't seem to 
do what I'd hoped:

   p = argparse.ArgumentParser(prefix_chars='-@')
   p.add_argument('@',type=str,dest='section')
   ar = p.parse_args(['@abc'])

This throws an exception claiming unrecognized arguments.

Is there a way (that's not a hack) to do this?  Since the current behavior of 
the above code seems to do nothing useful, it could be added to argparse with 
very low risk of backwards incompatibility.

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