Re: [Python-Dev] PEP397 no command line options to python?

2011-10-18 Thread Vinay Sajip
>>  From a desire to keep the launcher as simple as possible, and to minimise 

> the
>>  need to synchronise the launcher with command line parameter changes in 
> future
>>  versions of Python.
> 
> As simple as possible yes... but no simpler.  I think having
> pylauncher behave so differently in the two cases of :
> 
> py -u test.py
> py test.py
> 
> Is very unexpected. And to do so silently, without warning will cause

It's only unexpected if you don't read the PEP. From there:

"The launcher may offer some conveniences for Python developers working
interactively - for example, starting the launcher with no command-line
arguments will launch the default Python with no command-line arguments.
Further, command-line arguments will be supported to allow a specific
Python version to be launched interactively - however, these conveniences
must not detract from the primary purpose of launching scripts and must
be easy to avoid if desired."

> real headaches_ for users, *especially* since py -h lists -u as one of
> the options, it does not say 'here are the python options but you must
> call PythonXX/python.exe to use them'.

Well, it's easy enough to make that clearer in the help output of py.exe :-)
 
> [headaches : it did for me as I ended up with a broken build of my app
> due to different parts of my app built for different pythons.]

Why does the need arise to invoke py.exe in a build system? Why not just 
reference the Python executable you want directly?

> To fix this the launcher doesn't need to track all python command line
> options, only those that take two args.  I don't really see that it
> will be such a maintenance burden to have the launcher track any new
> ones.  Python has only two such options after 20 years of development.
> 
> As for complexity it's less than 10 lines of C.

Plus tests, presumably ... let's see 'em :-)
 
> That's a cool feature which I'd not really read up on, but that
> requires a global configuration file change, it's not doable on a per
> usage basis.

Per usage = interactively, which is more of a "by-the-by" feature for the 
launcher, the main purpose being to bring shebang-line functionality to Windows.

Regards,

Vinay Sajip
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Disabling cyclic GC in timeit module

2011-10-18 Thread John Arbash Meinel
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

...

>> If you are only measuring json encoding of a few select pieces of
>> data then it's a microbenchmark. If you are measuring the whole
>> application (or a significant part of it) then I'm not sure
>> timeit is the right tool for that.
>> 
>> Regards
>> 
>> Antoine.
>> 
> 
> When you're measuring how much time it takes to encode json, this
> is a microbenchmark and yet the time that timeit gives you is
> misleading, because it'll take different amount of time in your
> application. I guess my proposition would be to not disable gc by
> default and disable it when requested, but well, I guess I'll give
> up given the strong push against it.
> 
> Cheers, fijal

True, but it is also heavily dependent on how much other data your
application has in memory at the time. If your application has 1M
objects in memory and then goes to encode/decode a JSON string when
the gc kicks in, it will take a lot longer because of all the stuff
that isn't JSON related.

I don't think it can be suggested that timeit should grow a flag for
"put garbage into memory, and then run this microbenchmark with gc
enabled.".

If you really want to know how fast something is in your application,
you sort of have to do the timing in your application, at scale and at
load.

John
=:->

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk6dLwMACgkQJdeBCYSNAAOzzACfXpP16589Mu7W8ls9KddacF+g
ozwAnRz5ciPg950qcV2uzyTKl1R21+6t
=hGgf
-END PGP SIGNATURE-
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP397 no command line options to python?

2011-10-18 Thread Sam Partington
On 18 October 2011 08:10, Vinay Sajip  wrote:
>> Is very unexpected. And to do so silently, without warning will cause
>
> It's only unexpected if you don't read the PEP. From there:
>
> "The launcher may offer some conveniences for Python developers working
> interactively - for example, starting the launcher with no command-line
> arguments will launch the default Python with no command-line arguments.
> Further, command-line arguments will be supported to allow a specific
> Python version to be launched interactively - however, these conveniences
> must not detract from the primary purpose of launching scripts and must
> be easy to avoid if desired."

I read the PEP, but didn't spot that subtelty.I wonder how many other
people will read the PEP, or just think "Oh, I can just replace python
with py" and have it figure out the python to call.

>> real headaches_ for users, *especially* since py -h lists -u as one of
>> the options, it does not say 'here are the python options but you must
>> call PythonXX/python.exe to use them'.
>
> Well, it's easy enough to make that clearer in the help output of py.exe :-)

Indeed, I would say that if nothing else then that should be done

>> [headaches : it did for me as I ended up with a broken build of my app
>> due to different parts of my app built for different pythons.]
>
> Why does the need arise to invoke py.exe in a build system? Why not just 
> reference the Python executable you want directly?

That's rather OT here, but briefly as I can. We have transitioned our
devel branch to py 2.7.  Our stable branches are to remain py 2.6. The
build system (also written in python) starts lots of sub build
commands, (various SCons, make, bash and python). I added shebangs to
all files as appropriate for devel/stable branch, and initially I
changed the python build targets from "python -utt build.py" to
"./build.py" and I lost the -utt functionality which I could live
with. But on some of the windows machines the default action of python
files was to open an editor with the build.py. So I changed it to "py
-utt build.py". Everything seemed fine initially until tests started
to fail which ensued some head scratching.  I actually didn't figure
out what was going on until I noticed that SCiTe was also calling the
wrong python because it also had "py -utt" to run python scripts.
Incidentally, one of my colleagues also discovered the same issue in
his eclipse pydev setup. I also notice that Editra also does "python
-u" by default, and I can imagine lots of users swapping "python" with
"py".

