Metadata-Version: 1.0
Name: rpc4django
Version: 0.1.3
Summary: Handles JSONRPC and XMLRPC requests easily with Django
Home-page: http://www.davidfischer.name/rpc4django
Author: David Fischer
Author-email: rpc4django@davidfischer.name
License: BSD
Download-URL: http://www.davidfischer.name/rpc4django
Description: ========================
        RPC4Django Documentation
        ========================
        
        Installation
        ============
        
        Prerequisites
        -------------
        
        RPC4Django has been tested on Mac OS, Linux and Windows.
        
        - `Python <http://www.python.org>`_ 2.4 - 2.6
        - `Django <http://www.djangoproject.com>`_ 1.0+
        - `Docutils <http://docutils.sourceforge.net>`_ (optional)
        
        Source Install Method
        ---------------------
        This is the preferred method for installing RPC4Django.
        
        ::
        
        $> tar xvfz rpc4django-x.y.z.tar.gz
        $> cd rpc4django-x.y.z
        $> python setup.py install
        
        Easy Install Method
        -------------------
        
        ::
        
        $> easy_install rpc4django
        
        Pip Install Method
        -------------------
        
        ::
        
        $> pip install rpc4django
        
        No Installation Method
        ----------------------
        This method installs RPC4Django only for one specific django project but does not require any special system access.
        
        ::
        
        $> tar xvfz rpc4django-x.y.z.tar.gz
        $> cd rpc4django-x.y.z
        $> cp -r rpc4django YOUR_DJANGO_PROJECT_DIRECTORY
        
        ----
        
        Configuration
        =============
        
        1. First, you need to add new url pattern to your root ``urls.py`` file. This file should be the one pointed to by ``ROOT_URLCONF`` in settings.py. You can replace ``r'^RPC2$'`` with anything you like.
        
        ::
        
        # urls.py
        #...
        urlpatterns = patterns('',
        # if installed via no install method
        #(r'^RPC2$', 'YOURPROJECT.rpc4django.views.serve_rpc_request'),
        
        # if installed via source or easy_install
        (r'^RPC2$', 'rpc4django.views.serve_rpc_request'),
        )
        
        2. Second, add RPC4Django to the list of installed applications in your ``settings.py``.
        
        ::
        
        # settings.py
        #...
        INSTALLED_APPS = (
        # if installed via no install
        #'YOURPROJECT.rpc4django',
        
        # if installed via source or easy_install
        'rpc4django',
        )
        
        3. Lastly, you need to let RPC4Django know which methods to make available. This is done with the decorator ``@rpcmethod``. RPC4Django imports all the apps in ``INSTALLED_APPS`` and makes any methods importable via ``__init__.py`` with the ``@rpcmethod`` decorator available as RPC methods. You can always write your RPC methods in another module and simply import it in ``__init__.py``.
        
        ::
        
        # testapp/__init__.py
        from rpc4django import rpcmethod
        
        # This imports another method to be made available as an RPC method
        # This method should also have the @rpcmethod decorator
        # from mymodule import myrpcmethod
        
        # The doc string supports reST if docutils is installed
        @rpcmethod(name='mynamespace.add', signature=['int', 'int', 'int'])
        def add(a, b):
        '''Adds two numbers together
        >>> add(1, 2)
        3
        '''
        
        return a+b
        
        
        The decorator ``@rpcmethod`` accepts two optional parameters:
        
        - ``name`` - is the name under which the method will be made externally available. It defaults to the method's real name.
        - ``signature`` - is the signature of the method and will be returned by calls to the XMLRPC introspection method ``system.methodSignature``. It is of the form: ``[return_value, arg1, arg2, arg3, ...]``. All of the types should be XMLRPC types (eg. struct, int, array, etc. -- see the XMLRPC `spec <http://www.xmlrpc.com/spec>`_ for details). Since python is relatively loosely typed, all types are set to object by default.
        
        
Platform: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
