"""
This file is generated by sqldao-generator; don't modify anything
"""
from sqlalchemy import BinaryExpression

from {datasource_package}.{datasource_name} import datasource, {datasource_name}


class {base_dao_name}:
    datasource: {datasource_name}

    def __init__(self):
        self.datasource = datasource

    def is_transaction_exists(self):
        return self.datasource.transactionManager.is_exists()

    def get_transaction(self):
        return self.datasource.transactionManager.get_transaction()

    def new_transaction(self):
        return self.datasource.transactionManager.new_transaction()

    @staticmethod
    def is_in_modules(expressions: list[BinaryExpression], *clss: type):
        modules = [cls.__module__ for cls in clss]
        return all([expression.left.entity_namespace.__module__ in modules
                    for expression in expressions])
