Re: [Python-Dev] versioned .so files for Python 3.2

2010-07-24 Thread Ronald Oussoren

On 23 Jul, 2010, at 23:19, Barry Warsaw wrote:

 On Jul 23, 2010, at 12:54 PM, Barry Warsaw wrote:
 
 On Jul 23, 2010, at 11:48 AM, Ronald Oussoren wrote:
 
 I'd be open to adding the
 platform name to the tag, but I'd probably define it as part of the
 implementation field, e.g. foo.cpython-linux2-32m.so.  Or maybe
 start with the platform name, e.g.  foo.linux2-cpython-32m.  This
 isn't a strong preference though.
 
 I don't have a strong opionion, but placing the platform name at the
 start is probably better to be consistent with
 sysconfig.get_platform().
 
 What about the architecture (i386, amd64)?  With every increase in
 length I start to get more concerned.  We could encode the platform
 and architecture, but that gets into cryptic territory.  OTOH, would
 you really co-install i386 and amd64 shared libraries on the same
 machine?  (hello NFS ;).
 
 Thinking about this some more, I'd rather *not* include the platform or
 architecture in the tag by default.  They aren't really necessary to support
 the instigating use case and will probably be fairly uncommon.
 
 I'd be okay including a configure option to allow you to add whatever you want
 after the implementation, version, and flags.  E.g. something like:
 
./configure --with-abi-tag-extension=linux2
 
 would lead to foo.cpython-32m-linux2.so, so not the nicer names we'd prefer
 but probably good enough for your purposes.
 
 Would that work for you?

That would certainly work.  That said, I'm also fine with not adding the 
platform information or configure argument at all. My usecase is fairly exotic 
and I do have a feasible workaround.

Ronald



smime.p7s
Description: S/MIME cryptographic signature
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Include datetime.py in stdlib or not?

2010-07-24 Thread Nick Coghlan
On Sat, Jul 24, 2010 at 3:44 AM, Benjamin Peterson benja...@python.org wrote:
 2010/7/23 Alexander Belopolsky alexander.belopol...@gmail.com:
 Thanks, everyone who followed up here and on the tracker.  I am
 readying the patch for check in, but as I look back through the
 messages, I don't really see anyone's answer to the question in the
 subject:

 *  Include datetime.py in stdlib or not?

 I hope this means an implied yes, include.  Since committing the
 patch will case a bit of file movement, I would like to pre-announce
 the commit in case my timing is not right.

 It's a bit hard to get a strong affirmative because it's not really
 anyone's decision. I would say, though, given that there haven't been
 any strong -1s, you can go ahead.

Yep, that sounds right to me too.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Nick Coghlan
On Sat, Jul 24, 2010 at 10:05 AM, Ron Adam r...@ronadam.com wrote:
 I am not sure I like the fact that the browser is started automatically.
 Please bring this up on python-dev.  This may be an opportunity to
 rethink pydoc command line switches.  For example, -p and -g are
 currently exclusive, but it would make sense for -g to start server on
 the port specified by -p.

 So are any thoughts on starting the web browser automatically, and on how
 the -g and -p command line switches work?

My suggestion:

- leave the -g option alone (including the tk gui), but make sure
other options still work when tk is unavailable
- add a -b option to start the server and open the webbrowser automatically
- allow -p to be combined with either -b or -g to specify where
the server should run (or is running)

For the -b option, if the server is already running (and hence the
port is in use), catch the exception, print a message and start the
webbrowser anyway.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread Guido van Rossum
While the EuroPython sprints are still going on, I am back home, and
after a somewhat restful night of sleep, I have some thoughts I'd like
to share before I get distracted. Note, I am jumping wildly between
topics.

- Commit privileges: Maybe we've been too careful with only giving
commit privileges to to experienced and trusted new developers. I
spoke to Ezio Melotti and from his experience with getting commit
privileges, it seems to be a case of the lion is much more afraid of
you than you are afraid of the lion. I.e. having got privileges he
was very concerned about doing something wrong, worried about the
complexity of SVN, and so on. Since we've got lots of people watching
the commit stream, I think that there really shouldn't need to be a
worry at all about a new committer doing something malicious, and
there shouldn't be much worry about honest beginners' mistakes either
-- the main worry remains that new committers don't use their
privileges enough. So, my recommendation (which surely is a
turn-around of my *own* attitude in the past) is to give out more
commit privileges sooner.

- Concurrency and parallelism: Russel Winder and Sarah Mount pushed
the idea of CSP
(http://en.wikipedia.org/wiki/Communicating_sequential_processes) in
several talks at the conference. They (at least Russell) emphasized
the difference between concurrency (interleaved event streams) and
parallelism (using many processors to speed things up). Their
prediction is that as machines with many processing cores become more
prevalent, the relevant architecture will change from cores sharing a
single coherent memory (the model on which threads are based) to one
where each core has a limited amount of private memory, and
communication is done via message passing between the cores. This
gives them (and me :-) hope that the GIL won't be a problem as long as
we adopt a parallel processing model. Two competing models are the
Actor model, which is based on asynchronous communication, and CSP,
which is synchronous (when a writer writes to a channel, it blocks
until a reader reads that value -- a rendezvous). At least Sarah
suggested that both models are important. She also mentioned that a
merger is under consideration between the two major CSP-for-Python
packages, Py-CSP and Python-CSP. I also believe that the merger will
be based on the stdlib multiprocessing package, but I'm not sure. I do
expect that we may get some suggestions from that corner to make some
minor changes to details of multiprocessing (and perhaps threading),
and I think we should be open to those (I expect these will be good
suggestions for small tweaks, not major overhauls).

- After seeing Raymond's talk about monocle (search for it on PyPI) I
am getting excited again about PEP 380 (yield from, return values from
generators). Having read the PEP on the plane back home I didn't see
anything wrong with it, so it could just be accepted in its current
form. Implementation will still have to wait for Python 3.3 because of
the moratorium. (Although I wouldn't mind making an exception to get
it into 3.2.)

- This made me think of how the PEP process should evolve so as to not
require my personal approval for every PEP. I think the model for
future PEPs should be the one we used for PEP 3148 (futures, which was
just approved by Jesse): the discussion is led and moderated by one
designated PEP handler (a different one for each PEP) and the PEP
handler, after reviewing the discussion, decides when the PEP is
approved. A PEP handler should be selected for each PEP as soon as
possible; without a PEP handler, discussing a PEP is not all that
useful. The PEP handler should be someone respected by the community
with an interest in the subject of the PEP but at an arms' length (at
least) from the PEP author. The PEP handler will have to moderate
feedback, separating useful comments from (too much) bikeshedding,
repetitious lines of questioning, and other forms of obstruction. The
PEP handler should also set and try to maintain a schedule for the
discussion. Note that a schedule should not be used to break a tie --
it should be used to stop bikeshedding and repeat discussions, while
giving all interested parties a chance to comment. (I should say that
this is probably similar to the role of an IETF working group director
with respect to RFCs.)

