session
pinky_streamlit.session
Snowflake session management for Streamlit in Snowflake apps.
In SiS production context: get_active_session() is called automatically. In local dev: configure a LocalSessionConfig pointing to a named connection in ~/.snowflake/connections.toml.
LocalSessionConfig
dataclass
Named-connection config for local development fallback.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
connection_name
|
str
|
Connection name defined in ~/.snowflake/connections.toml. |
required |
role
|
str | None
|
Role to activate after connecting (None = keep default). |
None
|
warehouse
|
str | None
|
Warehouse to use (None = keep default). |
None
|
database
|
str | None
|
Database to use (None = keep default). |
None
|
schema
|
str | None
|
Schema to use (None = keep default). |
None
|
Source code in src/pinky_streamlit/core/session.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
SessionInfo
Bases: NamedTuple
Return value of get_session() — supports both named access and positional unpacking.
Source code in src/pinky_streamlit/core/session.py
24 25 26 27 28 29 | |
get_session(local_config=None)
Return a Snowpark session, the current user login, and the environment tag.
In Streamlit in Snowflake: uses get_active_session() and st.user.login_name. In local dev: builds a session from local_config via a named connection.
Environment is derived from the database name suffix (e.g. MY_DB_QA → "QA", MY_DB_PROD → "PROD"). Returns "UNDEFINED" if the suffix cannot be resolved.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
local_config
|
LocalSessionConfig | None
|
Optional fallback config for local development. Required when running outside Snowflake. |
None
|
Returns:
| Type | Description |
|---|---|
SessionInfo
|
SessionInfo(session, login, environment) — supports positional unpacking. |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If outside Snowflake context and no local_config is provided. |
Source code in src/pinky_streamlit/core/session.py
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | |