crosshair-tool 0.0.83__cp310-cp310-win32.whl → 0.0.84__cp310-cp310-win32.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,7 +1,12 @@
1
1
  import codecs
2
- from collections.abc import ByteString
2
+ import sys
3
3
  from dataclasses import dataclass
4
- from typing import Dict, List, Optional, Tuple, Type, Union
4
+ from typing import List, Optional, Tuple, Type, Union
5
+
6
+ if sys.version_info >= (3, 12):
7
+ from collections.abc import Buffer
8
+ else:
9
+ from collections.abc import ByteString as Buffer
5
10
 
6
11
  from crosshair.core import realize
7
12
  from crosshair.libimpl.builtinslib import AnySymbolicStr, SymbolicBytes
@@ -87,7 +92,7 @@ class StemEncoder:
87
92
  def decode(
88
93
  cls, input: bytes, errors: str = "strict"
89
94
  ) -> Tuple[Union[str, AnySymbolicStr], int]:
90
- if not (isinstance(input, ByteString) and isinstance(errors, str)):
95
+ if not (isinstance(input, Buffer) and isinstance(errors, str)):
91
96
  raise TypeError
92
97
  parts: List[Union[str, AnySymbolicStr]] = []
93
98
  idx = 0
@@ -1,6 +1,5 @@
1
1
  import math
2
2
  import sys
3
- import unittest
4
3
 
5
4
  import pytest
6
5
 
@@ -66,9 +65,3 @@ def test_log():
66
65
  space.add(f > 0)
67
66
  math.log(i)
68
67
  math.log(f)
69
-
70
-
71
- if __name__ == "__main__":
72
- if ("-v" in sys.argv) or ("--verbose" in sys.argv):
73
- set_debug(True)
74
- unittest.main()
@@ -122,7 +122,7 @@ def check_search_anchored_end(text: str, flags: int) -> ResultComparison:
122
122
 
123
123
  def check_subn(text: str, flags: int) -> ResultComparison:
124
124
  """post: _"""
125
- return compare_results(lambda t, f: re.subn("aa", "ba", t, f), text, flags)
125
+ return compare_results(lambda t, f: re.subn("aa", "ba", t, flags=f), text, flags)
126
126
 
127
127
 
128
128
  def check_lookahead(text: str) -> ResultComparison:
@@ -150,7 +150,7 @@ def check_negative_lookbehind(text: str) -> ResultComparison:
150
150
 
151
151
  def check_subn_bytes(text: bytes, flags: int) -> ResultComparison:
152
152
  """post: _"""
153
- return compare_results(lambda t, f: re.subn(b"a", b"b", t, f), text, flags)
153
+ return compare_results(lambda t, f: re.subn(b"a", b"b", t, flags=f), text, flags)
154
154
 
155
155
 
156
156
  def check_findall_bytes(text: bytes, flags: int) -> ResultComparison:
