Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/jedi/api/completion_cache.py: 50%

22 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-04-20 06:09 +0000

1from typing import Dict, Tuple, Callable 

2 

3CacheValues = Tuple[str, str, str] 

4CacheValuesCallback = Callable[[], CacheValues] 

5 

6 

7_cache: Dict[str, Dict[str, CacheValues]] = {} 

8 

9 

10def save_entry(module_name: str, name: str, cache: CacheValues) -> None: 

11 try: 

12 module_cache = _cache[module_name] 

13 except KeyError: 

14 module_cache = _cache[module_name] = {} 

15 module_cache[name] = cache 

16 

17 

18def _create_get_from_cache(number: int) -> Callable[[str, str, CacheValuesCallback], str]: 

19 def _get_from_cache(module_name: str, name: str, get_cache_values: CacheValuesCallback) -> str: 

20 try: 

21 return _cache[module_name][name][number] 

22 except KeyError: 

23 v = get_cache_values() 

24 save_entry(module_name, name, v) 

25 return v[number] 

26 return _get_from_cache 

27 

28 

29get_type = _create_get_from_cache(0) 

30get_docstring_signature = _create_get_from_cache(1) 

31get_docstring = _create_get_from_cache(2)