Socket
Socket
Sign inDemoInstall

epc

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

epc

EPC (RPC stack for Emacs Lisp) implementation in Python


Maintainers
2

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

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc