Hi Chris,

I think you got the the basics right.

An interface is just a class which is included in the plugin actually calling
implementors. And yes, you can not "implement" an interface without importing
the actual interface class.

I'd like to throw in a plugin of mine [1]. As per Trac convention the
interface is declared in api.py [2]. In my case, there some part which is
general infrastructure as well as one specific captcha implementation. The
latter can be provided with a separate plugin as well.

So my recaptcha implementation [3] implements the interface.

> It seems to me that existing EPs are defined in the core.  Are there
> non-core EPs?

That's not entirely correct. All extension points documented on
trac.edgewall.org are the ones included in core trac but there are plenty
extension points for other plugins.

fs

[1] http://www.schwarz.eu/opensource/projects/trac_captcha
[2]
http://www.schwarz.eu/opensource/projects/trac_captcha/browser/trac_captcha/api.py
[3]
http://www.schwarz.eu/opensource/projects/trac_captcha/browser/trac_recaptcha/integration.py#L56

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To post to this group, send email to trac-dev@googlegroups.com.
To unsubscribe from this group, send email to 
trac-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/trac-dev?hl=en.

Reply via email to