code: def _sexagesimalize_to_int(value, places=0):
      
      sign = int(np.sign(value))
      value = abs(value)
      power = 10 ** places
      n = int(7200 * power * value + 1) // 2
      n, fraction = divmod(n, power)
      n, seconds = divmod(n, 60)
      n, minutes = divmod(n, 60)
      return sign, n, minutes, seconds, fraction
docs: Decompose `value` into units, minutes, seconds, and second fractions.
  
      This routine prepares a value for sexagesimal display, with its
      seconds fraction expressed as an integer with `places` digits.  The
      result is a tuple of five integers:
  
      ``(sign [either +1 or -1], units, minutes, seconds, second_fractions)``
  
      The integers are properly rounded per astronomical convention so
      that, for example, given ``places=3`` the result tuple ``(1, 11, 22,
      33, 444)`` means that the input was closer to 11u 22' 33.444" than
      to either 33.443" or 33.445" in its value.