crosshair/main.py CHANGED
@@ -448,7 +448,9 @@ def run_watch_loop(
448
448
  active_messages = {}
449
449
  else:
450
450
  time.sleep(0.1)
451
- max_uninteresting_iterations *= 2
451
+ max_uninteresting_iterations = min(
452
+ max_uninteresting_iterations * 2, 100_000_000
453
+ )
452
454
  for curstats, messages in watcher.run_iteration(max_uninteresting_iterations):
453
455
  messages = [m for m in messages if m.state > MessageType.PRE_UNSAT]
454
456
  stats.update(curstats)
@@ -1,4 +1,4 @@
1
- import unittest
1
+ import pytest
2
2
 
3
3
  from crosshair.objectproxy import ObjectProxy
4
4
 
@@ -11,17 +11,13 @@ class ObjectWrap(ObjectProxy):
11
11
  return object.__getattribute__(self, "_o")
12
12
 
13
13
 
14
- class ObjectProxyTest(unittest.TestCase):
14
+ class TestObjectProxy:
15
15
  def test_object_proxy(self) -> None:
16
16
  i = [1, 2, 3]
17
17
  proxy = ObjectWrap(i)
18
- self.assertEqual(i, proxy)
18
+ assert i == proxy
19
19
  proxy.append(4)
20
- self.assertEqual([1, 2, 3, 4], proxy)
21
- self.assertEqual([1, 2, 3, 4, 5], proxy + [5])
22
- self.assertEqual([2, 3], proxy[1:3])
23
- self.assertEqual([1, 2, 3, 4], proxy)
24
-
25
-
26
- if __name__ == "__main__":
27
- unittest.main()
20
+ assert [1, 2, 3, 4] == proxy
21
+ assert [1, 2, 3, 4, 5] == proxy + [5]
22
+ assert [2, 3] == proxy[1:3]
23
+ assert [1, 2, 3, 4] == proxy
@@ -284,6 +284,7 @@ class BuildStringInterceptor(TracingModule):
284
284
  class FormatValueInterceptor(TracingModule):
285
285
  """Avoid checks and realization during FORMAT_VALUE (used by f-strings)."""
286
286
 
287
+ # TODO: don't we need to handle FORMAT_SIMPLE and FORMAT_WITH_SPEC?
287
288
  opcodes_wanted = frozenset([FORMAT_VALUE, CONVERT_VALUE])
288
289
 
289
290
  def trace_op(self, frame, codeobj, codenum):
crosshair/py.typed ADDED
File without changes
crosshair/watcher.py CHANGED
@@ -244,8 +244,8 @@ class Watcher:
244
244
  pool = self._pool
245
245
  for filename, _ in sorted(self._modtimes.items(), key=lambda pair: -pair[1]):
246
246
  worker_timeout = max(
247
- 10.0, max_uninteresting_iterations * 100.0
248
- ) # TODO: times 100? is that right?
247
+ 10.0, max_uninteresting_iterations * 1_000.0
248
+ ) # TODO: times 1000? is that right?
249
249
  iter_options = AnalysisOptionSet(
250
250
  max_uninteresting_iterations=max_uninteresting_iterations,
251
251
  )
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: crosshair-tool
3
- Version: 0.0.83
3
+ Version: 0.0.84
4
4
  Summary: Analyze Python code for correctness using symbolic execution.
5
5
  Home-page: https://github.com/pschanely/CrossHair
6
6
  Author: Phillip Schanely
@@ -54,6 +54,7 @@ Dynamic: description
54
54
  Dynamic: description-content-type
55
55
  Dynamic: home-page
56
56
  Dynamic: license
57
+ Dynamic: license-file
57
58
  Dynamic: provides-extra
58
59
  Dynamic: requires-dist
59
60
  Dynamic: requires-python
@@ -64,7 +65,7 @@ Dynamic: summary
64
65
  # CrossHair
65
66
 