- Specifically, if Raymond is interested, I wouldn't mind seeing him
as the PEP handler for PEP 380. For some of Martin von Löwis's PEPs
(382, 384) I think a PEP handler is sorely lacking -- from the
language summit it appeared as if nobody besides Martin understands
these PEPs.

- A lot of things seem to be happening to make PyPI better. Is this
being summarized somewhere? Based on some questions I received during
my keynote QA (http://bit.ly/bdflqa) I think not enough people are
aware of what we are already doing in this area. Frankly, I'm not sure
I do, either: I think I've heard of a GSOC student and of plans to
take over 

Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Alexander Belopolsky
On Sat, Jul 24, 2010 at 6:37 AM, Nick Coghlan ncogh...@gmail.com wrote:
..
 For the -b option, if the server is already running (and hence the
 port is in use), catch the exception, print a message and start the
 webbrowser anyway.

I was going to make a similar suggestion, but then realized that there
it may not be easy or desirable for pydoc to figure out whether the
service running on the used port is in fact pydoc.  Any query that
pydoc would send may be disruptive depending on what program is
listening on the port.  It may also get easily confused by a pydoc
service from a different version of python.   It may be better to
search for an unused port in the error case and pass it to the
browser.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Does trace modules have a unit test?

2010-07-24 Thread Alexander Belopolsky
On Thu, Jul 22, 2010 at 6:33 PM, Nick Coghlan ncogh...@gmail.com wrote:
 On Fri, Jul 23, 2010 at 3:30 AM, Alexander Belopolsky
 alexander.belopol...@gmail.com wrote:
 I see three solutions:

 1.  Minimal:  do not rename test_trace in 2.7 and add trace module
 tests to the existing file.  Whether to revert test_trace to
 test_line_tracing renaming in 3.2 can be decided after we have 2.7
 tests written.
 2. Rename test_trace in 2.7/3.1 and test_line_tracing in 3.2 to
 test_sys_settrace.
 3. Rename test_trace in 2.7/3.1 to test_line_tracing.

 My preference in #2, but I can live with #1  (assuming Eli is the one
 who will write the tests:-).

 I'd say just fix it and go with #2 (just update the comment in
 test_sys as well!)

I have looked further into setprofile tests for inspiration and
discovered that it is covered in test_profilehooks.  Note that
sys.settrace and sys.setprofile are very similar.  They take a
function with the same signature and report events in the same format.
 The only difference  is in the kind of events that get reported.  I
made an experiment replacing [sg]etprofile with [sg]ettrace in
test-profilehooks and all tests worked reporting failures in comparing
outputs.

I would like to use this opportunity to merge settrace and setprofile
tests.  Here is the proposal:

Step 1: Rename test_trace to test_sys_settrace and test_profilehooks
to test_sys_setprofile.
Step 2: Create tracetester helper file with abstract test cases made
from the union of test_sys_settrace and  test_sys_setprofile test
cases and replace the concrete test cases in test_sys_set* with
subclasses that define setmethod, getmethod and expected_output.

An alternative proposal is to put all tests for both trace and profile
into a single test_sys_tracing file.

What do you think?

(Another option is to leave test_profilehooks and use rename
test_trace to test_tracehooks in the step 1 above.)
___
Python-Dev mailing list
Python-Dev@python.org
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 profiler and other tools

2010-07-24 Thread Guido van Rossum
On Fri, Jul 23, 2010 at 4:20 PM, Alexander Belopolsky
alexander.belopol...@gmail.com wrote:
 There must be a good reason why traditional software development tools
 such as debugger, profiler and coverage are mostly neglected in
 python.

Most such tools are probably better developed outside the standard
library. There are many reasons for that, but I would guess that it
mostly has to do with very different development cycles for tools.
Tool development usually goes in quick bursts (driven by urgent needs
and perhaps improving tool developer skills) unrelated to the stdlib
release cycle (and releasing the stdlib separately won't make much of
a difference). Also tools often have rough edges, and the stdlib
(except for the stuff added before 1995 or so :-) has a high
perfectionism standard.

-- 
--Guido van Rossum (python.org/~guido)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Ron Adam



On 07/24/2010 10:16 AM, Alexander Belopolsky wrote:

On Sat, Jul 24, 2010 at 6:37 AM, Nick Coghlanncogh...@gmail.com  wrote:
..

For the -b option, if the server is already running (and hence the
port is in use), catch the exception, print a message and start the
webbrowser anyway.


I was going to make a similar suggestion, but then realized that there
it may not be easy or desirable for pydoc to figure out whether the
service running on the used port is in fact pydoc.  Any query that
pydoc would send may be disruptive depending on what program is
listening on the port.  It may also get easily confused by a pydoc
service from a different version of python.   It may be better to
search for an unused port in the error case and pass it to the
browser.


I'll try to look into improving how pydoc handles these types of errors. In 
the mean time if others have experience with browser apps and these kind of 
situations I'd like to hear about it.


Does this have to be in this particular patch?  I don't see any problem 
adding better error recovery later.  This isn't something new, both the 
-p and -g modes have this issue.


Ron


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Ron Adam



On 07/24/2010 05:37 AM, Nick Coghlan wrote:

On Sat, Jul 24, 2010 at 10:05 AM, Ron Adamr...@ronadam.com  wrote:

