##// END OF EJS Templates
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported

File last commit:

r1167:1f521b07c958
r1287:af11e4aac00c
Show More
Lookup.py
61 lines | 2.8 KiB | text/x-python | PythonLexer
'''
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,int,float,str,datetime.datetime,list,
set,dict,tuple,str])
# 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 list(numpy_dtypes.items())])
obj_dtypes = dict([(v,k) for (k,v) in list(builtin_objects_simple.items())])
# Pointer to the list of all Object classes created, as located in the Object module / class:
dynamicClasses = DynamicObject.Object.dynamicClasses