[docs]classSqlalchemyConnection(BaseConnection):""" Configures SQLAlchemy connections to support any SQL database. Provides three connection methods: :param type: DO NOT set this field manually, it is automatically set to "sqlalchemy". :param url: hard-coded connection URL, e.g., "sqlite:///path/to/db.sqlite", see: https://docs.sqlalchemy.org/en/20/core/engines.html The following are ``sqlalchemy.URL`` parameters, which can be used to construct the URL dynamically: https://docs.sqlalchemy.org/en/20/core/engines.html#creating-urls-programmatically :param drivername: a `URL` class parameter :param username: a `URL` class parameter :param password: a `URL` class parameter :param host: a `URL` class parameter :param port: a `URL` class parameter :param database: a `URL` class parameter :param query: a `URL` class parameter :param create_engine_kwargs: additional keyword arguments for `sa.create_engine() <https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine>`_ """type:T.Literal["sqlalchemy"]=Field(default=ConnectionTypeEnum.SQLALCHEMY.value)url:T.Optional[str]=Field(default=None)drivername:T.Optional[str]=Field(default=None)username:T.Optional[str]=Field(default=None)password:T.Optional[str]=Field(default=None)host:T.Optional[str]=Field(default=None)port:T.Optional[int]=Field(default=None)database:T.Optional[str]=Field(default=None)query:T.Optional[T.Mapping[str,T.Union[T.Sequence[str],str]]]=Field(default=None)create_engine_kwargs:dict[str,T.Any]=Field(default_factory=dict)@propertydef_url(self)->T.Union[str,"sa.URL"]:ifself.urlisnotNone:returnself.urlifself.queryisNone:self.query={}url=sa.URL.create(drivername=self.drivername,username=self.username,password=self.password,host=self.host,port=self.port,database=self.database,query=self.query,)returnurl@cached_propertydefsa_engine(self)->"sa.Engine":""" Create a SQLAlchemy engine using the provided URL and additional parameters. """returnsa.create_engine(self._url,**self.create_engine_kwargs)