[Python-Dev] Coding practice for context managers

Nick Coghlan ncoghlan at gmail.com
Mon Oct 21 13:34:43 CEST 2013


On 21 Oct 2013 21:22, "R. David Murray" <rdmurray at bitdance.com> wrote:
>
> On Mon, 21 Oct 2013 12:11:57 +0100, Paul Moore <p.f.moore at gmail.com>
wrote:
> > On 21 October 2013 11:59, R. David Murray <rdmurray at bitdance.com> wrote:
> > > On Sun, 20 Oct 2013 19:49:24 -0700, Ethan Furman <ethan at stoneleaf.us>
wrote:
> > >> On 10/20/2013 07:42 PM, Raymond Hettinger wrote:
> > >> >
> > >> > In short, I recommend that efforts be directed at improving help()
rather than limiting introspection by way of less clean coding practices.
> > >>
> > >> +1
> > >
> > > I'm also +1 on improving help instead of using wrapper classes.
> >
> > Agreed. A wrapper function whose purpose is solely to tidy up help
> > seems like a bad idea in general.
> >
> > I'm somewhat more sympathetic to Nick's point that the name the user
> > types should be all-lowercase and a class would be mixed case, but on
> > that I think it's actually the naming convention that should change
> > (name classes/functions based on usage, not implementation). The rule
> > to me is that changing the underlying implementation shouldn't affect
> > the user interface.
>
> +1.  I've run into this tension between the naming convention and
> wanting to change the underlying API before, and I think the
> naming convention gets in the way.

Right, I think we may want to reconsider that guideline, because I just
realised it helped nudge me into introducing an outright bug: using wrapper
functions as I did means help() on instances will pick up the private
helper class which is definitely *not* what we want. (Perhaps we could
relax the rule to require initial capitals for abstract types, but allow it
to be skipped for concrete classes? That would better match what we
actually do in the builtins and stdlib).

Regardless, lesson learned, I'll create an issue and put a patch on the
tracker to create a public OO API for these as described in my previous
message (but using the current names).

Cheers,
Nick.

>
> --David
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20131021/c05fca72/attachment.html>


More information about the Python-Dev mailing list