{
"info": {
"author": "",
"author_email": "",
"bugtrack_url": null,
"classifiers": [],
"description": "SignalFlow language grammar\n===========================\n\nThis repository contains the SignalFx SignalFlow language grammar and the\nstructure and tools required to generate the public code artifacts that make\nthis grammar available in various languages.\n\nThe language is in ANTLR4 format and we use the `antlr` tool to generate the\ncorresponding source code for the target languages. From there, we can build\nartifacts that can be included as dependencies in various projects that need to\nparse SignalFlow programs.\n\n**Note:** if you're looking to use the grammar, you should use one of the\ngenerated artifacts instead of this repository.\n\nAvailable languages\n-------------------\n\nJava\n~~~~\n\nThe ``com.signalfx.public:signalflow-grammar`` artifact Jar is available on\nMaven Central:\n\n.. code:: xml\n\n \n com.signalfx.public\n signalflow-grammar\n 2.12.0\n \n\nJavascript\n~~~~~~~~~~\n\nThe library is available for npm.js, and as a standalone browserified Javascript bundle.\n\nNode.js\n^^^^^^^\n\n.. code::\n\n npm install -g signalflow-grammar.js\n\nIn browser\n^^^^^^^^^^\n\n.. code:: html\n\n \n\nPython\n~~~~~~\n\nThe library is available on PyPI and depends on the Python2 ANTLR runtime:\n\n.. code::\n\n $ pip install signalflow-grammar==2.7.0\n\nThen, from your code, you can do:\n\n.. code:: python\n\n import antlr4\n from signalflow.grammar.SignalFlowV2Lexer import SignalFlowV2Lexer\n from signalflow.grammar.SignalFlowV2Parser import SignalFlowV2Parser\n\n def parse(program):\n lexer = SignalFlowV2Lexer(program)\n stream = antlr4.CommonTokenStream(lexer)\n parser = SignalFlowV2Parser(stream)\n ...\n\nGenerating or updating the artifacts\n------------------------------------\n\nDue to the Python like nature of SignalFlow some native code is\nrequired to keep track of indent/dedent levels. This native code\nis stored in /grammar/*.g4. These native code files are\nstitched into SignalFlowLexer.g4 by the generate_grammar.py script.\n\nUpdate the generated source code with the ``generate.sh`` script:\n\n.. code::\n\n $ ./generate.sh \n $ git commit -a -m \"Bump to version \"\n $ git push origin master\n\nThen for each language, perform a release of the corresponding package.\n\nJava\n~~~~\n\n.. code::\n\n $ cd java/\n $ mvn clean deploy -P release-sign-artifacts -DperformRelease=true -DrepositoryId=ossrh -Dgpg.useagent=false\n\nJavascript\n~~~~~~~~~~\n\n.. code::\n\n $ cd javascript/\n $ npm publish\n $ aws s3 cp signalflow-grammar-.js s3://public-sites--signalfx-com/cdn/\n\nPython\n~~~~~~\n\n.. code::\n\n $ cd python/\n $ python setup.py bdist_wheel\n $ twine upload dist/signalflow_grammar--py2-none-any.whl\n\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "",
"keywords": "",
"license": "Apache Software License v2",
"maintainer": "",
"maintainer_email": "",
"name": "signalflow-grammar",
"package_url": "https://pypi.org/project/signalflow-grammar/",
"platform": "",
"project_url": "https://pypi.org/project/signalflow-grammar/",
"project_urls": null,
"release_url": "https://pypi.org/project/signalflow-grammar/2.12.0/",
"requires_dist": [
"antlr4-python2-runtime"
],
"requires_python": "",
"summary": "SignalFx SignalFlow language grammar",
"version": "2.12.0"
},
"last_serial": 3295314,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "64d03c070cba291e31d6e27a8724dd01",
"sha256": "3fa47fe0b44fecd1395b5dbaefa8aad09aac2306433edb63bb253af3af11e1eb"
},
"downloads": -1,
"filename": "signalflow_grammar-1.0.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "64d03c070cba291e31d6e27a8724dd01",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 16701,
"upload_time": "2016-06-17T23:50:23",
"url": "https://files.pythonhosted.org/packages/a2/85/5fed2ec5276bab1b18c34c61983abe43cce0ddda35fd2bd95975a7c84fb3/signalflow_grammar-1.0.0-py2-none-any.whl"
}
],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "ff101583ce474df51a704e4aca5ab479",
"sha256": "998a1eeff5a0fb927ef6569b44b9056de8ac9da307ae743ed756be76e4b4df04"
},
"downloads": -1,
"filename": "signalflow_grammar-2.0.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "ff101583ce474df51a704e4aca5ab479",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 17603,
"upload_time": "2016-06-17T23:54:08",
"url": "https://files.pythonhosted.org/packages/5e/44/ff0ab4c7f0c52b9616bb036b4a770ffb3375897adb400f4a1fd05c5945e4/signalflow_grammar-2.0.0-py2-none-any.whl"
}
],
"2.1.0": [
{
"comment_text": "",
"digests": {
"md5": "7dc21eca5ea575e0bdb29b618a067451",
"sha256": "44cb76d66e5c6be180299b6e8f64ee9234e4a7c07ee83a4c70e256507740dd35"
},
"downloads": -1,
"filename": "signalflow_grammar-2.1.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "7dc21eca5ea575e0bdb29b618a067451",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 17039,
"upload_time": "2016-07-25T23:48:22",
"url": "https://files.pythonhosted.org/packages/e2/e2/18b73c9b5ea211d9a6b90feb81fd68e3f114f89cc843748223f6fb58484e/signalflow_grammar-2.1.0-py2-none-any.whl"
}
],
"2.10.0": [
{
"comment_text": "",
"digests": {
"md5": "4ec5624821a993361337505db0185050",
"sha256": "48973781b1da4a38c4f5799e14e735f0905f5a9333d6e740312c3a39c6f9cbe0"
},
"downloads": -1,
"filename": "signalflow_grammar-2.10.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "4ec5624821a993361337505db0185050",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 34198,
"upload_time": "2017-08-29T17:25:29",
"url": "https://files.pythonhosted.org/packages/82/fb/e4b90a0ca32a3f772ef52767609c9a95da8d90a485bdccd262ecfc497b8e/signalflow_grammar-2.10.0-py2-none-any.whl"
}
],
"2.11.0": [
{
"comment_text": "",
"digests": {
"md5": "30686c0d3f30b14e21674c51e3927996",
"sha256": "e0a90910e9f90c909f994693d683743ecc74bd2e9d47f91ab8f55839deb696bb"
},
"downloads": -1,
"filename": "signalflow_grammar-2.11.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "30686c0d3f30b14e21674c51e3927996",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 37103,
"upload_time": "2017-09-12T23:07:11",
"url": "https://files.pythonhosted.org/packages/bb/69/30ab809e6a18c9fd15e87cd4524b0d2f271d1355904c54c9dea1fdd262d5/signalflow_grammar-2.11.0-py2-none-any.whl"
}
],
"2.11.1": [
{
"comment_text": "",
"digests": {
"md5": "a974d550ad14e0b363f062fb968d8b19",
"sha256": "a9b74a4c142bfb3087beaab090c27f9c26727368b3b87d6c8bb23f0837724813"
},
"downloads": -1,
"filename": "signalflow_grammar-2.11.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "a974d550ad14e0b363f062fb968d8b19",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 37105,
"upload_time": "2017-09-12T23:23:31",
"url": "https://files.pythonhosted.org/packages/5f/42/43d2e544cd97d565ff007f236de5edb6d6e33d3d35e045d7f8aebd9de710/signalflow_grammar-2.11.1-py2-none-any.whl"
}
],
"2.12.0": [
{
"comment_text": "",
"digests": {
"md5": "b237b2caf9a5de46f88f5c7c1b911108",
"sha256": "b0c1b52e942ed59d141df0691e55d347bfde615e8f7a913d0c5a67303808d987"
},
"downloads": -1,
"filename": "signalflow_grammar-2.12.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "b237b2caf9a5de46f88f5c7c1b911108",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 37385,
"upload_time": "2017-10-31T20:14:28",
"url": "https://files.pythonhosted.org/packages/e3/0e/dda9213a6084bc63eb5e012faefab6ced3e87305eb9e9fc1ea0f396b35c7/signalflow_grammar-2.12.0-py2-none-any.whl"
}
],
"2.2.0": [
{
"comment_text": "",
"digests": {
"md5": "3bcf11053bc43c43c99a4679c437a2be",
"sha256": "0117ae315b10c4bfa40a4090bd8d2def8a73716357904073450606bee4878ca9"
},
"downloads": -1,
"filename": "signalflow_grammar-2.2.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "3bcf11053bc43c43c99a4679c437a2be",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 22176,
"upload_time": "2016-09-06T17:48:59",
"url": "https://files.pythonhosted.org/packages/ad/e7/6192664226faa0398ac79b7f57d3cc6949713b048a2a7836967466868fec/signalflow_grammar-2.2.0-py2-none-any.whl"
}
],
"2.3.0": [
{
"comment_text": "",
"digests": {
"md5": "e101194a834936e8fd46b7138c0dd6b9",
"sha256": "aaf1c342f970c2f6d92ebd17927f70d002bc50112d93f66c0662f209a455f28b"
},
"downloads": -1,
"filename": "signalflow_grammar-2.3.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e101194a834936e8fd46b7138c0dd6b9",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 25687,
"upload_time": "2016-09-21T23:37:45",
"url": "https://files.pythonhosted.org/packages/43/cb/705f8ba2aa082280237bd7e33726bea7a6f97fe0210af489059e93ce8e0f/signalflow_grammar-2.3.0-py2-none-any.whl"
}
],
"2.4.0": [
{
"comment_text": "",
"digests": {
"md5": "e0de38e651fe3df02a80e2c56051a067",
"sha256": "7475f349fae9bfbd6c94daebd814686a250fe2b968c03b9fdceda4ab0f216e8b"
},
"downloads": -1,
"filename": "signalflow_grammar-2.4.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e0de38e651fe3df02a80e2c56051a067",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 25708,
"upload_time": "2016-10-10T22:15:29",
"url": "https://files.pythonhosted.org/packages/ba/0b/957bb5e7a660ecdd8523a9af424a9b7c039547161ac6d40abf8a4366cba0/signalflow_grammar-2.4.0-py2-none-any.whl"
}
],
"2.5.0": [
{
"comment_text": "",
"digests": {
"md5": "c60a13cc724ff1503c033052d9376847",
"sha256": "90f90d252705f143b0ab061d3878ab864af3e681a34c047742db8e180989324f"
},
"downloads": -1,
"filename": "signalflow_grammar-2.5.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "c60a13cc724ff1503c033052d9376847",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 26065,
"upload_time": "2016-10-18T23:56:55",
"url": "https://files.pythonhosted.org/packages/0d/2e/3462a299c64513482381ddfa977221c9e099b886b6986682855c6426e30a/signalflow_grammar-2.5.0-py2-none-any.whl"
}
],
"2.6.0": [
{
"comment_text": "",
"digests": {
"md5": "05321656ba003b244906fb75aea3a0ab",
"sha256": "d8a2f3c729c6f67aa45b287ff974733b6b29bb0f8ba85c7e18ed001ff6740a9c"
},
"downloads": -1,
"filename": "signalflow_grammar-2.6.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "05321656ba003b244906fb75aea3a0ab",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 28889,
"upload_time": "2016-10-25T18:32:49",
"url": "https://files.pythonhosted.org/packages/2f/6c/d5f705f820ffc2e33bd40b05cb844ccb354baf165b54b55c64f902295dff/signalflow_grammar-2.6.0-py2-none-any.whl"
}
],
"2.7.0": [
{
"comment_text": "",
"digests": {
"md5": "f6504ca4f70940db3d0f35368629cf3c",
"sha256": "2690f6c2aa650aaeb8b8ad427cdad8f9f2d821d9cc8e74b375e1e2033f602c66"
},
"downloads": -1,
"filename": "signalflow_grammar-2.7.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "f6504ca4f70940db3d0f35368629cf3c",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 30574,
"upload_time": "2016-11-09T22:50:06",
"url": "https://files.pythonhosted.org/packages/22/12/e207db49c149d97273b0ca14455dcbb5073f2c6ea0668d60465c48c33fc0/signalflow_grammar-2.7.0-py2-none-any.whl"
}
],
"2.8.0": [
{
"comment_text": "",
"digests": {
"md5": "dbdbc8b3e50f7d7bf4fd6fdbb25441c0",
"sha256": "48dc5e39c2e34635c2d576973acd8fc8f8f4c0a1f66e7773347b847d79d03ed8"
},
"downloads": -1,
"filename": "signalflow_grammar-2.8.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "dbdbc8b3e50f7d7bf4fd6fdbb25441c0",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 32317,
"upload_time": "2016-12-05T17:27:30",
"url": "https://files.pythonhosted.org/packages/7a/07/e20b7d0fff8e40787cc46a7f836cc96cafea422cc04b0b406d876a659efb/signalflow_grammar-2.8.0-py2-none-any.whl"
}
],
"2.8.1": [
{
"comment_text": "",
"digests": {
"md5": "76a051369a613ae4ed28f5c4273e8ec1",
"sha256": "19d40a071f77a943e66d2dfc0c7b20e528325ab1a952d6662680aed109c54448"
},
"downloads": -1,
"filename": "signalflow_grammar-2.8.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "76a051369a613ae4ed28f5c4273e8ec1",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 32322,
"upload_time": "2016-12-05T17:44:53",
"url": "https://files.pythonhosted.org/packages/a0/5c/f58571c569a432282a6002457ccf374193a362bc9ba827052f9c28570c13/signalflow_grammar-2.8.1-py2-none-any.whl"
}
],
"2.9.0": [
{
"comment_text": "",
"digests": {
"md5": "9e8156e4945687e985e619915bc4b047",
"sha256": "845a85679ae0c98e0b3ee3b7d8dac304f6fb4bd53b11ec617c373ae6e697765f"
},
"downloads": -1,
"filename": "signalflow_grammar-2.9.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "9e8156e4945687e985e619915bc4b047",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 32648,
"upload_time": "2017-04-28T21:14:05",
"url": "https://files.pythonhosted.org/packages/b0/d6/47628fdb64587d3b2258e996c23287f09ff3d1363ecbc24c5862dd40fab6/signalflow_grammar-2.9.0-py2-none-any.whl"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "b237b2caf9a5de46f88f5c7c1b911108",
"sha256": "b0c1b52e942ed59d141df0691e55d347bfde615e8f7a913d0c5a67303808d987"
},
"downloads": -1,
"filename": "signalflow_grammar-2.12.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "b237b2caf9a5de46f88f5c7c1b911108",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 37385,
"upload_time": "2017-10-31T20:14:28",
"url": "https://files.pythonhosted.org/packages/e3/0e/dda9213a6084bc63eb5e012faefab6ced3e87305eb9e9fc1ea0f396b35c7/signalflow_grammar-2.12.0-py2-none-any.whl"
}
]
}