{ "info": { "author": "benzrf", "author_email": "benzrf@benzrf.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Lisp", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Interpreters" ], "description": "NOT YET SUITABLE FOR PUBLIC USE\n===============================\n\nParthial\n========\n\nParthial is a simple Python implementation of a generic Lisp interpreter. It is\nintended for use in user-scriptable server-side applications such as IRC bots.\n\nFeatures\n--------\n\nSafe evaluation\n~~~~~~~~~~~~~~~\n\nEvaluation puts (configurably) strict limitations on recursion depth, number of\nallocated values, and number of steps taken. The ``set`` built-in cannot mutate\nparent scopes (so closures are immutable), and every other language feature\navailable in the package is purely functional.\n\nSimple API\n~~~~~~~~~~\n\nLisp values are represented by directly analogous Python objects; ``(a b c)``\nis just ``LispList([LispSymbol('a'), LispSymbol('b'), LispSymbol('c')])``.\nIt's easy to define new built-ins, too:\n\n::\n\n # part of the default_globals scope\n # suppresses evaluation of its arguments (quotes them)\n @built_in(default_globals, 'if', quotes=True)\n def lisp_if(self, ctx, cond, i, t):\n cond = ctx.eval(cond)\n if cond:\n return ctx.eval(i)\n else:\n return ctx.eval(t)\n\nSerialization\n~~~~~~~~~~~~~\n\nPyYAML serializers and deserializers are provided for all Lisp value types, as\nwell as for definition environments (built-ins are serialized by name, so a\nglobal scope must be supplied at deserialization). Allocation limitations are\nkept track of across serializtion, so it's safe and easy to give users a\npersistent mutable environment.\n\nShortcomings\n------------\n\nNo optimizations\n~~~~~~~~~~~~~~~~\n\n**Parthial is not a general-purpose interpreter.** There is no compilation or\noptimization. It probably shouldn't be used to run any program that wouldn't be\nappropriate, performance-wise, to implement as a shell script.\n\nNo code reviews (yet)\n~~~~~~~~~~~~~~~~~~~~~\n\nNobody other than the original author has looked the code yet. For now, it'd be\nunwise to actually expose an interpreter to the Internet at large, in case of\nsecurity holes.\n\nNo[t much] documentation (so far)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWorking on it...\n\nNo tests (for now)\n~~~~~~~~~~~~~~~~~~\n\nThe warning at the top is there for a reason.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benzrf/parthial", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "parthial", "package_url": "https://pypi.org/project/parthial/", "platform": "any", "project_url": "https://pypi.org/project/parthial/", "project_urls": { "Homepage": "https://github.com/benzrf/parthial" }, "release_url": "https://pypi.org/project/parthial/0.2.2/", "requires_dist": [ "pyyaml" ], "requires_python": "", "summary": "Lisp interpreter for user-scriptable server-side applications", "version": "0.2.2" }, "last_serial": 2030406, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "60483cbc37e562930892558ebc45d118", "sha256": "7f827e465b4b35dff1e945e92cc55efe386ab333d37fc847e252335aad94def0" }, "downloads": -1, "filename": "parthial-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "60483cbc37e562930892558ebc45d118", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8295, "upload_time": "2016-01-31T07:37:28", "url": "https://files.pythonhosted.org/packages/d7/26/10e68b54fa1f48d7887884e3595f7d82ac3f5d11e270c46adb27eb8325a9/parthial-0.1-py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "679ecca936a32070ec56166855b3271a", "sha256": "cc867ddd595ad6304e01b4e6717648fe85299a0f512b6370310c58327436b4b2" }, "downloads": -1, "filename": "parthial-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "679ecca936a32070ec56166855b3271a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11231, "upload_time": "2016-02-18T07:06:36", "url": "https://files.pythonhosted.org/packages/59/99/bf8de3c7cd7af1921fad645635226c175c5bee5ecccd4a7ebd0c5d347331/parthial-0.2-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cf0aa344566dafd20c8b3ad65b5da871", "sha256": "846504faaab3db6dc174e9b2af848ff5b26b0d5a536106234a2f2a7dc3d234b3" }, "downloads": -1, "filename": "parthial-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cf0aa344566dafd20c8b3ad65b5da871", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11347, "upload_time": "2016-03-08T23:33:18", "url": "https://files.pythonhosted.org/packages/1b/4d/73dfeeca3edcdcf3b6404b03f8029448c7354df938a147dca3c7bbceb030/parthial-0.2.1-py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9e75ad410c2c6612546cb56a25649b53", "sha256": "cd8e4866b3622da7aa2196889dfbcc4124dfce45724a2a3606d8443b88abeea0" }, "downloads": -1, "filename": "parthial-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9e75ad410c2c6612546cb56a25649b53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11348, "upload_time": "2016-03-27T23:10:05", "url": "https://files.pythonhosted.org/packages/48/c2/d62dbb2f86ed8f980c67471841986421eeab7c353006e78eeb4936448c6c/parthial-0.2.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e75ad410c2c6612546cb56a25649b53", "sha256": "cd8e4866b3622da7aa2196889dfbcc4124dfce45724a2a3606d8443b88abeea0" }, "downloads": -1, "filename": "parthial-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9e75ad410c2c6612546cb56a25649b53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11348, "upload_time": "2016-03-27T23:10:05", "url": "https://files.pythonhosted.org/packages/48/c2/d62dbb2f86ed8f980c67471841986421eeab7c353006e78eeb4936448c6c/parthial-0.2.2-py3-none-any.whl" } ] }