Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pip/_vendor/tenacity/before.py: 38%

13 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:48 +0000

1# Copyright 2016 Julien Danjou 

2# Copyright 2016 Joshua Harlow 

3# Copyright 2013-2014 Ray Holder 

4# 

5# Licensed under the Apache License, Version 2.0 (the "License"); 

6# you may not use this file except in compliance with the License. 

7# You may obtain a copy of the License at 

8# 

9# http://www.apache.org/licenses/LICENSE-2.0 

10# 

11# Unless required by applicable law or agreed to in writing, software 

12# distributed under the License is distributed on an "AS IS" BASIS, 

13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

14# See the License for the specific language governing permissions and 

15# limitations under the License. 

16 

17import typing 

18 

19from pip._vendor.tenacity import _utils 

20 

21if typing.TYPE_CHECKING: 

22 import logging 

23 

24 from pip._vendor.tenacity import RetryCallState 

25 

26 

27def before_nothing(retry_state: "RetryCallState") -> None: 

28 """Before call strategy that does nothing.""" 

29 

30 

31def before_log(logger: "logging.Logger", log_level: int) -> typing.Callable[["RetryCallState"], None]: 

32 """Before call strategy that logs to some logger the attempt.""" 

33 

34 def log_it(retry_state: "RetryCallState") -> None: 

35 if retry_state.fn is None: 

36 # NOTE(sileht): can't really happen, but we must please mypy 

37 fn_name = "<unknown>" 

38 else: 

39 fn_name = _utils.get_callback_name(retry_state.fn) 

40 logger.log( 

41 log_level, 

42 f"Starting call to '{fn_name}', " 

43 f"this is the {_utils.to_ordinal(retry_state.attempt_number)} time calling it.", 

44 ) 

45 

46 return log_it