Skip to main content

EPC (RPC stack for Emacs Lisp) server for Python

Project description

Links:

Other resources:

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 the same code at the bottom of epc/server.py):

from epc.server import EPCServer

def echo_server(address='localhost', port=0):
    server = EPCServer((address, port))
    def echo(*a):
        return a
    server.register_function(echo)
    return server

if __name__ == '__main__':
    server = echo_server()
    server.print_port()
    server.serve_forever()

And then run the following code from Emacs. This is a stripped version of 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 client.el

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.1.dev2.tar.gz (6.5 kB view details)

Uploaded Source

File details

Details for the file epc-0.0.1.dev2.tar.gz.

File metadata

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

File hashes

Hashes for epc-0.0.1.dev2.tar.gz
Algorithm Hash digest
SHA256 fc6fafd0b8927f93f68af5ee1af02d8f5d4d6f2688bb11f9036ed7b0d7d87f9c
MD5 9e4b54dbd9bf8d3013d68a7ec2825634
BLAKE2b-256 488c7888014fba3447e3be0ea16ff84d86ebb756e7ce1033a0644f07f5c2f34f

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