66
67
  [![Join the chat on Discord](https://img.shields.io/discord/1346219754519789719?logo=discord&logoColor=white)](https://discord.gg/rUeTaYTWbb)
67
- [![Check status](https://github.com/pschanely/CrossHair/workflows/Check/badge.svg)](https://github.com/pschanely/CrossHair/actions?query=workflow%3ACheck)
68
+ [![Check status](https://github.com/pschanely/CrossHair/actions/workflows/check.yml/badge.svg?branch=main&event=push)](https://github.com/pschanely/CrossHair/actions?query=workflow%3ACheck+event%3Apush)
68
69
  [![Downloads](https://static.pepy.tech/badge/crosshair-tool/week)](https://pepy.tech/project/crosshair-tool)
69
70
 
70
71
  An analysis tool for Python that blurs the line between testing and
@@ -1,5 +1,5 @@
1
- _crosshair_tracers.cp310-win32.pyd,sha256=zI_Rktu-QC0E9roDxS23owT3lFa576O2G2Tzy13Vhhc,16896
2
- crosshair/__init__.py,sha256=IqRFkafitty3tkYfACAA3b-oTyS1vL9-j-VG-xekdlY,978
1
+ _crosshair_tracers.cp310-win32.pyd,sha256=8wvSMwitEvod2f-eDgpfgGep02e68Rm6WC4WpPUCnUY,16896
2
+ crosshair/__init__.py,sha256=b1IMsf545mm7J-blZ17q5pZMBSdgs_7DwkOOUxyunQ8,978
3
3
  crosshair/__main__.py,sha256=i4pjsZlXvtieQHJTEB0sF3e40qJjLoOm1z5rm-u70Uo,260
4
4
  crosshair/_mark_stacks.h,sha256=XylvLzFaX8a2UzEkWPh3L9MZoyDh0yvZ6Y0Rgsegh_Y,30676
5
5
  crosshair/_preliminaries_test.py,sha256=klkzKGpyyVDGctCXdvq1xyXbGa4PRnXda1jfgE-7LLY,522
@@ -7,35 +7,35 @@ crosshair/_tracers.h,sha256=39yWCs3BXPX-K5khVnO8QveTU-eDCvskiTNVrO8Pnyg,2161
7
7
  crosshair/_tracers_pycompat.h,sha256=KqJHbya8zi1Z4Qrk2S6P-FfmC_Ew5LYvTxbA-V9TWPw,14878
8
8
  crosshair/_tracers_test.py,sha256=wi7ONnBywdI8sslzsncz6nMWlVpOdcH8bVztk32xJwM,3620
9
9
  crosshair/abcstring.py,sha256=Jvnnm7xsHGTcZvu5mbV_eL5IVEvbNNbeCauM6f7QYEI,6794
10
- crosshair/auditwall.py,sha256=Z8Vp-2ZjnPqtCKS8x04SnqGgPuvrzWRcTdR8eoa5pvs,5177
11
- crosshair/auditwall_test.py,sha256=7Qk6-MeA4dFq0SzI73U_t5-WRI42O89fM2HQ179cHCk,1976
10
+ crosshair/auditwall.py,sha256=Rlz0PDjAK17ykpcqbh8tstN4MXk3w09J-E1ibIKUv7o,5162
11
+ crosshair/auditwall_test.py,sha256=SKTy_7Q6xP0Den4i7HRHSaU0b37smi_Mb-arQnppFPI,2107
12
12
  crosshair/codeconfig.py,sha256=L0EmcEZlWA51sl32uBxvFPwbTmuglVDHNq8k35JkXw0,4071
13
13
  crosshair/codeconfig_test.py,sha256=n5kXtW60vG_CA0QlzLE3mS4k9caEwhB30bnhaGNh6Ww,3467
14
14
  crosshair/condition_parser.py,sha256=M_hfJ7Qz_ocCLOyGxTl_lTvHaF-ZDs9PV84W44L43AE,43799
15
- crosshair/condition_parser_test.py,sha256=bFkt8jrPMg3Z9knnOo9JZw7Q-kszzERDH5Am_Rla2Y4,16643
15
+ crosshair/condition_parser_test.py,sha256=_mAkkjjhoEpMOQhhaEqSLSFFhxdAwQP1xYTnaormoUU,16031
16
16
  crosshair/conftest.py,sha256=JjUauvXnjERszuS46iskuBRHBx-0uHacwKHeQ-gEQ2c,683
17
17
  crosshair/copyext.py,sha256=U4C24YF_jZf9yRduZGLLP6qXIRFbPiBHIyywu2liyzw,4708
18
18
  crosshair/copyext_test.py,sha256=kYbidguhGQBRvNY163IT8EkDJNg1TNOhIW0VwHXPUGA,1903
19
- crosshair/core.py,sha256=wJXrKYx1wRcsLcmtL5pwmodTqn5S01DQrvYI52ODHgk,65177
19
+ crosshair/core.py,sha256=uVUz_SUye6EeV9EKGSnBFfK9G0MaZ2kLCjFUqorGR_c,65380
20
20
  crosshair/core_and_libs.py,sha256=U9GDCBE9Ecxy7T7bmJT7IYiQTdY1C8qbcoIoMMocu5U,4112
21
21
  crosshair/core_regestered_types_test.py,sha256=3o1GrtjCEWSW-paPp5-yVdE2K1_ZIviGCff7KVZ0VS0,2181
22
- crosshair/core_test.py,sha256=ZrU6PYGllC64WK5MSgCxmun8uCDNKcbLYtZVG2Q1gYw,35935
22
+ crosshair/core_test.py,sha256=bHpq_OcUsVWFWGnsCUX4AEM22vLfoCzCsPaEnsbAzYc,33490
23
23
  crosshair/diff_behavior.py,sha256=2T11J2Hk35Qp3RRp5ALtXyTgAl3v0W3KDNR_mSec-D4,11567
24
- crosshair/diff_behavior_test.py,sha256=PrBJH82445pZh4xECLjZcFv4v6twI_9tlUoJgYB9fGk,7778
25
- crosshair/dynamic_typing.py,sha256=2m95oqPFCyL2D-x5txac4PAKpcDfI-taDxcdDP5gi9A,8817
26
- crosshair/dynamic_typing_test.py,sha256=WVuMi-ijYwgo88t0eLHI2Zx3KUmmdKAfc71Kiy8RJl0,3381
24
+ crosshair/diff_behavior_test.py,sha256=TUmqPOj_Qij8a7NMLFYt0IskL5Q_CdDLD5pnxnomuJ0,7505
25
+ crosshair/dynamic_typing.py,sha256=9cIUZqB7A8bvu8u-fgX0nc5grtnjFQLrsZYP2y53keI,12307
26
+ crosshair/dynamic_typing_test.py,sha256=szfUa9zLFVMv1YiuJvrC9-ZMZnlS36tqJ373MGXVkAA,5673
27
27
  crosshair/enforce.py,sha256=lIeDeqavEa06tVMlIk5ScibVGS04yHZ3xIpkTPK5QQw,10291
28
- crosshair/enforce_test.py,sha256=B4c9bbBG2oTjvmX7GMdb7ZU9KvH5DDisbNYW0WIHtOk,5091
28
+ crosshair/enforce_test.py,sha256=CvofUxa_Y-np5vhlBcjsrZ2CkpxNFbjv5U-rH027pw4,4847
29
29
  crosshair/fnutil.py,sha256=Fe77jLudjf7X_fNLExLoMTFElQWQ3wCpA_MC06JaOKk,13515
30
- crosshair/fnutil_test.py,sha256=mkn4ESQleGh-5VdV6MNvxjCtAeEgA1IuRjZcJck0f6Q,2318
30
+ crosshair/fnutil_test.py,sha256=1BFFpVnCMM-rS9k_JdSSjX1pPXRpEkUKlmG5e_rFZ1I,2166
31
31
  crosshair/fuzz_core_test.py,sha256=wWILaE5cpxfiRl89WgCWMpNIGS8BnWcQmgartQYCCJ8,17411
32
32
  crosshair/lsp_server.py,sha256=lOj-Nd-ouQ3AFTWw1agoj8MzZ8324ac_NopGimCy_S0,8920
33
33
  crosshair/lsp_server_test.py,sha256=yHp7JtJLpF2G049lwhNlgAYXnVM88CtsudVVHVY7Hs0,999
34
- crosshair/main.py,sha256=jPlpsGhSG1K_QjIhAECTLStm3ir3lkfa7dL4PlDIAvQ,35261
34
+ crosshair/main.py,sha256=Dibj8nGZeNe010vCU0j1v-h8IhcUJyyED_dVKQZaIj0,35341
35
35
  crosshair/main_test.py,sha256=YDnAaAm6A8g-3D5qVTQJ69wnBEx7Ag33AlJmrf-pifk,14917
36
36
  crosshair/objectproxy.py,sha256=qYPVvH3EVUmh7GI9-73mfmOTzcTH_gyn5DhK44hp8KI,9286
37
- crosshair/objectproxy_test.py,sha256=4c5E9Dib3KWHUrGeyQOh_4ku3xG-kp_4ib6rh25UuKg,709
38
- crosshair/opcode_intercept.py,sha256=e0z2P-ISJ9gIw1RVUHjizYbP82CiNAE3ZK6xe7M-f-g,18725
37
+ crosshair/objectproxy_test.py,sha256=P5N28U5l9ngozqLr2EgtVOII3PS3fB2dOOPc9LLt8Zo,590
38
+ crosshair/opcode_intercept.py,sha256=oHbA0EivugRKIhRRLN_9TWvVWIbbV78UojVf3Or_Kto,18798
39
39
  crosshair/opcode_intercept_test.py,sha256=89VEwB-2L9PRIMZjVL90lcgV9h52w2br88V4mSbuWsA,5930
40
40
  crosshair/options.py,sha256=y3lYP5AfwkHFXjF7zl0kUrTH1_C5u1DMo_yAH_mivm8,6993
41
41
  crosshair/options_test.py,sha256=eTlaTqNb29I3ZyyV0yCq_kEeE441l4xh-jKF_W6cWqs,389
@@ -47,6 +47,7 @@ crosshair/path_search_test.py,sha256=xhY7qmLRaDMnueFgokJaDKOufs2fhJdqU6okM4hWgF4
47
47
  crosshair/pathing_oracle.py,sha256=Q73EBnlO_Ousa8s6OiZbaoDdeEAOTUogRjqpa4RDg9Y,9538
48
48
  crosshair/pure_importer.py,sha256=yA1HkM3Jykt2w00OQALwxi5Gt_FFa-NU9JRiBcDS2DM,905
49
49
  crosshair/pure_importer_test.py,sha256=Tp4RitGWUhtLhNxOlJkdz43WyXZLynARbCcY4lzG7Bk,437
50
+ crosshair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
51
  crosshair/register_contract.py,sha256=PcwWLn6Hv6Rm8xbZhalNJwYUnjzxoRcw_SZ_QmYCfbs,10658
51
52
  crosshair/register_contract_test.py,sha256=WUDcRHSdZr3m4ZmDLkfdeZlWid-tdeBGqAHe0-_-Ycw,5162
52
53
  crosshair/simplestructs.py,sha256=DQu4LVS5KLEIH3-z_DEg0LU3VxovKE_JRjHvBdGCzb4,35380
@@ -66,7 +67,7 @@ crosshair/unicode_categories.py,sha256=qcTLV1lJ0skY9sRo7YlEtRvfJCvGda-nWcImoB4RZ
66
67
  crosshair/unicode_categories_test.py,sha256=KZ2OKOSMALmFp1BQbWj1-x6Ek5Iv2byxF4ytx2mN7LU,766
67
68
  crosshair/util.py,sha256=TKx8t2cyKWQtx35PocWgk8VT6cwt5toHu-bShMrYdfo,21703
68
69
  crosshair/util_test.py,sha256=fIc3TeMbyu9nI430_gGbUrqXhPJ5wl9TxWAtIGgEL4s,4849
69
- crosshair/watcher.py,sha256=_Yr_8kF1TwGUaiSLUmV2p6jSmdE3jKK0NDsc4idqJWM,10352
70
+ crosshair/watcher.py,sha256=A8ywSNPUY6Y4BHVO51dGM18nQcwGYx_kbBEwIOMTzF4,10355
70
71
  crosshair/watcher_test.py,sha256=TCOdXmdGZ3NJ59X_w7SRVqiJY-BL2tUqyXK-3ql1d6s,2871
71
72
  crosshair/z3util.py,sha256=_NcVbYhvSt24vhkpiXdEh4o2VRSIjb4g8Xpq49sJsGg,1835
72
73
  crosshair/z3util_test.py,sha256=9_6fhpTphEQlg4QY29bGzN0KxfktsT8wYveNgbfqueg,184
@@ -94,19 +95,19 @@ crosshair/examples/icontract/correct_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-
94
95
  crosshair/examples/icontract/correct_code/arith.py,sha256=fImqdDCzE523ijM5TZnFJMGpq7otdLoNoM3uu66vUus,1559
95
96
  crosshair/examples/icontract/correct_code/showcase.py,sha256=UlVhUWU1KKf285tL41DP_z-Uywid4kh1U2kUwje5mZ8,3181
96
97
  crosshair/libimpl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- crosshair/libimpl/arraylib.py,sha256=BG--3XfO9HNoSpmKcpVbF2wsvWwLCN29WXXBDOQSu9M,5132
98
+ crosshair/libimpl/arraylib.py,sha256=fGhA_WGR7V-DR1EuBHpwlbtqVtk5g9-t32N1ePOSczA,5355
98
99
  crosshair/libimpl/binascii_ch_test.py,sha256=qWAYU1Sid3muwYL8pvVoCsMQtm5t3J8jFtolygvdghQ,1039
99
100
  crosshair/libimpl/binascii_test.py,sha256=Yg37_B-eywcLq7EbsJZR3BUYYF6A1PGxE4qsmeBMyXg,2037
100
- crosshair/libimpl/binasciilib.py,sha256=qd6_l-dzfJEFImR1VlvSzjNjS2UE7C7wwoP11Y7p3tQ,5228
101
+ crosshair/libimpl/binasciilib.py,sha256=kBFH5-W_q1gCTC-wusSq0cAsUsB_xOUpcW0XQbLzkSQ,5220
101
102
  crosshair/libimpl/bisectlib_test.py,sha256=rVpcalZ4g3xr_b6z1Bv2FU1N07vPZyWhU9_CPzC8sBk,776
102
- crosshair/libimpl/builtinslib.py,sha256=Ds8NXeSD2E_dZaUg6TIjQR59wAgAc5kKYjwFmPFIoys,187691
103
+ crosshair/libimpl/builtinslib.py,sha256=4RZ9o8PJPgS_vtT6vZvXZxOucTrDNL6ibOXKWGRfji0,187645
103
104
  crosshair/libimpl/builtinslib_ch_test.py,sha256=Do8kWNgfosLfI3yzZvTZ3ceuKTF0axN1ckkNZyn4ozE,31685
104
- crosshair/libimpl/builtinslib_test.py,sha256=FL8UCeniavuuyrbUrgPCSir3qV1N-cPmeh1mLDHZ23w,94099
105
+ crosshair/libimpl/builtinslib_test.py,sha256=-TYk-ctn0YxT6I4ZFeSmRF-zB857KAWNaaJs9lwVzhs,93928
105
106
  crosshair/libimpl/codecslib.py,sha256=cvpCbieFRB4BdfLqmKeJzpvm35qZ0ONqtilXPmN8OWI,2754
106
107
  crosshair/libimpl/codecslib_test.py,sha256=3_uqcxEYK3BONdga0skZ1BkSPkIHRCgdoMB8NM3oUVY,2622
107
- crosshair/libimpl/collectionslib.py,sha256=Mdcinx-DVOgpeYMM4ids-_cl8r0Lr14hxlmgyQcLIEY,8374
108
+ crosshair/libimpl/collectionslib.py,sha256=LAnOG7ivHu_gq8KMOPirzjjn_Ua9R2IuxDmJDiXbe4I,8530
108
109
  crosshair/libimpl/collectionslib_ch_test.py,sha256=A6-qeCU1zTcvuS6HkmF48Q45F3SvQJkh-BTUc2DKxJo,6107
109
- crosshair/libimpl/collectionslib_test.py,sha256=ycqLQi1NlF4idfLWLX0aprcSsg5vH5nfvGe1gKHlI9Q,6920
110
+ crosshair/libimpl/collectionslib_test.py,sha256=ttl88lydCERlS9lbzuNjmQdxIHe2VSW9Zz9SFebglD4,9156
110
111
  crosshair/libimpl/copylib.py,sha256=s2q6jMCT2bvzyq5kQyT40TsmOeeJmLI4Corz4qWDZyE,550
111
112
  crosshair/libimpl/datetimelib.py,sha256=fN-w40BapjLSOiGYpjBsJOvui14_VQvdwx-wKHKoDOU,81411
112
113
  crosshair/libimpl/datetimelib_ch_test.py,sha256=NpZjUJgM08gB04d2gXkbrm7Y7Pdh3aso9GYb9iZtq6o,9632
@@ -136,13 +137,13 @@ crosshair/libimpl/jsonlib_ch_test.py,sha256=PXRtccN_gRXgSD4by7Sbco2uOLkguzhJ2WoU
136
137
  crosshair/libimpl/jsonlib_test.py,sha256=4fE-mb8nt8Uc3XV5WwQWui0fg5TJUsAxJPInovl2cFk,1433
137
138
  crosshair/libimpl/mathlib.py,sha256=N3UWGNMJ1-fm0sIP0J0P1G4BOHdixq0htlSE3dn7ESY,4435
138
139
  crosshair/libimpl/mathlib_ch_test.py,sha256=fKfGCFblOzWw7BxN9FipH2_GUMBfFtYVh-EOu3M4314,1313
139
- crosshair/libimpl/mathlib_test.py,sha256=mIg_cK5QJrOoqK5LnRz_ET6gWD5IdEkZ8J9w8-sMGj0,2080
140
+ crosshair/libimpl/mathlib_test.py,sha256=1FkskoIrhcqONKioLGQIWqkrK36Ds53Afxii-m9tOEM,1928
140
141
  crosshair/libimpl/oslib.py,sha256=hbpVYfxMUfU9vHjc026Lz9cHHRMko2G_7yEodljwwR8,130
141
142
  crosshair/libimpl/pathliblib_test.py,sha256=ySRzUBzLlb7fDJaPNJSUk8Rg5sf71_fegyyRKSA8UIo,262
142
143
  crosshair/libimpl/randomlib.py,sha256=yjQmgnwjF6UxffVtBiBi6CFln1CtSse947BtaPIvYn4,6338
143
144
  crosshair/libimpl/randomlib_test.py,sha256=szLn-O2No5JN83AE6UC5p9rm27nLKTpttXsV_DQjAig,3442
144
145
  crosshair/libimpl/relib.py,sha256=oqAKNC_RiXbH5cRwVBRhG1UAaqQLclt3_UAFDt6UzhY,30102
145
- crosshair/libimpl/relib_ch_test.py,sha256=fQn6MxRWbqAr1T_MEgq77Ir-1lq0XiIZZoBk2BHXxHk,5392
146
+ crosshair/libimpl/relib_ch_test.py,sha256=o-u9iHMcw3QIl99fP42BkrWtoC0rfv8C72OsiuO55nM,5404
146
147
  crosshair/libimpl/relib_test.py,sha256=f-xqNpOZKbp6kg0VyrkXANt0gglF2ykwAeG8uGQHSuI,16578
147
148
  crosshair/libimpl/timelib.py,sha256=S2zNnQ5SoRepuAdeh8CzTqlz0zTJdCa_xHf36OUwBHA,1864
148
149
  crosshair/libimpl/timelib_test.py,sha256=CA5-aK6twd9BEvxaFvUr3wE6uIQx6Dd_1YgIF5rk3jc,1703
@@ -157,7 +158,7 @@ crosshair/libimpl/weakreflib_test.py,sha256=1ld2-TlYshkIcXGKUY0Ox-dnpn9AA9Nualp_
157
158
  crosshair/libimpl/zliblib.py,sha256=bpOYrRzLU9b1l3w_P3YDyrdrxaCAqwU3qQ4R_jLyjOY,372
158
159
  crosshair/libimpl/zliblib_test.py,sha256=JoaxxdOu3spYm68tmRw70kdrXdf9njkFOILhpWcX1xg,401
159
160
  crosshair/libimpl/encodings/__init__.py,sha256=VKUh56DNBLSFZEGVvKddivDAooo2pCh9o3hHA8OkYTI,703
160
- crosshair/libimpl/encodings/_encutil.py,sha256=oYDS2L418Nrgn7j2e0hWLkxG1YzsGMA9prP9HueRuVI,6912
161
+ crosshair/libimpl/encodings/_encutil.py,sha256=Rz5Ov62QaH14SzguSeoIlJ_DN-R8EdRny_HbT9V-fXw,7010
161
162
  crosshair/libimpl/encodings/ascii.py,sha256=2EmYZTk51OaKx3kiv-ZDUYU3N5k3-OT0CrS8zr24M5A,1460
162
163
  crosshair/libimpl/encodings/latin_1.py,sha256=BfgfxYvhzrk6lmDSOEhr85GXPo4_nHq0YCDGKJXZie8,1282
163
164
  crosshair/libimpl/encodings/utf_8.py,sha256=hEUknu2B5Gt6exPTWK9KowywDd14eTTmqEqXSC2shzU,3266
@@ -165,9 +166,9 @@ crosshair/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
166
  crosshair/tools/check_help_in_doc.py,sha256=An-2EJ0_Xr-Szo431AoEgJafoFWwnPl8HoT4bi86dd8,8499
166
167
  crosshair/tools/check_init_and_setup_coincide.py,sha256=f4TvPg1Q3C_BQYtGgPfY_fqxo_ZTeU7QCy7WwQjaIlA,3621
167
168
  crosshair/tools/generate_demo_table.py,sha256=qm4ZUXjUBKkVZ3bVVK9h6dJMDKYme8zMl-7at_aG7b0,3958
168
- crosshair_tool-0.0.83.dist-info/LICENSE,sha256=qQLSJN48eqvalILMr3uzkg0p74FtK7WSwkux-0twy-s,4552
169
- crosshair_tool-0.0.83.dist-info/METADATA,sha256=SBdZ6qWR0-o96ZbMP7eoBoS7kvJSiDrbAFllbnn3IA4,6791
170
- crosshair_tool-0.0.83.dist-info/WHEEL,sha256=HLRmbo8VxiC3W0Z_EUGBOjFarWaJJpVCzHHJ817UNj0,97
171
- crosshair_tool-0.0.83.dist-info/entry_points.txt,sha256=u5FIPVn1jqn4Kzg5K_iNnbP6L4hQw5FWjQ0UMezG2VE,96
172
- crosshair_tool-0.0.83.dist-info/top_level.txt,sha256=2jLWtM-BWg_ZYNbNfrcds0HFZD62a6J7ZIbcgcQrRk4,29
173
- crosshair_tool-0.0.83.dist-info/RECORD,,
169
+ crosshair_tool-0.0.84.dist-info/licenses/LICENSE,sha256=qQLSJN48eqvalILMr3uzkg0p74FtK7WSwkux-0twy-s,4552
170
+ crosshair_tool-0.0.84.dist-info/METADATA,sha256=OyH44EZGpeyJNQYme3fwJdDW1SSHodXmsXkrycM4hUk,6862
171
+ crosshair_tool-0.0.84.dist-info/WHEEL,sha256=qbnZcnvJ4eTSotpyt5i0JIyrDJwGNAZwlHgF-3msIew,97
172
+ crosshair_tool-0.0.84.dist-info/entry_points.txt,sha256=u5FIPVn1jqn4Kzg5K_iNnbP6L4hQw5FWjQ0UMezG2VE,96
173
+ crosshair_tool-0.0.84.dist-info/top_level.txt,sha256=2jLWtM-BWg_ZYNbNfrcds0HFZD62a6J7ZIbcgcQrRk4,29
174
+ crosshair_tool-0.0.84.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (77.0.3)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-win32
5
5