diff options
Diffstat (limited to 'lib/sqlalchemy/engine/processors.py')
| -rw-r--r-- | lib/sqlalchemy/engine/processors.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/sqlalchemy/engine/processors.py b/lib/sqlalchemy/engine/processors.py index 398c1fa36..7a6a57c03 100644 --- a/lib/sqlalchemy/engine/processors.py +++ b/lib/sqlalchemy/engine/processors.py @@ -14,9 +14,20 @@ They all share one common characteristic: None is passed through unchanged. """ from __future__ import annotations +import typing + from ._py_processors import str_to_datetime_processor_factory # noqa +from ..util._has_cy import HAS_CYEXTENSION -try: +if typing.TYPE_CHECKING or not HAS_CYEXTENSION: + from ._py_processors import int_to_boolean # noqa + from ._py_processors import str_to_date # noqa + from ._py_processors import str_to_datetime # noqa + from ._py_processors import str_to_time # noqa + from ._py_processors import to_decimal_processor_factory # noqa + from ._py_processors import to_float # noqa + from ._py_processors import to_str # noqa +else: from sqlalchemy.cyextension.processors import ( DecimalResultProcessor, ) # noqa @@ -34,12 +45,3 @@ try: # Decimal('5.00000') whereas the C implementation will # return Decimal('5'). These are equivalent of course. return DecimalResultProcessor(target_class, "%%.%df" % scale).process - -except ImportError: - from ._py_processors import int_to_boolean # noqa - from ._py_processors import str_to_date # noqa - from ._py_processors import str_to_datetime # noqa - from ._py_processors import str_to_time # noqa - from ._py_processors import to_decimal_processor_factory # noqa - from ._py_processors import to_float # noqa - from ._py_processors import to_str # noqa |
