ConnectionProperties (class)
ConnectionProperties objects hold the properties of a database connection in the Squirrels framework.
The class can be imported from the squirrels.connections
or squirrels
module.
Constructor
def __init__(
self, uri: str, *, label: str = None,
type: squirrels.ConnectionTypeEnum = squirrels.ConnectionTypeEnum.SQLALCHEMY,
sa_create_engine_args: dict = {}
) -> None:
Creates a ConnectionProperties object.
Keyword Arguments:
The only required keyword argument to the constructor is:
uri
In addition, the constructor accepts the following optional keyword arguments:
label
- Default isNone
type
- Default isConnectionTypeEnum.SQLALCHEMY
sa_create_engine_args
- Default is an empty dictionary
All of the above arguments are also attributes of the class. See the Attributes section below for more information on each.
Attributes
Attributes of ConnectionProperties that can be accessed.
label
Human-readable label for the connection. If None
, the connection name is used as the label.
Type: str | None
type
The type of connection as an instance of ConnectionTypeEnum. Default is ConnectionTypeEnum.SQLALCHEMY
.
Type: squirrels.ConnectionTypeEnum
uri
The URI for the database connection.
Type: str
sa_create_engine_args
Additional arguments to pass to SQLAlchemy's create_engine
function if the connection type is SQLALCHEMY
. Default is an empty dictionary.
Type: dict[str, Any]
engine
A cached property that creates and returns a SQLAlchemy engine instance if the connection type is SQLALCHEMY
. Raises a ValueError
for other connection types.
Type: sqlalchemy.engine.Engine
dialect
A cached property that determines the database dialect from the connection. Returns the detected database dialect (e.g., 'sqlite', 'postgres', 'mysql') as a string.
Type: str
attach_uri_for_duckdb
A cached property that generates a connection string suitable for DuckDB attachments. Returns a formatted connection string for DuckDB or None
if the dialect is not supported.
Type: str | None
Example
from squirrels import connections as cn
# Create a SQLite connection
connection = cn.ConnectionProperties(
label="my_database",
type=cn.ConnectionTypeEnum.SQLALCHEMY,
uri="sqlite:///path/to/database.db"
)
# Access the engine
engine = connection.engine
# Get the dialect
dialect = connection.dialect