Skip to main content

Squirrels - API Framework for Data Analytics

Project description

Squirrels

Squirrels is an API framework that lets you create REST APIs for dynamic data analytics!

Documentation: https://squirrels-analytics.github.io/

Source Code: https://github.com/squirrels-analytics/squirrels

Table of Contents

Main Features

Here are a few of the things that squirrels can do:

  • Connect to any database by specifying its SQLAlchemy url (in squirrels.yml) or by using its native connector library in python (in connections.py).
  • Configure API routes for datasets (in squirrels.yml) without writing code.
  • Configure parameter widgets (types include single-select, multi-select, date, number, etc.) for your datasets (in parameters.py).
  • Use Jinja SQL templates (just like dbt!) or python functions (that return a pandas dataframe) to define dynamic query logic based on parameter selections.
  • Query multiple databases and join the results together in a final view in one API endpoint/dataset!
  • Test your API endpoints with an interactive UI or by a command line that generates rendered sql queries and results (for a given set of parameter selections).
  • Define authentication logic (in auth.py) and authorize privacy scope per dataset (in squirrels.yml). The user's attributes can even be used in your query logic!

License

Squirrels is released under the Apache 2.0 license.

See the file LICENSE for more details.

Contributing to squirrels

The sections below describe how to set up your local environment for squirrels development and run unit tests. A high level overview of the project structure is also provided.

Setup

This project requires python version 3.10 or above to be installed. It also uses the python build tool poetry. Information on setting up poetry can be found at: https://python-poetry.org/docs/.

Then, to install all dependencies, run:

poetry install

And activate the virtual environment created by poetry with:

poetry shell

To confirm that the setup worked, run the following to show the help page for all squirrels CLI commands:

sqrl -h

You can enter exit to exit the virtual environment shell. You can also run poetry run sqrl -h to run squirrels commands without activating the virtual environment.

Testing

In poetry's virtual environment, run pytest.

Project Structure

From the root of the git repo, the source code can be found in the squirrels folder and unit tests can be found in the tests folder.

To understand what a specific squirrels command is doing, start from the _command_line.py file as your entry point.

The library version is maintained in both the pyproject.toml and the squirrels/_version.py files.

When a user initializes a squirrels project using sqrl init, the files are copied from the squirrels/package_data/base_project folder. The contents in the database subfolder were constructed from the scripts in the database_elt folder.

For the Squirrels UI activated by sqrl run, the HTML, CSS, and Javascript files can be found in the static and templates subfolders of squirrels/package_data. The CSS and Javascript files are minified and built from the source files in this project: https://github.com/squirrels-analytics/squirrels-testing-ui.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

squirrels-0.4.1.tar.gz (251.8 kB view details)

Uploaded Source

Built Distribution

squirrels-0.4.1-py3-none-any.whl (266.3 kB view details)

Uploaded Python 3

File details

Details for the file squirrels-0.4.1.tar.gz.

File metadata

  • Download URL: squirrels-0.4.1.tar.gz
  • Upload date:
  • Size: 251.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1025-azure

File hashes

Hashes for squirrels-0.4.1.tar.gz
Algorithm Hash digest
SHA256 d5cf7850d458da6fc2ca5b0f4402ea69c557c577dfe4c3dff30857d8ea1507c3
MD5 7c2753f073881efad48c27c61e0f8be1
BLAKE2b-256 edd6a34289162bcfbc2e6c392688efd08afe677f77e90f48a33f143d6541b7b2

See more details on using hashes here.

File details

Details for the file squirrels-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: squirrels-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 266.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1025-azure

File hashes

Hashes for squirrels-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a30ee34a929f5d69ca30cb8bcae4f741c401729cdb3be4bdb566dd1ca7b1a0d
MD5 36754bfeb72dc746e991bba8c8baf335
BLAKE2b-256 1050112402098e4d9ee0e5824d0a90cca04909a378bcd43d47933e42edb6b703

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page