import numbers
import math


def is_finite_number(value):
  """ Validates if the given value is a number, enforces
   absolute limit of 2^53 and restricts NAN, INF, -INF.

  Args:
    value: Value to be validated.

  Returns:
    Boolean: True if value is a number and not NAN, INF, -INF or
             greater than absolute limit of 2^53 else False.
  """
  if not isinstance(value, (numbers.Integral, float)):
      # numbers.Integral instead of int to accommodate long integer in python 2
    return False

  if isinstance(value, bool):
    # bool is a subclass of int
    return False

  if isinstance(value, float):
    if math.isnan(value) or math.isinf(value):
      return False

  if abs(value) > (2**53):
    return False

  return True