{ "info": { "author": "Alexander Boyd", "author_email": "alex@opengroove.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing" ], "description": "**Parcon** is a parser library. It can be used for parsing both normal\ntext and binary data. It's designed to be easy to use and to provide informative\nerror messages.\n\n**Pargen**, which is provided as a submodule of Parcon, is a formatter\nlibrary. It's much the opposite of Parcon: while Parcon is used to parse text\ninto various objects, Pargen is used to format objects into text. As an\nexample, if you wanted to reimplement Python's json module, you would use\nParcon to implement json.loads and Pargen to implement json.dumps.\n\n**Static**, which is also provided as a submodule of Parcon, is a static typing\nlibrary and Python object pattern library. It lets you build patterns that\nmatch Python objects based on their type, their attributes, certain properties\nsuch as whether or not the object is a sequence, the types that make up the\nobject's values if the object is a sequence, and so on.\n\nAll of the classes, and most of the functions, in Parcon are comprehensively\ndocumented. The best place to look for help is in Parcon's module documentation.\nPargen's classes and functions and Static's classes and functions are also \ndocumented, though not quite as well as Parcon's are at present.\n\nParcon grammars are written as Python expressions, so there's no need to learn\na separate language for writing grammars or anything like that.\n\nHere's an example of a simple expression evaluator written using Parcon::\n\n from parcon import number, Forward, InfixExpr\n import operator\n expr = Forward()\n term = number[float] | \"(\" + expr + \")\"\n term = InfixExpr(term, [(\"*\", operator.mul), (\"/\", operator.truediv)])\n term = InfixExpr(term, [(\"+\", operator.add), (\"-\", operator.sub)])\n expr << term(name=\"expr\")\n\nThis expression evaluator can be used thus::\n\n print expr.parse_string(\"1+2\") # prints 3\n print expr.parse_string(\"1+2+3\") # prints 6\n print expr.parse_string(\"1+2+3+4\") # prints 10\n print expr.parse_string(\"3*4\") # prints 12\n print expr.parse_string(\"5+3*4\") # prints 17\n print expr.parse_string(\"(5+3)*4\") # prints 32\n print expr.parse_string(\"10/4\") # prints 2.5\n\nA syntax diagram can then be generated from it like this::\n\n expr.draw_productions_to_png({}, \"syntax-expr.png\")\n\nwhich would draw `this image `_ to syntax-expr.png.\n\nMore examples can be found on `Parcon's blog `_,\nand more information in general can be found at `Parcon's website `_.\nBut reports should be submitted to `the GitHub issue tracker `_.\n\nParcon is currently much more comprehensively documented than Pargen and Static\nare. Improved documentation for Pargen and Static will come soon.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.opengroove.org/parcon/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "parcon", "package_url": "https://pypi.org/project/parcon/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/parcon/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.opengroove.org/parcon/" }, "release_url": "https://pypi.org/project/parcon/0.1.25/", "requires_dist": null, "requires_python": null, "summary": "A parser/formatter library that's easy to use and that provides informative error messages.", "version": "0.1.25" }, "last_serial": 796018, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "a3b4ca7f832aeff74f1ef7b55d3b275e", "sha256": "4beb518b9605ea4bb11e8d10e39274301a577646bf8c3599c120e0b340c2829e" }, "downloads": -1, "filename": "parcon-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a3b4ca7f832aeff74f1ef7b55d3b275e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5099, "upload_time": "2011-06-12T23:10:40", "url": "https://files.pythonhosted.org/packages/bc/86/266ad7daf43fa48c8a46c5dfec63802aa8730ab2288c0e2b08fb00195d61/parcon-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "890cd38881ac31d9e7ee4894d2dbc151", "sha256": "d1af1786e109846b454a69d44b9c539b063b0c9788257b1145297d6f5e4340a1" }, "downloads": -1, "filename": "parcon-0.1.10.tar.gz", "has_sig": false, "md5_digest": "890cd38881ac31d9e7ee4894d2dbc151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30617, "upload_time": "2011-06-16T12:46:51", "url": "https://files.pythonhosted.org/packages/41/5d/314cd69e0b4870b421a61de5046eb47efbc5bf00e3066235ea104f62381c/parcon-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "c933d9381497db21ff345d9347b0fed3", "sha256": "d7bd10ec7dd89d7a5dc06bf96eacc56c31f16c91d579af9c529bcadfc4310508" }, "downloads": -1, "filename": "parcon-0.1.11.tar.gz", "has_sig": false, "md5_digest": "c933d9381497db21ff345d9347b0fed3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33745, "upload_time": "2011-06-16T12:52:08", "url": "https://files.pythonhosted.org/packages/63/fb/bef90a1d13e2b773b1ef6ad96bd23adadd56babf8f59c66f4e37c361a0a8/parcon-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "7d42f953d75cde9bb2cfc82d8e32d712", "sha256": "9f1a54746eb45f833aeec0b3e0337b48de63bf0a85babb408525bb37eee35d3a" }, "downloads": -1, "filename": "parcon-0.1.12.tar.gz", "has_sig": false, "md5_digest": "7d42f953d75cde9bb2cfc82d8e32d712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33736, "upload_time": "2011-06-16T13:47:48", "url": "https://files.pythonhosted.org/packages/e8/49/c6342e0aca67a46e63acf00bfcd976ad003b6f159c15095703783f55b19f/parcon-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "2ccf2c91a00f67ab3a67c55a8ad125be", "sha256": "dc227a6f733ab4a3ec0e9d5a2b2be0e195c78581b18b6debc87520b2109f84bd" }, "downloads": -1, "filename": "parcon-0.1.13.tar.gz", "has_sig": false, "md5_digest": "2ccf2c91a00f67ab3a67c55a8ad125be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33799, "upload_time": "2011-06-16T22:43:53", "url": "https://files.pythonhosted.org/packages/ac/c1/a456976189137b2f4fc1e6405e91b4652323e24f5a7de439297c75b4b44b/parcon-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "c9a9e2c1d687bd34dc1650097c0017d1", "sha256": "bebd07e5d3abd41d8e4d845e42f5f212f6d31ef40a77288301a26ebb430605ae" }, "downloads": -1, "filename": "parcon-0.1.14.tar.gz", "has_sig": false, "md5_digest": "c9a9e2c1d687bd34dc1650097c0017d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34735, "upload_time": "2011-06-17T09:57:32", "url": "https://files.pythonhosted.org/packages/ff/f2/dc21f06a743cd0cb2e98416dcdae6e2931f50b4409ef2e397c1663f16c6f/parcon-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "a8b866b70523565724e7351375b64ade", "sha256": "f76fa9e278a3f697cb77f364890f91004a48ef4295a435e6ec7f6c6e7b75ca50" }, "downloads": -1, "filename": "parcon-0.1.15.tar.gz", "has_sig": false, "md5_digest": "a8b866b70523565724e7351375b64ade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36297, "upload_time": "2011-06-18T23:22:24", "url": "https://files.pythonhosted.org/packages/4b/73/e883d36c6bded02d4fdb1f22afa2eca7788af7cb94902c7fb8efe30509c2/parcon-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "ac351fbb6767f4df7ba85c136ca25b3a", "sha256": "c73b09da6862c4f8d1493a394c63416f834bca48045651a6e95bd4f1b32deca1" }, "downloads": -1, "filename": "parcon-0.1.16.tar.gz", "has_sig": false, "md5_digest": "ac351fbb6767f4df7ba85c136ca25b3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79788, "upload_time": "2011-06-22T20:47:51", "url": "https://files.pythonhosted.org/packages/91/fa/05916fa18a03d4c8ce2384b159eb3abff4606a79c9e41a1cde765af88a95/parcon-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "285ea1172d3c082a9d032d17dfbd2d80", "sha256": "d61f0f6da6c033fb589a368782b1e4f86f4df956f1a4bbd6b7c78f9bc6245ba3" }, "downloads": -1, "filename": "parcon-0.1.17.tar.gz", "has_sig": false, "md5_digest": "285ea1172d3c082a9d032d17dfbd2d80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92967, "upload_time": "2011-06-24T13:03:26", "url": "https://files.pythonhosted.org/packages/1a/4e/84a0209b196c28e33fa61096e84d7d2de9a9bac733ed3f030ee0f872b9ca/parcon-0.1.17.tar.gz" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "7fe42dad0192a692d49f14a7c2f58336", "sha256": "f624bb3a3d5ec46e3f232166f653681d90eb9e252a9a46c25a77873f83298a6b" }, "downloads": -1, "filename": "parcon-0.1.18.tar.gz", "has_sig": false, "md5_digest": "7fe42dad0192a692d49f14a7c2f58336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101476, "upload_time": "2011-06-25T11:58:49", "url": "https://files.pythonhosted.org/packages/8c/ec/3fcc84e71c1c9158fc8a613f915a6bb4c025ff2d4de55117a557df0bc71f/parcon-0.1.18.tar.gz" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "56fb94ce1274edddacd78fe3d5ec66ff", "sha256": "42c372ec1c75d0bb61e0ca2ff50fd659cdc2ad9053610799339b16bf8cc81ee4" }, "downloads": -1, "filename": "parcon-0.1.19.tar.gz", "has_sig": false, "md5_digest": "56fb94ce1274edddacd78fe3d5ec66ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96547, "upload_time": "2011-06-26T11:53:48", "url": "https://files.pythonhosted.org/packages/c8/d6/f4d5989a108906e27315c6539ab4bc83c799fd1847d72274c699c185b95b/parcon-0.1.19.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "514cd0120ff8441ae5929d0f2f246286", "sha256": "107046eced52f34cdec253a1d2ba191419f455e0992020a2879425fa3bb99aee" }, "downloads": -1, "filename": "parcon-0.1.2.tar.gz", "has_sig": false, "md5_digest": "514cd0120ff8441ae5929d0f2f246286", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7203, "upload_time": "2011-06-13T12:17:56", "url": "https://files.pythonhosted.org/packages/42/4d/b34f75ba3844771dd9af59379ddfe166ee98c70afe734dbb7420e2679865/parcon-0.1.2.tar.gz" } ], "0.1.20": [ { "comment_text": "", "digests": { "md5": "5b57fe4edcfdf32ea0f4aef783b7de5a", "sha256": "97a46d48c20ce18291ff45836988ac2d6144007c2db3f676ccd2ba4d3b115a19" }, "downloads": -1, "filename": "parcon-0.1.20.tar.gz", "has_sig": false, "md5_digest": "5b57fe4edcfdf32ea0f4aef783b7de5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 98327, "upload_time": "2011-06-27T12:18:22", "url": "https://files.pythonhosted.org/packages/5f/05/7428b9da2ed4cd8bca63a618f645f8792180078a2baf8ab8fd166bf99640/parcon-0.1.20.tar.gz" } ], "0.1.21": [ { "comment_text": "", "digests": { "md5": "600fa36f3d2cfc1863188359bfb5d9a7", "sha256": "e7de062ff351939a246c780ab807c7524a3f1027516f0a80b1faa57d79a51b09" }, "downloads": -1, "filename": "parcon-0.1.21.tar.gz", "has_sig": false, "md5_digest": "600fa36f3d2cfc1863188359bfb5d9a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100629, "upload_time": "2011-06-29T12:01:33", "url": "https://files.pythonhosted.org/packages/4b/20/250c17decf3dea4f70d77638d7d5e9323429caf2839f84cc69b5e9ee67ec/parcon-0.1.21.tar.gz" } ], "0.1.22": [ { "comment_text": "", "digests": { "md5": "a7cd325bb7476452d01e90d1ac3f1672", "sha256": "1da58d840613110987e617b666680249a711026db5b84aae55949daed67c03da" }, "downloads": -1, "filename": "parcon-0.1.22.tar.gz", "has_sig": false, "md5_digest": "a7cd325bb7476452d01e90d1ac3f1672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107217, "upload_time": "2011-06-30T11:54:17", "url": "https://files.pythonhosted.org/packages/75/9f/731aa6b42c985702c0aca4ed34b2ec11b21b779213bcfb9bec2093dd20a2/parcon-0.1.22.tar.gz" } ], "0.1.23": [ { "comment_text": "", "digests": { "md5": "897f8872f55545173729073ee5a3c2e8", "sha256": "1af5ab3bfe307c79efd2e0e1687e49f8ff95ffbe7527927b73408acaa3b01cb4" }, "downloads": -1, "filename": "parcon-0.1.23.tar.gz", "has_sig": false, "md5_digest": "897f8872f55545173729073ee5a3c2e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 130782, "upload_time": "2011-07-14T02:01:27", "url": "https://files.pythonhosted.org/packages/26/7d/1bff3161e5b18aa72b664106c4a3c67d29a682fdedaf5fc5bacd3900b319/parcon-0.1.23.tar.gz" } ], "0.1.24": [ { "comment_text": "", "digests": { "md5": "e78f9f7561cc93c50a3c7c0ac4f5ba73", "sha256": "cd57623f89ed2870d461693fb8288d2fb9e1e09df353a85f96ea8872cc15ce56" }, "downloads": -1, "filename": "parcon-0.1.24.tar.gz", "has_sig": false, "md5_digest": "e78f9f7561cc93c50a3c7c0ac4f5ba73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133366, "upload_time": "2011-08-22T04:17:40", "url": "https://files.pythonhosted.org/packages/3b/e0/63e0217cdb1e276ab97eece1676b909a906b63b7bf0dcf6c7d9dd79e8fd1/parcon-0.1.24.tar.gz" } ], "0.1.25": [ { "comment_text": "", "digests": { "md5": "146ab4d138fd5b1848390fbf199c3ac2", "sha256": "82d2eba2a24bd348b3885e1b2c89f27fcf326a6f5e1eb758008916f582b3874d" }, "downloads": -1, "filename": "parcon-0.1.25.tar.gz", "has_sig": false, "md5_digest": "146ab4d138fd5b1848390fbf199c3ac2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 138253, "upload_time": "2011-10-08T06:47:19", "url": "https://files.pythonhosted.org/packages/7e/11/6e8daf797bf7df71ba747c16f1ac06a93884747b9c2ff3f90f3d8723e9b2/parcon-0.1.25.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e92277bca86cab915ce167712533947c", "sha256": "0fb9d3d238bee95309a05cc050f9c80dd9e16a132c55c18aa17d0c0afec166eb" }, "downloads": -1, "filename": "parcon-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e92277bca86cab915ce167712533947c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17701, "upload_time": "2011-06-13T12:53:06", "url": "https://files.pythonhosted.org/packages/26/45/e321752244e6ed7da6f00247163533f74a36a2bbcfbb9a7b01f2d902b5e5/parcon-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3558d30f5bb42853a18e884172c30bd5", "sha256": "4599f6dccb150568c352abbe8f737cba5e946222a6eb1643ff0861e195b1f18a" }, "downloads": -1, "filename": "parcon-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3558d30f5bb42853a18e884172c30bd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18305, "upload_time": "2011-06-13T13:03:55", "url": "https://files.pythonhosted.org/packages/73/73/05a21be7417b7679295e140fc28edd3e6333c0c746d38ca63d9750783d9a/parcon-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "f1f9664e341f3960ae9a9c75aabf9cc9", "sha256": "d17849a414c92eaff5f9cc5d86c37a1dc7ef41927cf45d739eb5eefcfa8bc9eb" }, "downloads": -1, "filename": "parcon-0.1.6.tar.gz", "has_sig": false, "md5_digest": "f1f9664e341f3960ae9a9c75aabf9cc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21241, "upload_time": "2011-06-15T05:51:24", "url": "https://files.pythonhosted.org/packages/8d/72/8bc71f4c45ca9e258a92a581825d81fc0c83bb35d3279fda988c174c7741/parcon-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "01613b9813246585937f7fe5d97558c3", "sha256": "d761dc8b087080b273dd77fd2ce4b075a3bcb408eb96745e479094f58aac9c22" }, "downloads": -1, "filename": "parcon-0.1.7.tar.gz", "has_sig": false, "md5_digest": "01613b9813246585937f7fe5d97558c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23441, "upload_time": "2011-06-15T10:07:26", "url": "https://files.pythonhosted.org/packages/b3/b4/8f830daa3488442ebe6105a5cddb1751a029dfd0ce95a8d5b25f4acf1a2f/parcon-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0738f6b795df0b11e5a6a820bbc951db", "sha256": "53f9e5b013bfca8d4991c663fdaee11562ed8aec83ca67852969673cf96e3ee1" }, "downloads": -1, "filename": "parcon-0.1.8.tar.gz", "has_sig": false, "md5_digest": "0738f6b795df0b11e5a6a820bbc951db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28940, "upload_time": "2011-06-16T00:03:07", "url": "https://files.pythonhosted.org/packages/89/1a/287f998572d908b13811c9d7537cd58f6846c0bfa9a8492b751febbb284b/parcon-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "ec9627a708c492aea66689834f77c646", "sha256": "aadf1d2b567cf5cf10c7731d65d7425505e2acb776cf89f2576653b9c643349d" }, "downloads": -1, "filename": "parcon-0.1.9.tar.gz", "has_sig": false, "md5_digest": "ec9627a708c492aea66689834f77c646", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29017, "upload_time": "2011-06-16T00:04:12", "url": "https://files.pythonhosted.org/packages/d4/57/ce0dad4064fb459ccb461c1c0c18ad252ab6110ce3ffdd7997415ecc3254/parcon-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "146ab4d138fd5b1848390fbf199c3ac2", "sha256": "82d2eba2a24bd348b3885e1b2c89f27fcf326a6f5e1eb758008916f582b3874d" }, "downloads": -1, "filename": "parcon-0.1.25.tar.gz", "has_sig": false, "md5_digest": "146ab4d138fd5b1848390fbf199c3ac2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 138253, "upload_time": "2011-10-08T06:47:19", "url": "https://files.pythonhosted.org/packages/7e/11/6e8daf797bf7df71ba747c16f1ac06a93884747b9c2ff3f90f3d8723e9b2/parcon-0.1.25.tar.gz" } ] }