Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/sqlalchemy/util/_has_cy.py: 70%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

23 statements  

1# util/_has_cy.py 

2# Copyright (C) 2005-2025 the SQLAlchemy authors and contributors 

3# <see AUTHORS file> 

4# 

5# This module is part of SQLAlchemy and is released under 

6# the MIT License: https://www.opensource.org/licenses/mit-license.php 

7# mypy: ignore-errors 

8 

9import os 

10import typing 

11 

12 

13def _import_cy_extensions(): 

14 # all cython extension extension modules are treated as optional by the 

15 # setup, so to ensure that all are compiled, all should be imported here 

16 from ..cyextension import collections 

17 from ..cyextension import immutabledict 

18 from ..cyextension import processors 

19 from ..cyextension import resultproxy 

20 from ..cyextension import util 

21 

22 return (collections, immutabledict, processors, resultproxy, util) 

23 

24 

25_CYEXTENSION_MSG: str 

26if not typing.TYPE_CHECKING: 

27 if os.environ.get("DISABLE_SQLALCHEMY_CEXT_RUNTIME"): 

28 HAS_CYEXTENSION = False 

29 _CYEXTENSION_MSG = "DISABLE_SQLALCHEMY_CEXT_RUNTIME is set" 

30 else: 

31 try: 

32 _import_cy_extensions() 

33 except ImportError as err: 

34 HAS_CYEXTENSION = False 

35 _CYEXTENSION_MSG = str(err) 

36 else: 

37 _CYEXTENSION_MSG = "Loaded" 

38 HAS_CYEXTENSION = True 

39else: 

40 HAS_CYEXTENSION = False