[Python-Dev] Possible context managers in stdlib

Brett Cannon bcannon at gmail.com
Fri Jul 8 22:46:19 CEST 2005


On 7/8/05, Reinhold Birkenfeld <reinhold-birkenfeld-nospam at wolke7.net> wrote:
> Hi,
> 
> I compiled a list of some possible new context managers that could be
> added to the stdlib. Introducing a new feature should IMO also show
> usage of it in the distribution itself. That wasn't done with
> decorators (a decorators module is compiled at the moment, if I'm right),
> but with context managers, there's certainly room to add some. Of course,
> my list is excessive, it's only some ideas I got by flying over the stdlib
> docs.
> 

I think that is a good point about decorators.  While none of us
obviously had extensive experience with decorators when they went into
the language we at least knew of a couple use cases that would have
been handy and it probably would have been good to have examples for
people to work off of.  I bet iterators have gotten more play thanks
to itertools and all of the built-ins that work with them.

I think having basic context managers in a stdlib module that we know
for a fact that will be handy is a good idea.  We should keep the list
short and poignant, but we should have something for people to work
off of.  The ones I like below for a 'context' module are:

> * builtins: with open/file
> * sys: with sys.redirected_std[in|out|err]
> * decimal: with decimal.Context
> * os: with os.current_directory
> * mutex: with mutexobj
> * threading: with threading.Lock
>              with threading.Condition
>              with threading.Event
> * bz2/zipfile/tarfile: with ...open

-Brett


More information about the Python-Dev mailing list