{
"info": {
"author": "Dane Finlay",
"author_email": "Danesprite@posteo.net",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Multimedia :: Sound/Audio :: Speech",
"Topic :: Software Development :: Libraries"
],
"description": "pyjsgf\n======\n\n|Build Status|\n|Docs Status|\n\nJSpeech Grammar Format (JSGF) compiler, matcher and parser package for\nPython.\n\nJSGF is a format used to textually represent grammars for speech\nrecognition engines. You can read the JSGF specification\n`here `__.\n\npyjsgf can be used to construct JSGF rules and grammars, compile them\ninto strings or files, and find grammar rules that match speech\nhypothesis strings. Matching speech strings to tags is also supported.\nThere are also parsers for grammars, rules and rule expansions.\n\npyjsgf has been written and tested for Python 2.7 and Python 3.5.\n\nThe documentation for this project is `on\nreadthedocs.org `__.\n\nInstallation\n------------\nTo install pyjsgf, run the following::\n\n $ pip install pyjsgf\n\nIf you are installing in order to *develop* pyjsgf, clone/download the repository, move to the root directory and run::\n\n $ pip install -e .\n\n\nUsage Example\n-------------\n\nThe following is a usage example for how to create a JSGF grammar with\none rule, compile it and find matching rules given the speech string\n\"hello world\":\n\n.. code:: python\n\n from jsgf import PublicRule, Literal, Grammar\n\n # Create a public rule with the name 'hello' and a Literal expansion 'hello world'.\n rule = PublicRule(\"hello\", Literal(\"hello world\"))\n\n # Create a grammar and add the new rule to it.\n grammar = Grammar()\n grammar.add_rule(rule)\n\n # Compile the grammar using compile()\n # compile_to_file(file_path) may be used to write a compiled grammar to\n # a file instead.\n # Compilation is not required for finding matching rules.\n print(grammar.compile())\n\n # Find rules in the grammar that match 'hello world'.\n matching = grammar.find_matching_rules(\"hello world\")\n print(\"Matching: %s\" % matching[0])\n\nRunning the above code would output:\n\n::\n\n #JSGF V1.0;\n grammar default;\n public = hello world;\n\n Matching: PublicRule(name='hello', expansion=Literal('hello world'))\n\n\nThe first line of the grammar can be changed using the ``jsgf_version``,\n``charset_name``, and ``language_name`` members of the ``Grammar``\nclass.\n\nThere are some usage examples in `pyjsgf/examples `_ which may help you get started.\n\nMultilingual support\n--------------------\n\nDue to Python's Unicode support, pyjsgf can be used with Unicode\ncharacters for grammar, import and rule names, as well as rule literals.\nIf you need this, it is better to use Python 3 or above where all\nstrings are Unicode strings by default.\n\nIf you must use Python 2.x, you'll need to define Unicode strings as\neither ``u\"text\"`` or ``unicode(text, encoding)``, which is a little\ncumbersome. If you want to define Unicode strings in a source code file,\nyou'll need to define the `source code file\nencoding `__.\n\n.. |Build Status| image:: https://travis-ci.org/Danesprite/pyjsgf.svg?branch=master\n :target: https://travis-ci.org/Danesprite/pyjsgf\n.. |Docs Status| image:: https://readthedocs.org/projects/pyjsgf/badge/?version=latest&style=flat\n :target: https://pyjsgf.readthedocs.io\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/Danesprite/pyjsgf",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "pyjsgf",
"package_url": "https://pypi.org/project/pyjsgf/",
"platform": "",
"project_url": "https://pypi.org/project/pyjsgf/",
"project_urls": {
"Homepage": "https://github.com/Danesprite/pyjsgf"
},
"release_url": "https://pypi.org/project/pyjsgf/1.7.1/",
"requires_dist": [
"pyparsing",
"six"
],
"requires_python": "",
"summary": "JSpeech Grammar Format (JSGF) compiler, matcher and parser package for Python.",
"version": "1.7.1"
},
"last_serial": 5510443,
"releases": {
"1.5.0": [
{
"comment_text": "",
"digests": {
"md5": "a39f762004c3df49853c7446188b82db",
"sha256": "1be43abaedf9c88e9ff95c5d72f14300f8ef29c437ce91dead609a18ee083a5a"
},
"downloads": -1,
"filename": "pyjsgf-1.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a39f762004c3df49853c7446188b82db",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 38856,
"upload_time": "2018-09-18T15:54:48",
"url": "https://files.pythonhosted.org/packages/d2/21/a86984ad8c865abb45d7a5f78e3d0f15e813ed79e4d291594a43c26fecad/pyjsgf-1.5.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bae4f3706d06b7c5d6b35487bf11695a",
"sha256": "3390a54004f4177feafcc80b422d10f26731fe00c100b05749c5af6a6df895ce"
},
"downloads": -1,
"filename": "pyjsgf-1.5.0.tar.gz",
"has_sig": false,
"md5_digest": "bae4f3706d06b7c5d6b35487bf11695a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 58320,
"upload_time": "2018-09-18T15:54:50",
"url": "https://files.pythonhosted.org/packages/6c/e4/dbf6b14434da6727f820e143fcd1e667ff28a0ede3f2c6b3555e0e37c535/pyjsgf-1.5.0.tar.gz"
}
],
"1.5.1": [
{
"comment_text": "",
"digests": {
"md5": "e1e4bc89df3b3631cda542deb196abee",
"sha256": "7f442f96e0860e3c98ebb20062acf960d9c4745bc24cf1cd6573465e088c284c"
},
"downloads": -1,
"filename": "pyjsgf-1.5.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e1e4bc89df3b3631cda542deb196abee",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 41874,
"upload_time": "2018-10-28T11:23:28",
"url": "https://files.pythonhosted.org/packages/8b/aa/6e848acbc95fbf0d1370719520625a108f4b85633603c4a6843d3b636757/pyjsgf-1.5.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5c0e8e8f5e99a5bb6032711e97cf6692",
"sha256": "44ab2f2e0fb09fd23fc8118ec5c75458d657eadf04cee01e1108e8404c0c97d7"
},
"downloads": -1,
"filename": "pyjsgf-1.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5c0e8e8f5e99a5bb6032711e97cf6692",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 41875,
"upload_time": "2018-10-28T11:23:30",
"url": "https://files.pythonhosted.org/packages/6e/61/b42ea72c2c9fc3aaf489ec3948ff23f7ee315e661c39bfacd860a39ba6f5/pyjsgf-1.5.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "bfc380c1d7f456c2c112320ebcfd447b",
"sha256": "9191ac6050b28ab35f9b4c350dc97b0e7ea2106f9d81ee61df344e22cbee62ca"
},
"downloads": -1,
"filename": "pyjsgf-1.5.1.tar.gz",
"has_sig": false,
"md5_digest": "bfc380c1d7f456c2c112320ebcfd447b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60487,
"upload_time": "2018-10-28T11:23:32",
"url": "https://files.pythonhosted.org/packages/5d/f9/836223cdbf4c5cb4fe3f7e9208ec1637b7ae34d9e5473a3ccb52df7e9e8b/pyjsgf-1.5.1.tar.gz"
}
],
"1.6.0": [
{
"comment_text": "",
"digests": {
"md5": "8992451d054f475d09a3f7c69dcdbacb",
"sha256": "5720778f1597357f074fdac60ce983074cc3edaa699ef2098d75880e93f625d7"
},
"downloads": -1,
"filename": "pyjsgf-1.6.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "8992451d054f475d09a3f7c69dcdbacb",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 44243,
"upload_time": "2019-03-17T13:17:54",
"url": "https://files.pythonhosted.org/packages/b9/49/6604c4aa91e3d24be7bb4b9f3a566446c593f98c0a553f8f34f52ee233fe/pyjsgf-1.6.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "25f2cf0af2ded49425125fdbb3053337",
"sha256": "831666bb14ebf8f2ae5671e2f5e3e0ca4fb9184082c3d53a7d2f5b72f2d3b0bf"
},
"downloads": -1,
"filename": "pyjsgf-1.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "25f2cf0af2ded49425125fdbb3053337",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 44242,
"upload_time": "2019-03-17T13:17:57",
"url": "https://files.pythonhosted.org/packages/33/d2/87fb5b35102dd9ecedaefb254a3a53125eb23e55ce5c1771bc4cbc36dcde/pyjsgf-1.6.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2fcdde21f682ed10342730ec21d54d64",
"sha256": "9b827ee4f1e0473a4e49fc821829ebba759875139930ae2eaef210e1c62fa98a"
},
"downloads": -1,
"filename": "pyjsgf-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "2fcdde21f682ed10342730ec21d54d64",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 64903,
"upload_time": "2019-03-17T13:17:59",
"url": "https://files.pythonhosted.org/packages/20/5c/fd0880eefb0af733249a657c8d2a577b0b033be7def667db0ba204fea728/pyjsgf-1.6.0.tar.gz"
}
],
"1.7.0": [
{
"comment_text": "",
"digests": {
"md5": "f5f59037b4a0d7664e51669928aec8ed",
"sha256": "1ee48943d4695b05db2fc4c64856d2a41b501b962b49722800aed15427362867"
},
"downloads": -1,
"filename": "pyjsgf-1.7.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "f5f59037b4a0d7664e51669928aec8ed",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 44769,
"upload_time": "2019-06-19T05:27:53",
"url": "https://files.pythonhosted.org/packages/46/29/9fcf3e0fffd96540a634f0a90ec047e6ed123c72456118bede0a944a326d/pyjsgf-1.7.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ae1a862ea5a779014807a83e0a8da035",
"sha256": "ca0eddca2879ebd44aae2446d79a0552e44e9e64141af6bff0b00f3727e6a172"
},
"downloads": -1,
"filename": "pyjsgf-1.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ae1a862ea5a779014807a83e0a8da035",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 44770,
"upload_time": "2019-06-19T05:27:56",
"url": "https://files.pythonhosted.org/packages/90/36/817ad9073c3032faf4676705cacd18999d626a15db5a0837af4dc00ccd9c/pyjsgf-1.7.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c5c2c7045abec8063efac2ec350f8310",
"sha256": "2e98b854aa81434b7d9fe549371eff0560f4448d1cd75d1bcbaca0e0b707cd36"
},
"downloads": -1,
"filename": "pyjsgf-1.7.0.tar.gz",
"has_sig": false,
"md5_digest": "c5c2c7045abec8063efac2ec350f8310",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 66169,
"upload_time": "2019-06-19T05:27:58",
"url": "https://files.pythonhosted.org/packages/94/e0/2fce9708fbbf1b08e0eed5faea95d678457d38bb924c1dbfef2d912513cc/pyjsgf-1.7.0.tar.gz"
}
],
"1.7.1": [
{
"comment_text": "",
"digests": {
"md5": "63897f6144bc4b948d44c35f9a122264",
"sha256": "717a43838874f5794c009ad8ac92289e62d0af2d9579949aef647b31e9a459b8"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "63897f6144bc4b948d44c35f9a122264",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 75732,
"upload_time": "2019-07-10T06:35:09",
"url": "https://files.pythonhosted.org/packages/fe/7b/b41805f55f1e0b7db78560820ef6c2c78fc6d47dcb117dee3802b2a69c00/pyjsgf-1.7.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "74bb0db247c341733a4c12ca78ed494d",
"sha256": "bb1d48b3009180f33ebe122c60df8fa2f3caa04118643a1278078300b7564d30"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "74bb0db247c341733a4c12ca78ed494d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 75732,
"upload_time": "2019-07-10T06:35:12",
"url": "https://files.pythonhosted.org/packages/d8/d3/caed06f22b5a5362ec8ae4dfbdcad0e4dd4a27289af50106c507a8a56134/pyjsgf-1.7.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7e610b10c8995e9cc7774762f921a9a1",
"sha256": "678ef5f7381b8b05354baea0d111cf19f809c1e3081d697f4fe1c752acc3671b"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1.tar.gz",
"has_sig": false,
"md5_digest": "7e610b10c8995e9cc7774762f921a9a1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 66354,
"upload_time": "2019-07-10T06:35:14",
"url": "https://files.pythonhosted.org/packages/21/70/8ea97af9e66b43209576fdceabb4ef285ce31bcf838492461d33a91ad27e/pyjsgf-1.7.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "63897f6144bc4b948d44c35f9a122264",
"sha256": "717a43838874f5794c009ad8ac92289e62d0af2d9579949aef647b31e9a459b8"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "63897f6144bc4b948d44c35f9a122264",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 75732,
"upload_time": "2019-07-10T06:35:09",
"url": "https://files.pythonhosted.org/packages/fe/7b/b41805f55f1e0b7db78560820ef6c2c78fc6d47dcb117dee3802b2a69c00/pyjsgf-1.7.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "74bb0db247c341733a4c12ca78ed494d",
"sha256": "bb1d48b3009180f33ebe122c60df8fa2f3caa04118643a1278078300b7564d30"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "74bb0db247c341733a4c12ca78ed494d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 75732,
"upload_time": "2019-07-10T06:35:12",
"url": "https://files.pythonhosted.org/packages/d8/d3/caed06f22b5a5362ec8ae4dfbdcad0e4dd4a27289af50106c507a8a56134/pyjsgf-1.7.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7e610b10c8995e9cc7774762f921a9a1",
"sha256": "678ef5f7381b8b05354baea0d111cf19f809c1e3081d697f4fe1c752acc3671b"
},
"downloads": -1,
"filename": "pyjsgf-1.7.1.tar.gz",
"has_sig": false,
"md5_digest": "7e610b10c8995e9cc7774762f921a9a1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 66354,
"upload_time": "2019-07-10T06:35:14",
"url": "https://files.pythonhosted.org/packages/21/70/8ea97af9e66b43209576fdceabb4ef285ce31bcf838492461d33a91ad27e/pyjsgf-1.7.1.tar.gz"
}
]
}