crosshair-tool 0.0.83__cp313-cp313-macosx_10_13_universal2.whl → 0.0.84__cp313-cp313-macosx_10_13_universal2.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.

Potentially problematic release.


This version of crosshair-tool might be problematic. Click here for more details.

Files changed (32) hide show
  1. _crosshair_tracers.cpython-313-darwin.so +0 -0
  2. crosshair/__init__.py +1 -1
  3. crosshair/auditwall.py +0 -1
  4. crosshair/auditwall_test.py +5 -0
  5. crosshair/condition_parser_test.py +50 -63
  6. crosshair/core.py +23 -17
  7. crosshair/core_test.py +625 -584
  8. crosshair/diff_behavior_test.py +14 -21
  9. crosshair/dynamic_typing.py +91 -2
  10. crosshair/dynamic_typing_test.py +73 -1
  11. crosshair/enforce_test.py +15 -22
  12. crosshair/fnutil_test.py +0 -7
  13. crosshair/libimpl/arraylib.py +13 -3
  14. crosshair/libimpl/binasciilib.py +2 -3
  15. crosshair/libimpl/builtinslib.py +6 -7
  16. crosshair/libimpl/builtinslib_test.py +1 -8
  17. crosshair/libimpl/collectionslib.py +5 -1
  18. crosshair/libimpl/collectionslib_test.py +79 -13
  19. crosshair/libimpl/encodings/_encutil.py +8 -3
  20. crosshair/libimpl/mathlib_test.py +0 -7
  21. crosshair/libimpl/relib_ch_test.py +2 -2
  22. crosshair/main.py +3 -1
  23. crosshair/objectproxy_test.py +7 -11
  24. crosshair/opcode_intercept.py +1 -0
  25. crosshair/py.typed +0 -0
  26. crosshair/watcher.py +2 -2
  27. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info}/METADATA +4 -3
  28. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info}/RECORD +32 -31
  29. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info}/WHEEL +1 -1
  30. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info}/entry_points.txt +0 -0
  31. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info/licenses}/LICENSE +0 -0
  32. {crosshair_tool-0.0.83.dist-info → crosshair_tool-0.0.84.dist-info}/top_level.txt +0 -0
@@ -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,4 +1,4 @@
1
- _crosshair_tracers.cpython-313-darwin.so,sha256=cZy2YH9ynmWT8bVnL1PRbu3Cy5i7vUfHrPF5f19BZdY,90624
1
+ _crosshair_tracers.cpython-313-darwin.so,sha256=_7qahfpdBYv4vAmaDJgFcUKslxXFBJL3fzbdyiDerJo,90624
2
2
  crosshair/_tracers_pycompat.h,sha256=6IYnbQxrYkhBsLDAHSX25DPOwo1oYHCZUVWZ8c7YCnQ,14356
3
3
  crosshair/pure_importer.py,sha256=-t4eowrZOQmfqK1N2tjI5POoaxRGavytwMmbRivelFg,878
4
4
  crosshair/options.py,sha256=htQNgnrpoRjSNq6rfLBAF8nos-NNIwmP6tQYyI8ugsM,6775
@@ -6,15 +6,15 @@ crosshair/lsp_server_test.py,sha256=7LO1Qqxkper3Xt2krgOlGqF1O_uDObo76o4FZbIqykY,
6
6
  crosshair/conftest.py,sha256=BkLszApkdy6FrvzaHO7xh8_BJrG9AfytFTse-HuQVvg,653
7
7
  crosshair/copyext_test.py,sha256=5i2GHwpFjcEFGP24-ITu49Ebg__S2BE-qMPkK7CJMHo,1839
8
8
  crosshair/objectproxy.py,sha256=Uc6mNkJBInvETGWBHI10GSNEIrBYDIxlAZ30M3PAIhQ,8935
9
- crosshair/objectproxy_test.py,sha256=WnpT2y_Jik1iJ7v5IT4wu9YVkuDt_vSaw54Pqqsa18o,682
9
+ crosshair/objectproxy_test.py,sha256=KykRJLSHCDA7jb_XPBDhXHnS6Q1fG4oIJ579CeSEz3k,567
10
10
  crosshair/stubs_parser.py,sha256=rlBTQus5BlZ3Ygg6Xzk5dbQbDtRpv6w9i2HQmGrPVmc,14240