I am not sure I like the fact that the browser is started automatically.
Please bring this up on python-dev.  This may be an opportunity to
rethink pydoc command line switches.  For example, -p and -g are
currently exclusive, but it would make sense for -g to start server on
the port specified by -p.


So are any thoughts on starting the web browser automatically, and on how
the -g and -p command line switches work?


My suggestion:

- leave the -g option alone (including the tk gui), but make sure
other options still work when tk is unavailable


I was hoping it would be ok to drop the tk gui in pydoc.  Keeping it 
requires rewriting the tk gui interface to use the new server because the 
server code and the gui code are not cleanly separate.  I can do this if 
it's really wanted. (Nothing against tKinter, I use it for my own gui apps.)


Or are you suggesting having pydoc work either with the tk gui behavior 
without any of the new features, or with the new features without the tk 
gui, depending on how it's started?  I'd prefer not to do this because it 
would duplicate the server code and possibly other functions to produce 
some of the web page outputs.  That would make pydoc.py both larger and 
harder to maintain. It may also make enhancing pydoc further more difficult 
as well.


The current patch without the tk gui definitely makes things easier to 
maintain IMHO.


Are there any compelling reasons for keeping the tk gui?



BTW, the synopsis search feature is currently broken in python 3.2.  See 
issue:  http://bugs.python.org/issue9319


Once that is fixed, you can then play around with the search features with 
and without this patch and see how they compare.




- add a -b option to start the server and open the webbrowser automatically
- allow -p to be combined with either -b or -g to specify where
the server should run (or is running)


I also agree the -p option should work with the -b and/or -g.

Using -b instead of reusing -g for browser only, makes sense to me.

Depending on weather or not the tk gui is kept, the -g option can either 
open the tk gui or give a message to use the -b option instead.



Ron

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread Terry Reedy

On 7/24/2010 10:08 AM, Guido van Rossum wrote:


- Commit privileges: Maybe we've been too careful with only giving
commit privileges to to experienced and trusted new developers. I
spoke to Ezio Melotti and from his experience with getting commit
privileges, it seems to be a case of the lion is much more afraid of
you than you are afraid of the lion. I.e. having got privileges he
was very concerned about doing something wrong, worried about the
complexity of SVN, and so on. Since we've got lots of people watching
the commit stream, I think that there really shouldn't need to be a
worry at all about a new committer doing something malicious, and
there shouldn't be much worry about honest beginners' mistakes either
-- the main worry remains that new committers don't use their
privileges enough.


My initial inclination is to start with 1 or 2 line patches that I am 
99.99% certain are correct. But it has occurred to me that it might be 
better for Python if I were willing to take a greater than 1/1 
chance of making a mistake. But how much greater? What error rate do 
*you* consider acceptable?



- Concurrency and parallelism: Russel Winder and Sarah Mount pushed
the idea of CSP
(http://en.wikipedia.org/wiki/Communicating_sequential_processes) in
several talks at the conference. They (at least Russell) emphasized
the difference between concurrency (interleaved event streams)


This speeds perceived and maybe actual responsiveness to user input.


and parallelism (using many processors to speed things up).


This reduces total time.


Their
prediction is that as machines with many processing cores become more
prevalent, the relevant architecture will change from cores sharing a
single coherent memory (the model on which threads are based) to one
where each core has a limited amount of private memory, and
communication is done via message passing between the cores.


I believe this is a prediction that current prototypes, if not current 
products, will be both technically and commercially successful. My 
impression is enough better than 50/50 to be worth taking into account. 
It does not seem like much of a leap from private caches that write 
through to common memory to private memory that is not written through, 
especially on 64 bit machines with memory space to spare.



- After seeing Raymond's talk about monocle (search for it on PyPI) I
am getting excited again about PEP 380 (yield from, return values from
generators). Having read the PEP on the plane back home I didn't see
anything wrong with it, so it could just be accepted in its current
form. Implementation will still have to wait for Python 3.3 because of
the moratorium. (Although I wouldn't mind making an exception to get
it into 3.2.)


While initially -0, I now think the moratorium was a good idea. It seems 
to be successful at letting and even encouraging people to target 3.2 by 
working with 3.1. A big exception like this would probably annoy lots of 
people who had *their* 'equally good' ideas put off and might annoy 
alternative implementors counting on core 3.2 being as it. So the only 
exception I would make would one that had a really good technical 
reason, like making Python work better on multi-core processors



- This made me think of how the PEP process should evolve so as to not
require my personal approval for every PEP. I think the model for
future PEPs should be the one we used for PEP 3148 (futures, which was
just approved by Jesse):


+1

--
Terry Jan Reedy

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Alexander Belopolsky
On Sat, Jul 24, 2010 at 3:34 PM, Ron Adam r...@ronadam.com wrote:


 On 07/24/2010 05:37 AM, Nick Coghlan wrote:
..
 - leave the -g option alone (including the tk gui), but make sure
 other options still work when tk is unavailable

 I was hoping it would be ok to drop the tk gui in pydoc.  Keeping it
 requires rewriting the tk gui interface to use the new server because the
 server code and the gui code are not cleanly separate.  I can do this if
 it's really wanted. (Nothing against tKinter, I use it for my own gui apps.)

FWIW, I am +1 on dropping tkinter interface.  Tkinter window looks
foreign next to browser and server-side GUI that opens a new client
window with each search topic does not strike me as most usable
design.  Furthermore, I just tried to use it on my OSX laptop and it
crashed after I searched for pydoc and clicked on the first entry.
(Another issue is that search window pops under the terminal window.)
I think Tkinter interface to pydoc may make sense in IDLE, but not in
the main pydoc GUI.  If the equivalent functionality is available in
the browser (preferably in the style familiar to docs.python.org
users, I don't see why we need to keep old GUI and hide new behind a
new option.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] versioned .so files for Python 3.2

2010-07-24 Thread schmir
Barry Warsaw ba...@python.org writes:

 On Jul 23, 2010, at 01:46 PM, sch...@gmail.com wrote:

Doesn't anybody else think this is lost work for very little gain? My
/usr/lib/python2.6/site-packages directory consumes 200MB on disk. I
couldn't care less if my /usr/lib/python2.5/site-packages consumed the
same amount of disk space...

 Right, you probably don't care now that your extension modules live in foo.so
 so it probably won't make much difference if they were named foo-blahblah.so,
 as long as they import. :)

