views:

136

answers:

7

Suppose I think I have a great idea for some feature that should be in python's standard library. Not something of the magnitude of a new keyword etc, just a suggestion for another decorator that would help a lot, IMO.

How can I suggest such a feature to the consideration of the "python committee :)"?

+3  A: 

You can add your suggestion to the issue tracker http://bugs.python.org/. they usually implement things posted there.

Marcos Placona
I think 'usually' is a bit optimistic here: 'occasionally' is probably closer to the truth.
Mark Dickinson
the tracker is supposed to be used for bugs, not feature suggestions, no?
noam
@noam: Mostly, yes, but I think it's also useful for small and well-specified feature requests (e.g., "Please consider adding the `expm1` function to the `math` module."), and for feature requests that have already been discussed on the mailing lists and await implementation. And for various other things, like optimizations, doc-patches, ....Anything that affects the core language (rather than the std. lib.) almost certainly needs some discussion first.
Mark Dickinson
@noam have you ever been to the tracking system mate? I bet you haven't, otherwise you'd know people also post suggestions there.
Marcos Placona
@mplacona - true enough :) had I been there, I wouldn't be asking this question
noam
A: 

Either add it to the tracker, or join the developer mailing list and suggest it there. Better to do that if you feel you can contribute at least to developing the specification, if not the feature itself.

Andrew McGregor
A: 

An alternative to the issue tracker suggested by mpalcona: you can submit it for discussion on the python-dev mailing list.

And always, a reference implementation (something that works, even if not in all cases and not efficiently) is always welcomed.

Eli Bendersky
+1  A: 

Perhaps post your idea on the Python mailing list

gnibbler
+3  A: 

Python is Open Source, which means that all of these processes are very open. It also means that you can have far more success if you can implement the suggestion and prove its merits yourself.

Normally you should establish that your proposal is a good way to solve the particular problem. This can be discussed in comp.lang.python or python-list.

A more serious suggestion's details can be ironed out on the mailing list python-ideas. This is normally a free forum for proposals.

When the proposal is finally ready, and you think it might be approved, it can be submitted as a Python Enhancement Proposal (PEP) to the mailing list python-dev. Posting on python-dev prematurely will probably not lead to good results. Since many years now, most significant changes in Python have gone through the PEP process.

This answer is written in all generality; writing a PEP for a single added decorator is probably overkill, it's something that is more expected for, exactly, a new keyword or so.

kaizer.se
LOL at Enchantment... I think you meant Enhancement (from your ID it looks like English may not be your first language - an enchantment is a magic spell type thing, an enhancement is an improvement :-))
Vicky
@Vicky - I think it's more probable it's just a typo followed by auto-correction by the browser... I think that by the rest of the answer you can see kaizer has pretty good english (your comment comes off a little condescending)...But then again, what do I know - english is also not my mother tongue :-P <- that's my mother tongue
noam
I'm happy to make people laugh :-) I kind of felt it when I typed it but what stands between me and better english is mostly laziness, so I didn't stop to think about it..
kaizer.se
@Vicky: The .se TLD in the username might tip you off, even though I realize you might not immediately think Sweden, maybe Swedish?
kaizer.se
@kaizer.se: yes, that was what I meant - I saw the .se and thought you might be Swedish, which might explain the mix-up between Enchantment and Enhancement. Mostly, I just loved the idea of a Python Enchantment Proposal, which would have to be submitted in Parseltongue of course (that's one for the Harry Potter fans).Your English (and @noam's) is excellent, and more to the point it's a million times better than my Swedish :-) I have only visited Sweden once (a day trip to Malmo when I was in Copenhagen on business) and I was very grateful that everyone spoke such good English!
Vicky
I think there *should* be Python Enchantment Proposals!
Paul McGuire
+6  A: 

It really depends on the nature of the suggestion.

If it's a bug, it should definitely be put on the tracker. Otherwise, it probably should not go in the tracker right away. Python developers have specifically asked that the tracker not be used to create discussions, but to track implementation-specific aspects.

You can also post to Python-dev, though you should also be careful there also. Python is a complex project. Because it's more of a platform than a project, it has vastly more restrictions on it than a typical open-source application. Therefore, developers will be resistant to any change which isn't an immediate and obvious benefit. In general, I would advise against posting to Python-dev unless you've had at least some time to read through some of the interactions there to get a feel for the types of suggestions and discussions that go on there.

Generally, I think the python-dev list would recommend you post first to comp.lang.python and start a discussion. Rally some support from a vetted Python maintainer and others in the community. Be sure to show that you have considered the negative implications of any change you are considering and how you would mitigate them. A lot of times, it's good at this stage to have a reference implementation (maybe even something on the package index) that others can install--if it is indeed useful, people will use it and the need will be more apparent. After you've gathered some support from the community, you can then move it (possibly) to python-dev to get more feedback from the core developers before submitting a PEP (Python Enhancement Proposal).

Good luck!

Jason R. Coombs
A: 

Don't waste time "suggesting" things. Invest time doing things.

Simply do this.

  1. Build it.

  2. Use it.

  3. Post it to SourceForge.

  4. Put a link to the SourceForge project on PyPi.

Done.

If it's actually a "great" idea, then everyone will use it and someone will recommend adding it to the standard library.

If it's not a "great" idea, but merely good, then everyone will use it.

If it's just an idea, you'll notice the number of downloads will remain small.

S.Lott