11
11
  crosshair/_preliminaries_test.py,sha256=r2PohNNMfIkDqsnvI6gKlJTbwBaZA9NQJueQfJMN2Eo,504
12
- crosshair/dynamic_typing_test.py,sha256=sEVXtxvk37CEsYeTVJ8--2Rlr09juyCr6t175X25EYQ,3258
12
+ crosshair/dynamic_typing_test.py,sha256=oyg94OXjF_2jNFy33UJjkfWnDXKnM4or2TXbxrOqOQs,5478
13
13
  crosshair/enforce.py,sha256=FsZx3D-KtGrhb8xdAZbPUtwvVmEu8IAn7rwf7tmkrRY,10010
14
14
  crosshair/path_search_test.py,sha256=7cqzAMXUYAtA00mq9XR5AaZChqeQyXyCfuuv53_51pk,1692
15
15
  crosshair/condition_parser.py,sha256=gPVDyDde1xLCi64g5wAGjalvmH-s-PMnFl4U3o49VB0,42563
16
16
  crosshair/util.py,sha256=LZ6zjEjUnGfI8eS1ugFeq1RPvAnQlIUKEqT4bAHxrNg,21000
17
- crosshair/dynamic_typing.py,sha256=y_h2ip2bX5XACX3J39lKLMtVl1PEZz_TbT-iW87iE_0,8581
17
+ crosshair/dynamic_typing.py,sha256=iQBRlRB1U0X3Ieg9sFBgbztWNkpG5tFCFdo75LdFCX4,11982
18
18
  crosshair/register_contract.py,sha256=EnDAxngJhKvJLFdw5kVgqaYDQ5hAZXKwAGBdXpot-AQ,10386
19
19
  crosshair/tracers.py,sha256=WnvM22QUwQVfKBZrZfXe_kn0zyYKQrGKIP_BoiyN2Ek,16452
20
20
  crosshair/_tracers.h,sha256=WUJB5WczyZ9g01Q8xcUi5h9NSQVO6E3aq88CXbm76g0,2070
@@ -23,22 +23,22 @@ crosshair/fnutil.py,sha256=X80bD2Lh4QAh-rF561r3JRxjxcuZepF3hJaxaj1GG9s,13123
23
23
  crosshair/unicode_categories.py,sha256=iwRwrKQwbhX1rN3_zg3j83MUMIwk5cQJqUMJuCGWta0,285926
24
24
  crosshair/copyext.py,sha256=fSQiOEGcBIpmJnFZq-GZaDlI_qsUuDfFV6Q5tf7G1vI,4579
25
25
  crosshair/_tracers_test.py,sha256=wTnmXDujthmD-BS7ISWRpxWTFQmsMA4RW3_W89lzICE,3488
26
- crosshair/__init__.py,sha256=Ykx3cJgPjFrVE_-IpnGKUZI8vI7tAVkI_IIY0IvRtxw,936
27
- crosshair/core.py,sha256=oZ5P_4IEBjVnS1DQx__fZhVsCr9LH2KdiSsxm7t5FB8,63437
26
+ crosshair/__init__.py,sha256=b1AlC2gVScI7UKg6pgQ__eqk2hFpsmx_rTHMkMyLoJQ,936
27
+ crosshair/core.py,sha256=K7147xrvcvtrP1T9oIRywq2uHMMsIu8ZwFZWBQXPozg,63634
28
28
  crosshair/path_cover.py,sha256=wV0Vy8IPDzqXQ2VI8a94FxltS9p-Y1oF17OKePjvpgs,6710
29
- crosshair/enforce_test.py,sha256=VSDLEzZlR6jWcXfPOG2CXya-UrAR2kORLqvmP2R3oNk,4902
29
+ crosshair/enforce_test.py,sha256=C6CQ4P1FjkdIJeJg3aJynp1iLDCE6BFCEVtSqXbvmQk,4665
30
30
  crosshair/test_util.py,sha256=HQ1nd5KZJfrZ8S5iP0EkltCtGu0PGELB3hCcPXk78ow,10073
