Metadata-Version: 1.0
Name: epc
Version: 0.0.5
Summary: EPC (RPC stack for Emacs Lisp) implementation in Python
Home-page: https://github.com/tkf/python-epc
Author: Takafumi Arakaki
Author-email: aka.tkf@gmail.com
License: GNU General Public License v3 (GPLv3)
Description: 
        EPC (RPC stack for Emacs Lisp) for Python
        =========================================
        
        Links:
        
        * `Documentation <http://python-epc.readthedocs.org/>`_ (at Read the Docs)
        * `Repository <https://github.com/tkf/python-epc>`_ (at GitHub)
        * `Issue tracker <https://github.com/tkf/python-epc/issues>`_ (at GitHub)
        * `PyPI <http://pypi.python.org/pypi/epc>`_
        * `Travis CI <https://travis-ci.org/#!/tkf/python-epc>`_ |build-status|
        
        Other resources:
        
        * `kiwanami/emacs-epc <https://github.com/kiwanami/emacs-epc>`_
          (Client and server implementation in Emacs Lisp and Perl.)
        * `tkf/emacs-jedi <https://github.com/tkf/emacs-jedi>`_
          (Python completion for Emacs using EPC server.)
        
        .. |build-status|
           image:: https://secure.travis-ci.org/tkf/python-epc.png
                   ?branch=master
           :target: http://travis-ci.org/tkf/python-epc
           :alt: Build Status
        
        
        What is this?
        -------------
        
        EPC is an RPC stack for Emacs Lisp and Python-EPC is its server side
        and client side implementation in Python.  Using Python-EPC, you can
        easily call Emacs Lisp functions from Python and Python functions from
        Emacs.  For example, you can use Python GUI module to build widgets
        for Emacs (see `examples/gtk/server.py`_ for example).
        
        Python-EPC is tested against Python 2.6, 2.7 and 3.2.
        
        Install
        -------
        
        To install Python-EPC and its dependency sexpdata_, run the following
        command.::
        
           pip install epc
        
        .. _sexpdata: https://github.com/tkf/sexpdata
        
        
        Usage
        -----
        
        Save the following code as ``my-server.py``.
        (You can find functionally the same code in `examples/echo/server.py`_)::
        
           from epc.server import EPCServer
        
           server = EPCServer(('localhost', 0))
        
           @server.register_function
           def echo(*a):
               return a
        
           server.print_port()
           server.serve_forever()
        
        
        And then run the following code from Emacs.
        This is a stripped version of `examples/echo/client.el`_ included in
        Python-EPC repository_.::
        
           (require 'epc)
        
           (defvar my-epc (epc:start-epc "python" '("my-server.py")))
        
           (deferred:$
             (epc:call-deferred my-epc 'echo '(10))
             (deferred:nextc it
               (lambda (x) (message "Return : %S" x))))
        
           (message "Return : %S" (epc:call-sync my-epc 'echo '(10 40)))
        
        
        .. _examples/echo/server.py:
           https://github.com/tkf/python-epc/blob/master/examples/echo/server.py
        .. _examples/echo/client.el:
           https://github.com/tkf/python-epc/blob/master/examples/echo/client.el
        
        If you have carton_ installed, you can run the above sample by
        simply typing the following commands::
        
           make elpa        # install EPC in a separated environment
           make run-sample  # run examples/echo/client.el
        
        .. _carton: https://github.com/rejeep/carton
        
        
        For example of bidirectional communication and integration with GTK,
        see `examples/gtk/server.py`_.  You can run this example by::
        
           make elpa
           make run-gtk-sample  # run examples/gtk/client.el
        
        .. _examples/gtk/server.py:
           https://github.com/tkf/python-epc/blob/master/examples/gtk/server.py
        
        
        License
        -------
        
        Python-EPC is licensed under GPL v3.
        See COPYING for details.
        
        
Keywords: Emacs,RPC
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Emacs-Lisp
