python (3.11.7)
       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  
      17  import typing
      18  
      19  from pip._vendor.tenacity import _utils
      20  
      21  if typing.TYPE_CHECKING:
      22      import logging
      23  
      24      from pip._vendor.tenacity import RetryCallState
      25  
      26  
      27  def after_nothing(retry_state: "RetryCallState") -> None:
      28      """After call strategy that does nothing."""
      29  
      30  
      31  def after_log(
      32      logger: "logging.Logger",
      33      log_level: int,
      34      sec_format: str = "%0.3f",
      35  ) -> typing.Callable[["RetryCallState"], None]:
      36      """After call strategy that logs to some logger the finished attempt."""
      37  
      38      def log_it(retry_state: "RetryCallState") -> None:
      39          if retry_state.fn is None:
      40              # NOTE(sileht): can't really happen, but we must please mypy
      41              fn_name = "<unknown>"
      42          else:
      43              fn_name = _utils.get_callback_name(retry_state.fn)
      44          logger.log(
      45              log_level,
      46              f"Finished call to '{fn_name}' "
      47              f"after {sec_format % retry_state.seconds_since_start}(s), "
      48              f"this was the {_utils.to_ordinal(retry_state.attempt_number)} time calling it.",
      49          )
      50  
      51      return log_it