31
- crosshair/core_test.py,sha256=Esto3AQV31cC1tYjlUvVN7R2BL8lBEtOWXZGIYq599U,34686
31
+ crosshair/core_test.py,sha256=H6qZFBFuUhgh9qWgxxc1Cs7xuC8s6FYvewmTYUh0Dpg,32200
32
32
  crosshair/codeconfig.py,sha256=GgF-ND8Ha3FysSTQ-JuezHjlhGVBbo5aCJov1Ps3VSE,3959
33
33
  crosshair/util_test.py,sha256=_KTQ0O4cLhF1pAeB8Y8Cyqbd0UyZf5KxJUaiA-ew-tE,4676
34
34
  crosshair/watcher_test.py,sha256=Ef1YSwy68wWPR5nPjwvEKPqxltI9pE9lTbnesmDy3Bk,2764
35
- crosshair/auditwall.py,sha256=2MIARRNpxWNpNqHuAesu-OHh2ERB6wysJBF2M-vM5E4,4989
35
+ crosshair/auditwall.py,sha256=FjpeqM6HxsKYEfVJ20CRzkQu1I2zt1dpzwejrDp-W9U,4975
36
36
  crosshair/simplestructs_test.py,sha256=6uDdrSISHLhwnFuESkR8mUGw7m1llM6vCNDFChkfSs8,8639
37
37
  crosshair/z3util_test.py,sha256=CZovn4S9mYcG_yQegcxm80VHrvUdvNei0gvGTF9TOrk,173
38
38
  crosshair/diff_behavior.py,sha256=_5X_pTN0_-rSPrh8dfpODJG_phFMn7fWc-_zLgO3UTk,11253
39
- crosshair/condition_parser_test.py,sha256=bYQ7Czl6-duUyzmzr0h_8S0RZu8X0Jc5sMiIIltzO44,16131
39
+ crosshair/condition_parser_test.py,sha256=jvNtJb_CFDNo2zJzmwnbRRXIRHFH3ZfP_nJldsiZ1sQ,15532
40
40
  crosshair/pure_importer_test.py,sha256=Xjtlwn1mj7g-6VA87lrvzfUADCjlmn1wgHtbrnc0uuY,421
41
- crosshair/fnutil_test.py,sha256=5t1lm7ytkB7lGffs2iuchPI5I2S8r8Szti2Jk0LujSc,2236
41
+ crosshair/fnutil_test.py,sha256=cLHJ9uhQf797sTxuh4BGgQ0Fo5rcQFStkiPbzQPhIXA,2091
42
42
  crosshair/stubs_parser_test.py,sha256=0itTT0Udul_51RJXNv6KB97z44gYze6NZfKJL7yIDzA,1228
43
43
  crosshair/options_test.py,sha256=lzA-XtwEwQPa4wV1wwhCRKhyLOvIhThU9WK5QRaRbxQ,379
44
44
  crosshair/patch_equivalence_test.py,sha256=mvYpsbHZS2AiQra-jK8T8QywAG1gNNCUNQPPWI9k5t8,2506
@@ -47,26 +47,27 @@ crosshair/_mark_stacks.h,sha256=4n3ikcrMDIUWHLf6CQ1Wf3brHw79E3-fCbtHLSSdRCk,2984
47
47
  crosshair/fuzz_core_test.py,sha256=q7WsZt6bj5OJrXaVsT3JaRYWWnL8X_1flSfty4Z7CcA,16903
48
48
  crosshair/unicode_categories_test.py,sha256=ZAU37IDGm9PDvwy_CGFcrF9Waa8JuUNdI4aq74wkB6c,739
49
49
  crosshair/statespace_test.py,sha256=LOblIarBbcB9oD_gVR5kK_4P2PWQymVGgJr3wNqP3Fs,2621
50
+ crosshair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
51
  crosshair/lsp_server.py,sha256=_43KoCY7AfTnBWL9pgYdYCiL-GHUdM01RNYGJXrCPqw,8670