I am well aware that is is by no means a perfect system and I am
working at making it more bulletproof, but as usual there are time
constraints etc.  We will also go through the whole thing again when
wxPython supports python 3. Hopefully I will have solved all these
issues by then :-)

>> To fix this the launcher doesn't need to track all python command line
>> options, only those that take two args.  I don't really see that it
>> will be such a maintenance burden to have the launcher track any new
>> ones.  Python has only two such options after 20 years of development.
>>
>> As for complexity it's less than 10 lines of C.
>
> Plus tests, presumably ... let's see 'em :-)
>
>> That's a cool feature which I'd not really read up on, but that
>> requires a global configuration file change, it's not doable on a per
>> usage basis.
>
> Per usage = interactively, which is more of a "by-the-by" feature for the 
> launcher, the main purpose being to bring shebang-line functionality to 
> Windows.

Fair enough.  I can see that I am asking more of pylauncher than the
unix shebang parser does. But it seems to so nearly do it correctly
that I was surprised that it didn't do what I had assumed it did do.

I find this usage of it so useful in fact that irrespective of whether
the PEP takes on my suggestions I will be using the patched one, and I
will be writing a unix pylauncher to do the same.

Would it not be an idea to have new installations of python actually
install pylauncher as 'python' which then forwards onto the correct
'pythonX.X'.  It would possibly help resolve the whole question of
"Does python invoke python2 or python3" issue.

The patch should be attached. It is of course 20% C and 80% python tests :-)

Sam


add_arg_skipping.patch
Description: Binary data
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-checkins] cpython (2.7): Fixes #10860: Handle empty port after port delimiter in httplib

2011-10-18 Thread Éric Araujo
Hi,

> diff --git a/Misc/NEWS b/Misc/NEWS
> --- a/Misc/NEWS
> +++ b/Misc/NEWS
> @@ -54,6 +54,9 @@
>the following case: sys.stdin.read() stopped with CTRL+d (end of file),
>raw_input() interrupted by CTRL+c.
>  
> +- Issue #10860: httplib now correctly handles an empty port after port
> +  delimiter in URLs.
> +
>  - dict_proxy objects now display their contents rather than just the class
>name.

Looks like your entry went into the Interpreter Core section instead of
Library.

BTW, I don’t understand “3.x version will come as a separate patch” in
your commit message; isn’t that the case for all patches?  They’re
changesets with no relationship at all from Mercurial’s viewpoint, and
often their contents are also different.

Cheers
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Python-checkins] cpython (2.7): Fixes #10860: Handle empty port after port delimiter in httplib

2011-10-18 Thread Senthil Kumaran
On Tue, Oct 18, 2011 at 11:23 PM, Éric Araujo  wrote:
>
> Looks like your entry went into the Interpreter Core section instead of
> Library.

That should be corrected.

>
> BTW, I don’t understand “3.x version will come as a separate patch” in

I think, he meant in a separate commit.  :)

Senthil
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP397 no command line options to python?

2011-10-18 Thread Mark Hammond

On 18/10/2011 8:59 PM, Sam Partington wrote:
...


I added shebangs to
all files as appropriate for devel/stable branch, and initially I
changed the python build targets from "python -utt build.py" to
"./build.py" and I lost the -utt functionality which I could live
with.


Can't you just put the -utt options in the shebang line of build.py?


But on some of the windows machines the default action of python
files was to open an editor with the build.py. So I changed it to "py
-utt build.py". Everything seemed fine initially until tests started
to fail which ensued some head scratching.  I actually didn't figure
out what was going on until I noticed that SCiTe was also calling the
wrong python because it also had "py -utt" to run python scripts.
Incidentally, one of my colleagues also discovered the same issue in
his eclipse pydev setup. I also notice that Editra also does "python
-u" by default, and I can imagine lots of users swapping "python" with
"py".


Why would users choose to do that?  Using "python" presumably already 
works for them, so what benefit do they get?  If the main advantage is 
they can now use shebang lines, then the specific options the script 
wants can be expressed in that line.


I wonder if we just need to make it clear that py.exe is not designed to 
simply be a replacement for python.exe - a simple replacement adds no 
value.  It is designed to bring shebang processing to Python on Windows 
and the shebang line is where these args should live.  If you want finer 
control over things, just keep using python.exe.


Also, seeing it is much easier to add a feature later than to remove it, 
we should err on the side of not adding the feature until it is clear 
that many people want it and ensure we aren't creating other 
inconsistencies or issues when we do.  If it turns out to be true that 
even with clear documentation people come to the same conclusion as you 
(ie, that py.exe supports arguments the same way as python.exe) we still 
have the option of adding it.


Cheers,

Mark
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com