@staticmethod<EOL><INDENT>def cf_number_to_number(value):<DEDENT>
type_ = CoreFoundation.CFNumberGetType(_cast_pointer_p(value))<EOL>c_type = {<EOL><NUM_LIT:1>: c_byte,              <EOL><NUM_LIT:2>: ctypes.c_short,      <EOL><NUM_LIT:3>: ctypes.c_int32,      <EOL><NUM_LIT:4>: ctypes.c_int64,      <EOL><NUM_LIT:5>: ctypes.c_float,      <EOL><NUM_LIT:6>: ctypes.c_double,     <EOL><NUM_LIT:7>: c_byte,              <EOL><NUM_LIT:8>: ctypes.c_short,      <EOL><NUM_LIT:9>: ctypes.c_int,        <EOL><NUM_LIT:10>: c_long,             <EOL><NUM_LIT:11>: ctypes.c_longlong,  <EOL><NUM_LIT:12>: ctypes.c_float,     <EOL><NUM_LIT>: ctypes.c_double,    <EOL><NUM_LIT>: c_long,             <EOL><NUM_LIT:15>: ctypes.c_int,       <EOL><NUM_LIT:16>: ctypes.c_double,    <EOL>}[type_]<EOL>output = c_type(<NUM_LIT:0>)<EOL>CoreFoundation.CFNumberGetValue(_cast_pointer_p(value), type_, byref(output))<EOL>return output.value<EOL>
Converts a CFNumber object to a python float or integer

:param value:
    The CFNumber object

:return:
    A python number (float or integer)