51
52
  crosshair/path_search.py,sha256=wwZjp-3E4dENnJa6BlnSq8FARkIx0PyUYc7kvH32A2k,5588
52
- crosshair/auditwall_test.py,sha256=sIl5R7w81RoysX1b0NOeQJuiVjdtRUXkOrdtzqargMk,1904
53
+ crosshair/auditwall_test.py,sha256=VPcw_OW3nl3BkOZY4wEEtVDyTamdgqD4IjRccI2p5vI,2030
53
54
  crosshair/smtlib_test.py,sha256=edzEn19u2YYHxSzG9RrMiu2HTiEexAuehC3IlG9LuJM,511
54
55
  crosshair/register_contract_test.py,sha256=DhvKIcF3LgQfHfUSCccoA11ctCdFaQR263Pc4YUuxyk,4970
55
56
  crosshair/statespace.py,sha256=PIT5ajZZcur88_5Cs0QkPkUVa-fqKwsqgNrRNPKRoSo,41547
56
57
  crosshair/opcode_intercept_test.py,sha256=iatuGm_NUbbAfjIHox-5ABYGIYyC20H73y1k6_JFlOE,5733
57
58
  crosshair/main_test.py,sha256=DFXtE--616vCF1WAS576SHXO19K0LsDPzJIWNT5vuXM,14383
58
59
  crosshair/codeconfig_test.py,sha256=RnC-RnNpr6If4eHmOepDZ33MCmfyhup08dzHKCm5xWA,3350
59
- crosshair/watcher.py,sha256=GZ1VB8cG_3HXXkkhN7DlDS4Vw4QC0ltxw7pEzy6RVh4,10045
60
+ crosshair/watcher.py,sha256=kCCMlLe2KhW5MbEbMmixNRjRAvu5CypIAGd1V_YZ9QM,10048
60
61
  crosshair/test_util_test.py,sha256=FIOWVBMiF-zyq0pGsDQ8W6lB6_E9sGpD80dioHHETyQ,512
61
- crosshair/opcode_intercept.py,sha256=QCcyQxEhRqRH3wtzYTD44UxiFeOQqClqyPC_4sfxTUI,18237
62
+ crosshair/opcode_intercept.py,sha256=P-jGaFhiCsofA89ErT8VHi9bdt2xbBj4PTPaRugBpn0,18309
62
63
  crosshair/simplestructs.py,sha256=CiZSuHH_j_bYitaW-n7vWd_42xSyV6Jh8es3BQLlcHk,34221
63
64
  crosshair/tracers_test.py,sha256=EBK_ZCy2MsxqmEaGjo0uw9zAztW9O6fhCW_0PJxyTS8,3270
64
65
  crosshair/smtlib.py,sha256=hh-P32KHoH9BCq3oDYGp2PfOeOb8CwDj8tTkgqroLD8,689
65
- crosshair/main.py,sha256=GtobWupSL6MpvdibJ6LAwaG0T6GMGLyC2MVPTdnNvHE,34300
66
+ crosshair/main.py,sha256=6RXjj1FIyBK6i6xOx-bs-CsHLgOZcc9hL3U1JRwxpA0,34378
66
67
  crosshair/path_cover_test.py,sha256=U46zw4-m7yAXhu8-3Xnhvf-_9Ov5ivfCAm5euGwpRFA,4089
67
68
  crosshair/__main__.py,sha256=zw9Ylf8v2fGocE57o4FqvD0lc7U4Ld2GbeCGxRWrpqo,252
68
69
  crosshair/pathing_oracle.py,sha256=4mvZuXb-JXIxojidk5-43PXnPfIfAEFa-1LvAvVlCqk,9303
69
- crosshair/diff_behavior_test.py,sha256=_G7Eo3YmwTPDSipfNoAnN7VLRg-ZMPMZFdUklwLhqcI,7508
70
+ crosshair/diff_behavior_test.py,sha256=ckK3HScFrmRRZdyq1iCmkwToksMJG2UVUjABnfnSwCM,7242
70
71
  crosshair/core_and_libs.py,sha256=8FGL62GnyX6WHOqKh0rqJ0aJ_He5pwZm_zwPXTaPqhI,3963
