Source code for sqlo.builder

from typing import Any, Union

from .dialects.mysql import MySQLDialect
from .expressions import Func, Raw
from .query.delete import DeleteQuery
from .query.insert import InsertQuery
from .query.select import SelectQuery
from .query.update import UpdateQuery


[docs] class Q: """Query Builder Factory.""" _default_dialect = MySQLDialect() _debug = False
[docs] @classmethod def set_debug(cls, debug: bool = True): """Enable or disable debug mode (prints SQL to stdout).""" cls._debug = debug
[docs] @classmethod def set_dialect(cls, dialect): """Set the default dialect for all queries.""" cls._default_dialect = dialect
[docs] @classmethod def get_dialect(cls): """Get the current default dialect.""" return cls._default_dialect
[docs] @staticmethod def select(*columns: Union[str, Raw, Func]) -> SelectQuery[Any]: return SelectQuery(*columns, dialect=Q._default_dialect, debug=Q._debug)
[docs] @staticmethod def insert_into(table: str) -> InsertQuery: return InsertQuery(table, dialect=Q._default_dialect, debug=Q._debug)
[docs] @staticmethod def update(table: str) -> UpdateQuery: return UpdateQuery(table, dialect=Q._default_dialect, debug=Q._debug)
[docs] @staticmethod def delete_from(table: str) -> DeleteQuery: return DeleteQuery(table, dialect=Q._default_dialect, debug=Q._debug)
[docs] @staticmethod def raw(sql: str, params: Any = None) -> Raw: return Raw(sql, params)