{ "info": { "author": "Dmitry Vasiliev", "author_email": "dima@hlabs.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries" ], "description": "Erlang port protocol for Python\r\n===============================\r\n\r\n.. contents::\r\n\r\nProject URLs:\r\n\r\n- http://github.com/hdima/erlport\r\n- http://pypi.python.org/pypi/erlport/\r\n\r\n\r\nDescription\r\n-----------\r\n\r\nThe ``erlport`` Python library implements `Erlang external term format\r\n`_ and `Erlang port\r\nprotocol `_ for easier\r\nintegration of Python and Erlang.\r\n\r\nThe library exports the following classes and functions:\r\n\r\n- ``Port(packet=1, use_stdio=False, compressed=False)`` - class implementing\r\n port which connects with the corresponding Erlang port. See `open_port/2\r\n `_ for description of\r\n ``packet`` and ``use_stdio`` arguments. ``compressed`` is the zlib\r\n compression level or True for the default of 6.\r\n\r\n- ``Protocol()`` - class which simplifies creation of request-response\r\n protocols.\r\n\r\n- ``Atom(str)`` - class which represents an Erlang atom.\r\n\r\n- ``String(unicode | list)`` - class representing an Erlang string. Must be\r\n used as a wrapper if Unicode string expected instead of a list.\r\n\r\n- ``BitBinary(str)`` - class representing an Erlang bitstring whose length in\r\n bits is not a multiple of 8.\r\n\r\n- ``decode(str)`` - function to convert binary data into a term.\r\n\r\n- ``encode(term, compressed=False)`` - function to convert a term into the\r\n external format. ``compressed`` is the zlib compression level or True for the\r\n default of 6.\r\n\r\n- ``IncompleteData`` - exception raised by ``decode()`` in case of incomplete\r\n input data.\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nPrerequisites:\r\n\r\n- Erlang >= R11B-4\r\n\r\n- Python >= 2.4\r\n\r\nTo install the library use ``easy_install`` from `setuptools\r\n`_ package like this::\r\n\r\n $ easy_install erlport\r\n\r\n\r\nExamples\r\n--------\r\n\r\nSee ``examples`` directory in the source distribution for additional examples.\r\n\r\nFor simple request-response protocol use ``Port`` and ``Protocol`` on the\r\nPython side like this::\r\n\r\n from erlport import Port, Protocol\r\n\r\n class HelloProtocol(Protocol):\r\n\r\n def handle_hello(self, name):\r\n return \"Hello, %s\" % name\r\n\r\n if __name__ == \"__main__\":\r\n proto = HelloProtocol()\r\n proto.run(Port(use_stdio=True))\r\n\r\nOn the Erlang side function ``hello()`` can be called like this::\r\n\r\n -module(hello).\r\n -export([hello/1]).\r\n\r\n hello(Name) ->\r\n Port = open_port({spawn, \"python -u hello.py\"}, [{packet, 1}, binary]),\r\n port_command(Port, term_to_binary({hello, Name})),\r\n receive\r\n {Port, {data, Data}} ->\r\n binary_to_term(Data)\r\n end.\r\n\r\nTest it in the Erlang shell::\r\n\r\n 1> c(hello).\r\n {ok,hello}\r\n 2> hello:hello(\"Bob\").\r\n \"Hello, Bob\"\r\n\r\n\r\nNotes for Windows users\r\n-----------------------\r\n\r\n- It seems Erlang's ``open_port`` function ignores ``nouse_stdio`` option on\r\n Windows. So the ``Port`` class must be instantiated with ``use_stdio=True``\r\n argument.\r\n- Python must be ran with ``-u`` option to open ``stdin``/``stdout`` in binary\r\n mode.\r\n\r\n\r\nFeedback\r\n--------\r\n\r\nPlease report bugs, offer suggestions or feedback at:\r\n\r\n- Report bugs at http://github.com/hdima/erlport/issues\r\n\r\n- Email me at \r\n\r\n- Write or follow me at http://twitter.com/hdima", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/hdima/erlport", "keywords": "Python Erlang", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "erlport", "package_url": "https://pypi.org/project/erlport/", "platform": "any", "project_url": "https://pypi.org/project/erlport/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/hdima/erlport" }, "release_url": "https://pypi.org/project/erlport/0.6/", "requires_dist": null, "requires_python": null, "summary": "Erlang port protocol", "version": "0.6" }, "last_serial": 791701, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "b3ca55d641ce903a1169d2f6ebada91e", "sha256": "256482b4d9a5db7d2e4af057b2562bc452fad01947936c5eb81db498a9139a92" }, "downloads": -1, "filename": "erlport-0.2-py2.6.egg", "has_sig": false, "md5_digest": "b3ca55d641ce903a1169d2f6ebada91e", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 10516, "upload_time": "2009-12-29T20:48:21", "url": "https://files.pythonhosted.org/packages/e4/de/476bcff844b90d0a853130de8579cfa94457a5b4100568e4c28c9cb55043/erlport-0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "15fb73488372519d59853d06d889a901", "sha256": "594d51c39d308c8abcde08a55682003e40a936132779ebf970aa9a6008217f3d" }, "downloads": -1, "filename": "erlport-0.2.tar.gz", "has_sig": false, "md5_digest": "15fb73488372519d59853d06d889a901", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6532, "upload_time": "2009-12-29T20:48:21", "url": "https://files.pythonhosted.org/packages/52/d4/04f728fc1c2e0d530d69dccc3d63be3b5e498c971040d5d103d48bb45853/erlport-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c4a6330334c1b919bb7ac4bca80e73c3", "sha256": "5883ea17904613bcdacf72d8040151d7951145734164855497a2640a627390fc" }, "downloads": -1, "filename": "erlport-0.3-py2.6.egg", "has_sig": false, "md5_digest": "c4a6330334c1b919bb7ac4bca80e73c3", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 12221, "upload_time": "2010-01-03T22:06:40", "url": "https://files.pythonhosted.org/packages/64/00/a2d0bc96732fc707ad549998f5de5122b9baa7f30eddc2f8b005b6526836/erlport-0.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "25fc7d0064958e2ef8190e91b60ccb32", "sha256": "fb299e45d984ae245765ef0649af98832b6258f159918ad84bd2c3dc958cf728" }, "downloads": -1, "filename": "erlport-0.3.tar.gz", "has_sig": false, "md5_digest": "25fc7d0064958e2ef8190e91b60ccb32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9559, "upload_time": "2010-01-03T22:06:41", "url": "https://files.pythonhosted.org/packages/15/f5/5cb9896b8c182c08dc423ff72637f22442400ce18a431c24458ecee1af76/erlport-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "f4a0b292a70e074af9ad832c81915a49", "sha256": "8a1e9b22e03f184494ae6d64c767443990ffadaf3df1132bd5f6b45ba88228de" }, "downloads": -1, "filename": "erlport-0.4-py2.6.egg", "has_sig": false, "md5_digest": "f4a0b292a70e074af9ad832c81915a49", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 13659, "upload_time": "2010-01-10T18:28:36", "url": "https://files.pythonhosted.org/packages/1f/37/122e1c9ae1a3c79e308d5b115e3de7a25e41fa67fb6907193ef96136b710/erlport-0.4-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "117ffb28637eca8edeff508f1e332bcf", "sha256": "a0d16c28eeb3e698bbbd66dbbd502a5e23ffc7e3f1ee7e2bbabe74746d0767af" }, "downloads": -1, "filename": "erlport-0.4.tar.gz", "has_sig": false, "md5_digest": "117ffb28637eca8edeff508f1e332bcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10980, "upload_time": "2010-01-10T18:28:37", "url": "https://files.pythonhosted.org/packages/bb/25/bab1e493e5d27aff8d59a95de54c774d70c2b8fabaa0d3bbcf8a451283fe/erlport-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "892cce1eb8b20a6fb4a7cb348cdd493d", "sha256": "dc48583037ecc9cdd002f73ee2ae061842fc0bc19bd496042546e242d7dbe1da" }, "downloads": -1, "filename": "erlport-0.5-py2.6.egg", "has_sig": false, "md5_digest": "892cce1eb8b20a6fb4a7cb348cdd493d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 15357, "upload_time": "2010-02-25T10:16:01", "url": "https://files.pythonhosted.org/packages/04/36/26ab42bdbb5335137f368eb97cacadd451ca9618818b103767939e6d6d8f/erlport-0.5-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "5573ef1b07a15c3424e460898fd736a3", "sha256": "f7ce55a26bbe3e6317a493634f22b2840bc712e5d22fcf95634433ddd37ee590" }, "downloads": -1, "filename": "erlport-0.5.tar.gz", "has_sig": false, "md5_digest": "5573ef1b07a15c3424e460898fd736a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12482, "upload_time": "2010-02-25T10:16:02", "url": "https://files.pythonhosted.org/packages/74/f6/abcac7b44234d012ceb5e8877599fd1a28ac4a3b9f44ab9415d346017849/erlport-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "c336fbd31642b94ad62d7736c11d084d", "sha256": "f6662a9b141142c1a1234af6cc9d38d7ac1ec841e59495bc1ba61e8b0b94ac6d" }, "downloads": -1, "filename": "erlport-0.6-py2.6.egg", "has_sig": false, "md5_digest": "c336fbd31642b94ad62d7736c11d084d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 15546, "upload_time": "2010-04-26T15:21:10", "url": "https://files.pythonhosted.org/packages/6d/31/4f7393314dba575bb63036c8c573f13c35be5516b28733711a50ba9e76af/erlport-0.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "852745e9f2ca90f7c802ee7ae9b015ad", "sha256": "bbd894e1502a00964bca8a84283048cee599234b5a59fffa21c82e09366a399c" }, "downloads": -1, "filename": "erlport-0.6.tar.gz", "has_sig": false, "md5_digest": "852745e9f2ca90f7c802ee7ae9b015ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13191, "upload_time": "2010-04-26T15:21:11", "url": "https://files.pythonhosted.org/packages/8a/78/e2a89dd0802f2f4a04a22d2dfb1855ed75d55a6ae219ef251e0c723d0f43/erlport-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c336fbd31642b94ad62d7736c11d084d", "sha256": "f6662a9b141142c1a1234af6cc9d38d7ac1ec841e59495bc1ba61e8b0b94ac6d" }, "downloads": -1, "filename": "erlport-0.6-py2.6.egg", "has_sig": false, "md5_digest": "c336fbd31642b94ad62d7736c11d084d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 15546, "upload_time": "2010-04-26T15:21:10", "url": "https://files.pythonhosted.org/packages/6d/31/4f7393314dba575bb63036c8c573f13c35be5516b28733711a50ba9e76af/erlport-0.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "852745e9f2ca90f7c802ee7ae9b015ad", "sha256": "bbd894e1502a00964bca8a84283048cee599234b5a59fffa21c82e09366a399c" }, "downloads": -1, "filename": "erlport-0.6.tar.gz", "has_sig": false, "md5_digest": "852745e9f2ca90f7c802ee7ae9b015ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13191, "upload_time": "2010-04-26T15:21:11", "url": "https://files.pythonhosted.org/packages/8a/78/e2a89dd0802f2f4a04a22d2dfb1855ed75d55a6ae219ef251e0c723d0f43/erlport-0.6.tar.gz" } ] }