blob: 23ef9c6560933fc1a7f5a453d772798d9b861e09 [file] [log] [blame]
# Copyright (c) The PyAMF Project.
# See LICENSE.txt for details.
"""
Python compatibility values and helpers.
"""
try:
import __builtin__ as builtins
except ImportError:
import builtins
import types
func_types = (
types.BuiltinFunctionType, types.BuiltinMethodType, types.CodeType,
types.FunctionType, types.GeneratorType, types.LambdaType, types.MethodType)
class_types = [type]
int_types = [int]
str_types = [str]
try:
int_types.append(long)
except NameError:
pass
try:
str_types.append(unicode)
except NameError:
pass
try:
class_types.append(types.ClassType)
except:
pass
int_types = tuple(int_types)
str_types = tuple(str_types)
class_types = tuple(class_types)
PosInf = 1e300000
NegInf = -1e300000
# we do this instead of float('nan') because windows throws a wobbler.
NaN = PosInf / PosInf
def isNaN(val):
"""
@since: 0.5
"""
return str(float(val)) == str(NaN)
def isPosInf(val):
"""
@since: 0.5
"""
return str(float(val)) == str(PosInf)
def isNegInf(val):
"""
@since: 0.5
"""
return str(float(val)) == str(NegInf)
try:
callable = builtins.callable
except NameError:
def callable(obj):
"""
Compatibility function for Python 3.x
"""
return hasattr(obj, '__call__')