{ "info": { "author": "Tim Renner", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# SVL: Declarative Dashboards\n\n[![Build Status](https://travis-ci.org/timothyrenner/svl.svg?branch=master)](https://travis-ci.org/timothyrenner/svl) [![Coverage Status](https://coveralls.io/repos/github/timothyrenner/svl/badge.svg?branch=master)](https://coveralls.io/github/timothyrenner/svl?branch=master) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n\nSVL is a declarative, SQL-like language for simple reports and dashboards.\n\nInitially I made this project to learn and experiment with [EBNF](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form) context-free grammars, but pretty quickly realized this was something I could actually use for my job.\nMaybe you will find it useful too.\n\nIf you're interested, hit the link for the docs below.\n\n[timothyrenner.github.io/svl](https://timothyrenner.github.io/svl/)\n\nand install with\n\n```\npip install svl\n```\n\nNot convinced?\nMaybe \u2728 ***this*** \u2728 will change your mind...\n\nSVL code:\n\n```\nDATASETS\n bigfoot \"sample_data/bigfoot_sightings.csv\"\nLINE bigfoot\n X date BY YEAR\n Y number COUNT\n SPLIT BY classification\nCONCAT(\n HISTOGRAM bigfoot X temperature_mid\n HISTOGRAM bigfoot X humidity\n)\n```\n\nResults:\n\n![](docs/images/readme_example.png)\n\n## Alpha Features\n\n\u2705 **Easy to learn**: The entire grammar is under 150 lines.\n\n\ud83d\udd90 **Five chart types**: Line, bar, scatter, histogram and pie. I plan on adding more, so if I'm missing your favorite one let me know.\n\n\ud83d\udcc8 **Complex layouts**: SVL scripts can support any number of plots and makes it straightforward to arrange them so that the most important plots get the most real estate.\n\n\ud83d\udcca **Interactive HTML output**: SVL uses [Plotly](https://plot.ly/javascript/) to draw the visualizations, and produces an easily shareable but still interactive HTML file.\n\n\ud83d\udcc2 **CSV and Parquet files**: Currently the data is limited to files, and SVL has support for CSV and (if [pyarrow](https://arrow.apache.org/docs/python/) is installed) parquet files.\n\n## Not Alpha Features, but Possible\n\n**Other plot backends** The compiler isn't married to Plotly.\nSVL can have future support for other backends like Vega, Bokeh, or even Matplotlib (probably).\n\n**Other data sources** For simplicity SVL operates on files, but like the plot renderer the compiler isn't coupled to flat files.\nIn fact, most of the data processing is done under the hood by [SQLite](https://sqlite.org/index.html), so adding support for other data processors like Postgres or MySQL is definitely possible.\n\n**Other plot types** I picked those five for the alpha release because they're the most common, but obviously more support can be added. Let me know what other chart types you'd like to see!\n\n## I'm sold!\n\n\ud83c\udf89 Sweet! \ud83c\udf89 Check out the docs [here](https://timothyrenner.github.io/svl/) to learn more.\n\n\n## Development\n\nI've been using [Anaconda](https://www.anaconda.com/distribution/) to manage environments.\nIf you've got that installed, just do\n\n```bash\nconda env create -f env.yml\n\n# then install the module\n\nconda activate svl && pip install -e .\n```\n\nTo run the tests,\n\n```bash\npytest test/ --cov=svl # last option if you want coverage.\n```\n\nTo lint,\n\n```bash\nflake8 svl\n```\n\nin the top level directory and start hacking away!", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/timothyrenner/svl", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "svl", "package_url": "https://pypi.org/project/svl/", "platform": "", "project_url": "https://pypi.org/project/svl/", "project_urls": { "Homepage": "https://github.com/timothyrenner/svl" }, "release_url": "https://pypi.org/project/svl/0.1a6/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.1a6" }, "last_serial": 5803520, "releases": { "0.1a4": [ { "comment_text": "", "digests": { "md5": "6be874a9954cbc1967669b5ad379a5de", "sha256": "9cb08edca34a1bd65e0d49222f8dec0d5adeed88dbb0d9385949d6f7273c6eef" }, "downloads": -1, "filename": "svl-0.1a4-py3-none-any.whl", "has_sig": false, "md5_digest": "6be874a9954cbc1967669b5ad379a5de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18318, "upload_time": "2019-03-26T18:55:51", "url": "https://files.pythonhosted.org/packages/83/ab/57bb4faaaf146333aab25e64a26507db2effb81a639fcee3632c225c8c69/svl-0.1a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "958f122769f6bf4a53f2c8df12ed73d8", "sha256": "9ff268b0d9162298c292656ac958c72e28d49b09aa8c7fd2a001d3dc8901285f" }, "downloads": -1, "filename": "svl-0.1a4.tar.gz", "has_sig": false, "md5_digest": "958f122769f6bf4a53f2c8df12ed73d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44846, "upload_time": "2019-03-26T18:55:52", "url": "https://files.pythonhosted.org/packages/0a/8d/26ce936b9b5a6740f59b001900146ca8d76813161b2f7f429bf69d23662e/svl-0.1a4.tar.gz" } ], "0.1a5": [ { "comment_text": "", "digests": { "md5": "bfc1f5f68e69ba6eb6858159f8332537", "sha256": "d79d19f570ce0d12091068428e88b8cec63ebe00ef2ba281fb38de53b72971f9" }, "downloads": -1, "filename": "svl-0.1a5.tar.gz", "has_sig": false, "md5_digest": "bfc1f5f68e69ba6eb6858159f8332537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 960899, "upload_time": "2019-07-29T21:58:56", "url": "https://files.pythonhosted.org/packages/5a/55/b3c022c4155eef7719ac28d1d36342f37af1980b7ed0ecf30563fe90925c/svl-0.1a5.tar.gz" } ], "0.1a6": [ { "comment_text": "", "digests": { "md5": "b4d878537cf6d6cc6c4e1d487444402f", "sha256": "09e8d41317af2b8f45234b0dc6303a6c00ea59e6f13b1b0557df6b3a4ca682f0" }, "downloads": -1, "filename": "svl-0.1a6.tar.gz", "has_sig": false, "md5_digest": "b4d878537cf6d6cc6c4e1d487444402f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 960997, "upload_time": "2019-09-09T13:04:34", "url": "https://files.pythonhosted.org/packages/fa/b1/0212fa226db4cfbc295a820a98908452fa9e10dc232a3109b027c8e388cc/svl-0.1a6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b4d878537cf6d6cc6c4e1d487444402f", "sha256": "09e8d41317af2b8f45234b0dc6303a6c00ea59e6f13b1b0557df6b3a4ca682f0" }, "downloads": -1, "filename": "svl-0.1a6.tar.gz", "has_sig": false, "md5_digest": "b4d878537cf6d6cc6c4e1d487444402f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 960997, "upload_time": "2019-09-09T13:04:34", "url": "https://files.pythonhosted.org/packages/fa/b1/0212fa226db4cfbc295a820a98908452fa9e10dc232a3109b027c8e388cc/svl-0.1a6.tar.gz" } ] }