[Jack Diederich] > > itertools to iter transition, huh? I slipped that one in, I mentioned > > it to Raymond at PyCon and he didn't flinch. It would be nice not to > > have to sprinkle 'import itertools as it' in code. iter could also > > become a type wrapper instead of a function, so an iter instance could > > be a wrapper that figures out whether to call .next or __getitem__ > > depending on it's argument. > > for item in iter(mylist).imap: > > print item > > or > > for item in iter.imap(mylist): > > print item
[Steven Bethard] > Very cool idea. I think the transition from > itertools.XXX(iterable, *args, **kwargs) > to > iter.XXX(iterable, *args, **kwargs) > ought to be pretty easy. Just to make sure you guys can live with your proposed syntax, trying using it for a month or so and report back on whether the experience was pleasant. Try dropping the following into your setup.py def wrapiter(): import __builtin__, itertools orig = __builtin__.iter def iter(*args): return orig(*args) for name in ('__doc__', '__name__'): setattr(iter, name, getattr(orig, name)) vars(iter).update(vars(itertools)) __builtin__.iter = iter wrapiter() If the experience works out, then all you're left with is the trivial matter of convincing Guido that function attributes are a sure cure for the burden of typing import statements. Raymond Hettinger -- http://mail.python.org/mailman/listinfo/python-list