Most of the time it won't make much difference, right. But I can assure
you, that it will bite some people and there is some code to be adapted.


 If you use Debian or Ubuntu though, it'll be a win for you by allow us to make
 Python support much more robust.

I'd much prefer to have cleanly separated environments by having
separate directories for my python modules. Sharing the source code and
complicating things will not lead to increased robustness.

- Ralf
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Ron Adam



On 07/24/2010 04:29 PM, Alexander Belopolsky wrote:

On Sat, Jul 24, 2010 at 3:34 PM, Ron Adamr...@ronadam.com  wrote:



On 07/24/2010 05:37 AM, Nick Coghlan wrote:

..

- leave the -g option alone (including the tk gui), but make sure
other options still work when tk is unavailable


I was hoping it would be ok to drop the tk gui in pydoc.  Keeping it
requires rewriting the tk gui interface to use the new server because the
server code and the gui code are not cleanly separate.  I can do this if
it's really wanted. (Nothing against tKinter, I use it for my own gui apps.)


FWIW, I am +1 on dropping tkinter interface.  Tkinter window looks
foreign next to browser and server-side GUI that opens a new client
window with each search topic does not strike me as most usable
design.  Furthermore, I just tried to use it on my OSX laptop and it
crashed after I searched for pydoc and clicked on the first entry.
(Another issue is that search window pops under the terminal window.)
I think Tkinter interface to pydoc may make sense in IDLE, but not in
the main pydoc GUI.  If the equivalent functionality is available in
the browser (preferably in the style familiar to docs.python.org
users, I don't see why we need to keep old GUI and hide new behind a
new option.


The information returned by the new find field in the browser navigation 
bar is the same as that returned to the tk gui window. Each item is a link 
followed by the synopsis.  The style is similar to the other pydoc pages 
with the navigation bar at the top that makes it easy to do other searches 
or return to an index page.


There should be a link on each pydoc module page to the online docs.  I 
have to look at how pydoc decides to include that or not.  The patched 
version does not include it.  I don't think I did anything to remove that, 
but will check and add it back if I did.


Both python 2.6 and 3.1 versions of pydoc currently adds a Module Docs 
link to module pages to the 2.7 online docs.  (A bug?, I'm using Ubuntu)


Having the search results in the browser instead of the tk gui allows you 
to print the results and you can also right click on the links and choose 
open in a new tab or window.   (Firefox Browser)


Ron

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread Guido van Rossum
On Sat, Jul 24, 2010 at 2:05 PM, Terry Reedy tjre...@udel.edu wrote:
 On 7/24/2010 10:08 AM, Guido van Rossum wrote:

 - Commit privileges: Maybe we've been too careful with only giving
 commit privileges to to experienced and trusted new developers. I
 spoke to Ezio Melotti and from his experience with getting commit
 privileges, it seems to be a case of the lion is much more afraid of
 you than you are afraid of the lion. I.e. having got privileges he
 was very concerned about doing something wrong, worried about the
 complexity of SVN, and so on. Since we've got lots of people watching
 the commit stream, I think that there really shouldn't need to be a
 worry at all about a new committer doing something malicious, and
 there shouldn't be much worry about honest beginners' mistakes either
 -- the main worry remains that new committers don't use their
 privileges enough.

 My initial inclination is to start with 1 or 2 line patches that I am 99.99%
 certain are correct. But it has occurred to me that it might be better for
 Python if I were willing to take a greater than 1/1 chance of making a
 mistake. But how much greater? What error rate do *you* consider acceptable?

Mistakes get made all the time, mostly by experienced committers. When
caught quickly they are easy to roll back (that's arguably much of the
point of source control :-). New committers can also start with things
like docs where there are fewer risks, and more little things that can
easily get fixed but aren't for lack of attention. This will help them
figure out the source control tools and workflow, which will build up
their (and our) confidence, making future success even more likely.

-- 
--Guido van Rossum (python.org/~guido)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] http://bugs.python.org/issue231540

2010-07-24 Thread Mark Lawrence

On 23/07/2010 23:26, Mark Lawrence wrote:

Is there any money to pay for the forthcoming 10th birthday party for
this issue? Is the OP still alive?

Kindest regards.

Mark Lawrence.



Hi all,

I admit that when I sent this off last night, I felt rather better after 
for having let off a bit of steam.  Whatever, but in future, could you 
all please be so kind as to take this with a supertanker's worth of 
salt, I don't really mean it.  To repeat myself for those who are not 
aware, I have long term physical and mental health problems.  Thinking 
about it, by definition there must be others using Python who are in the 
same league as myself.  I do sympathise.


I have to admit that this morning I was rather afraid of reading my 
email, I thought I was going to get a right slagging, and deservedly so. 
 I have been absolutely staggered by the responses that I've received, 
some of them offline, but I don't think that matters at all.


They're all along the lines of:-
great job Mark, keep your chin up, keep plugging
Thanks, I'd forgotten that one, I'll get it fixed
And so on, and so forth.

Nobody has been at all really negative.  I think that this is a 
tremendous way of saying what a wonderful community Python is, long may 
it be that way.  So at least when I rant, everyone to my knowledge sees 
it as a positive rant, if you can understand that.  Perhaps those who 
frequent c.l.py will understand the negative rants, which fortunately 
come from a very small minority of people.


How can I sum up what I think about Python, that's fairly easy. 
www.python.org is bookmarked as Home Sweet Home, can I say any more? 
Thank you all for your kindness, and please note that I've again been 
plugging away today and rather enjoying myself.


Kindest regards.

Mark Lawrence.

p.s. I don't know much about baseball, but did have a rather wonderful 
chat at my nephew's wedding last September in Conneticut.  Uncle George 
(who's claim to fame is allegedly providing the optics for a little bit 
of kit called the Hubble Space Telescope) spent 20 minutes with myself 
discussing baseball compared to cricket.  He was baffled by the fact 
that 11 players can have so many fielding positions in cricket, but we 
got there in the end.  More importantly, the aerodynamics of the two 
balls were of particular interest.  How sad can you get?


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread Steve Holden
On 7/24/2010 3:08 PM, Guido van Rossum wrote:
 While the EuroPython sprints are still going on, I am back home, and
 after a somewhat restful night of sleep, I have some thoughts I'd like
 to share before I get distracted. Note, I am jumping wildly between
 topics.
 
 - Commit privileges: Maybe we've been too careful with only giving
 commit privileges to to experienced and trusted new developers. I
 spoke to Ezio Melotti and from his experience with getting commit
 privileges, it seems to be a case of the lion is much more afraid of
 you than you are afraid of the lion. I.e. having got privileges he
 was very concerned about doing something wrong, worried about the
 complexity of SVN, and so on. Since we've got lots of people watching
 the commit stream, I think that there really shouldn't need to be a
 worry at all about a new committer doing something malicious, and
 there shouldn't be much worry about honest beginners' mistakes either
 -- the main worry remains that new committers don't use their
 privileges enough. So, my recommendation (which surely is a
 turn-around of my *own* attitude in the past) is to give out more
 commit privileges sooner.
 
+1. I think this would have a very positive effect on the way that the
Python development community id perceived from the outside. In reality
it's probably mostly an acceptance of the fact that new protocols are
appropriate with a rather larger development community.

 - Concurrency and parallelism: Russel Winder and Sarah Mount pushed
 the idea of CSP
 (http://en.wikipedia.org/wiki/Communicating_sequential_processes) in
 several talks at the conference. They (at least Russell) emphasized
 the difference between concurrency (interleaved event streams) and
 parallelism (using many processors to speed things up). Their
 prediction is that as machines with many processing cores become more
 prevalent, the relevant architecture will change from cores sharing a
 single coherent memory (the model on which threads are based) to one
 where each core has a limited amount of private memory, and
 communication is done via message passing between the cores. This
 gives them (and me :-) hope that the GIL won't be a problem as long as
 we adopt a parallel processing model. Two competing models are the
 Actor model, which is based on asynchronous communication, and CSP,
 which is synchronous (when a writer writes to a channel, it blocks
 until a reader reads that value -- a rendezvous). At least Sarah
 suggested that both models are important. She also mentioned that a
 merger is under consideration between the two major CSP-for-Python
 packages, Py-CSP and Python-CSP. I also believe that the merger will
 be based on the stdlib multiprocessing package, but I'm not sure. I do
 expect that we may get some suggestions from that corner to make some
 minor changes to details of multiprocessing (and perhaps threading),
 and I think we should be open to those (I expect these will be good
 suggestions for small tweaks, not major overhauls).
 
 - After seeing Raymond's talk about monocle (search for it on PyPI) I
 am getting excited again about PEP 380 (yield from, return values from
 generators). Having read the PEP on the plane back home I didn't see
 anything wrong with it, so it could just be accepted in its current
 form. Implementation will still have to wait for Python 3.3 because of
 the moratorium. (Although I wouldn't mind making an exception to get
 it into 3.2.)
 
I can understand the temptation, but hope you can manage to resist it.

The downside of allowing such exceptions is that people won't take these
pronouncements seriously if they see that a sufficiently desirable goal
is a reason for ignoring them. Everyone should be subject to the same rules.

 - This made me think of how the PEP process should evolve so as to not
 require my personal approval for every PEP. I think the model for
 future PEPs should be the one we used for PEP 3148 (futures, which was
 just approved by Jesse): the discussion is led and moderated by one
 designated PEP handler (a different one for each PEP) and the PEP
 handler, after reviewing the discussion, decides when the PEP is
 approved. A PEP handler should be selected for each PEP as soon as
 possible; without a PEP handler, discussing a PEP is not all that
 useful. The PEP handler should be someone respected by the community
 with an interest in the subject of the PEP but at an arms' length (at
 least) from the PEP author. The PEP handler will have to moderate
 feedback, separating useful comments from (too much) bikeshedding,
 repetitious lines of questioning, and other forms of obstruction. The
 PEP handler should also set and try to maintain a schedule for the
 discussion. Note that a schedule should not be used to break a tie --
 it should be used to stop bikeshedding and repeat discussions, while
 giving all interested parties a chance to comment. (I should say that
 this is probably similar to the role of an IETF working group 

Re: [Python-Dev] http://bugs.python.org/issue231540

2010-07-24 Thread Ben Finney
Mark Lawrence breamore...@yahoo.co.uk writes:

 I admit that when I sent this off last night, I felt rather better
 after for having let off a bit of steam.
[…]
 Nobody has been at all really negative. I think that this is a
 tremendous way of saying what a wonderful community Python is, long
 may it be that way. So at least when I rant, everyone to my knowledge
 sees it as a positive rant, if you can understand that.
[…]

I'm glad that this was a positive experience in the end for you, but I
do wish it could have been done without the rant actually appearing
here. In my experience, there will likely be many people who were
affected negatively by the message containing that rant and simply
didn't say so, but they will enjoy this community less as a result.

What I find very helpful in these cases is to put all my vitriol into
the rant, bask in it, and then *delete it unsent*. That way, I'm not
spreading the bad emotion any further than my desk, and it truly is
cathartic so I can sleep soundly. A win all around.

 How can I sum up what I think about Python, that's fairly easy.
 www.python.org is bookmarked as Home Sweet Home, can I say any more?
 Thank you all for your kindness, and please note that I've again been
 plugging away today and rather enjoying myself.

Thanks again for your achievements in improving Python, and best wishes
in dealing with whatever life deals you.

-- 
 \ “Here is a test to see if your mission on earth is finished. If |
  `\  you are alive, it isn't.” —Francis Bacon |
_o__)  |
Ben Finney

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 380 - return value question and prototype implementation (was Thoughts fresh after EuroPython)

2010-07-24 Thread P.J. Eby

At 07:08 AM 7/24/2010 -0700, Guido van Rossum wrote:

- After seeing Raymond's talk about monocle (search for it on PyPI) I
am getting excited again about PEP 380 (yield from, return values from
generators). Having read the PEP on the plane back home I didn't see
anything wrong with it, so it could just be accepted in its current
form.


I would like to reiterate (no pun intended) the suggestion of a 
special syntactic  form for the return, such as yield return x, or 
return with x or something similar, to distinguish it from a normal 
generator return.


I think that when people are getting used to the idea of generators, 
it's important for them to get the idea that the function's return 
value isn't really a value, it's an iterator object.  Allowing a 
return value, but then having that value silently disappear, seems 
like it would delay that learning, so, a special form might help to 
make it clear that the generator in question is intended for use with 
a corresponding yield from, and help avoid confusion on this.


(I could of course be wrong, and would defer to anyone who sees a 
better way to explain/teach around this issue.  In any event, I'm +1 
on the PEP otherwise.)


By the way, the PEP's optimized implementation could probably be 
done just by making generator functions containing yield-from 
statements return an object of a different type than the standard 
geniter.  Here's a Python implementation sketch, using a helper class 
and a decorator -- translation to a C version is likely 
straightforward, as it'll basically be this plus a light sprinkling 
of syntactic sugar.


So, in the pure-Python prototype (without syntax sugaring), usage 
would look like this:


@From.container
def some_generator(...):
...
yield From(other_generator(...))  # equivalent to 'yield from'
...

def other_generator(...):
...
raise StopIteration(value)  # equivalent to 'return value'


We mark some_generator() with @From.container to indicate that it 
uses 'yield from' internally (which would happen automatically in the 
C/syntax sugar version).  We don't mark other_generator(), though, 
because it doesn't contain a 'yield from'.


Now, the implementation code (a slightly altered/watered-down version 
of a trampoline I've used before in 2.x, hopefully altered correctly 
for Python 3.x syntax/semantics):


class From:
@classmethod
def container(cls, func):
def decorated(*args, **kw):
return cls(func(*args, **kw))  # wrap generator in a 
From() instance

return decorated

def __new__(cls, geniter):
if isinstance(geniter, cls):
# It's already a 'From' instance, just return it
return geniter
self = object.__new__(cls, geniter)
self.stack = [geniter]
return self

def __iter__(self):
return self

def __next__(self):
return self._step()

def send(self, value):
return self._step(value)

def throw(self, *exc_info):
return self._step(None, exc_info)

def _step(self, value=None, exc_info=()):
if not self.stack:
raise RuntimeError(Can't resume completed generator)
try:
while self.stack:
try:
it = self.stack[-1]
if exc_info:
try:
rv = it.throw(*exc_info)
finally:
exc_info = ()
elif value is not None:
rv = it.send(value)
else:
rv = it.next()
except:
value = None
exc_info = sys.exc_info()
if exc_info[0] is StopIteration:
# pass return value up the stack
value, = exc_info[1].args or (None,)
exc_info = ()   # but not the error
self.stack.pop()
else:
if isinstance(rv, From):
stack.extend(rv.stack)  # Call subgenerator
value, exc_info, rv = None, (), None
else:
return rv   # it's a value to yield/return
else:
# Stack's empty, so exit w/current return value or error
if exc_info:
raise exc_info[1]
else:
return value
finally:
exc_info = ()   # don't let this create garbage

def close(self):
if self.stack:
try:
# There's probably a cleaner way to do this in Py 3, I just
# don't know what it is off the top of my head...
raise GeneratorExit
except GeneratorExit as e:
try:
self.throw(*sys.exc_info())
except 

Re: [Python-Dev] Does trace modules have a unit test?

2010-07-24 Thread Nick Coghlan
On Sun, Jul 25, 2010 at 2:20 AM, Alexander Belopolsky
alexander.belopol...@gmail.com wrote:
 I would like to use this opportunity to merge settrace and setprofile
 tests.  Here is the proposal:

 Step 1: Rename test_trace to test_sys_settrace and test_profilehooks
 to test_sys_setprofile.
 Step 2: Create tracetester helper file with abstract test cases made
 from the union of test_sys_settrace and  test_sys_setprofile test
 cases and replace the concrete test cases in test_sys_set* with
 subclasses that define setmethod, getmethod and expected_output.

 An alternative proposal is to put all tests for both trace and profile
 into a single test_sys_tracing file.

 What do you think?

 (Another option is to leave test_profilehooks and use rename
 test_trace to test_tracehooks in the step 1 above.)

A tracetester helper module + the two test module renames sounds like
a fine idea to me (your proposed new names should be clearer than the
existing *hooks naming, given the existence of profile and trace
modules).

You may want to do a grep for references to the existing test files in
comments in the rest of the test suite though.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 380 - return value question and prototype implementation (was Thoughts fresh after EuroPython)

2010-07-24 Thread Guido van Rossum
On Sat, Jul 24, 2010 at 6:51 PM, P.J. Eby p...@telecommunity.com wrote:
 At 07:08 AM 7/24/2010 -0700, Guido van Rossum wrote:

 - After seeing Raymond's talk about monocle (search for it on PyPI) I
 am getting excited again about PEP 380 (yield from, return values from
 generators). Having read the PEP on the plane back home I didn't see
 anything wrong with it, so it could just be accepted in its current
 form.

 I would like to reiterate (no pun intended) the suggestion of a special
 syntactic  form for the return, such as yield return x, or return with x
 or something similar, to distinguish it from a normal generator return.

 I think that when people are getting used to the idea of generators, it's
 important for them to get the idea that the function's return value isn't
 really a value, it's an iterator object.  Allowing a return value, but then
 having that value silently disappear, seems like it would delay that
 learning, so, a special form might help to make it clear that the generator
 in question is intended for use with a corresponding yield from, and help
 avoid confusion on this.

 (I could of course be wrong, and would defer to anyone who sees a better way
 to explain/teach around this issue.  In any event, I'm +1 on the PEP
 otherwise.)

Hm...  I somehow really like the idea that the return statement always
translates into raising StopIteration -- it seems so right when
writing the trampoline code.

I wonder if we could enforce this at runtime, by raising (e.g.)
TypeError if a StopIteration is caught with a value other than None in
a place where the value will be ignored. Such a check feels somewhat
similar to the check that .send() with a value other than None is not
used on a generator in its initial state.

Also I think that confusing yield X and return X, while possible,
is relatively easy to debug, because things go so horribly wrong the
first time.

FWIW, the thing that was harder to debug when I tried to write some
code involving generators and a trampoline recently, was thinking of a
function as a generator without actually putting a yield in it
(because a particular version of a coroutine pattern didn't need to
block at all). Monocle uses a decorator to flag all coroutines which
fixes this up in the right way, which I think is clever, but I'm torn
about the need to flag every coroutine with a decorator -- Monocle
makes the decorator really short (@_o) because, as Raymond (not
Monocle's author but its advocate at EuroPython) said, you'll be
using this hundreds of times. Which I find disturbing in itself.

 By the way, the PEP's optimized implementation could probably be done just
 by making generator functions containing yield-from statements return an
 object of a different type than the standard geniter.
[...]

Not a bad idea.

-- 
--Guido van Rossum (python.org/~guido)
___
Python-Dev mailing list
Python-Dev@python.org
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 profiler and other tools

2010-07-24 Thread Nick Coghlan
On Sun, Jul 25, 2010 at 3:30 AM, Guido van Rossum gu...@python.org wrote:
 On Fri, Jul 23, 2010 at 4:20 PM, Alexander Belopolsky
 alexander.belopol...@gmail.com wrote:
 There must be a good reason why traditional software development tools
 such as debugger, profiler and coverage are mostly neglected in
 python.

 Most such tools are probably better developed outside the standard
 library. There are many reasons for that, but I would guess that it
 mostly has to do with very different development cycles for tools.
 Tool development usually goes in quick bursts (driven by urgent needs
 and perhaps improving tool developer skills) unrelated to the stdlib
 release cycle (and releasing the stdlib separately won't make much of
 a difference). Also tools often have rough edges, and the stdlib
 (except for the stuff added before 1995 or so :-) has a high
 perfectionism standard.

Part of me agrees with you regarding the generally different tool
lifecycle, but another part says we need these tools in the standard
library or we risk inadvertently breaking the hooks they would still
rely on, even as third party projects.

I suspect a major factor here relates to the degree of unit test
coverage for these components - for areas that aren't of direct
interest to me, I'll still deal with it if something I do breaks that
code's unit tests, but if the tests don't start failing I'll never
even think to check for an incompatibility. (e.g. I seem to recall
line tracing for with statements and/or generator expressions being
broken for a while before we fixed it)

PEP 306 (the one about changing the grammar) and PEP 339 (which
includes a short section on changing the bytecode definition) may also
be missing some steps to make sure that any syntax and opcode changes
are correctly covered by the disassembly, debugging, profiling and
tracing tests.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Nick Coghlan
On Sun, Jul 25, 2010 at 5:34 AM, Ron Adam r...@ronadam.com wrote:


 On 07/24/2010 05:37 AM, Nick Coghlan wrote:

 On Sat, Jul 24, 2010 at 10:05 AM, Ron Adamr...@ronadam.com  wrote:

 I am not sure I like the fact that the browser is started automatically.
 Please bring this up on python-dev.  This may be an opportunity to
 rethink pydoc command line switches.  For example, -p and -g are
 currently exclusive, but it would make sense for -g to start server on
 the port specified by -p.

 So are any thoughts on starting the web browser automatically, and on how
 the -g and -p command line switches work?

 My suggestion:

 - leave the -g option alone (including the tk gui), but make sure
 other options still work when tk is unavailable

 I was hoping it would be ok to drop the tk gui in pydoc.  Keeping it
 requires rewriting the tk gui interface to use the new server because the
 server code and the gui code are not cleanly separate.  I can do this if
 it's really wanted. (Nothing against tKinter, I use it for my own gui apps.)

I'd be completely fine with dropping the Search For box from the GUI
interface, but the persistent window listing the served port and
providing Open Browser and Quit Serving buttons still seems quite
useful even without the search box (When running python -m pydoc -p
8080 , it took me a moment to figure out how to kill the server I
had started). You could even tidy it up a bit and include things like
the Python version in the GUI window.

Specifying both -b and -g should open both the (limited) GUI and the
web browser.


-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [isssue 2001] Pydoc enhancement patch questions

2010-07-24 Thread Nick Coghlan
On Sun, Jul 25, 2010 at 1:16 AM, Alexander Belopolsky
alexander.belopol...@gmail.com wrote:
 On Sat, Jul 24, 2010 at 6:37 AM, Nick Coghlan ncogh...@gmail.com wrote:
 ..
 For the -b option, if the server is already running (and hence the
 port is in use), catch the exception, print a message and start the
 webbrowser anyway.

 I was going to make a similar suggestion, but then realized that there
 it may not be easy or desirable for pydoc to figure out whether the
 service running on the used port is in fact pydoc.  Any query that
 pydoc would send may be disruptive depending on what program is
 listening on the port.  It may also get easily confused by a pydoc
 service from a different version of python.   It may be better to
 search for an unused port in the error case and pass it to the
 browser.

I don't think there's any need to check if it is an actual pydoc
server running on the port - if it isn't pydoc, the user will be able
to tell that by what shows up in the webbrowser window.

To request automatic assignment of a local port number, -p 0 could
be made to work correctly (i.e. print out the actual port the OS
assigned rather than the 0 that was passed in on the command line as
it does currently).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] PEP 380 - return value question and prototype implementation (was Thoughts fresh after EuroPython)

2010-07-24 Thread P.J. Eby

At 08:21 PM 7/24/2010 -0700, Guido van Rossum wrote:

FWIW, the thing that was harder to debug when I tried to write some
code involving generators and a trampoline recently, was thinking of a
function as a generator without actually putting a yield in it
(because a particular version of a coroutine pattern didn't need to
block at all). Monocle uses a decorator to flag all coroutines which
fixes this up in the right way, which I think is clever, but I'm torn
about the need to flag every coroutine with a decorator -- Monocle
makes the decorator really short (@_o) because, as Raymond (not
Monocle's author but its advocate at EuroPython) said, you'll be
using this hundreds of times. Which I find disturbing in itself.


I haven't used Monocle, but in all the libraries I've written myself 
for this sort of thing (Trellis and peak.events), a decorator is only 
required for a generator that is a root task; everything else is 
just a normal generator.


For example, in Trellis you use @Task.factory to mark a function as 
spawning an independent task each time it's called, but subgenerator 
functions called within the task don't need to be marked, and in fact 
the yield from is just a yield - the trampoline expects all 
yields of generators to be subgenerator calls.  (PEP 380 can't do 
this of course, since it also doubles as a sort of 'yield *' - i.e., 
you may care about the yielded values)


Note, though, that even in the sketch I just gave, you don't *really* 
need to decorate every function, just the ones that need to be called 
from *non*-decorated functions...  i.e. root coroutines.  Even 
then, you could *still* skip the decorator and replace:


  an_iter = decorated_root_function()

with:

  an_iter = From(undecorated_root_function())

and not need to decorate *anything*.



___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] http://bugs.python.org/issue231540

2010-07-24 Thread Nick Coghlan
On Sun, Jul 25, 2010 at 10:45 AM, Ben Finney ben+pyt...@benfinney.id.au wrote:
 What I find very helpful in these cases is to put all my vitriol into
 the rant, bask in it, and then *delete it unsent*. That way, I'm not
 spreading the bad emotion any further than my desk, and it truly is
 cathartic so I can sleep soundly. A win all around.

I can vouch for the effectiveness of this trick. I can also point to
cases where I didn't use it and dealing with the consequences proved
to be a lot more hassle than whatever had been irritating me in the
first place :)

 How can I sum up what I think about Python, that's fairly easy.
 www.python.org is bookmarked as Home Sweet Home, can I say any more?
 Thank you all for your kindness, and please note that I've again been
 plugging away today and rather enjoying myself.

 Thanks again for your achievements in improving Python, and best wishes
 in dealing with whatever life deals you.

Indeed.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread Steven D'Aprano
On Sun, 25 Jul 2010 10:04:57 am Steve Holden wrote:
  - After seeing Raymond's talk about monocle (search for it on PyPI)
  I am getting excited again about PEP 380 (yield from, return values
  from generators). Having read the PEP on the plane back home I
  didn't see anything wrong with it, so it could just be accepted in
  its current form. Implementation will still have to wait for Python
  3.3 because of the moratorium. (Although I wouldn't mind making an
  exception to get it into 3.2.)

 I can understand the temptation, but hope you can manage to resist
 it.

 The downside of allowing such exceptions is that people won't take
 these pronouncements seriously if they see that a sufficiently
 desirable goal is a reason for ignoring them. Everyone should be
 subject to the same rules.


I have no opinion on PEP 380 specifically, but surely a *sufficiently* 
desirable goal *should* be a reason for breaking the rules? Obedience 
to some abstract rule just because it is the rule is not a virtue. The 
moratorium is there to advance Python as a whole, and if (a big if) 
it becomes a hindrance instead, then Guido should make an exception.

I promise that I won't cease taking his pronouncements seriously if he 
does :)


-- 
Steven D'Aprano
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Thoughts fresh after EuroPython

2010-07-24 Thread geremy condra
On Sat, Jul 24, 2010 at 9:16 PM, Steven D'Aprano st...@pearwood.info wrote:
 On Sun, 25 Jul 2010 10:04:57 am Steve Holden wrote:
  - After seeing Raymond's talk about monocle (search for it on PyPI)
  I am getting excited again about PEP 380 (yield from, return values
  from generators). Having read the PEP on the plane back home I
  didn't see anything wrong with it, so it could just be accepted in
  its current form. Implementation will still have to wait for Python
  3.3 because of the moratorium. (Although I wouldn't mind making an
  exception to get it into 3.2.)

 I can understand the temptation, but hope you can manage to resist
 it.

 The downside of allowing such exceptions is that people won't take
 these pronouncements seriously if they see that a sufficiently
 desirable goal is a reason for ignoring them. Everyone should be
 subject to the same rules.


 I have no opinion on PEP 380 specifically, but surely a *sufficiently*
 desirable goal *should* be a reason for breaking the rules? Obedience
 to some abstract rule just because it is the rule is not a virtue. The
 moratorium is there to advance Python as a whole, and if (a big if)
 it becomes a hindrance instead, then Guido should make an exception.

 I promise that I won't cease taking his pronouncements seriously if he
 does :)

I wasn't for the moratorium in the first place, so take this with a
grain of salt, but ISTM that if you feel this doesn't impact the
moratorium's goals then there's nothing logically inconsistent about
allowing it through. Of course, if you feel like it does and you
decide to let it through anyway, I think it would be worth explaining
really well why exactly that happened.

Geremy Condra
___
Python-Dev mailing list
Python-Dev@python.org
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-Dev Digest, Vol 84, Issue 112

2010-07-24 Thread John Nagle

Date: Sat, 24 Jul 2010 23:59:14 +0200
From:sch...@gmail.com
To: Barry Warsawba...@python.org
Cc: Ronald Oussorenronaldousso...@mac.com,python-dev@python.org
Subject: Re: [Python-Dev] versioned .so files for Python 3.2
Message-ID:87aapgbky5@brainbot.com
Content-Type: text/plain; charset=us-ascii

Barry Warsawba...@python.org  writes:


  On Jul 23, 2010, at 01:46 PM,sch...@gmail.com  wrote:


Doesn't anybody else think this is lost work for very little gain? My
/usr/lib/python2.6/site-packages directory consumes 200MB on disk. I
couldn't care less if my /usr/lib/python2.5/site-packages consumed the
same amount of disk space...


  Right, you probably don't care now that your extension modules live in foo.so
  so it probably won't make much difference if they were named foo-blahblah.so,
  as long as they import.:)

Most of the time it won't make much difference, right. But I can assure
you, that it will bite some people and there is some code to be adapted.



  If you use Debian or Ubuntu though, it'll be a win for you by allow us to 
make
  Python support much more robust.

I'd much prefer to have cleanly separated environments by having
separate directories for my python modules. Sharing the source code and
complicating things will not lead to increased robustness.

- Ralf



   Debian's policy on Python packaging calls for maximum separation
between versions.  See

http://www.debian.org/doc/packaging-manuals/python-policy/;

This keeps the system updaters from becoming confused, and
reduces the risk that an update to one version of Python will
break another version.

John Nagle

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com