Skip to main content

EPC (RPC stack for Emacs Lisp) implementation in Python

Project description

Links:

Other resources:

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

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)))

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

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

License

Python-EPC is licensed under GPL v3. See COPYING for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epc-0.0.3.tar.gz (17.6 kB view details)

Uploaded Source

File details

Details for the file epc-0.0.3.tar.gz.

File metadata

  • Download URL: epc-0.0.3.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for epc-0.0.3.tar.gz
Algorithm Hash digest
SHA256 30b594bd4a4acbd5bda0d3fa3d25b4e8117f2ff8f24d2d1e3e36c90374f3c55e
MD5 04a93c0cd32b496969ead09f414dac74
BLAKE2b-256 a41364d65a55ac90c72a474f730bd5d95750d0ec775bd4b473d4c02694c67487

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page