|
2 | 2 | from dataclasses import dataclass |
3 | 3 | from pathlib import Path |
4 | 4 | from textwrap import dedent |
5 | | -from typing import NamedTuple, TypedDict |
| 5 | +from typing import Any, NamedTuple, TypedDict |
6 | 6 |
|
7 | 7 | import numba |
8 | 8 | import numba.typed |
@@ -243,6 +243,10 @@ def __init__( |
243 | 243 | self.key_len = key_len |
244 | 244 | self.value_len = value_len |
245 | 245 |
|
| 246 | + # these are blank fields we need when serializing or smth |
| 247 | + self._struct: Any = None |
| 248 | + self._self_obj: Any = None |
| 249 | + |
246 | 250 | if map is None: |
247 | 251 | map = {} |
248 | 252 | self.map = getattr(self.lib.library, self.lib.methods["init"])() |
@@ -399,7 +403,7 @@ def c_repack(self, ctx: "CContext", lhs: str, obj: "CMapFields"): |
399 | 403 | """ |
400 | 404 | Repack the map out of C context. |
401 | 405 | """ |
402 | | - ctx.exec(f"{ctx.feed}{lhs}->map = {obj.map}") |
| 406 | + ctx.exec(f"{ctx.feed}{lhs}->map = {obj.map};") |
403 | 407 |
|
404 | 408 | def serialize_to_c(self, obj: CHashTable): |
405 | 409 | """ |
@@ -506,6 +510,8 @@ def __init__(self, key_len: int, value_len: int): |
506 | 510 | self.value_len = value_len |
507 | 511 | self._key_type = _int_tuple_ftype(key_len) |
508 | 512 | self._value_type = _int_tuple_ftype(value_len) |
| 513 | + self._numba_key_type = numba.types.UniTuple(numba.types.int64, key_len) |
| 514 | + self._numba_value_type = numba.types.UniTuple(numba.types.int64, value_len) |
509 | 515 |
|
510 | 516 | def __eq__(self, other): |
511 | 517 | if not isinstance(other, NumbaHashTableFType): |
|
0 commit comments