71
72
  crosshair/core_regestered_types_test.py,sha256=er3ianvu-l0RS-WrS46jmOWr4Jq06Cec9htAXGXJSNg,2099
72
73
  crosshair/z3util.py,sha256=AkslxCSfzgSni6oWXUckWihWn3LuceQycR0X3D3ZhD8,1759
@@ -97,25 +98,25 @@ crosshair/examples/icontract/correct_code/arith.py,sha256=ZSwsotmq_l1Mp3dOgjcRJs
97
98
  crosshair/examples/icontract/bugs_detected/wrong_sign.py,sha256=afnirsfgV8uNFT-G_FlIbUFy7lV0jYCMPl9G2Dm5ayA,196
98
99
  crosshair/examples/icontract/bugs_detected/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
100
  crosshair/examples/icontract/bugs_detected/showcase.py,sha256=L4iL1JCWCpOISbEc5yce5bW_Th5eAjYVKRzsykb7m9M,1248
100
- crosshair/libimpl/collectionslib.py,sha256=OtkLr88etcBfr_gstgfIEalHdY6CsQDGTW0Kb06uMPI,8125
101
+ crosshair/libimpl/collectionslib.py,sha256=bf3DVbA8XxAptfSv5iTwB2-GoFHu2ytm5QWjmBMFp00,8277
101
102
  crosshair/libimpl/zliblib_test.py,sha256=mckg9PnZrBUTStzMzHIoZl8JPuAzsIfrEruNKNDpYiE,388
102
103
  crosshair/libimpl/unicodedatalib.py,sha256=q5LoCaEbHJrUwVWtUrlS3n_X21yp15xTS42l-9AQ6Us,3103
103
104
  crosshair/libimpl/datetimelib_test.py,sha256=v9Cg512AXIGy7_dsN2y_ZD7W7fqfSSz07eiCUZukM60,2659
104
105
  crosshair/libimpl/heapqlib_test.py,sha256=NdwTihD0xGy4qIDaS5a9-t3q437rP47GNdtceEBquNA,537
105
106
  crosshair/libimpl/binascii_test.py,sha256=LOBqLAJ77Kx8vorjVTaT3X0Z93zw4P5BvwUapMCiSLg,1970
106
- crosshair/libimpl/collectionslib_test.py,sha256=WQeilwL5bYiSwp5xOmRBkF1POWB854eiZtxMZTGOffE,6662
107
+ crosshair/libimpl/collectionslib_test.py,sha256=HihBzwG2guM19lx8AmR4WjXZDxqkY_qXCnBbl6Iq5pI,8832
107
108
  crosshair/libimpl/timelib.py,sha256=9wwj0IPUOH_aYbZ3QVBaBxXSKQzi3_HJZRtmGzzKxt8,1811
108
109
  crosshair/libimpl/jsonlib_test.py,sha256=U40WJf-69dtflz75sIsl5zA3IV5R6Ltc4Z9jv_Fh-Fw,1382
109
- crosshair/libimpl/builtinslib.py,sha256=jCSOs-qVzgqfVx3JY6jz66ZsjQ-_BKEuSqo6m8DFv0A,182345
110
- crosshair/libimpl/mathlib_test.py,sha256=bGB2xuVBABO_JhBtDP0dkLXUpa_HD-rmrcLmBwK3XvA,2006
110
+ crosshair/libimpl/builtinslib.py,sha256=WNYNVbQhkOJogL6WBqiaVL5Q6MzcEjZpx3rNf3xP9VQ,182300
111
+ crosshair/libimpl/mathlib_test.py,sha256=QShLCXHdv3tx5PQxcSoR0MHeZ1huaiV6d3u7C2mGOn4,1861
111
112
  crosshair/libimpl/fractionlib.py,sha256=qdbiAHHC480YdKq3wYK_piZ3UD7oT64YfuNclypMUfQ,458
