code: def round2(number, ndigits=None):
      """
      Implementation of Python 2 built-in round() function.
      Rounds a number to a given precision in decimal digits (default
      0 digits). The result is a floating point number. Values are rounded
      to the closest multiple of 10 to the power minus ndigits; if two
      multiples are equally close, rounding is done away from 0.
      ndigits may be negative.
      See Python 2 documentation:
      https://docs.python.org/2/library/functions.html?highlight=round#round
      """
      if ndigits is None:
          ndigits = 0
  
      if ndigits < 0:
          exponent = 10 ** (-ndigits)
          quotient, remainder = divmod(number, exponent)
          if remainder >= exponent // 2 and number >= 0:
              quotient += 1
          return float(quotient * exponent)
      else:
          exponent = _decimal.Decimal("10") ** (-ndigits)
  
          d = _decimal.Decimal.from_float(number).quantize(
              exponent, rounding=_decimal.ROUND_HALF_UP
          )
  
          return float(d)
  
file_path: catboost/contrib/python/fonttools/fontTools/misc/py23.py
imports: import decimal
  import math
  import warnings
  from contextlib import redirect_stderr, redirect_stdout
  from io import BytesIO
  from io import StringIO
  from types import SimpleNamespace
  from .textTools import Tag, bytechr, byteord, bytesjoin, strjoin, tobytes, tostr
label_desc: Use image node_id 2 for calling a global function with example usage: round2(number, ndigits) and returns: float, float