Construct a new :class:`.Compiled` object. :param dialect: :class:`.Dialect` to compile against. :param statement: :class:`_expression.ClauseElement` to be compiled. :param schema_translate_map: dictionary of schema names to be translated when forming the resultan
(
self,
dialect: Dialect,
statement: Optional[ClauseElement],
schema_translate_map: Optional[SchemaTranslateMapType] = None,
render_schema_translate: bool = False,
compile_kwargs: Mapping[str, Any] = util.immutabledict(),
)
| 891 | cache stats.""" |
| 892 | |
| 893 | def __init__( |
| 894 | self, |
| 895 | dialect: Dialect, |
| 896 | statement: Optional[ClauseElement], |
| 897 | schema_translate_map: Optional[SchemaTranslateMapType] = None, |
| 898 | render_schema_translate: bool = False, |
| 899 | compile_kwargs: Mapping[str, Any] = util.immutabledict(), |
| 900 | ): |
| 901 | """Construct a new :class:`.Compiled` object. |
| 902 | |
| 903 | :param dialect: :class:`.Dialect` to compile against. |
| 904 | |
| 905 | :param statement: :class:`_expression.ClauseElement` to be compiled. |
| 906 | |
| 907 | :param schema_translate_map: dictionary of schema names to be |
| 908 | translated when forming the resultant SQL |
| 909 | |
| 910 | .. seealso:: |
| 911 | |
| 912 | :ref:`schema_translating` |
| 913 | |
| 914 | :param compile_kwargs: additional kwargs that will be |
| 915 | passed to the initial call to :meth:`.Compiled.process`. |
| 916 | |
| 917 | |
| 918 | """ |
| 919 | self.dialect = dialect |
| 920 | self.preparer = self.dialect.identifier_preparer |
| 921 | if schema_translate_map: |
| 922 | self.schema_translate_map = schema_translate_map |
| 923 | self.preparer = self.preparer._with_schema_translate( |
| 924 | schema_translate_map |
| 925 | ) |
| 926 | |
| 927 | if statement is not None: |
| 928 | self.state = CompilerState.COMPILING |
| 929 | self.statement = statement |
| 930 | self.can_execute = statement.supports_execution |
| 931 | self._annotations = statement._annotations |
| 932 | if self.can_execute: |
| 933 | if TYPE_CHECKING: |
| 934 | assert isinstance(statement, Executable) |
| 935 | self.execution_options = statement._execution_options |
| 936 | self.string = self.process(self.statement, **compile_kwargs) |
| 937 | |
| 938 | if render_schema_translate: |
| 939 | assert schema_translate_map is not None |
| 940 | self.string = self.preparer._render_schema_translates( |
| 941 | self.string, schema_translate_map |
| 942 | ) |
| 943 | |
| 944 | self.state = CompilerState.STRING_APPLIED |
| 945 | else: |
| 946 | self.state = CompilerState.NO_STATEMENT |
| 947 | |
| 948 | self._gen_time = perf_counter() |
| 949 | |
| 950 | def __init_subclass__(cls) -> None: |
no test coverage detected