bool-hybrid-array 9.10.15__py3-none-any.whl → 9.10.17__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.
@@ -1,15 +1,36 @@
1
1
  import sys
2
- from types import ModuleType
2
+ from types import ModuleType,FunctionType
3
3
  from . import core
4
4
  from .core import __builtins__,builtins
5
5
  from . import int_array
6
- __version__ = "9.10.15"
6
+ __version__ = "9.10.17"
7
7
  public_objects = []
8
+ def jit_class_methods(cls):
9
+ for attr_name in dir(cls):
10
+ if not attr_name.startswith("_"):
11
+ attr = getattr(cls, attr_name)
12
+ if isinstance(attr, FunctionType):
13
+ try:
14
+ setattr(cls, attr_name, jit(attr))
15
+ except:
16
+ pass
17
+ elif isinstance(attr, classmethod):
18
+ original_func = attr.__func__
19
+ try:
20
+ setattr(cls, attr_name, classmethod(jit(original_func)))
21
+ except:
22
+ pass
23
+ return cls
8
24
  for name in dir(core):
9
25
  if not name.startswith("_"):
10
26
  obj = getattr(core, name)
11
27
  if isinstance(obj, (type, ModuleType)) or callable(obj):
12
28
  public_objects.append(name)
29
+ if isinstance(obj,FunctionType):
30
+ try:setattr(core,name,jit(obj))
31
+ except:pass
32
+ elif isinstance(obj,type):
33
+ jit_class_methods(obj)
13
34
  __all__ = public_objects + ["__version__","__builtins__","core","builtins","__dict__","int_array"]
14
35
  globals().update({
15
36
  name: getattr(core, name)
bool_hybrid_array/core.py CHANGED
@@ -756,6 +756,15 @@ class ProtectedBuiltinsDict(dict,metaclass=ResurrectMeta):
756
756
  raise AttributeError(f'禁止修改内置常量:{self.name}.{name}')
757
757
  else:
758
758
  super().__setattr__(name,value)
759
+ def __import__(self, name, globals=None, locals=None, fromlist=(), level=0):
760
+ if fromlist:
761
+ result = []
762
+ for key in fromlist:
763
+ if key not in self:
764
+ raise AttributeError(f"'ImportableDict' object has no attribute '{key}'")
765
+ result.append(self[key])
766
+ return result[0] if len(result) == 1 else tuple(result)
767
+ return self
759
768
  def Ask_arr(arr):
760
769
  if isinstance(arr,BHA_List):
761
770
  return '\n'.join(map(Ask_arr,arr))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bool-hybrid-array
3
- Version: 9.10.15
3
+ Version: 9.10.17
4
4
  Summary: 一个高效的布尔数组(密集+稀疏混合存储,节省内存)
5
5
  Home-page: https://github.com/BKsell/bool-hybrid-array
6
6
  Author: 蔡靖杰
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: License :: OSI Approved :: MIT License
20
21
  Classifier: Operating System :: OS Independent
21
22
  Requires-Python: >=3.8
@@ -560,7 +561,8 @@ except OverflowError as e:
560
561
  * **9.10.13**:给IntHybridArray新增多种列表操作
561
562
  * **9.10.14**:修复IntHybridArray中因单个 0 导致所有数字位长被压缩到 1的问题
562
563
  * **9.10.15**:修复IntHybridArray变成布尔数组的错误
563
-
564
+ * **9.10.16**:新增Python 3.14时的jit优化加速
565
+ * **9.10.17**:给保护字典添加__import__方法,支持from导入
564
566
 
565
567
 
566
568
 
@@ -0,0 +1,10 @@
1
+ bool_hybrid_array/__init__.py,sha256=Rl_oQQ0zUXxk7Ut2eYU2x_HL-gBwJvpsIHuwbr8LzX8,1660
2
+ bool_hybrid_array/__main__.py,sha256=3MsUAXMj6Pe1EzP7YreuUePbXZeQvFSCnejnTeS42kU,8324
3
+ bool_hybrid_array/core.py,sha256=8DGohIfHrnkY_WoxC1soTcdzVdYS1CCDENPNk3XwtE8,36996
4
+ bool_hybrid_array/秘密.md,sha256=Ii2NvXmv-Ktu04zJsGLcQZvlzT4gOatByE4B2wTK1Ks,48
5
+ bool_hybrid_array/int_array/__init__.py,sha256=EnjBonyL35YKDTtQ2g6tnrf4tTKEt5k-EAEbqLRuptI,8548
6
+ bool_hybrid_array-9.10.17.dist-info/licenses/LICENSE,sha256=Sg4rnGXkBDYkwJCWyxdWp5H60rhVAxpNvFh_l3JWZdY,1070
7
+ bool_hybrid_array-9.10.17.dist-info/METADATA,sha256=KunycAjtiVOyDtoCykbzL6-CjTUbZctRVF8ADWDpQHM,22968
8
+ bool_hybrid_array-9.10.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
+ bool_hybrid_array-9.10.17.dist-info/top_level.txt,sha256=vk-TD77wuVQsN1rJ6uVWZX4sC_wya_WplRDwQKJoBZM,18
10
+ bool_hybrid_array-9.10.17.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- bool_hybrid_array/__init__.py,sha256=m4L8YfX1-psmzeZZz1ksRmkj5wk7JbBcHYgiVnuAkYY,876
2
- bool_hybrid_array/__main__.py,sha256=3MsUAXMj6Pe1EzP7YreuUePbXZeQvFSCnejnTeS42kU,8324
3
- bool_hybrid_array/core.py,sha256=zp4jam5xC_CZvVVkmfT6fPAhBzf4-wspDnYuz0z49Ys,36578
4
- bool_hybrid_array/秘密.md,sha256=Ii2NvXmv-Ktu04zJsGLcQZvlzT4gOatByE4B2wTK1Ks,48
5
- bool_hybrid_array/int_array/__init__.py,sha256=EnjBonyL35YKDTtQ2g6tnrf4tTKEt5k-EAEbqLRuptI,8548
6
- bool_hybrid_array-9.10.15.dist-info/licenses/LICENSE,sha256=Sg4rnGXkBDYkwJCWyxdWp5H60rhVAxpNvFh_l3JWZdY,1070
7
- bool_hybrid_array-9.10.15.dist-info/METADATA,sha256=mS-KbHgJZm0VG_6P8nj4Ae3vlfuOeCk8YTQSao_bblE,22788
8
- bool_hybrid_array-9.10.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- bool_hybrid_array-9.10.15.dist-info/top_level.txt,sha256=vk-TD77wuVQsN1rJ6uVWZX4sC_wya_WplRDwQKJoBZM,18
10
- bool_hybrid_array-9.10.15.dist-info/RECORD,,