112
113
  crosshair/libimpl/binascii_ch_test.py,sha256=hFqSfF1Q8jl2LNBIWaQ6vBJIIshPOmSwrR0T1Ko4Leo,1009
113
114
  crosshair/libimpl/jsonlib.py,sha256=xFTvqGKzQcCgPme1WIpNMjBPfNHVZBMNuNx0uKMYXj0,28805
114
115
  crosshair/libimpl/typeslib_test.py,sha256=Gf-EymanxMty2-B53BiT81w1CSTzoHVXvELwqiGOqxc,1083
115
- crosshair/libimpl/builtinslib_test.py,sha256=zNsz3jJPfwT7aTWjxffpkxyrQ3e8qXMI0ZrwoPbsako,90434
116
+ crosshair/libimpl/builtinslib_test.py,sha256=GmnsgjSKjkE-3cb-aQwSV5BYbNHvD-O1E8sB-hZv8f4,90270
116
117
  crosshair/libimpl/zliblib.py,sha256=XymJTKYbplpYJZ-P7GKVSY3V_8HPy5lqRFsCH1zezIk,357
117
118
  crosshair/libimpl/decimallib.py,sha256=zBKDrDZcg45oCKUkf6SIDuVpjA1Web7tD1MEQo5cjxI,177348
118
- crosshair/libimpl/relib_ch_test.py,sha256=mkTvFwiBhVbl9yYAowxxtbEcpOujKwNfx7iFnTj8Cd4,5223
119
+ crosshair/libimpl/relib_ch_test.py,sha256=zvSBF82mNQR5yEOMwwcaBOh8OpJkQeiVl85pgYVvJRA,5235
119
120
  crosshair/libimpl/functoolslib.py,sha256=LnMtmq2Sawde6XtPd6Yg_YOc6S5ai-pMpBWPQAkR3X4,783
120
121
  crosshair/libimpl/collectionslib_ch_test.py,sha256=PYitnmXXEZfm25FzBodEX1hOpwqnDspbqt5aqzeVar0,5855
121
122
  crosshair/libimpl/builtinslib_ch_test.py,sha256=W4wWapqlxSjsC5XgREfgxS9e_iwKxgNQhbFE3umUfNI,30504
@@ -128,7 +129,7 @@ crosshair/libimpl/timelib_test.py,sha256=cJhkLeYYJqWLc2i4C9JEU-svI-KnRnmaPYsou0O
128
129
  crosshair/libimpl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
130
  crosshair/libimpl/importliblib_test.py,sha256=DM8wWvPYbDTsdKVlS-JMrZ2cQpWSy4yXjZGPMQwF7Ss,1020
130
131
  crosshair/libimpl/relib_test.py,sha256=3raQ0JoU4vu8_NKfrjk7TkUIqVuuhR8mGCRPJPb0RI0,16085
131
- crosshair/libimpl/arraylib.py,sha256=cZVOTiUu3XB-AZcDnrl--OYfkBHtWbkJlIQxQ6aRRVA,4968
132
+ crosshair/libimpl/arraylib.py,sha256=zM5uuMD-FDDEpkp9dh3SnNrqziaT8unO6A8-Une_CmU,5181
132
133
  crosshair/libimpl/urlliblib.py,sha256=EaC-nWdi-IFG3ewZrzgCqbKc9Sf9wlUN0wvGjTU5TOM,614
133
134
  crosshair/libimpl/bisectlib_test.py,sha256=ZQtYmBYD0Pb1IiFelsgdvqyeUMKaqaDb1BRb87LTSbI,753
134
135
  crosshair/libimpl/itertoolslib.py,sha256=1bwV8voMV2j18KjXYMKkuNSC8p4VE_ZvY-74rAbWjB4,1245
@@ -144,7 +145,7 @@ crosshair/libimpl/datetimelib_ch_test.py,sha256=r_V9H34a4POlEeffi46mEtVI9ek80DHa
144
145
  crosshair/libimpl/itertoolslib_test.py,sha256=MV-zSdfdeQi_UpZJdanKzHm2GRqrC7BMUoCd95ldMPw,1183
