On Wed, Jun 6, 2012 at 5:31 AM, Nick Coghlan <ncogh...@gmail.com> wrote:
> On Wed, Jun 6, 2012 at 5:09 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > > On Wed, Jun 6, 2012 at 1:28 AM, PJ Eby <p...@telecommunity.com> wrote: > >> To be clear, what I specifically proposed (as I mentioned in an earlier > >> thread) was simply to patch __build_class__ in order to restore the > missing > >> __metaclass__ hook. (Which, incidentally, would make ALL code using > >> __metaclass__ cross-version compatible between 2.x and 3.x: a > potentially > >> valuable thing in and of itself!) > >> > >> As for metaclasses being hard to compose, PEP 422 is definitely a step > in > >> the right direction. (Automatic metaclass combining is about the only > thing > >> that would improve it any further.) > > > > Just as a warning, I doubt I'll be able to persuade enough people that > > this is a feature worth including in the short time left before 3.3 > > feature freeze. It may end up being necessary to publish metaclass > > and explicit decorator based variants (with their known limitations), > > with a view to gaining support for inclusion in 3.4. > > Upgrading this warning to a fact: there's no way this topic can be > given the consideration it deserves in the space of the next three > weeks. I'll be changing the title of 422, spend more time discussing > the problem (rather than leaping to a conclusion) and retargeting the > PEP at 3.4. > > If you do decide to play around with monkeypatching __build_class__, > please make clear to any users that it's a temporary fix until > something more robust and less implementation dependent can be devised > for 3.4. > Ideally, I would actually implement it as a backport of the PEP... in which case I suppose making it part of the class creation machinery (vs. embedding it in type.__call__ or some place like that) will make that process easier. Again, as I said earlier, I'm talking about this now because there was related discussion now, not because I'm actively trying to port my libraries. At this point, I've only done a few "make this library usable from 3.x as-is" changes by user request, for some of my smaller libraries that were mostly there already (e.g. simplegeneric).
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com