This release is a pre-release and may not be stable for production use.
SVL: Declarative Dashboards
SVL is a declarative, SQL-like language for simple reports and dashboards.
Initially I made this project to learn and experiment with EBNF context-free grammars, but pretty quickly realized this was something I could actually use for my job. Maybe you will find it useful too.
If you're interested, hit the link for the docs below.
and install with
pip install svl
Not convinced? Maybe ✨ this ✨ will change your mind...
SVL code:
DATASETS
bigfoot "sample_data/bigfoot_sightings.csv"
LINE bigfoot
X date BY YEAR
Y number COUNT
SPLIT BY classification
CONCAT(
HISTOGRAM bigfoot X temperature_mid
HISTOGRAM bigfoot X humidity
)
Results:
Alpha Features
✅ Easy to learn: The entire grammar is under 150 lines.
6️⃣ Chart types: Line, bar, scatter, histogram and pie. And number. I plan on adding more, so if I'm missing your favorite one let me know.
📈 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.
📊 Interactive HTML output: SVL uses Plotly to draw the visualizations, and produces an easily shareable but still interactive HTML file.
📂 CSV and Parquet files: Currently the data is limited to files, and SVL has support for CSV and (if pyarrow is installed) parquet files.
Not Alpha Features, but Possible
Other plot backends The compiler isn't married to Plotly. SVL can have future support for other backends like Vega, Bokeh, or even Matplotlib (probably).
Other data sources For simplicity SVL operates on files, but like the plot renderer the compiler isn't coupled to flat files. In fact, most of the data processing is done under the hood by SQLite, so adding support for other data processors like Postgres or MySQL is definitely possible.
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!
I'm sold!
🎉 Sweet! 🎉 Check out the docs here to learn more.
Development
I've been using Anaconda to manage environments. If you've got that installed, just do
conda env create -f env.yml
# then install the module
conda activate svl && pip install -e .
To run the tests,
pytest test/ --cov=svl # last option if you want coverage.
To lint,
flake8 svl
in the top level directory and start hacking away!
Metadata
Release files for svl 0.1a8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| svl-0.1a8.tar.gz | 962.1 kB | Without provenance | Details for svl-0.1a8.tar.gz |
Release files / svl-0.1a8.tar.gz
| Download URL | svl-0.1a8.tar.gz |
|---|---|
| Size | 962.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6423be91512932bd57aa5ea11556f48e9b94d586bd3a79feed30c040b2508bf8
|
|
BLAKE2b-256 checksum How to use checksums |
7cf9645d58edb3c70c3373f95aa24150530629cf966824d50b5b86d1ec84ef97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.5.6
|
Security for svl 0.1a8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.