[Python-Dev] [Python-checkins] Using itertools in modules that are part of the build chain (Re: r76264 - python/branches/py3k/Lib/tokenize.py)

Benjamin Peterson benjamin at python.org
Sun Nov 15 21:43:10 CET 2009

2009/11/15 Brett Cannon <brett at python.org>:
> On Sat, Nov 14, 2009 at 20:01, Benjamin Peterson <benjamin at python.org> wrote:
>> 2009/11/14 Nick Coghlan <ncoghlan at gmail.com>:
>>> This does constrain where we can use itertools - if we want carte
>>> blanche to use it anywhere in the standard library, even those parts
>>> that are imported as part of the build chain, we'll need to bite the
>>> bullet and make it a builtin module rather than a separately built
>>> extension module.
>> I have another unpleasant but slightly less hacky solution. We put
>> detect_encoding in linecache where it is actually used.
> Well, it happens to be used by the standard library in linecache, but
> not all external uses of it necessarily tie into linecache (e.g.
> importlib uses detect_encoding() in some non-critical code). Might
> just have to live with sub-optimal code.

Well, what I mean is that we'd do:

def _detect_encoding():

in linecache and then "from linecache import _detect_encoding as
detect_encoding" in tokenize.py.


More information about the Python-Dev mailing list