bool-hybrid-array 9.10.20__tar.gz → 9.11.7__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bool-hybrid-array
3
- Version: 9.10.20
3
+ Version: 9.11.7
4
4
  Summary: 一个高效的布尔数组(密集+稀疏混合存储,节省内存)
5
5
  Home-page: https://github.com/BKsell/bool-hybrid-array
6
6
  Author: 蔡靖杰
@@ -17,6 +17,9 @@ Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
19
  Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: Implementation :: CPython
22
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
20
23
  Classifier: License :: OSI Approved :: MIT License
21
24
  Classifier: Operating System :: OS Independent
22
25
  Requires-Python: >=3.8
@@ -24,6 +27,8 @@ Description-Content-Type: text/markdown
24
27
  License-File: LICENSE
25
28
  Requires-Dist: numpy>=1.19.0
26
29
  Provides-Extra: int-array
30
+ Provides-Extra: numba-opt
31
+ Requires-Dist: numba>=0.55.0; extra == "numba-opt"
27
32
  Dynamic: author
28
33
  Dynamic: author-email
29
34
  Dynamic: classifier
@@ -40,10 +45,17 @@ Dynamic: summary
40
45
 
41
46
  # BoolHybridArray:高效的布尔混合数组库
42
47
 
48
+ <!-- 月下载量(核心推荐)+ 周下载量 + 总下载量 -->
49
+ [![月下载量](https://static.pepy.tech/badge/bool-hybrid-array/month)](https://pepy.tech/project/bool-hybrid-array)
50
+ [![周下载量](https://static.pepy.tech/badge/bool-hybrid-array/week)](https://pepy.tech/project/bool-hybrid-array)
51
+ [![总下载量](https://static.pepy.tech/badge/bool-hybrid-array)](https://pepy.tech/project/bool-hybrid-array)
52
+
43
53
  一个专为布尔值优化的数组类,能够根据数据特征自动在密集存储和稀疏存储模式间切换,兼顾性能和内存效率。
44
54
 
45
55
  ## ***注:大版本号更新并非不兼容更新,而是重大更新***
46
56
 
57
+ 注:当API完全稳定时就会发布版本规则较严谨的new-1.0.0版本,预期为10.x版本结束后
58
+
47
59
  ***注意:目前社区中若存在名称类似(如包含 “bool-hybrid-array”+ 后缀、boolean\_array、validate.io-boolean-array)的库,均与本项目(bool-hybrid-array)无关联,本项目的所有功能设计、代码实现均为独立开发;***
48
60
  ***其他平台里的类似名库绝不是我的库***
49
61
 
@@ -141,7 +153,7 @@ big_arr = BoolHybridArr([i % 100 == 0 for i in range(10000)])
141
153
 
142
154
  # 查看存储模式(此时应为稀疏模式)
143
155
 
144
- print(repr(big_arr)) # 输出: BoolHybridArray(split_index=100,size=10000,is_sparse=True,small_len=100,large_len=)不好意思large_len我不知道
156
+ print(repr(big_arr)) # 输出: BoolHybridArray(split_index=100, size=10000, is_sparse=True, small_len=101, large_len=98)
145
157
 
146
158
  # 自动优化存储
147
159
 
@@ -411,6 +423,27 @@ try:
411
423
  except OverflowError as e:
412
424
  print(f"\n❌ NumPy存储失败:{e}")
413
425
 
426
+ #BHA_Queue(9.11.5版本新增)
427
+
428
+ q = BHA_Queue([T, F, T, T, F])
429
+
430
+ print(f"初始化队列: {q}") # 输出:BHA_Queue([T,F,T,T,F])
431
+
432
+ q.enqueue(T)
433
+
434
+ q.enqueue(F)
435
+
436
+ print(f"入队2个元素后: {q}") # 输出:BHA_Queue([T,F,T,T,F,T,F])
437
+
438
+ # 3. 出队(dequeue,均摊O(1),仅首次触发转移)
439
+
440
+ print(f"第一次出队: {q.dequeue()}") # 输出:T(触发 self.a → self.b 转移,仅1次)
441
+
442
+ print(f"第二次出队: {q.dequeue()}") # 输出:F(直接从 self.b 弹出,纯O(1))
443
+
444
+ print(f"出队2个元素后: {q}") # 输出:BHA_Queue([T,T,F,T,F])
445
+
446
+
414
447
  ```
415
448
 
416
449
  ## 性能优势
@@ -478,7 +511,7 @@ except OverflowError as e:
478
511
  * **8.2.0**:支持哈希
479
512
  * **8.2.1**:修复8.2.0版本中的NameError
480
513
  * **8.2.2**:修复8.2.1版本中的IndexError
481
- - --9.0.0--:详情见上
514
+ - **9.0.0**:详情见上
482
515
  * **9.0.1**:小更新,优化optimize方法
483
516
  * **9.1.0**:新增二维数组的optimize与memory\_usage,优化二维数组的位运算,给BHA\_Bool新增__rand__、**ror**、__rxor__等等
484
517
  * **9.1.1**:修复9.1.0版本中的TypeError: unsupported operand type(s) for +: 'int' and 'method'错误
@@ -570,6 +603,18 @@ except OverflowError as e:
570
603
  * **9.10.18.post4**:尝试修复“满屏错误”的问题×3
571
604
  * **9.10.19**:和9.10.18.post4相同,正式版本发布
572
605
  * **9.10.20**:优化性能,增加BHA_jit_log日志
606
+ * **9.10.21**:优化Ask_BHA,移除BHA_jit_log日志
607
+ * **9.10.22**:进一步优化Ask_BHA的性能
608
+ * **9.11.0**:新增对7.3.10以上版本的PyPy解释器的支持
609
+ * **9.11.1**:修复PyPy解释器下的保护机制过度保护bug
610
+ * **9.11.2**:尝试修复IntHybridArray索引修改的错误
611
+ * **9.11.3**:修复NameError: name 'lst' is not defined. Did you mean: 'list'?错误
612
+ * **9.11.4**:修复TypeError: __dict__ must be set to a dictionary, not a 'IntHybridArray'的错误
613
+ * **9.11.5**:新增BHA_Queue双栈实现队列
614
+ * **9.11.6**:修复从9.11.3版本开始cpython用户无法安装bool-hybrid-array包的问题
615
+ * **9.11.7**:修复TypeError: 'map' object is not reversible的错误
616
+
617
+
573
618
 
574
619
 
575
620
  ## **彩蛋:**
@@ -584,7 +629,11 @@ except OverflowError as e:
584
629
  * A:BoolHybridArray是本库中的**核心类**,所有函数都是围绕他进行的,但需要`split_index`,`size`,`is_sparse`;
585
630
  BoolHybridArr是一个**函数**,用于把一个可迭代对象转为`BoolHybridArray`类
586
631
  * Q:为什么不建议把太大的本类型数组打印?
587
- * A:虽然本类型数组省内存,但字符串不省内存,一个`True`要4字节,一个`False`要5字节,连逗号都要占1字节(`numpy.ndarray`:我都比字符串省内存)
632
+ * A:虽然BoolHybridArray类型数组省内存,但字符串不省内存,一个`True`要4字节,一个`False`要5字节,连逗号都要占1字节(`numpy.ndarray`:我都比字符串省内存)
633
+ - Q:为什么使用在Windows终端使用PyPy时建议先调用`chcp 65001`再启动PyPy?
634
+ * A:因为本库有很多的的中文报错和打印,项目里也可能会有。Windows终端里的PyPy默认是GBK编码,有中文时会乱码。chcp 65001可以切换到UTF-8编码,防止乱码。
635
+
636
+
588
637
 
589
638
  ## 源代码和原理
590
639