|
86 | 86 | Identifier for the default serialization protocol. |
87 | 87 | """ |
88 | 88 |
|
89 | | -import functools |
90 | 89 | import logging |
91 | 90 |
|
92 | | -from imas.backends.imas_core.imas_interface import has_imas, imasdef |
| 91 | +from imas.backends.imas_core.imas_interface import imasdef |
93 | 92 |
|
94 | 93 | logger = logging.getLogger(__name__) |
95 | 94 |
|
96 | 95 |
|
97 | | -if has_imas: |
98 | | - ASCII_BACKEND = imasdef.ASCII_BACKEND |
99 | | - CHAR_DATA = imasdef.CHAR_DATA |
100 | | - CLOSE_PULSE = imasdef.CLOSE_PULSE |
101 | | - CLOSEST_INTERP = imasdef.CLOSEST_INTERP |
102 | | - CREATE_PULSE = imasdef.CREATE_PULSE |
103 | | - DOUBLE_DATA = imasdef.DOUBLE_DATA |
104 | | - COMPLEX_DATA = imasdef.COMPLEX_DATA |
105 | | - EMPTY_COMPLEX = imasdef.EMPTY_COMPLEX |
106 | | - EMPTY_FLOAT = imasdef.EMPTY_FLOAT |
107 | | - EMPTY_INT = imasdef.EMPTY_INT |
108 | | - ERASE_PULSE = imasdef.ERASE_PULSE |
109 | | - FORCE_CREATE_PULSE = imasdef.FORCE_CREATE_PULSE |
110 | | - FORCE_OPEN_PULSE = imasdef.FORCE_OPEN_PULSE |
111 | | - HDF5_BACKEND = imasdef.HDF5_BACKEND |
112 | | - IDS_TIME_MODE_HETEROGENEOUS = imasdef.IDS_TIME_MODE_HETEROGENEOUS |
113 | | - IDS_TIME_MODE_HOMOGENEOUS = imasdef.IDS_TIME_MODE_HOMOGENEOUS |
114 | | - IDS_TIME_MODE_INDEPENDENT = imasdef.IDS_TIME_MODE_INDEPENDENT |
115 | | - IDS_TIME_MODE_UNKNOWN = imasdef.IDS_TIME_MODE_UNKNOWN |
116 | | - IDS_TIME_MODES = imasdef.IDS_TIME_MODES |
117 | | - INTEGER_DATA = imasdef.INTEGER_DATA |
118 | | - LINEAR_INTERP = imasdef.LINEAR_INTERP |
119 | | - MDSPLUS_BACKEND = imasdef.MDSPLUS_BACKEND |
120 | | - MEMORY_BACKEND = imasdef.MEMORY_BACKEND |
121 | | - NODE_TYPE_STRUCTURE = imasdef.NODE_TYPE_STRUCTURE |
122 | | - OPEN_PULSE = imasdef.OPEN_PULSE |
123 | | - PREVIOUS_INTERP = imasdef.PREVIOUS_INTERP |
124 | | - READ_OP = imasdef.READ_OP |
125 | | - UDA_BACKEND = imasdef.UDA_BACKEND |
126 | | - UNDEFINED_INTERP = imasdef.UNDEFINED_INTERP |
127 | | - UNDEFINED_TIME = imasdef.UNDEFINED_TIME |
128 | | - WRITE_OP = imasdef.WRITE_OP |
129 | | - ASCII_SERIALIZER_PROTOCOL = getattr(imasdef, "ASCII_SERIALIZER_PROTOCOL", 60) |
130 | | - FLEXBUFFERS_SERIALIZER_PROTOCOL = getattr( |
131 | | - imasdef, "FLEXBUFFERS_SERIALIZER_PROTOCOL", None |
132 | | - ) |
133 | | - DEFAULT_SERIALIZER_PROTOCOL = getattr(imasdef, "DEFAULT_SERIALIZER_PROTOCOL", 60) |
134 | | - |
135 | | -else: |
136 | | - # Preset some constants which are used elsewhere |
137 | | - # this is a bit ugly, perhaps reuse the list of imports from above? |
138 | | - # it seems no problem to use None, since the use of the values should not |
139 | | - # be allowed, they are only used in operations which use the backend, |
140 | | - # which we (should) gate |
141 | | - ASCII_BACKEND = CHAR_DATA = CLOSE_PULSE = CLOSEST_INTERP = DOUBLE_DATA = None |
142 | | - FORCE_OPEN_PULSE = CREATE_PULSE = ERASE_PULSE = None |
143 | | - COMPLEX_DATA = FORCE_CREATE_PULSE = HDF5_BACKEND = None |
144 | | - INTEGER_DATA = LINEAR_INTERP = MDSPLUS_BACKEND = MEMORY_BACKEND = None |
145 | | - NODE_TYPE_STRUCTURE = OPEN_PULSE = PREVIOUS_INTERP = READ_OP = None |
146 | | - UDA_BACKEND = UNDEFINED_INTERP = UNDEFINED_TIME = WRITE_OP = None |
147 | | - # These constants are also useful when not working with the AL |
148 | | - EMPTY_FLOAT = -9e40 |
149 | | - EMPTY_INT = -999_999_999 |
150 | | - EMPTY_COMPLEX = complex(EMPTY_FLOAT, EMPTY_FLOAT) |
151 | | - IDS_TIME_MODE_UNKNOWN = EMPTY_INT |
152 | | - IDS_TIME_MODE_HETEROGENEOUS = 0 |
153 | | - IDS_TIME_MODE_HOMOGENEOUS = 1 |
154 | | - IDS_TIME_MODE_INDEPENDENT = 2 |
155 | | - IDS_TIME_MODES = [0, 1, 2] |
156 | | - ASCII_SERIALIZER_PROTOCOL = 60 |
157 | | - FLEXBUFFERS_SERIALIZER_PROTOCOL = None |
158 | | - DEFAULT_SERIALIZER_PROTOCOL = 60 |
159 | | - |
160 | | - |
161 | | -def needs_imas(func): |
162 | | - if has_imas: |
163 | | - return func |
164 | | - |
165 | | - @functools.wraps(func) |
166 | | - def wrapper(*args, **kwargs): |
167 | | - raise RuntimeError( |
168 | | - f"Function {func.__name__} requires IMAS, but IMAS is not available." |
169 | | - ) |
170 | | - |
171 | | - return wrapper |
| 96 | +ASCII_BACKEND = imasdef.ASCII_BACKEND |
| 97 | +CHAR_DATA = imasdef.CHAR_DATA |
| 98 | +CLOSE_PULSE = imasdef.CLOSE_PULSE |
| 99 | +CLOSEST_INTERP = imasdef.CLOSEST_INTERP |
| 100 | +CREATE_PULSE = imasdef.CREATE_PULSE |
| 101 | +DOUBLE_DATA = imasdef.DOUBLE_DATA |
| 102 | +COMPLEX_DATA = imasdef.COMPLEX_DATA |
| 103 | +EMPTY_COMPLEX = imasdef.EMPTY_COMPLEX |
| 104 | +EMPTY_FLOAT = imasdef.EMPTY_FLOAT |
| 105 | +EMPTY_INT = imasdef.EMPTY_INT |
| 106 | +ERASE_PULSE = imasdef.ERASE_PULSE |
| 107 | +FORCE_CREATE_PULSE = imasdef.FORCE_CREATE_PULSE |
| 108 | +FORCE_OPEN_PULSE = imasdef.FORCE_OPEN_PULSE |
| 109 | +HDF5_BACKEND = imasdef.HDF5_BACKEND |
| 110 | +IDS_TIME_MODE_HETEROGENEOUS = imasdef.IDS_TIME_MODE_HETEROGENEOUS |
| 111 | +IDS_TIME_MODE_HOMOGENEOUS = imasdef.IDS_TIME_MODE_HOMOGENEOUS |
| 112 | +IDS_TIME_MODE_INDEPENDENT = imasdef.IDS_TIME_MODE_INDEPENDENT |
| 113 | +IDS_TIME_MODE_UNKNOWN = imasdef.IDS_TIME_MODE_UNKNOWN |
| 114 | +IDS_TIME_MODES = imasdef.IDS_TIME_MODES |
| 115 | +INTEGER_DATA = imasdef.INTEGER_DATA |
| 116 | +LINEAR_INTERP = imasdef.LINEAR_INTERP |
| 117 | +MDSPLUS_BACKEND = imasdef.MDSPLUS_BACKEND |
| 118 | +MEMORY_BACKEND = imasdef.MEMORY_BACKEND |
| 119 | +NODE_TYPE_STRUCTURE = imasdef.NODE_TYPE_STRUCTURE |
| 120 | +OPEN_PULSE = imasdef.OPEN_PULSE |
| 121 | +PREVIOUS_INTERP = imasdef.PREVIOUS_INTERP |
| 122 | +READ_OP = imasdef.READ_OP |
| 123 | +UDA_BACKEND = imasdef.UDA_BACKEND |
| 124 | +UNDEFINED_INTERP = imasdef.UNDEFINED_INTERP |
| 125 | +UNDEFINED_TIME = imasdef.UNDEFINED_TIME |
| 126 | +WRITE_OP = imasdef.WRITE_OP |
| 127 | +ASCII_SERIALIZER_PROTOCOL = getattr(imasdef, "ASCII_SERIALIZER_PROTOCOL", 60) |
| 128 | +FLEXBUFFERS_SERIALIZER_PROTOCOL = getattr( |
| 129 | + imasdef, "FLEXBUFFERS_SERIALIZER_PROTOCOL", None |
| 130 | +) |
| 131 | +DEFAULT_SERIALIZER_PROTOCOL = getattr(imasdef, "DEFAULT_SERIALIZER_PROTOCOL", 60) |
0 commit comments