Skip to main content

Python package to make it easy to develop beautiful, performant streamlit-in-snowflake apps

Project description

sis-extras

Overview

The sis-extras package provides a set of Python utilities designed to help you develop beautiful, performant streamlit-in-snowflake apps.

Currently, this package includes modules for managing database connections (connection.py) and creating interactive data tiles (formatting.py).

Installation

To install sis-extras, you can use pip:

pip install sis-extras

Modules

connection.py

This module handles connections to Snowflake databases, providing functionality to manage sessions and execute SQL queries directly, returning results in a Pandas DataFrame format.

Key Functions:

  • SnowparkConnection: Manages Snowflake database connections.
  • get_data_frame_from_raw_sql: Executes a SQL query and returns the results as a Pandas DataFrame.
  • get_pandas_df: Converts a Snowpark DataFrame to a Pandas DataFrame.
  • join_cached: Provides a cached mechanism for joining two Snowpark DataFrames.

formatting.py

This module aids in the visualization of data using Streamlit, Altair, and Plotly, focusing on creating interactive tiles that can display data, charts, and SQL queries.

Key Functions:

  • tile: Creates a tile in Streamlit that can display a chart, data preview, SQL query, and a description.
  • tile_ctx: A context manager version of tile for more flexible content management within a tile.
  • altair_time_series: Generates a time series chart using Altair, designed to handle specific formatting and tooltip requirements.

Usage Examples

Using SnowparkConnection

from sis_extras.connection import get_table, get_data_frame_from_raw_sql, get_pandas_df

# Use Snowpark API

table = get_table("your_table").limit(10)

table_pd = get_pandas_df(table)

st.write(table_pd)

# Use SQL

table_pd = get_data_frame_from_raw_sql("SELECT * FROM your_table")

st.write(table_pd)

Creating a Data Tile

from sis_extras.formatting import tile
import pandas as pd
import altair as alt

# Sample DataFrame

data = pd.DataFrame({
    'x': range(10),
    'y': range(10)
})

# Sample Chart

chart = alt.Chart(data).mark_line().encode(
    x='x',
    y='y'
)

# Create a tile with data and chart

tile(data, "Sample Tile", chart=chart, sql="SELECT x, y FROM your_table")

Shows a tile with data and chart

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

sis_extras-0.1.3.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

sis_extras-0.1.3-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file sis_extras-0.1.3.tar.gz.

File metadata

  • Download URL: sis_extras-0.1.3.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.15.3 CPython/3.10.12 Linux/6.5.0-1021-azure

File hashes

Hashes for sis_extras-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e7e1892ab5eef36e38880dc9b636597dce83162df4d51f3f7f509a7e792e8a73
MD5 62948d471377221489382454b7934e50
BLAKE2b-256 cafe22dbfb8813c76412f7a3db2d2c31b5d547c253c82ba08e6870149483d5c4

See more details on using hashes here.

File details

Details for the file sis_extras-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: sis_extras-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.15.3 CPython/3.10.12 Linux/6.5.0-1021-azure

File hashes

Hashes for sis_extras-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0f331b325ed9d7fff1449817a89351018c037aee7975893e190f675872908c22
MD5 90296d2720744f0f758064205314a6b8
BLAKE2b-256 448fe6237bae566eb040e5045a745f098ed1a14be40d86f41fc065860339a5dd

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