##// END OF EJS Templates
Hot fix
Hot fix

File last commit:

r697:7ac8878019bb
r1166:ce0987c48654
Show More
Lookup.py
62 lines | 2.8 KiB | text/x-python | PythonLexer
Miguel Valdez
Merge with branch schain_julia_drifts from rev. 803 to 995....
r568 '''
Helper module for DynamicObject module - contains dictionaries
of data types built-in to our YAML IDL, converting backing and forth between
strings / YAML tags and python class instances.
$Id$
'''
import datetime
import numpy as np
import PrecisionTime
import DynamicObject
Binary = DynamicObject.Binary
import platform
import collections
# Implicit Types:
python_dtypes = tuple([bool,int,long,float,str,datetime.datetime,list,
set,dict,tuple,unicode])
# Numpy Data-types:
numpy_dtypes = {'dtype.bool': bool, 'dtype.int': np.int, 'dtype.int8': np.int8,
'dtype.int16': np.int16, 'dtype.int32': np.int32, 'dtype.int64': np.int64,
'dtype.uint8': np.uint8, 'dtype.uint16': np.uint16, 'dtype.uint32': np.uint32,
'dtype.uint64': np.uint64, 'dtype.float': np.float, 'dtype.float16': np.float16,
'dtype.float32': np.float32, 'dtype.float64': np.float64, 'dtype.complex': np.complex,
'dtype.complex64': np.complex64, 'dtype.complex128': np.complex128,
'dtype.byte': np.byte, 'dtype.short': np.short, 'dtype.intc': np.intc,
'dtype.longlong': np.longlong, 'dtype.intp': np.intp, 'dtype.ubyte': np.ubyte,
'dtype.ushort': np.ushort, 'dtype.uintc': np.uintc, 'dtype.uint': np.uint,
'dtype.uintc': np.uintc, 'dtype.uint': np.uint, 'dtype.ulonglong': np.ulonglong,
'dtype.uintp': np.uintp, 'dtype.half': np.half, 'dtype.single': np.single,
'dtype.double': np.double, 'dtype.longfloat': np.longfloat,
'dtype.csingle': np.csingle, 'dtype.clongfloat': np.clongfloat, 'dtype.long': np.long}
if platform.architecture()[0] != '32bit': # 64bit - certain numpy types exist
numpy_dtypes.update({'dtype.float128': np.float128, 'dtype.complex256': np.complex256})
bit32 = False
else:
bit32 = True
#else: # 32 bit - fix 32 bit integer issue.
# np.int32 = np.int
# bit32 = True
# Built-in objects:
builtin_objects = {'binary': Binary, 'nsTime': PrecisionTime.nsTime, 'psTime': PrecisionTime.psTime,
'timestamp_ns': PrecisionTime.nsTime, 'timestamp_ps': PrecisionTime.psTime,
'timestamp_nanosecond': PrecisionTime.nsTime, 'timestamp_picosecond': PrecisionTime.psTime,
'datetime': datetime.datetime, 'Binary': Binary}
builtin_objects_simple = {'nsTime': PrecisionTime.nsTime, 'psTime': PrecisionTime.psTime,
'binary': Binary, 'datetime': datetime.datetime,
'Binary': Binary}
# Inverse lookup for accessing tags given a class instance:
cls_dtypes = dict([(v,k) for (k,v) in numpy_dtypes.items()])
obj_dtypes = dict([(v,k) for (k,v) in builtin_objects_simple.items()])
# Pointer to the list of all Object classes created, as located in the Object module / class:
dynamicClasses = DynamicObject.Object.dynamicClasses