omextra 0.0.0.dev508__py3-none-any.whl → 0.0.0.dev509__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,7 +36,9 @@
36
36
  // 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this
37
37
  // License Agreement.
38
38
  //
39
- // https://github.com/python/cpython/commit/aa18fd55d575a04e3aa782fedcd08dced26676e0
39
+ // https://github.com/python/cpython/blob/main/Python/hamt.c
40
+ //
41
+ // original: https://github.com/python/cpython/commit/aa18fd55d575a04e3aa782fedcd08dced26676e0
40
42
  //
41
43
  #define PY_SSIZE_T_CLEAN
42
44
 
@@ -611,6 +613,8 @@ typedef struct {
611
613
  Py_ssize_t a_count;
612
614
  } HamtNode_Array;
613
615
 
616
+ #define _HamtNode_Array_CAST(op) ((HamtNode_Array *)(op))
617
+
614
618
 
615
619
  typedef struct {
616
620
  PyObject_VAR_HEAD
@@ -618,6 +622,8 @@ typedef struct {
618
622
  PyObject *c_array[1];
619
623
  } HamtNode_Collision;
620
624
 
625
+ #define _HamtNode_Collision_CAST(op) ((HamtNode_Collision *)(op))
626
+
621
627
 
622
628
  static HamtObject *
623
629
  hamt_alloc(hamt_module_state *state);
@@ -794,6 +800,8 @@ _hamt_dump_format(_PyUnicodeWriter *writer, const char *format, ...)
794
800
  #endif /* Py_DEBUG */
795
801
  /////////////////////////////////// Bitmap Node
796
802
 
803
+ #define _HamtNode_Bitmap_CAST(op) ((HamtNode_Bitmap *)(op))
804
+
797
805
 
798
806
  static HamtNode *
799
807
  hamt_node_bitmap_new(hamt_module_state *state, Py_ssize_t size)
@@ -1406,13 +1414,12 @@ hamt_node_bitmap_find(HamtNode_Bitmap *self,
1406
1414
  }
1407
1415
 
1408
1416
  static int
1409
- hamt_node_bitmap_traverse(HamtNode_Bitmap *self, visitproc visit, void *arg)
1417
+ hamt_node_bitmap_traverse(PyObject *op, visitproc visit, void *arg)
1410
1418
  {
1411
1419
  /* Bitmap's tp_traverse */
1412
1420
 
1413
- Py_ssize_t i;
1414
-
1415
- for (i = Py_SIZE(self); --i >= 0; ) {
1421
+ HamtNode_Bitmap *self = _HamtNode_Bitmap_CAST(op);
1422
+ for (Py_ssize_t i = Py_SIZE(self); --i >= 0;) {
1416
1423
  Py_VISIT(self->b_array[i]);
1417
1424
  }
1418
1425
 
@@ -1420,17 +1427,16 @@ hamt_node_bitmap_traverse(HamtNode_Bitmap *self, visitproc visit, void *arg)
1420
1427
  }
1421
1428
 
1422
1429
  static void
1423
- hamt_node_bitmap_dealloc(HamtNode_Bitmap *self)
1430
+ hamt_node_bitmap_dealloc(PyObject *self)
1424
1431
  {
1425
1432
  /* Bitmap's tp_dealloc */
1426
1433
 
1427
- Py_ssize_t len = Py_SIZE(self);
1428
- Py_ssize_t i;
1434
+ HamtNode_Bitmap *node = _HamtNode_Bitmap_CAST(self);
1435
+ Py_ssize_t i, len = Py_SIZE(self);
1429
1436
 
1430
- if (Py_SIZE(self) == 0) {
1437
+ if (len == 0) {
1431
1438
  /* The empty node is managed by the module state. */
1432
- hamt_module_state *state = get_hamt_state_from_obj((PyObject*)self);
1433
- assert(self == state->empty_bitmap_node);
1439
+ assert(node == get_hamt_state_from_obj(self)->empty_bitmap_node);
1434
1440
  #ifdef Py_DEBUG
1435
1441
  _Py_FatalRefcountError("deallocating the empty hamt node bitmap singleton");
1436
1442
  #else
@@ -1444,11 +1450,11 @@ hamt_node_bitmap_dealloc(HamtNode_Bitmap *self)
1444
1450
  if (len > 0) {
1445
1451
  i = len;
1446
1452
  while (--i >= 0) {
1447
- Py_XDECREF(self->b_array[i]);
1453
+ Py_XDECREF(node->b_array[i]);
1448
1454
  }
1449
1455
  }
1450
1456
 
1451
- Py_TYPE(self)->tp_free((PyObject *)self);
1457
+ Py_TYPE(self)->tp_free(self);
1452
1458
  Py_TRASHCAN_END
1453
1459
  }
1454
1460
 
@@ -1824,14 +1830,12 @@ hamt_node_collision_find(HamtNode_Collision *self,
1824
1830
 
1825
1831
 
1826
1832
  static int
1827
- hamt_node_collision_traverse(HamtNode_Collision *self,
1828
- visitproc visit, void *arg)
1833
+ hamt_node_collision_traverse(PyObject *op, visitproc visit, void *arg)
1829
1834
  {
1830
1835
  /* Collision's tp_traverse */
1831
1836
 
1832
- Py_ssize_t i;
1833
-
1834
- for (i = Py_SIZE(self); --i >= 0; ) {
1837
+ HamtNode_Collision *self = _HamtNode_Collision_CAST(op);
1838
+ for (Py_ssize_t i = Py_SIZE(self); --i >= 0; ) {
1835
1839
  Py_VISIT(self->c_array[i]);
1836
1840
  }
1837
1841
 
@@ -1839,7 +1843,7 @@ hamt_node_collision_traverse(HamtNode_Collision *self,
1839
1843
  }
1840
1844
 
1841
1845
  static void
1842
- hamt_node_collision_dealloc(HamtNode_Collision *self)
1846
+ hamt_node_collision_dealloc(PyObject *self)
1843
1847
  {
1844
1848
  /* Collision's tp_dealloc */
1845
1849
 
@@ -1849,13 +1853,13 @@ hamt_node_collision_dealloc(HamtNode_Collision *self)
1849
1853
  Py_TRASHCAN_BEGIN(self, hamt_node_collision_dealloc)
1850
1854
 
1851
1855
  if (len > 0) {
1852
-
1856
+ HamtNode_Collision *node = _HamtNode_Collision_CAST(self);
1853
1857
  while (--len >= 0) {
1854
- Py_XDECREF(self->c_array[len]);
1858
+ Py_XDECREF(node->c_array[len]);
1855
1859
  }
1856
1860
  }
1857
1861
 
1858
- Py_TYPE(self)->tp_free((PyObject *)self);
1862
+ Py_TYPE(self)->tp_free(self);
1859
1863
  Py_TRASHCAN_END
1860
1864
  }
1861
1865
 
@@ -2207,14 +2211,12 @@ hamt_node_array_find(HamtNode_Array *self,
2207
2211
  }
2208
2212
 
2209
2213
  static int
2210
- hamt_node_array_traverse(HamtNode_Array *self,
2211
- visitproc visit, void *arg)
2214
+ hamt_node_array_traverse(PyObject *op, visitproc visit, void *arg)
2212
2215
  {
2213
2216
  /* Array's tp_traverse */
2214
2217
 
2215
- Py_ssize_t i;
2216
-
2217
- for (i = 0; i < HAMT_ARRAY_NODE_SIZE; i++) {
2218
+ HamtNode_Array *self = _HamtNode_Array_CAST(op);
2219
+ for (Py_ssize_t i = 0; i < HAMT_ARRAY_NODE_SIZE; i++) {
2218
2220
  Py_VISIT(self->a_array[i]);
2219
2221
  }
2220
2222
 
@@ -2222,20 +2224,19 @@ hamt_node_array_traverse(HamtNode_Array *self,
2222
2224
  }
2223
2225
 
2224
2226
  static void
2225
- hamt_node_array_dealloc(HamtNode_Array *self)
2227
+ hamt_node_array_dealloc(PyObject *self)
2226
2228
  {
2227
2229
  /* Array's tp_dealloc */
2228
2230
 
2229
- Py_ssize_t i;
2230
-
2231
2231
  PyObject_GC_UnTrack(self);
2232
2232
  Py_TRASHCAN_BEGIN(self, hamt_node_array_dealloc)
2233
2233
 
2234
- for (i = 0; i < HAMT_ARRAY_NODE_SIZE; i++) {
2235
- Py_XDECREF(self->a_array[i]);
2234
+ HamtNode_Array *obj = _HamtNode_Array_CAST(self);
2235
+ for (Py_ssize_t i = 0; i < HAMT_ARRAY_NODE_SIZE; i++) {
2236
+ Py_XDECREF(obj->a_array[i]);
2236
2237
  }
2237
2238
 
2238
- Py_TYPE(self)->tp_free((PyObject *)self);
2239
+ Py_TYPE(self)->tp_free(self);
2239
2240
  Py_TRASHCAN_END
2240
2241
  }
2241
2242
 
@@ -2661,7 +2662,6 @@ hamt_find(HamtObject *o, PyObject *key, PyObject **val)
2661
2662
  return hamt_node_find(o->h_root, 0, key_hash, key, val);
2662
2663
  }
2663
2664
 
2664
-
2665
2665
  int
2666
2666
  _Hamt_Find(HamtObject *o, PyObject *key, PyObject **val)
2667
2667
  {
@@ -2678,7 +2678,6 @@ _Hamt_Find(HamtObject *o, PyObject *key, PyObject **val)
2678
2678
  }
2679
2679
  }
2680
2680
 
2681
-
2682
2681
  int
2683
2682
  _Hamt_Eq(HamtObject *v, HamtObject *w)
2684
2683
  {
@@ -2690,6 +2689,10 @@ _Hamt_Eq(HamtObject *v, HamtObject *w)
2690
2689
  return 0;
2691
2690
  }
2692
2691
 
2692
+ Py_INCREF(v);
2693
+ Py_INCREF(w);
2694
+
2695
+ int res = 1;
2693
2696
  HamtIteratorState iter;
2694
2697
  hamt_iter_t iter_res;
2695
2698
  hamt_find_t find_res;
@@ -2705,25 +2708,38 @@ _Hamt_Eq(HamtObject *v, HamtObject *w)
2705
2708
  find_res = hamt_find(w, v_key, &w_val);
2706
2709
  switch (find_res) {
2707
2710
  case F_ERROR:
2708
- return -1;
2711
+ res = -1;
2712
+ goto done;
2709
2713
 
2710
2714
  case F_NOT_FOUND:
2711
- return 0;
2715
+ res = 0;
2716
+ goto done;
2712
2717
 
2713
2718
  case F_FOUND: {
2719
+ Py_INCREF(v_key);
2720
+ Py_INCREF(v_val);
2721
+ Py_INCREF(w_val);
2714
2722
  int cmp = PyObject_RichCompareBool(v_val, w_val, Py_EQ);
2723
+ Py_DECREF(v_key);
2724
+ Py_DECREF(v_val);
2725
+ Py_DECREF(w_val);
2715
2726
  if (cmp < 0) {
2716
- return -1;
2727
+ res = -1;
2728
+ goto done;
2717
2729
  }
2718
2730
  if (cmp == 0) {
2719
- return 0;
2731
+ res = 0;
2732
+ goto done;
2720
2733
  }
2721
2734
  }
2722
2735
  }
2723
2736
  }
2724
2737
  } while (iter_res != I_END);
2725
2738
 
2726
- return 1;
2739
+ done:
2740
+ Py_DECREF(v);
2741
+ Py_DECREF(w);
2742
+ return res;
2727
2743
  }
2728
2744
 
2729
2745
  Py_ssize_t
@@ -2784,14 +2800,15 @@ error:
2784
2800
 
2785
2801
 
2786
2802
  static int
2787
- hamt_baseiter_tp_clear(HamtIterator *it)
2803
+ hamt_baseiter_tp_clear(PyObject *op)
2788
2804
  {
2805
+ HamtIterator *it = (HamtIterator*)op;
2789
2806
  Py_CLEAR(it->hi_obj);
2790
2807
  return 0;
2791
2808
  }
2792
2809
 
2793
2810
  static void
2794
- hamt_baseiter_tp_dealloc(HamtIterator *it)
2811
+ hamt_baseiter_tp_dealloc(PyObject *it)
2795
2812
  {
2796
2813
  PyObject_GC_UnTrack(it);
2797
2814
  (void)hamt_baseiter_tp_clear(it);
@@ -2799,15 +2816,17 @@ hamt_baseiter_tp_dealloc(HamtIterator *it)
2799
2816
  }
2800
2817
 
2801
2818
  static int
2802
- hamt_baseiter_tp_traverse(HamtIterator *it, visitproc visit, void *arg)
2819
+ hamt_baseiter_tp_traverse(PyObject *op, visitproc visit, void *arg)
2803
2820
  {
2821
+ HamtIterator *it = (HamtIterator*)op;
2804
2822
  Py_VISIT(it->hi_obj);
2805
2823
  return 0;
2806
2824
  }
2807
2825
 
2808
2826
  static PyObject *
2809
- hamt_baseiter_tp_iternext(HamtIterator *it)
2827
+ hamt_baseiter_tp_iternext(PyObject *op)
2810
2828
  {
2829
+ HamtIterator *it = (HamtIterator*)op;
2811
2830
  PyObject *key;
2812
2831
  PyObject *val;
2813
2832
  hamt_iter_t res = hamt_iterator_next(&it->hi_iter, &key, &val);
@@ -2849,17 +2868,17 @@ hamt_baseiter_new(PyTypeObject *type, binaryfunc yield, HamtObject *o)
2849
2868
  return (PyObject*)it;
2850
2869
  }
2851
2870
 
2852
- #define ITERATOR_TYPE_SHARED_SLOTS \
2853
- .tp_basicsize = sizeof(HamtIterator), \
2854
- .tp_itemsize = 0, \
2855
- .tp_as_mapping = &HamtIterator_as_mapping, \
2856
- .tp_dealloc = (destructor)hamt_baseiter_tp_dealloc, \
2857
- .tp_getattro = PyObject_GenericGetAttr, \
2858
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, \
2859
- .tp_traverse = (traverseproc)hamt_baseiter_tp_traverse, \
2860
- .tp_clear = (inquiry)hamt_baseiter_tp_clear, \
2861
- .tp_iter = PyObject_SelfIter, \
2862
- .tp_iternext = (iternextfunc)hamt_baseiter_tp_iternext,
2871
+ #define ITERATOR_TYPE_SHARED_SLOTS \
2872
+ .tp_basicsize = sizeof(HamtIterator), \
2873
+ .tp_itemsize = 0, \
2874
+ .tp_as_mapping = &HamtIterator_as_mapping, \
2875
+ .tp_dealloc = hamt_baseiter_tp_dealloc, \
2876
+ .tp_getattro = PyObject_GenericGetAttr, \
2877
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, \
2878
+ .tp_traverse = hamt_baseiter_tp_traverse, \
2879
+ .tp_clear = hamt_baseiter_tp_clear, \
2880
+ .tp_iter = PyObject_SelfIter, \
2881
+ .tp_iternext = hamt_baseiter_tp_iternext,
2863
2882
 
2864
2883
 
2865
2884
  /////////////////////////////////// _HamtItems_Type
@@ -2981,6 +3000,8 @@ static PyObject *
2981
3000
  hamt_dump(HamtObject *self);
2982
3001
  #endif
2983
3002
 
3003
+ #define _HamtObject_CAST(op) ((HamtObject *)(op))
3004
+
2984
3005
 
2985
3006
  static PyObject *
2986
3007
  hamt_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
@@ -2990,25 +3011,28 @@ hamt_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
2990
3011
  }
2991
3012
 
2992
3013
  static int
2993
- hamt_tp_clear(HamtObject *self)
3014
+ hamt_tp_clear(PyObject *op)
2994
3015
  {
3016
+ HamtObject *self = _HamtObject_CAST(op);
2995
3017
  Py_CLEAR(self->h_root);
2996
3018
  return 0;
2997
3019
  }
2998
3020
 
2999
3021
 
3000
3022
  static int
3001
- hamt_tp_traverse(HamtObject *self, visitproc visit, void *arg)
3023
+ hamt_tp_traverse(PyObject *op, visitproc visit, void *arg)
3002
3024
  {
3025
+ HamtObject *self = _HamtObject_CAST(op);
3003
3026
  Py_VISIT(self->h_root);
3004
3027
  return 0;
3005
3028
  }
3006
3029
 
3007
3030
  static void
3008
- hamt_tp_dealloc(HamtObject *self)
3031
+ hamt_tp_dealloc(PyObject *self)
3009
3032
  {
3010
- hamt_module_state *state = get_hamt_state_from_obj((PyObject*)self);
3011
- if (self == state->empty_hamt) {
3033
+ hamt_module_state *state = get_hamt_state_from_obj(self);
3034
+ HamtObject *obj = _HamtObject_CAST(self);
3035
+ if (obj == state->empty_hamt) {
3012
3036
  /* The empty one is managed by the module state. */
3013
3037
  #ifdef Py_DEBUG
3014
3038
  _Py_FatalRefcountError("deallocating the empty hamt singleton");
@@ -3018,8 +3042,8 @@ hamt_tp_dealloc(HamtObject *self)
3018
3042
  }
3019
3043
 
3020
3044
  PyObject_GC_UnTrack(self);
3021
- if (self->h_weakreflist != NULL) {
3022
- PyObject_ClearWeakRefs((PyObject*)self);
3045
+ if (obj->h_weakreflist != NULL) {
3046
+ PyObject_ClearWeakRefs(self);
3023
3047
  }
3024
3048
  (void)hamt_tp_clear(self);
3025
3049
  Py_TYPE(self)->tp_free(self);
@@ -3051,16 +3075,18 @@ hamt_tp_richcompare(PyObject *v, PyObject *w, int op)
3051
3075
  }
3052
3076
 
3053
3077
  static int
3054
- hamt_tp_contains(HamtObject *self, PyObject *key)
3078
+ hamt_tp_contains(PyObject *op, PyObject *key)
3055
3079
  {
3056
3080
  PyObject *val;
3081
+ HamtObject *self = _HamtObject_CAST(op);
3057
3082
  return _Hamt_Find(self, key, &val);
3058
3083
  }
3059
3084
 
3060
3085
  static PyObject *
3061
- hamt_tp_subscript(HamtObject *self, PyObject *key)
3086
+ hamt_tp_subscript(PyObject *op, PyObject *key)
3062
3087
  {
3063
3088
  PyObject *val;
3089
+ HamtObject *self = _HamtObject_CAST(op);
3064
3090
  hamt_find_t res = hamt_find(self, key, &val);
3065
3091
  switch (res) {
3066
3092
  case F_ERROR:
@@ -3076,19 +3102,21 @@ hamt_tp_subscript(HamtObject *self, PyObject *key)
3076
3102
  }
3077
3103
 
3078
3104
  static Py_ssize_t
3079
- hamt_tp_len(HamtObject *self)
3105
+ hamt_tp_len(PyObject *op)
3080
3106
  {
3107
+ HamtObject *self = _HamtObject_CAST(op);
3081
3108
  return _Hamt_Len(self);
3082
3109
  }
3083
3110
 
3084
3111
  static PyObject *
3085
- hamt_tp_iter(HamtObject *self)
3112
+ hamt_tp_iter(PyObject *op)
3086
3113
  {
3114
+ HamtObject *self = _HamtObject_CAST(op);
3087
3115
  return _Hamt_NewIterKeys(self);
3088
3116
  }
3089
3117
 
3090
3118
  static PyObject *
3091
- hamt_py_set(HamtObject *self, PyObject *args)
3119
+ hamt_py_set(PyObject *op, PyObject *args)
3092
3120
  {
3093
3121
  PyObject *key;
3094
3122
  PyObject *val;
@@ -3097,11 +3125,12 @@ hamt_py_set(HamtObject *self, PyObject *args)
3097
3125
  return NULL;
3098
3126
  }
3099
3127
 
3128
+ HamtObject *self = _HamtObject_CAST(op);
3100
3129
  return (PyObject *)_Hamt_Assoc(self, key, val);
3101
3130
  }
3102
3131
 
3103
3132
  static PyObject *
3104
- hamt_py_get(HamtObject *self, PyObject *args)
3133
+ hamt_py_get(PyObject *op, PyObject *args)
3105
3134
  {
3106
3135
  PyObject *key;
3107
3136
  PyObject *def = NULL;
@@ -3111,6 +3140,7 @@ hamt_py_get(HamtObject *self, PyObject *args)
3111
3140
  }
3112
3141
 
3113
3142
  PyObject *val = NULL;
3143
+ HamtObject *self = _HamtObject_CAST(op);
3114
3144
  hamt_find_t res = hamt_find(self, key, &val);
3115
3145
  switch (res) {
3116
3146
  case F_ERROR:
@@ -3128,47 +3158,52 @@ hamt_py_get(HamtObject *self, PyObject *args)
3128
3158
  }
3129
3159
 
3130
3160
  static PyObject *
3131
- hamt_py_delete(HamtObject *self, PyObject *key)
3161
+ hamt_py_delete(PyObject *op, PyObject *key)
3132
3162
  {
3163
+ HamtObject *self = _HamtObject_CAST(op);
3133
3164
  return (PyObject *)_Hamt_Without(self, key);
3134
3165
  }
3135
3166
 
3136
3167
  static PyObject *
3137
- hamt_py_items(HamtObject *self, PyObject *args)
3168
+ hamt_py_items(PyObject *op, PyObject *args)
3138
3169
  {
3170
+ HamtObject *self = _HamtObject_CAST(op);
3139
3171
  return _Hamt_NewIterItems(self);
3140
3172
  }
3141
3173
 
3142
3174
  static PyObject *
3143
- hamt_py_values(HamtObject *self, PyObject *args)
3175
+ hamt_py_values(PyObject *op, PyObject *args)
3144
3176
  {
3177
+ HamtObject *self = _HamtObject_CAST(op);
3145
3178
  return _Hamt_NewIterValues(self);
3146
3179
  }
3147
3180
 
3148
3181
  static PyObject *
3149
- hamt_py_keys(HamtObject *self, PyObject *Py_UNUSED(args))
3182
+ hamt_py_keys(PyObject *op, PyObject *Py_UNUSED(args))
3150
3183
  {
3184
+ HamtObject *self = _HamtObject_CAST(op);
3151
3185
  return _Hamt_NewIterKeys(self);
3152
3186
  }
3153
3187
 
3154
3188
  #ifdef Py_DEBUG
3155
3189
  static PyObject *
3156
- hamt_py_dump(HamtObject *self, PyObject *Py_UNUSED(args))
3190
+ hamt_py_dump(PyObject *op, PyObject *Py_UNUSED(args))
3157
3191
  {
3192
+ HamtObject *self = _HamtObject_CAST(op);
3158
3193
  return hamt_dump(self);
3159
3194
  }
3160
3195
  #endif
3161
3196
 
3162
3197
 
3163
3198
  static PyMethodDef Hamt_methods[] = {
3164
- {"set", _PyCFunction_CAST(hamt_py_set), METH_VARARGS, NULL},
3165
- {"get", _PyCFunction_CAST(hamt_py_get), METH_VARARGS, NULL},
3166
- {"delete", _PyCFunction_CAST(hamt_py_delete), METH_O, NULL},
3167
- {"items", _PyCFunction_CAST(hamt_py_items), METH_NOARGS, NULL},
3168
- {"keys", _PyCFunction_CAST(hamt_py_keys), METH_NOARGS, NULL},
3169
- {"values", _PyCFunction_CAST(hamt_py_values), METH_NOARGS, NULL},
3199
+ {"set", hamt_py_set, METH_VARARGS, NULL},
3200
+ {"get", hamt_py_get, METH_VARARGS, NULL},
3201
+ {"delete", hamt_py_delete, METH_O, NULL},
3202
+ {"items", hamt_py_items, METH_NOARGS, NULL},
3203
+ {"keys", hamt_py_keys, METH_NOARGS, NULL},
3204
+ {"values", hamt_py_values, METH_NOARGS, NULL},
3170
3205
  #ifdef Py_DEBUG
3171
- {"__dump__", _PyCFunction_CAST(hamt_py_dump), METH_NOARGS, NULL},
3206
+ {"__dump__", hamt_py_dump, METH_NOARGS, NULL},
3172
3207
  #endif
3173
3208
  {NULL, NULL}
3174
3209
  };
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omextra
3
- Version: 0.0.0.dev508
3
+ Version: 0.0.0.dev509
4
4
  Summary: omextra
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev508
17
+ Requires-Dist: omlish==0.0.0.dev509
18
18
  Dynamic: license-file
19
19
 
20
20
  # Overview
@@ -18,7 +18,7 @@ omextra/asyncs/bluelet/sockets.py,sha256=nTVPdLbsmmjI0e6G9Di2DA-JoTTnvu8xc_Yv8N_
18
18
  omextra/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  omextra/collections/hamt/LICENSE,sha256=82rcXdtBwd6vGLddjx9Jk09kkwPL6yqqv1NzGjPUCoM,2460
20
20
  omextra/collections/hamt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- omextra/collections/hamt/_hamt.c,sha256=LDYWBuAl4685DbAZICrzO--EfIN8PjHZq0MUJYBAD74,100898
21
+ omextra/collections/hamt/_hamt.c,sha256=yMdFSaIeHhg_8PmAqeKtz3G3UYp4eGyPa_jd2MSsTYA,102227
22
22
  omextra/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  omextra/formats/goyaml/LICENSE,sha256=qkavv9cjd59BFIFOMVMJMrC3FCEIELrBTA-GPhAFkoY,1071
24
24
  omextra/formats/goyaml/__init__.py,sha256=_C1vxy34macvq1DIA2DSpJeO73qTTUrglMozbqRmRpI,1824
@@ -167,9 +167,9 @@ omextra/text/antlr/cli/__main__.py,sha256=ckYkj0drxabBVwWYewH2SS36TTeAxllZtS4xEl
167
167
  omextra/text/antlr/cli/cli.py,sha256=LW8pJNmySBOV3g8QxquPjUgxFv7YblzEyi555hHH3_M,1234
168
168
  omextra/text/antlr/cli/consts.py,sha256=HUYJP9j4RfeuuQv6HFd2oFMS0piWJ9Sq1tbeAs4OlBc,290
169
169
  omextra/text/antlr/cli/gen.py,sha256=HYleVptrpynwcl6GspX6O9_oMRSxwdYAQGuUFfDYse8,5236
170
- omextra-0.0.0.dev508.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
171
- omextra-0.0.0.dev508.dist-info/METADATA,sha256=BLTS3N99hhTA7diAhLLRcm9rh66NRgfGimprLI1y2SA,1409
172
- omextra-0.0.0.dev508.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
173
- omextra-0.0.0.dev508.dist-info/entry_points.txt,sha256=-MFAMks5HgZ60Ore0Wl5lKVKk8z4kf1Ls3WY9E_OlCU,37
174
- omextra-0.0.0.dev508.dist-info/top_level.txt,sha256=o1nCNRejLMcayDngLuWMWwaeOucz33BXbpuoVvvzjPc,8
175
- omextra-0.0.0.dev508.dist-info/RECORD,,
170
+ omextra-0.0.0.dev509.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
171
+ omextra-0.0.0.dev509.dist-info/METADATA,sha256=_BSD2nfUS339TTrOs7m03-RWhBS70awB_0KdLB_SCQY,1409
172
+ omextra-0.0.0.dev509.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
173
+ omextra-0.0.0.dev509.dist-info/entry_points.txt,sha256=-MFAMks5HgZ60Ore0Wl5lKVKk8z4kf1Ls3WY9E_OlCU,37
174
+ omextra-0.0.0.dev509.dist-info/top_level.txt,sha256=o1nCNRejLMcayDngLuWMWwaeOucz33BXbpuoVvvzjPc,8
175
+ omextra-0.0.0.dev509.dist-info/RECORD,,