summaryrefslogtreecommitdiff
path: root/plugins/proxy.py
AgeCommit message (Collapse)Author
2008-03-21Handle going down with an exceptionmartin f. krafft
We previously used None as a sentinel to exit, but None is now a proper value, so now it's the job of an exception-like object (except it isn't an exception). Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21put XMLStreamParser in public namespacemartin f. krafft
Since we might throw sub-class exceptions, the class should be in the public namespace, meaning its name should not be prefixed with _. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21Allow individual hook registration to override IDmartin f. krafft
The preprocessor hooks need to specify IDs different from the ID used to initialise the proxy. Thus, the hook function now takes an optional id keyword argument and uses the ID used during initialisation if none is provided. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21Refactor remote procedure calls in the proxymartin f. krafft
Add an rpc() method to the proxy to allow users to call remote procedures, and route the proxy's own import registration via this function. Also, implement convenience functions for the RPC calls exported in the IkiWiki::XML::RPC namespace. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21Make proxy object available to hook functionsmartin f. krafft
Hook functions now get the proxy object as first argument to be able to use RPC via the proxy. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21add last parameter to plugin registrationmartin f. krafft
Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-21Allow external plugins to return no valuemartin f. krafft
Instead of using the XML-RPC v2 extension <nil/>, which Perl's XML::RPC::Parser does not (yet) support (Joey's patch is pending), we agreed on a sentinel: {'null':''}, that is, a hash with a single key "null" pointing to the empty string. The Python proxy automatically converts None appropriately and raises an exception if a hook function should, by weird coincidence, attempt to return {'null':''}. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-17force data written to stdout to be a stringmartin f. krafft
(cherry picked from commit 65c24d4aeca6188f4423ad1809f2415285843155)
2008-03-17Print traceback for unhandled exceptionsmartin f. krafft
(cherry picked from commit 10574a324e03cd0533e77f46ead6e4c6a6e5568f)
2008-03-15rename register_hook to just hook, for consistency with the perlJoey Hess
2008-03-15does not need to be executableJoey Hess
2008-03-15improve debug outputmartin f. krafft
Signed-off-by: martin f. krafft <madduck@madduck.net> (cherry picked from commit 63c7e393692b44bfa69d8b78a936f58beadef2b2)
2008-03-15fix meta datamartin f. krafft
Signed-off-by: martin f. krafft <madduck@madduck.net> (cherry picked from commit 4b039b81deef852759f2aa88ae04f38d792b9bf8)
2008-03-15Provide XML-RPC proxy abstraction for Python pluginsmartin f. krafft
The proxy module provides an abstraction to facilitate writing ikiwiki plugins in Python. Signed-off-by: martin f. krafft <madduck@madduck.net> (cherry picked from commit f347e83d82f26cdc59de17b754a78db58a933ea6)