<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2657.73">
<TITLE>Documentation: producing standalone win32 exes for twisted</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>All,</FONT>
</P>

<P><FONT SIZE=2>As a general question, would anyone find it useful to have in the twisted documentation specific information on producing twisted win32 executables (be this twistd, a service, or utilising a plugin) using py2exe?&nbsp; I would be happy to create such doco since I have had to produce several different types of win32 exes using twisted components and am aware of some of the pitfalls ;)</FONT></P>

<P><FONT SIZE=2>Grant</FONT>
</P>

<P><FONT SIZE=2>P.S. How does the new plugin system work with regards to running the plugin? Is it any different?</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: twisted-python-bounces@twistedmatrix.com [<A HREF="mailto:twisted-python-bounces@twistedmatrix.com">mailto:twisted-python-bounces@twistedmatrix.com</A>]On Behalf Of Jp Calderone</FONT></P>

<P><FONT SIZE=2>Sent: 24 June 2005 07:24</FONT>
<BR><FONT SIZE=2>To: Twisted general discussion</FONT>
<BR><FONT SIZE=2>Subject: Re: [Twisted-Python] twisted.plugin (revised) documentation?</FONT>
</P>

<P><FONT SIZE=2>On Thu, 23 Jun 2005 14:43:38 -0400, Pedro Sanchez &lt;psanchez@nortel.com&gt; wrote:</FONT>
<BR><FONT SIZE=2>&gt;Hello,</FONT>
<BR><FONT SIZE=2>&gt;</FONT>
<BR><FONT SIZE=2>&gt;Where can I find documentation on the current twisted.plugin framework?</FONT>
<BR><FONT SIZE=2>&gt;</FONT>
<BR><FONT SIZE=2>&gt;The document &quot;Writing a New Plug-In for mktap&quot; at</FONT>
<BR><FONT SIZE=2>&gt;<A HREF="http://twistedmatrix.com/projects/core/documentation/howto/pluginhtml" TARGET="_blank">http://twistedmatrix.com/projects/core/documentation/howto/plugin.html</A></FONT>
<BR><FONT SIZE=2>&gt;seems to have outdated information. When I run the mktap command, as</FONT>
<BR><FONT SIZE=2>&gt;instructed there, this is what I get:</FONT>
<BR><FONT SIZE=2>&gt;</FONT>
<BR><FONT SIZE=2>&gt;$ mktap qotd</FONT>
<BR><FONT SIZE=2>&gt;TwistedQuotes/plugins.tml:7: DeprecationWarning: The</FONT>
<BR><FONT SIZE=2>&gt;twisted.python.plugin system is deprecated.&nbsp; See twisted.plugin for the</FONT>
<BR><FONT SIZE=2>&gt;revised edition.&nbsp; tapname=&quot;qotd&quot;)</FONT>
<BR><FONT SIZE=2>&gt;</FONT>
<BR><FONT SIZE=2>&gt;I'm running twisted 2.0.1 and I can't find any new documentation. The</FONT>
<BR><FONT SIZE=2>&gt;document above is also found in doc/core/howto/plugin.html of the</FONT>
<BR><FONT SIZE=2>&gt;current twisted distribution.</FONT>
<BR><FONT SIZE=2>&gt;</FONT>
</P>

<P><FONT SIZE=2>It's on my list of things to write.</FONT>
</P>

<P><FONT SIZE=2>In brief, the way plugins are implemented now is:</FONT>
</P>

<P><FONT SIZE=2>1) in a module in the twisted.plugins (plural) package.&nbsp; Such modules should be named in such a way so as not to conflict with plugins provided by other parties (eg, Twisted uses the convention of &quot;twisted_foo&quot; for plugins it itself offers).&nbsp; Installers should place plugin modules in the twisted/plugins/ directory and call list(twisted.plugin.getPlugin(twisted.plugin.IPlugin)) afterwards to regenerate the system cache (not doing so is only detrimental in that operation without the cache is much slower).&nbsp; Uninstallers should do something similar to avoid leaving stale cache entries (these will be found and pruned, but lead to at least one ugly traceback, and for a system-wide install, the user probably will not have access to rewrite the cache with bogus entries removed).&nbsp; As a convenience to developers, plugins placed in a _directory_ (not a package) named &quot;twisted/plugins/&quot; in any directory in sys.path will automatically be found by the plugin system as well.&nbsp; This avoids the install process during development and for testing.</FONT></P>

<P><FONT SIZE=2>2) In these modules, names bound to objects which provide (z.i terminology) twisted.plugin.IPlugin will be considered plugin objects and can potentially be returned by twisted.plugin.getPlugins()</FONT></P>

<P><FONT SIZE=2>3) Objects providing IPlugin should also provide some other application-specific interface.&nbsp; When calling twisted.plugin.getPlugins(IFoo), only objects providing IFoo will be returned.</FONT></P>

<P><FONT SIZE=2>4) Plugin &quot;client&quot; code (that is, code calling getPlugin) is then responsible for calling methods appropriate to the interface it passed.</FONT></P>

<P><FONT SIZE=2>For examples of this, see the twisted_ modules in twisted/plugins/.</FONT>
</P>

<P><FONT SIZE=2>Hope this helps,</FONT>
</P>

<P><FONT SIZE=2>Jp</FONT>
</P>

<P><FONT SIZE=2>_______________________________________________</FONT>
<BR><FONT SIZE=2>Twisted-Python mailing list</FONT>
<BR><FONT SIZE=2>Twisted-Python@twistedmatrix.com</FONT>
<BR><FONT SIZE=2><A HREF="http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python" TARGET="_blank">http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python</A></FONT>
</P>

</BODY>
<!--[object_id=#infocomp.com#]--><P><FONT face=Arial color=#808080 size=1>Important notice: This message is intended for the individual(s) and entity(s) addressed. The information contained in this transmission and any attached, may be confidential and may also be the subject of legal privilege, public interest immunity or legal professional privilege. Any review, retransmission, dissemination or other use of, taking of any action in reliance upon this information by person or entities other than the recipient is prohibited and requires authorization from the sender. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person) you may not copy or deliver this message to anyone. In such cases you should destroy this message and kindly notify the sender by reply email. </FONT></P>
<P><FONT face=Arial color=#808080 size=1>WARNING: Although Infocomp has taken reasonable precautions so that no viruses&nbsp;are present in this e-mail, the company cannot accept responsibility for any loss or damage arising from the use of e-mail attachments.</FONT></P></HTML>