@@ -420,6 +420,15 @@ cdef class {{name}}HashTable(HashTable):
420
420
sizeof(Py_ssize_t)) # vals
421
421
return overhead + for_flags + for_pairs
422
422
423
+ def get_state(self):
424
+ """ returns infos about the state of the hashtable"""
425
+ return {
426
+ 'n_buckets' : self.table.n_buckets,
427
+ 'size' : self.table.size,
428
+ 'n_occupied' : self.table.n_occupied,
429
+ 'upper_bound' : self.table.upper_bound,
430
+ }
431
+
423
432
cpdef get_item(self, {{dtype}}_t val):
424
433
cdef:
425
434
khiter_t k
@@ -747,6 +756,15 @@ cdef class StringHashTable(HashTable):
747
756
sizeof(Py_ssize_t)) # vals
748
757
return overhead + for_flags + for_pairs
749
758
759
+ def get_state(self):
760
+ """ returns infos about the state of the hashtable"""
761
+ return {
762
+ 'n_buckets' : self.table.n_buckets,
763
+ 'size' : self.table.size,
764
+ 'n_occupied' : self.table.n_occupied,
765
+ 'upper_bound' : self.table.upper_bound,
766
+ }
767
+
750
768
cpdef get_item(self, str val):
751
769
cdef:
752
770
khiter_t k
@@ -1072,6 +1090,18 @@ cdef class PyObjectHashTable(HashTable):
1072
1090
sizeof(Py_ssize_t)) # vals
1073
1091
return overhead + for_flags + for_pairs
1074
1092
1093
+ def get_state(self):
1094
+ """
1095
+ returns infos about the current state of the hashtable like size,
1096
+ number of buckets and so on.
1097
+ """
1098
+ return {
1099
+ 'n_buckets' : self.table.n_buckets,
1100
+ 'size' : self.table.size,
1101
+ 'n_occupied' : self.table.n_occupied,
1102
+ 'upper_bound' : self.table.upper_bound,
1103
+ }
1104
+
1075
1105
cpdef get_item(self, object val):
1076
1106
cdef:
1077
1107
khiter_t k
0 commit comments