On Dec 29, 5:48 pm, "Erik Bray" <[email protected]> wrote: > On Thu, Dec 25, 2008 at 8:24 AM, anatoly techtonik <[email protected]> > wrote: > > While learning Trac component architecture lesson that basically means > > that "extension point plugin instance will be created with the same > > ComponentManager where extension point provider is" I made some > > adjustments to core.py to understand its structure. > > > Attached 0.11 branch diff changes __new__ to __init__ in component > > metaclass to convey the idea that metaclass doesn't control the > > component creation, but merely adjusts it and fills a registry. Some > > other lines are changed to increase readability. > > > It would be nice to receive some feedback and to know whatever these > > changes are worthy to be committed. > > > Happy Holidays! > > This seemed unintuitive to me at first, but after thinking about it > I'm inclined to agree that it *does* make more sense. As you say, > there's no particular reason here to override the metaclass's __new__. > Without doing so it will still create the class as expected, and > calling ComponentMeta() will return the the class. So overriding > type.__init__ seems to make more sense.
A number of plugins override __init__(). Wouldn't they then have to understand the needs of inherited base and metaclass, and make sure that gets initialised correctly before they can go about their own initialization? I haven't read the patch or the consequences in detail, but if so that would add a new level of complexity to making plugins - and provide a whole new set of errors to current and future plugins? :::simon https://www.coderesort.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/trac-dev?hl=en -~----------~----~----~----~------~----~------~--~---