145
146
  crosshair/libimpl/copylib.py,sha256=icHJWeFK_tsPSdJhvlS5fVcBwlh0uJh0nzXsRJCGtzs,527
146
147
  crosshair/libimpl/hashliblib_test.py,sha256=HhPdm5CBTAeqrs41NpCxkexWYWyIf1JiA4cls72WQfM,406
147
- crosshair/libimpl/binasciilib.py,sha256=P8qwlRkwjH1oGT7IHa9pPPMrUCrUG42uaCr1DkgZSho,5077
148
+ crosshair/libimpl/binasciilib.py,sha256=9w4C37uxRNOmz9EUuhJduHlMKn0f7baY5fwwdvx1uto,5070
148
149
  crosshair/libimpl/typeslib.py,sha256=5qWrHZZN8jQZoHPiQtkaFolR8qTYCQtJw3HRWCrCKQI,468
149
150
  crosshair/libimpl/datetimelib.py,sha256=osysXCLJCgyCj0gR8e0iyCeulgUvJ9rrO60kz1gudAY,78869
150
151
  crosshair/libimpl/relib.py,sha256=3DhrbGqJcfpj5JNfcD8Pf4xsA4WEegxbukwgKoPLP3o,29256
@@ -164,10 +165,10 @@ crosshair/libimpl/encodings/utf_8.py,sha256=BygLLIeI3_F2MpFVgaty8ebiuxp0YWz7IzXe
164
165
  crosshair/libimpl/encodings/ascii.py,sha256=Cz1xraTkXdQ5aBKDkorX4rAvrmf877_EqzC9hOmbItw,1416
165
166
  crosshair/libimpl/encodings/__init__.py,sha256=5LTEj1M-S00eZ4rfQWczAixg57vyh_9vZ5m5EKB5Ksc,680
166
167
  crosshair/libimpl/encodings/latin_1.py,sha256=ftUsPjUb9L7UKXKi9P7OAqOl9FkNP98M9jMAvseXBCQ,1242
167
- crosshair/libimpl/encodings/_encutil.py,sha256=dEjeKtj8TrS2HI836VLUJDMi8EsCzHOtLLxIgPyFPAs,6735
168
- crosshair_tool-0.0.83.dist-info/RECORD,,
169
- crosshair_tool-0.0.83.dist-info/LICENSE,sha256=NVyMvNqn1pH6RSHs6RWRcJyJvORnpgGFBlF73buqYJ0,4459
170
- crosshair_tool-0.0.83.dist-info/WHEEL,sha256=_bkYLaVXZTVUz-mn1CEofcpI8slTv7EqwzDZ244_boo,115
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/METADATA,sha256=zwswXKO-L6r8yOmkoVfkEnzdynrkE7wr51l4Z72g-3U,6647
168
+ crosshair/libimpl/encodings/_encutil.py,sha256=nwVWqcGM1f7-hAC3Z46KnfrLzAjhfy4zaTa11uVBk6M,6828
169
+ crosshair_tool-0.0.84.dist-info/RECORD,,
170
+ crosshair_tool-0.0.84.dist-info/WHEEL,sha256=-M3gWk6ktwnb29UAxHarmmwObARcSDzws1y8nkFqqKE,115
171
+ crosshair_tool-0.0.84.dist-info/entry_points.txt,sha256=u5FIPVn1jqn4Kzg5K_iNnbP6L4hQw5FWjQ0UMezG2VE,96
172
+ crosshair_tool-0.0.84.dist-info/top_level.txt,sha256=2jLWtM-BWg_ZYNbNfrcds0HFZD62a6J7ZIbcgcQrRk4,29
173
+ crosshair_tool-0.0.84.dist-info/METADATA,sha256=O2N30DECyCwy65MSgnkJEOSpXt-oJmp_pfwciVHHDho,6717
174
+ crosshair_tool-0.0.84.dist-info/licenses/LICENSE,sha256=NVyMvNqn1pH6RSHs6RWRcJyJvORnpgGFBlF73buqYJ0,4459
@@ -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: cp313-cp313-macosx_10_13_universal2
5
5