{ "info": { "author": "Igor R. Dejanovic", "author_email": "igor.dejanovic@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Compilers", "Topic :: Software Development :: Interpreters", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "![](https://raw.githubusercontent.com/textX/textX/master/art/textX-logo.png)\n\n[![PyPI Version](https://img.shields.io/pypi/v/textX.svg)](https://pypi.python.org/pypi/textX)\n![](https://img.shields.io/pypi/l/textX.svg)\n[![Build status](https://travis-ci.org/textX/textX.svg?branch=master)](https://travis-ci.org/textX/textX)\n[![Code test coverage](https://coveralls.io/repos/github/textX/textX/badge.svg?branch=master)](https://coveralls.io/github/textX/textX?branch=master)\n[![Documentation Status](https://img.shields.io/badge/docs-latest-green.svg)](http://textx.github.io/textX/latest/)\n\n\ntextX is a meta-language for building Domain-Specific Languages (DSLs) in\nPython. It is inspired by [Xtext].\n\nIn a nutshell, textX will help you build your textual language in an easy way.\nYou can invent your own language or build a support for already existing textual\nlanguage or file format.\n\nFrom a single language description (grammar), textX will build a parser and a\nmeta-model (a.k.a. abstract syntax) for the language. See the docs for the\ndetails.\n\ntextX follows the syntax and semantics of Xtext but [differs in some\nplaces](http://textx.github.io/textX/latest/about/comparison/) and is\nimplemented 100% in Python using [Arpeggio] PEG parser - no grammar ambiguities,\nunlimited lookahead, interpreter style of work.\n\n\n## Quick intro\n\nHere is a complete example that shows the definition of a simple DSL for\ndrawing. We also show how to define a custom class, interpret models and search\nfor instances of a particular type.\n\n```python\nfrom textx import metamodel_from_str, get_children_of_type\n\ngrammar = \"\"\"\nModel: commands*=DrawCommand;\nDrawCommand: MoveCommand | ShapeCommand;\nShapeCommand: LineTo | Circle;\nMoveCommand: MoveTo | MoveBy;\nMoveTo: 'move' 'to' position=Point;\nMoveBy: 'move' 'by' vector=Point;\nCircle: 'circle' radius=INT;\nLineTo: 'line' 'to' point=Point;\nPoint: x=INT ',' y=INT;\n\"\"\"\n\n# We will provide our class for Point.\n# Classes for other rules will be dynamically generated.\nclass Point(object):\n def __init__(self, parent, x, y):\n self.parent = parent\n self.x = x\n self.y = y\n\n def __str__(self):\n return \"{},{}\".format(self.x, self.y)\n\n def __add__(self, other):\n return Point(self.parent, self.x + other.x, self.y + other.y)\n\n# Create meta-model from the grammar. Provide `Point` class to be used for\n# the rule `Point` from the grammar.\nmm = metamodel_from_str(grammar, classes=[Point])\n\nmodel_str = \"\"\"\n move to 5, 10\n line to 10, 10\n line to 20, 20\n move by 5, -7\n circle 10\n line to 10, 10\n\"\"\"\n\n# Meta-model knows how to parse and instantiate models.\nmodel = mm.model_from_str(model_str)\n\n# At this point model is a plain Python object graph with instances of\n# dynamically created classes and attributes following the grammar.\n\ndef cname(o):\n return o.__class__.__name__\n\n# Let's interpret the model\nposition = Point(None, 0, 0)\nfor command in model.commands:\n if cname(command) == 'MoveTo':\n print('Moving to position', command.position)\n position = command.position\n elif cname(command) == 'MoveBy':\n position = position + command.vector\n print('Moving by', command.vector, 'to a new position', position)\n elif cname(command) == 'Circle':\n print('Drawing circle at', position, 'with radius', command.radius)\n else:\n print('Drawing line from', position, 'to', command.point)\n position = command.point\nprint('End position is', position)\n\n# Output:\n# Moving to position 5,10\n# Drawing line from 5,10 to 10,10\n# Drawing line from 10,10 to 20,20\n# Moving by 5,-7 to a new position 25,13\n# Drawing circle at 25,13 with radius 10\n# Drawing line from 25,13 to 10,10\n\n# Collect all points starting from the root of the model\npoints = get_children_of_type(\"Point\", model)\nfor point in points:\n print('Point: {}'.format(point))\n\n# Output:\n# Point: 5,10\n# Point: 10,10\n# Point: 20,20\n# Point: 5,-7\n# Point: 10,10\n```\n\n\n## Video tutorials\n\n\n### Introduction to textX\n\n\n[![Introduction to\ntextX](https://img.youtube.com/vi/CN2IVtInapo/0.jpg)](https://www.youtube.com/watch?v=CN2IVtInapo)\n\n\n### Implementing Martin Fowler's State Machine DSL in textX\n\n[![Implementing State Machine\nDSL](https://img.youtube.com/vi/HI14jk0JIR0/0.jpg)](https://www.youtube.com/watch?v=HI14jk0JIR0)\n\n\n## Docs and tutorials\n\nThe full documentation with tutorials is available at\nhttp://textx.github.io/textX/stable/\n\n\n# Support in IDE/editors\n\nProjects that are currently in progress are:\n\n- [textX-LS](https://github.com/textX/textX-LS) - support for Language Server\n Protocol and VS Code for any textX based language. This project is about to\n supersede the following projects:\n - [textX-languageserver](https://github.com/textX/textX-languageserver) -\n Language Server Protocol support for textX languages\n - [textX-extensions](https://github.com/textX/textX-extensions) - syntax\n highlighting, code outline\n- [viewX](https://github.com/danielkupco/viewX-vscode) - creating visualizers\n for textX languages\n\nIf you are a vim editor user check\nout [support for vim](https://github.com/textX/textx.vim/).\n\nFor emacs there is [textx-mode](https://github.com/textX/textx-mode) which is\nalso available in [MELPA](https://melpa.org/#/textx-mode).\n\nYou can also check\nout [textX-ninja project](https://github.com/textX/textX-ninja). It is\ncurrently unmaintained.\n\n\n## Discussion and help\n\nFor general questions and help please use\n[StackOverflow](https://stackoverflow.com/questions/tagged/textx). Just make\nsure to tag your question with the `textx` tag.\n\n\nFor issues, suggestions and feature request please use \n[GitHub issue tracker](https://github.com/textX/textX/issues).\n\n\n## Citing textX\n\nIf you are using textX in your research project we would be very grateful if you\ncite our paper:\n\nDejanovi\u0107 I., Vaderna R., Milosavljevi\u0107 G., Vukovi\u0107 \u017d. (2017). [TextX: A Python\ntool for Domain-Specific Languages\nimplementation](https://www.doi.org/10.1016/j.knosys.2016.10.023).\nKnowledge-Based Systems, 115, 1-4.\n\n\n## License\n\nMIT\n\n## Python versions\n\nTested for 2.7, 3.4+\n\n\n[Arpeggio]: https://github.com/textX/Arpeggio\n[Xtext]: http://www.eclipse.org/Xtext/\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/textX/textX/archive/v2.1.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/textX/textX", "keywords": "parser meta-language meta-model language DSL", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "textX", "package_url": "https://pypi.org/project/textX/", "platform": "", "project_url": "https://pypi.org/project/textX/", "project_urls": { "Download": "https://github.com/textX/textX/archive/v2.1.0.tar.gz", "Homepage": "https://github.com/textX/textX" }, "release_url": "https://pypi.org/project/textX/2.1.0/", "requires_dist": [ "Arpeggio (>=1.9.0)", "click (==7.0)" ], "requires_python": "", "summary": "Meta-language for DSL implementation inspired by Xtext", "version": "2.1.0" }, "last_serial": 5964101, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "bf2b7815bdae6ad57c140be278ed2765", "sha256": "48c8625eac9eac511c1229e1af18ba4707c9e7699699986662f088ae69b4bd35" }, "downloads": -1, "filename": "textX-0.1.1.tar.gz", "has_sig": false, "md5_digest": "bf2b7815bdae6ad57c140be278ed2765", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13976, "upload_time": "2014-08-17T00:14:04", "url": "https://files.pythonhosted.org/packages/be/fe/945f967082890954ae58ae33839a3371994f7185fc66310a33bead45d64b/textX-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a1f51d33b9817eb68456871520cc4929", "sha256": "0faac5945467731c00c3b58752485f96a3eb8219021239664335fbb1798c0d14" }, "downloads": -1, "filename": "textX-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a1f51d33b9817eb68456871520cc4929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13970, "upload_time": "2014-08-17T14:49:27", "url": "https://files.pythonhosted.org/packages/e7/f3/7be195c262edf7fd9aa0a080d608eb06bfaf14a8dc83136d2ec00aae344a/textX-0.1.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "39ee9d969acf55e7fcb93a7be9f1222b", "sha256": "8157ff068c0d183a2ccc953d96d0f448ded06abb1dcc0e343834ca2a117c1015" }, "downloads": -1, "filename": "textX-0.2.tar.gz", "has_sig": false, "md5_digest": "39ee9d969acf55e7fcb93a7be9f1222b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15646, "upload_time": "2014-09-20T14:03:24", "url": "https://files.pythonhosted.org/packages/07/4a/7966a69a9362bd03f0a2c6385e7e302ed08c4cf2234551e75dc9b1de4bd0/textX-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8dd189fb3ee433060fb690c01c674d95", "sha256": "2cf1721f3290ac4d5198bcfa8b14af2ac6d8413e18981a18b5cacf96b0f85461" }, "downloads": -1, "filename": "textX-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8dd189fb3ee433060fb690c01c674d95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15681, "upload_time": "2014-09-23T13:31:58", "url": "https://files.pythonhosted.org/packages/b9/6a/244e7ce3f381ff7ad90c62848bfa3adf9ae9ee374b9360becffea92407fa/textX-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "680add9148e4fb53635ce422b0b29a7c", "sha256": "8aaf27fba1c5053c0e61dc98e87ed5f55225f5d4689587c83820ed83a5e469da" }, "downloads": -1, "filename": "textX-0.3.tar.gz", "has_sig": false, "md5_digest": "680add9148e4fb53635ce422b0b29a7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21526, "upload_time": "2015-02-10T09:07:56", "url": "https://files.pythonhosted.org/packages/7f/63/e2a97099ebd5c7ef418a369a576491966496d72677c463ace9e6e2e155c5/textX-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "64527a28f714a8d7763e5808be1a101c", "sha256": "7e0d9070f1de0a151915643a1a33ef20ed3ecdd171ff31ceae73bcb72dd97415" }, "downloads": -1, "filename": "textX-0.3.1.tar.gz", "has_sig": false, "md5_digest": "64527a28f714a8d7763e5808be1a101c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21857, "upload_time": "2015-04-04T19:48:24", "url": "https://files.pythonhosted.org/packages/1d/d7/585f018ac91d1a8270f03c184097445a092d8bd04373917fdfbf54811cd6/textX-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "09ea2b7dbb383cb4f3c5d29c82c386cc", "sha256": "ae7ed5242e360321a9273a68abfc75b8da9c694bccf38ea6c91e6fa6a4275738" }, "downloads": -1, "filename": "textX-0.4.tar.gz", "has_sig": false, "md5_digest": "09ea2b7dbb383cb4f3c5d29c82c386cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22166, "upload_time": "2015-05-09T12:32:08", "url": "https://files.pythonhosted.org/packages/84/4c/e0927d1f5fcb0419ac8dfc130041723ab01372f8010cba8e01767053944b/textX-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9980dc5788e2aed44d31f181d4d3e712", "sha256": "2f23bb9b20b2b9097d574d696d2d3fee1044c00700159625c4386028b16e3f49" }, "downloads": -1, "filename": "textX-0.4.1.tar.gz", "has_sig": false, "md5_digest": "9980dc5788e2aed44d31f181d4d3e712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19961, "upload_time": "2015-08-08T16:33:04", "url": "https://files.pythonhosted.org/packages/e6/1a/78bfd74f3cf7e6c373d25d5c9c69bb7f64cb28eabc516045cbf29097d117/textX-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a0ac87c634c089437819e0362eea0841", "sha256": "94be8871f7ce414a58c3ec0b4e80771078bc47fa9a9c84e2b8a559f97f595a54" }, "downloads": -1, "filename": "textX-0.4.2.tar.gz", "has_sig": false, "md5_digest": "a0ac87c634c089437819e0362eea0841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20302, "upload_time": "2015-08-27T18:01:08", "url": "https://files.pythonhosted.org/packages/1e/6c/a2ebe746e602c6574e6ac890e274fd2c2ed795b7e8b5025223cbf2cb19d7/textX-0.4.2.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "b142560502d45c3937b8e5c766baf6b9", "sha256": "d36d0238a63509c405bff259c216c737ff5c3dbb8027d3ded24768f72abcea45" }, "downloads": -1, "filename": "textX-1.0.tar.gz", "has_sig": false, "md5_digest": "b142560502d45c3937b8e5c766baf6b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19532, "upload_time": "2016-03-03T10:33:51", "url": "https://files.pythonhosted.org/packages/c3/b5/55ae1bbfdc99458952d6955f2f4b1451a139caef39c386c0b20231512d7d/textX-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f39d8a1bdfc1b9ee0d67b331948db799", "sha256": "09b04510b5bdc7b1141ae0f03c6072db1d2443893e5dc16b9badc34ebe8c6b2a" }, "downloads": -1, "filename": "textX-1.1.tar.gz", "has_sig": false, "md5_digest": "f39d8a1bdfc1b9ee0d67b331948db799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19000, "upload_time": "2016-04-01T15:44:35", "url": "https://files.pythonhosted.org/packages/74/fb/85a98a6ff215b61e32cc97d84f962c0cbcf093bdace8fb7cca90ecfef1e9/textX-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "7e2e4ff75e09c7ba1b5ecce00aeb4d3f", "sha256": "f485f8224b080cfb90515f31252accba94e3d8b71527b7981fa5b25d01579a74" }, "downloads": -1, "filename": "textX-1.1.1.tar.gz", "has_sig": false, "md5_digest": "7e2e4ff75e09c7ba1b5ecce00aeb4d3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19845, "upload_time": "2016-04-01T20:11:02", "url": "https://files.pythonhosted.org/packages/9d/eb/450ef53812d74e042c35d3412bd8c3c99df5830a6b6c1f0e5c1a14beb5b9/textX-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "4655db541e0888665f250d4c1094148e", "sha256": "46d52b068a4d7607808879a2aa84c9da4a4c873e8cc39ceaa5b71b4ca139cb56" }, "downloads": -1, "filename": "textX-1.2.tar.gz", "has_sig": false, "md5_digest": "4655db541e0888665f250d4c1094148e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20986, "upload_time": "2016-04-28T09:12:40", "url": "https://files.pythonhosted.org/packages/44/bf/75fd34092b2d01f902721b3441d3e26957b9a47aa3448600b7deb2df5da6/textX-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "a24050fd36b16de21c3e4811e4cf5052", "sha256": "87348256372ec0ee80ea46abe77bcd658b42397e56cf51600308e1c716a4b76f" }, "downloads": -1, "filename": "textX-1.3.tar.gz", "has_sig": false, "md5_digest": "a24050fd36b16de21c3e4811e4cf5052", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21362, "upload_time": "2016-05-06T00:18:37", "url": "https://files.pythonhosted.org/packages/98/31/c032c20de2c723d3a8d1cfa15f82a834a0961a049ae059c9ade31f353198/textX-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "7ef1c8c7b601743c693e47748258c0ed", "sha256": "9ffbd402c8e9b91d03d338e62044847bf66b195c65c3ffeec78e11b768e2a7ef" }, "downloads": -1, "filename": "textX-1.3.1.tar.gz", "has_sig": false, "md5_digest": "7ef1c8c7b601743c693e47748258c0ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21547, "upload_time": "2016-05-17T17:56:13", "url": "https://files.pythonhosted.org/packages/76/0d/667a21cf9c62d161c0cf93267f9fe9189c0e3ec4191e899acb99827088fc/textX-1.3.1.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "0917028882be1657be04762b793f1942", "sha256": "6112b73b2c4713630824f7c57f14b3919a2c1e32a8246c37b009378b6079665c" }, "downloads": -1, "filename": "textX-1.4.tar.gz", "has_sig": false, "md5_digest": "0917028882be1657be04762b793f1942", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21967, "upload_time": "2016-05-31T14:45:56", "url": "https://files.pythonhosted.org/packages/c8/03/e6bb3dd58d43ddd2656e119475beb584e3aaf992f702484df55da975f637/textX-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "63da7f96894dabf6bd6b02dcc4831ada", "sha256": "ee7428389b1788066ec404bbea7d9ad9cfb5806c8b8950407376c3052f6731fc" }, "downloads": -1, "filename": "textX-1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63da7f96894dabf6bd6b02dcc4831ada", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29755, "upload_time": "2017-05-15T18:39:01", "url": "https://files.pythonhosted.org/packages/a6/b8/24e3caefca892dd2b09604716f5ff3da014b1ba4d50a033f77e5c2917a81/textX-1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fd82fc8141261349925129d78a2c61f", "sha256": "939ef7fcd5ceee381ae8fa0cd1e178532d56031f6802c18b8abe86513900d834" }, "downloads": -1, "filename": "textX-1.5.tar.gz", "has_sig": false, "md5_digest": "9fd82fc8141261349925129d78a2c61f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25338, "upload_time": "2017-05-15T18:39:05", "url": "https://files.pythonhosted.org/packages/f9/cf/f6fa3d7aab3ff46bbc4db14a5f9513358d2cb04a5c3427215fdabcc99400/textX-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "c30ee8ceee65b808440de48facbfaf56", "sha256": "7c9a974d42b0f231da3a231be7091afad7e380ac89ee02566c61150dcd992c09" }, "downloads": -1, "filename": "textX-1.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c30ee8ceee65b808440de48facbfaf56", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30021, "upload_time": "2017-06-14T15:09:42", "url": "https://files.pythonhosted.org/packages/90/4e/bcb45ac4fc80b58aa30f93ec059f4e8132c68a8cd017e53cc32ca5191a35/textX-1.5.1-py2.py3-none-any.whl" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "c057c6a9034bc981d36c99f6db063067", "sha256": "e9329615a0882e5d934c70375930c7f7d4d0cf4dbc99c5c882f58bbc5c302316" }, "downloads": -1, "filename": "textX-1.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c057c6a9034bc981d36c99f6db063067", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30094, "upload_time": "2017-11-17T20:59:54", "url": "https://files.pythonhosted.org/packages/e2/70/0d0f436fd153c992b1f65793cd97b084b3e83f53f66c2670c379cd303ed9/textX-1.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11c2896ba4887ef5fc5f3a258649c9ff", "sha256": "7b2f40214040a8312ae638de769c6565584113c244ae362bb0bda259f17df4a7" }, "downloads": -1, "filename": "textX-1.5.2.tar.gz", "has_sig": false, "md5_digest": "11c2896ba4887ef5fc5f3a258649c9ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25658, "upload_time": "2017-11-17T20:59:56", "url": "https://files.pythonhosted.org/packages/fc/d0/00fb352b019c3028fdf009499038724de17f46256822af45be82a1db2d43/textX-1.5.2.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "edd68274b3ab368dd1daef69b65574d1", "sha256": "92827fa05027b14c50d7b390e0a8f62d9404ade2dd7fac445a9813fcff838f83" }, "downloads": -1, "filename": "textX-1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edd68274b3ab368dd1daef69b65574d1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 55001, "upload_time": "2017-11-17T21:43:05", "url": "https://files.pythonhosted.org/packages/19/fb/268f4bbfdcabcb2cc8fc652e2e286d5a5a019ededce455bac6b983692656/textX-1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e46a45f795e5799fe7372c425ba3a85", "sha256": "88175b8e5e6a0eceb7a288dddd95461ddeddf5e6fe21a68febbeaa8328e89fdf" }, "downloads": -1, "filename": "textX-1.6.tar.gz", "has_sig": false, "md5_digest": "3e46a45f795e5799fe7372c425ba3a85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40977, "upload_time": "2017-11-17T21:43:07", "url": "https://files.pythonhosted.org/packages/1e/53/48a02f6aa44f4944e468c78c78e31b5fdbbe1e20c95a9fdea9d91aa6e291/textX-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "97e1adc3839d1aef1adcf2eeb18986f8", "sha256": "3b8795a757e76f5fc8327aa99eabc49b033ce9e8d09689610bb102404b530663" }, "downloads": -1, "filename": "textX-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "97e1adc3839d1aef1adcf2eeb18986f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37994, "upload_time": "2017-11-22T19:09:13", "url": "https://files.pythonhosted.org/packages/e7/23/55c11641626c41ac88b495c2f1828c149dbc5560b108aa274f6bddd03fe6/textX-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4856ab1e0280a55d5ca93cf7055864bf", "sha256": "2bfce94674dd85162f03afd01e4819757de2fa500ade18d74704e6f900a8e349" }, "downloads": -1, "filename": "textX-1.6.1.tar.gz", "has_sig": false, "md5_digest": "4856ab1e0280a55d5ca93cf7055864bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33141, "upload_time": "2017-11-22T19:09:15", "url": "https://files.pythonhosted.org/packages/b0/71/acc287944fae9db269ed8134cc3c00796e17c1310bbfdb942c835e0ccce1/textX-1.6.1.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "e0ad687f9e0165524276fcbb9e72cdc2", "sha256": "4c8388ad91bdc7d14d6c1c2a12c9e1cd29f3d8a6cf084aba6a26546b863ec3b0" }, "downloads": -1, "filename": "textX-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e0ad687f9e0165524276fcbb9e72cdc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 50766, "upload_time": "2018-05-31T11:52:59", "url": "https://files.pythonhosted.org/packages/69/2b/17c7cc82e3921535a5f044307582364fe33017ced22f066dd62b01283885/textX-1.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f6ecd36e8d80228993040efb119ea45", "sha256": "c6b6a91bd82a8727afbfa040a36fa8597fc925a71ea906ec480317aec9e29d71" }, "downloads": -1, "filename": "textX-1.7.0.tar.gz", "has_sig": false, "md5_digest": "6f6ecd36e8d80228993040efb119ea45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44388, "upload_time": "2018-05-31T11:53:00", "url": "https://files.pythonhosted.org/packages/9f/8a/02a7d23f8e7fb603baf5f8c5a38cf3a66f08928d5f35dae84bc75d5ba921/textX-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "ac43022b302f3424af8bbe5262ec77e3", "sha256": "20b5580187f3fc54e5c6d9eff3e20e9fec9bbe203c04b6ce15957c90c9307bdb" }, "downloads": -1, "filename": "textX-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac43022b302f3424af8bbe5262ec77e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 50820, "upload_time": "2018-07-02T11:12:28", "url": "https://files.pythonhosted.org/packages/02/23/014852a97317554bc625555d0fc52a0c346849fcc06c7837b8ded466a783/textX-1.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d91b2f925ae0442a2dd1b844b236fdae", "sha256": "de6bfa8002f4d460e0750129234075f1ebf5965f40379cb32de767bd577102dc" }, "downloads": -1, "filename": "textX-1.7.1.tar.gz", "has_sig": false, "md5_digest": "d91b2f925ae0442a2dd1b844b236fdae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44443, "upload_time": "2018-07-02T11:12:29", "url": "https://files.pythonhosted.org/packages/8d/5d/77bb2dcc73f349a322c44d6f234cc998397525892cb239cca4379c763dc9/textX-1.7.1.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "6c831c626a2416265633e544c670e792", "sha256": "77b8efb0be461ed2540af31903a52df0803d75a9497340235d39d159524b987c" }, "downloads": -1, "filename": "textX-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c831c626a2416265633e544c670e792", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 51181, "upload_time": "2018-10-06T09:36:19", "url": "https://files.pythonhosted.org/packages/ff/df/33442dfb9ddfc2a9a84d60915ccf0602a5b04fdc46f523a7e939e588cd59/textX-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00e34b8b81c9c68131142aaabc926a74", "sha256": "a698e84f0a168b254c872aad573e4610af6143ee3a9e5d281efe6b4fce010cee" }, "downloads": -1, "filename": "textX-1.8.0.tar.gz", "has_sig": false, "md5_digest": "00e34b8b81c9c68131142aaabc926a74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44332, "upload_time": "2018-10-06T09:36:21", "url": "https://files.pythonhosted.org/packages/8b/d1/209eb0fe146968655c1900af0b7d609b147b7818599ca9ac4261dc0a74f6/textX-1.8.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "a0caa1476552ef83548e958841c9f7a2", "sha256": "4f1659109776a190090952014273bdd86764f8b0daf165614e77d668880adea1" }, "downloads": -1, "filename": "textX-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0caa1476552ef83548e958841c9f7a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60903, "upload_time": "2019-05-20T14:11:49", "url": "https://files.pythonhosted.org/packages/91/c0/eaa3c1b579ad2e848ba36fabd0007602150639dab0bdf58d28d8376e8479/textX-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf4c23850f960ddf1caa63403e14b61d", "sha256": "ffb724840391837f576cc556e0f6d54e03813e551cae99572ac6b34ee77d8d75" }, "downloads": -1, "filename": "textX-2.0.1.tar.gz", "has_sig": false, "md5_digest": "cf4c23850f960ddf1caa63403e14b61d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51224, "upload_time": "2019-05-20T14:11:51", "url": "https://files.pythonhosted.org/packages/91/b5/0c588924da41ddeb27d8b5ef32f7ae27ef8d7e05e6a85c1d07fb1c779e53/textX-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "33ce9f49b420913c72b5a3a350713376", "sha256": "e5f06ca79223d966d281c321ff37b2c9b4eb13d6e168b886cde54fee99bb81bd" }, "downloads": -1, "filename": "textX-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33ce9f49b420913c72b5a3a350713376", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62647, "upload_time": "2019-10-12T12:22:26", "url": "https://files.pythonhosted.org/packages/e8/76/ca2573fe9521838b5b135ba152d5bcfc268ea7218118ab3cb15f50a99af4/textX-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e39861f50f03f168817b5c4c31e3e787", "sha256": "159c710f98401f090eb39fa44cd20bc48d697cb96684d1f457428c7ab37bb61c" }, "downloads": -1, "filename": "textX-2.1.0.tar.gz", "has_sig": false, "md5_digest": "e39861f50f03f168817b5c4c31e3e787", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52951, "upload_time": "2019-10-12T12:22:28", "url": "https://files.pythonhosted.org/packages/6b/c0/ed1eb59a903865f15a1bfaf21c261913e1dcd0ddf51705ab6ab14ed0b769/textX-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33ce9f49b420913c72b5a3a350713376", "sha256": "e5f06ca79223d966d281c321ff37b2c9b4eb13d6e168b886cde54fee99bb81bd" }, "downloads": -1, "filename": "textX-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33ce9f49b420913c72b5a3a350713376", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62647, "upload_time": "2019-10-12T12:22:26", "url": "https://files.pythonhosted.org/packages/e8/76/ca2573fe9521838b5b135ba152d5bcfc268ea7218118ab3cb15f50a99af4/textX-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e39861f50f03f168817b5c4c31e3e787", "sha256": "159c710f98401f090eb39fa44cd20bc48d697cb96684d1f457428c7ab37bb61c" }, "downloads": -1, "filename": "textX-2.1.0.tar.gz", "has_sig": false, "md5_digest": "e39861f50f03f168817b5c4c31e3e787", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52951, "upload_time": "2019-10-12T12:22:28", "url": "https://files.pythonhosted.org/packages/6b/c0/ed1eb59a903865f15a1bfaf21c261913e1dcd0ddf51705ab6ab14ed0b769/textX-2.1.0.tar.gz" } ] }