(cls, val)
| 1235 | """ |
| 1236 | |
| 1237 | def __new__(cls, val): |
| 1238 | # Lookup actual (derived) class to instantiate |
| 1239 | type_id = int(deref(val['type'])['id_']) |
| 1240 | type_class = lookup_type_class(type_id) |
| 1241 | if type_class is not None: |
| 1242 | cls = type_class.scalar_printer |
| 1243 | assert issubclass(cls, ScalarPrinter) |
| 1244 | self = object.__new__(cls) |
| 1245 | self.type_class = type_class |
| 1246 | self.type_name = type_class.name |
| 1247 | self.name = scalar_class_from_type(self.type_name) |
| 1248 | self.type_id = type_id |
| 1249 | # Cast to concrete Scalar class to access derived attributes. |
| 1250 | concrete_type = gdb.lookup_type(f"arrow::{self.name}") |
| 1251 | self.val = cast_to_concrete(val, concrete_type) |
| 1252 | self.is_valid = bool(self.val['is_valid']) |
| 1253 | return self |
| 1254 | |
| 1255 | @property |
| 1256 | def type(self): |
no test coverage detected