[Python-3000] PEP 3002: Procedure for Backwards-Incompatible Changes
Steven Bethard
steven.bethard at gmail.com
Thu Apr 13 19:23:50 CEST 2006
On 4/13/06, Jack Diederich <jack at performancedrivers.com> wrote:
> On Thu, Apr 13, 2006 at 10:07:27AM -0600, Steven Bethard wrote:
> > This should be pretty similar to the last time I posted it, but now
> > it's got an official PEP number. Let me know what you think!
> >
> > Identifying Problematic Code
> > ============================
> >
> > This PEP proposes to house this code in tools/scripts/python3warn.py.
> > Thus PEPs for backwards incompatible changes should include a patch to
> > this file that produces the appropriate warnings. Code in
> > python3warn.py should be written to the latest version of Python 2.X
> > (not Python 3000) so that Python 2.X users will be able to run the
> > program without having Python 3000 installed.
> >
> > So for example, a PEP proposing that ``dict.items()`` be modified to
> > return an iterator instead of a list might add code like the following
> > to python3warn.py::
> >
> > items_in_for = re.compile(r'for\s+\w+\s+in\s+\w+\.items\(\):')
> > ...
> > for i, line in enumerate(file_lines):
> > ...
> > if '.items()' in line and not items_in_for.search(line):
> > message = 'dict.items() call may expect list at line %i'
> > warnings.warn(message % i)
>
> Could we mandate that all warnings use warnings.showwarning() and
> provide the right filename and line number?
Yeah, that sounds like a good idea. I'll update the PEP to require that.
Steve
--
Grammar am for people who can't think for myself.
--- Bucky Katt, Get Fuzzy
More information about the Python-3000
mailing list