crosshair-tool 0.0.83__cp38-cp38-musllinux_1_2_i686.whl → 0.0.84__cp38-cp38-musllinux_1_2_i686.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.

@@ -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
1
  Metadata-Version: 2.1
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
@@ -53,7 +53,7 @@ Requires-Dist: numpy==2.0.1; python_version >= "3.13" and extra == "dev"
53
53
  # CrossHair
54
54
 
55
55
  [![Join the chat on Discord](https://img.shields.io/discord/1346219754519789719?logo=discord&logoColor=white)](https://discord.gg/rUeTaYTWbb)
56
- [![Check status](https://github.com/pschanely/CrossHair/workflows/Check/badge.svg)](https://github.com/pschanely/CrossHair/actions?query=workflow%3ACheck)
56
+ [![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)
57
57
  [![Downloads](https://static.pepy.tech/badge/crosshair-tool/week)](https://pepy.tech/project/crosshair-tool)
58
58
 
59
59
  An analysis tool for Python that blurs the line between testing and
@@ -6,24 +6,25 @@ crosshair/codeconfig_test.py,sha256=RnC-RnNpr6If4eHmOepDZ33MCmfyhup08dzHKCm5xWA,
6
6
  crosshair/stubs_parser.py,sha256=rlBTQus5BlZ3Ygg6Xzk5dbQbDtRpv6w9i2HQmGrPVmc,14240
7
7
  crosshair/test_util.py,sha256=HQ1nd5KZJfrZ8S5iP0EkltCtGu0PGELB3hCcPXk78ow,10073
8
8
  crosshair/codeconfig.py,sha256=GgF-ND8Ha3FysSTQ-JuezHjlhGVBbo5aCJov1Ps3VSE,3959
9
- crosshair/auditwall.py,sha256=2MIARRNpxWNpNqHuAesu-OHh2ERB6wysJBF2M-vM5E4,4989
10
- crosshair/watcher.py,sha256=GZ1VB8cG_3HXXkkhN7DlDS4Vw4QC0ltxw7pEzy6RVh4,10045
9
+ crosshair/auditwall.py,sha256=FjpeqM6HxsKYEfVJ20CRzkQu1I2zt1dpzwejrDp-W9U,4975
10
+ crosshair/watcher.py,sha256=kCCMlLe2KhW5MbEbMmixNRjRAvu5CypIAGd1V_YZ9QM,10048
11
+ crosshair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
12
  crosshair/z3util.py,sha256=AkslxCSfzgSni6oWXUckWihWn3LuceQycR0X3D3ZhD8,1759
12
13
  crosshair/smtlib_test.py,sha256=edzEn19u2YYHxSzG9RrMiu2HTiEexAuehC3IlG9LuJM,511
13
14
  crosshair/smtlib.py,sha256=hh-P32KHoH9BCq3oDYGp2PfOeOb8CwDj8tTkgqroLD8,689
14
- crosshair/__init__.py,sha256=Ykx3cJgPjFrVE_-IpnGKUZI8vI7tAVkI_IIY0IvRtxw,936
15
+ crosshair/__init__.py,sha256=b1AlC2gVScI7UKg6pgQ__eqk2hFpsmx_rTHMkMyLoJQ,936
15
16
  crosshair/_tracers_pycompat.h,sha256=6IYnbQxrYkhBsLDAHSX25DPOwo1oYHCZUVWZ8c7YCnQ,14356
16
- crosshair/condition_parser_test.py,sha256=bYQ7Czl6-duUyzmzr0h_8S0RZu8X0Jc5sMiIIltzO44,16131
17
- crosshair/fnutil_test.py,sha256=5t1lm7ytkB7lGffs2iuchPI5I2S8r8Szti2Jk0LujSc,2236
17
+ crosshair/condition_parser_test.py,sha256=jvNtJb_CFDNo2zJzmwnbRRXIRHFH3ZfP_nJldsiZ1sQ,15532
18
+ crosshair/fnutil_test.py,sha256=cLHJ9uhQf797sTxuh4BGgQ0Fo5rcQFStkiPbzQPhIXA,2091
18
19
  crosshair/tracers.py,sha256=WnvM22QUwQVfKBZrZfXe_kn0zyYKQrGKIP_BoiyN2Ek,16452
19
20
  crosshair/_preliminaries_test.py,sha256=r2PohNNMfIkDqsnvI6gKlJTbwBaZA9NQJueQfJMN2Eo,504
20
21
  crosshair/pure_importer.py,sha256=-t4eowrZOQmfqK1N2tjI5POoaxRGavytwMmbRivelFg,878
21
22
  crosshair/fuzz_core_test.py,sha256=q7WsZt6bj5OJrXaVsT3JaRYWWnL8X_1flSfty4Z7CcA,16903
22
23
  crosshair/stubs_parser_test.py,sha256=0itTT0Udul_51RJXNv6KB97z44gYze6NZfKJL7yIDzA,1228
23
- crosshair/auditwall_test.py,sha256=sIl5R7w81RoysX1b0NOeQJuiVjdtRUXkOrdtzqargMk,1904
24
+ crosshair/auditwall_test.py,sha256=VPcw_OW3nl3BkOZY4wEEtVDyTamdgqD4IjRccI2p5vI,2030
24
25
  crosshair/tracers_test.py,sha256=EBK_ZCy2MsxqmEaGjo0uw9zAztW9O6fhCW_0PJxyTS8,3270
25
26
  crosshair/test_util_test.py,sha256=FIOWVBMiF-zyq0pGsDQ8W6lB6_E9sGpD80dioHHETyQ,512
26
- crosshair/objectproxy_test.py,sha256=WnpT2y_Jik1iJ7v5IT4wu9YVkuDt_vSaw54Pqqsa18o,682
27
+ crosshair/objectproxy_test.py,sha256=KykRJLSHCDA7jb_XPBDhXHnS6Q1fG4oIJ579CeSEz3k,567
27
28
  crosshair/z3util_test.py,sha256=CZovn4S9mYcG_yQegcxm80VHrvUdvNei0gvGTF9TOrk,173
28
29
  crosshair/path_search_test.py,sha256=7cqzAMXUYAtA00mq9XR5AaZChqeQyXyCfuuv53_51pk,1692
29
30
  crosshair/diff_behavior.py,sha256=_5X_pTN0_-rSPrh8dfpODJG_phFMn7fWc-_zLgO3UTk,11253
@@ -35,37 +36,37 @@ crosshair/opcode_intercept_test.py,sha256=iatuGm_NUbbAfjIHox-5ABYGIYyC20H73y1k6_
35
36
  crosshair/_tracers.h,sha256=WUJB5WczyZ9g01Q8xcUi5h9NSQVO6E3aq88CXbm76g0,2070
36
37
  crosshair/_tracers_test.py,sha256=wTnmXDujthmD-BS7ISWRpxWTFQmsMA4RW3_W89lzICE,3488
37
38
  crosshair/condition_parser.py,sha256=gPVDyDde1xLCi64g5wAGjalvmH-s-PMnFl4U3o49VB0,42563
38
- crosshair/opcode_intercept.py,sha256=QCcyQxEhRqRH3wtzYTD44UxiFeOQqClqyPC_4sfxTUI,18237
39
+ crosshair/opcode_intercept.py,sha256=P-jGaFhiCsofA89ErT8VHi9bdt2xbBj4PTPaRugBpn0,18309
39
40
  crosshair/pathing_oracle.py,sha256=4mvZuXb-JXIxojidk5-43PXnPfIfAEFa-1LvAvVlCqk,9303
40
41
  crosshair/enforce.py,sha256=FsZx3D-KtGrhb8xdAZbPUtwvVmEu8IAn7rwf7tmkrRY,10010
41
- crosshair/dynamic_typing_test.py,sha256=sEVXtxvk37CEsYeTVJ8--2Rlr09juyCr6t175X25EYQ,3258
42
- crosshair/diff_behavior_test.py,sha256=_G7Eo3YmwTPDSipfNoAnN7VLRg-ZMPMZFdUklwLhqcI,7508
42
+ crosshair/dynamic_typing_test.py,sha256=oyg94OXjF_2jNFy33UJjkfWnDXKnM4or2TXbxrOqOQs,5478
43
+ crosshair/diff_behavior_test.py,sha256=ckK3HScFrmRRZdyq1iCmkwToksMJG2UVUjABnfnSwCM,7242
43
44
  crosshair/statespace.py,sha256=PIT5ajZZcur88_5Cs0QkPkUVa-fqKwsqgNrRNPKRoSo,41547
44
45
  crosshair/lsp_server.py,sha256=_43KoCY7AfTnBWL9pgYdYCiL-GHUdM01RNYGJXrCPqw,8670
45
46
  crosshair/statespace_test.py,sha256=LOblIarBbcB9oD_gVR5kK_4P2PWQymVGgJr3wNqP3Fs,2621
46
47
  crosshair/copyext.py,sha256=fSQiOEGcBIpmJnFZq-GZaDlI_qsUuDfFV6Q5tf7G1vI,4579
47
48
  crosshair/options_test.py,sha256=lzA-XtwEwQPa4wV1wwhCRKhyLOvIhThU9WK5QRaRbxQ,379
48
49
  crosshair/core_regestered_types_test.py,sha256=er3ianvu-l0RS-WrS46jmOWr4Jq06Cec9htAXGXJSNg,2099
49
- crosshair/core.py,sha256=oZ5P_4IEBjVnS1DQx__fZhVsCr9LH2KdiSsxm7t5FB8,63437
50
+ crosshair/core.py,sha256=K7147xrvcvtrP1T9oIRywq2uHMMsIu8ZwFZWBQXPozg,63634
50
51
  crosshair/path_cover.py,sha256=wV0Vy8IPDzqXQ2VI8a94FxltS9p-Y1oF17OKePjvpgs,6710
51
52
  crosshair/simplestructs.py,sha256=CiZSuHH_j_bYitaW-n7vWd_42xSyV6Jh8es3BQLlcHk,34221
52
53
  crosshair/__main__.py,sha256=zw9Ylf8v2fGocE57o4FqvD0lc7U4Ld2GbeCGxRWrpqo,252
53
54
  crosshair/unicode_categories.py,sha256=iwRwrKQwbhX1rN3_zg3j83MUMIwk5cQJqUMJuCGWta0,285926
54
55
  crosshair/objectproxy.py,sha256=Uc6mNkJBInvETGWBHI10GSNEIrBYDIxlAZ30M3PAIhQ,8935
55
- crosshair/enforce_test.py,sha256=VSDLEzZlR6jWcXfPOG2CXya-UrAR2kORLqvmP2R3oNk,4902
56
+ crosshair/enforce_test.py,sha256=C6CQ4P1FjkdIJeJg3aJynp1iLDCE6BFCEVtSqXbvmQk,4665
56
57
  crosshair/_mark_stacks.h,sha256=4n3ikcrMDIUWHLf6CQ1Wf3brHw79E3-fCbtHLSSdRCk,29844
57
58
  crosshair/fnutil.py,sha256=X80bD2Lh4QAh-rF561r3JRxjxcuZepF3hJaxaj1GG9s,13123
58
59
  crosshair/options.py,sha256=htQNgnrpoRjSNq6rfLBAF8nos-NNIwmP6tQYyI8ugsM,6775
59
60
  crosshair/register_contract_test.py,sha256=DhvKIcF3LgQfHfUSCccoA11ctCdFaQR263Pc4YUuxyk,4970
60
61
  crosshair/type_repo.py,sha256=CQ3p95BGb7gmiBUOf1rJvwmdo13xt60F-rZYtwp9l5s,4615
61
- crosshair/core_test.py,sha256=Esto3AQV31cC1tYjlUvVN7R2BL8lBEtOWXZGIYq599U,34686
62
- crosshair/main.py,sha256=GtobWupSL6MpvdibJ6LAwaG0T6GMGLyC2MVPTdnNvHE,34300
62
+ crosshair/core_test.py,sha256=H6qZFBFuUhgh9qWgxxc1Cs7xuC8s6FYvewmTYUh0Dpg,32200
63
+ crosshair/main.py,sha256=6RXjj1FIyBK6i6xOx-bs-CsHLgOZcc9hL3U1JRwxpA0,34378
63
64
  crosshair/core_and_libs.py,sha256=8FGL62GnyX6WHOqKh0rqJ0aJ_He5pwZm_zwPXTaPqhI,3963
64
65
  crosshair/util_test.py,sha256=_KTQ0O4cLhF1pAeB8Y8Cyqbd0UyZf5KxJUaiA-ew-tE,4676
65
66
  crosshair/abcstring.py,sha256=ROU8LzS7kfEU2L_D3QfhVxIjrYr1VctwUWfylC7KlCc,6549
66
67
  crosshair/path_cover_test.py,sha256=U46zw4-m7yAXhu8-3Xnhvf-_9Ov5ivfCAm5euGwpRFA,4089
67
68
  crosshair/copyext_test.py,sha256=5i2GHwpFjcEFGP24-ITu49Ebg__S2BE-qMPkK7CJMHo,1839
68
- crosshair/dynamic_typing.py,sha256=y_h2ip2bX5XACX3J39lKLMtVl1PEZz_TbT-iW87iE_0,8581
69
+ crosshair/dynamic_typing.py,sha256=iQBRlRB1U0X3Ieg9sFBgbztWNkpG5tFCFdo75LdFCX4,11982
69
70
  crosshair/patch_equivalence_test.py,sha256=mvYpsbHZS2AiQra-jK8T8QywAG1gNNCUNQPPWI9k5t8,2506
70
71
  crosshair/util.py,sha256=LZ6zjEjUnGfI8eS1ugFeq1RPvAnQlIUKEqT4bAHxrNg,21000
71
72
  crosshair/register_contract.py,sha256=EnDAxngJhKvJLFdw5kVgqaYDQ5hAZXKwAGBdXpot-AQ,10386
@@ -97,7 +98,7 @@ crosshair/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
98
  crosshair/tools/check_help_in_doc.py,sha256=P21AH3mYrTVuBgWD6v65YXqBqmqpQDUTQeoZ10rB6TU,8235
98
99
  crosshair/tools/generate_demo_table.py,sha256=0SeO0xQdiT-mbLNHt4rYL0wcc2DMh0v3qtzBdoQonDk,3831
99
100
  crosshair/tools/check_init_and_setup_coincide.py,sha256=kv61bXqKSKF_5J-kLNEhCrCPyszg7iZQWDu_Scnec98,3502
100
- crosshair/libimpl/collectionslib_test.py,sha256=WQeilwL5bYiSwp5xOmRBkF1POWB854eiZtxMZTGOffE,6662
101
+ crosshair/libimpl/collectionslib_test.py,sha256=HihBzwG2guM19lx8AmR4WjXZDxqkY_qXCnBbl6Iq5pI,8832
101
102
  crosshair/libimpl/relib.py,sha256=3DhrbGqJcfpj5JNfcD8Pf4xsA4WEegxbukwgKoPLP3o,29256
102
103
  crosshair/libimpl/zliblib_test.py,sha256=mckg9PnZrBUTStzMzHIoZl8JPuAzsIfrEruNKNDpYiE,388
103
104
  crosshair/libimpl/typeslib_test.py,sha256=Gf-EymanxMty2-B53BiT81w1CSTzoHVXvELwqiGOqxc,1083
@@ -111,8 +112,8 @@ crosshair/libimpl/codecslib_test.py,sha256=8K64njhxnTe7qLh-_onARNsm_qSG7BWM5dXgA
111
112
  crosshair/libimpl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
113
  crosshair/libimpl/pathliblib_test.py,sha256=NDeNOI24naLcvz6Lrx51nS-JhILHJjY1JNhRQO3Lufw,252
113
114
  crosshair/libimpl/weakreflib_test.py,sha256=CdGJhW32qJoxedn8QzPcMcKKmfl9Nv4FPDYebblIKmY,1812
114
- crosshair/libimpl/arraylib.py,sha256=cZVOTiUu3XB-AZcDnrl--OYfkBHtWbkJlIQxQ6aRRVA,4968
115
- crosshair/libimpl/builtinslib_test.py,sha256=zNsz3jJPfwT7aTWjxffpkxyrQ3e8qXMI0ZrwoPbsako,90434
115
+ crosshair/libimpl/arraylib.py,sha256=zM5uuMD-FDDEpkp9dh3SnNrqziaT8unO6A8-Une_CmU,5181
116
+ crosshair/libimpl/builtinslib_test.py,sha256=GmnsgjSKjkE-3cb-aQwSV5BYbNHvD-O1E8sB-hZv8f4,90270
116
117
  crosshair/libimpl/jsonlib_test.py,sha256=U40WJf-69dtflz75sIsl5zA3IV5R6Ltc4Z9jv_Fh-Fw,1382
117
118
  crosshair/libimpl/fractionlib_test.py,sha256=lLMbGvzP5E_tnZ2Yi5_MawRxwqsSJZRW1A7vtgSSBvM,1638
118
119
  crosshair/libimpl/collectionslib_ch_test.py,sha256=PYitnmXXEZfm25FzBodEX1hOpwqnDspbqt5aqzeVar0,5855
@@ -125,13 +126,13 @@ crosshair/libimpl/relib_test.py,sha256=3raQ0JoU4vu8_NKfrjk7TkUIqVuuhR8mGCRPJPb0R
125
126
  crosshair/libimpl/datetimelib_ch_test.py,sha256=r_V9H34a4POlEeffi46mEtVI9ek80DHaEOiCTKON9Us,9283
126
127
  crosshair/libimpl/itertoolslib_test.py,sha256=MV-zSdfdeQi_UpZJdanKzHm2GRqrC7BMUoCd95ldMPw,1183
127
128
  crosshair/libimpl/builtinslib_ch_test.py,sha256=W4wWapqlxSjsC5XgREfgxS9e_iwKxgNQhbFE3umUfNI,30504
128
- crosshair/libimpl/collectionslib.py,sha256=OtkLr88etcBfr_gstgfIEalHdY6CsQDGTW0Kb06uMPI,8125
129
+ crosshair/libimpl/collectionslib.py,sha256=bf3DVbA8XxAptfSv5iTwB2-GoFHu2ytm5QWjmBMFp00,8277
129
130
  crosshair/libimpl/binascii_test.py,sha256=LOBqLAJ77Kx8vorjVTaT3X0Z93zw4P5BvwUapMCiSLg,1970
130
131
  crosshair/libimpl/unicodedatalib_test.py,sha256=CJkAbiu8_2uhvjDIoYi3IJ8Nb_8sdjKVNvNhJCgPbZ0,1442
131
132
  crosshair/libimpl/codecslib.py,sha256=lB87T1EYSBh4JXaqzjSpQG9CMfKtgckwA7f6OIR0S-Q,2668
132
133
  crosshair/libimpl/functoolslib.py,sha256=LnMtmq2Sawde6XtPd6Yg_YOc6S5ai-pMpBWPQAkR3X4,783
133
134
  crosshair/libimpl/decimallib_test.py,sha256=393MkVB9-LPcA7JJK6wGAbDyd-YejkjwrXRaEDaVhjM,2238
134
- crosshair/libimpl/relib_ch_test.py,sha256=mkTvFwiBhVbl9yYAowxxtbEcpOujKwNfx7iFnTj8Cd4,5223
135
+ crosshair/libimpl/relib_ch_test.py,sha256=zvSBF82mNQR5yEOMwwcaBOh8OpJkQeiVl85pgYVvJRA,5235
135
136
  crosshair/libimpl/heapqlib_test.py,sha256=NdwTihD0xGy4qIDaS5a9-t3q437rP47GNdtceEBquNA,537
136
137
  crosshair/libimpl/urlliblib_test.py,sha256=UcSmwRdJFkzXvkaV-jmrP6G4zhbu7X2NNjM7ePsYxRs,503
137
138
  crosshair/libimpl/jsonlib_ch_test.py,sha256=lLGnFq6Ti7l6aV_jDz-HEzKaPy5TIj_JA0sSnfI0Psc,1267
@@ -147,14 +148,14 @@ crosshair/libimpl/unicodedatalib.py,sha256=q5LoCaEbHJrUwVWtUrlS3n_X21yp15xTS42l-
147
148
  crosshair/libimpl/oslib.py,sha256=GVOsJKEFoIzY9S5CRZwKH5pRsccjBbGpPOlvAm_2HtQ,123
148
149
  crosshair/libimpl/decimallib.py,sha256=zBKDrDZcg45oCKUkf6SIDuVpjA1Web7tD1MEQo5cjxI,177348
149
150
  crosshair/libimpl/typeslib.py,sha256=5qWrHZZN8jQZoHPiQtkaFolR8qTYCQtJw3HRWCrCKQI,468
150
- crosshair/libimpl/builtinslib.py,sha256=jCSOs-qVzgqfVx3JY6jz66ZsjQ-_BKEuSqo6m8DFv0A,182345
151
- crosshair/libimpl/mathlib_test.py,sha256=bGB2xuVBABO_JhBtDP0dkLXUpa_HD-rmrcLmBwK3XvA,2006
151
+ crosshair/libimpl/builtinslib.py,sha256=WNYNVbQhkOJogL6WBqiaVL5Q6MzcEjZpx3rNf3xP9VQ,182300
152
+ crosshair/libimpl/mathlib_test.py,sha256=QShLCXHdv3tx5PQxcSoR0MHeZ1huaiV6d3u7C2mGOn4,1861
152
153
  crosshair/libimpl/urlliblib.py,sha256=EaC-nWdi-IFG3ewZrzgCqbKc9Sf9wlUN0wvGjTU5TOM,614
153
154
  crosshair/libimpl/randomlib.py,sha256=loyhlbRBJEs32kKFv_1O5PxKQU47F5kCz54OaNVuzUk,6161
154
155
  crosshair/libimpl/mathlib.py,sha256=ci_byDulWf1VOitpD3C-TwToL6CRYKkJUVMxjAYzUH8,4256
155
156
  crosshair/libimpl/iolib.py,sha256=FbvqTfQRPaML5u0hHnrFZLrk3jYC-x4OO6eJujvFJaY,6983
156
157
  crosshair/libimpl/importliblib_test.py,sha256=DM8wWvPYbDTsdKVlS-JMrZ2cQpWSy4yXjZGPMQwF7Ss,1020
157
- crosshair/libimpl/binasciilib.py,sha256=P8qwlRkwjH1oGT7IHa9pPPMrUCrUG42uaCr1DkgZSho,5077
158
+ crosshair/libimpl/binasciilib.py,sha256=9w4C37uxRNOmz9EUuhJduHlMKn0f7baY5fwwdvx1uto,5070
158
159
  crosshair/libimpl/functoolslib_test.py,sha256=DswrS51n93EaxPvDGB-d3tZSLawEp38zQ5sNdYlbn50,1114
159
160
  crosshair/libimpl/encodings_ch_test.py,sha256=0qLsioOuFUZkOjP4J9Wct4CGBaBY8BnHx9paZHnIofI,2513
160
161
  crosshair/libimpl/importliblib.py,sha256=GphQk86LcIpYWa81CIPDWbcmwU9Jo1utKAe4y3HMxYE,621
@@ -162,12 +163,12 @@ crosshair/libimpl/jsonlib.py,sha256=xFTvqGKzQcCgPme1WIpNMjBPfNHVZBMNuNx0uKMYXj0,
162
163
  crosshair/libimpl/decimallib_ch_test.py,sha256=FVCY4KB8lJWeRKnz8txNkEc1te4QRKQYJtvXDuWfzPk,2380
163
164
  crosshair/libimpl/encodings/__init__.py,sha256=5LTEj1M-S00eZ4rfQWczAixg57vyh_9vZ5m5EKB5Ksc,680
164
165
  crosshair/libimpl/encodings/latin_1.py,sha256=ftUsPjUb9L7UKXKi9P7OAqOl9FkNP98M9jMAvseXBCQ,1242
165
- crosshair/libimpl/encodings/_encutil.py,sha256=dEjeKtj8TrS2HI836VLUJDMi8EsCzHOtLLxIgPyFPAs,6735
166
+ crosshair/libimpl/encodings/_encutil.py,sha256=nwVWqcGM1f7-hAC3Z46KnfrLzAjhfy4zaTa11uVBk6M,6828
166
167
  crosshair/libimpl/encodings/ascii.py,sha256=Cz1xraTkXdQ5aBKDkorX4rAvrmf877_EqzC9hOmbItw,1416
167
168
  crosshair/libimpl/encodings/utf_8.py,sha256=BygLLIeI3_F2MpFVgaty8ebiuxp0YWz7IzXeYPWjsqU,3173
168
- crosshair_tool-0.0.83.dist-info/top_level.txt,sha256=2jLWtM-BWg_ZYNbNfrcds0HFZD62a6J7ZIbcgcQrRk4,29
169
- crosshair_tool-0.0.83.dist-info/LICENSE,sha256=NVyMvNqn1pH6RSHs6RWRcJyJvORnpgGFBlF73buqYJ0,4459
170
- crosshair_tool-0.0.83.dist-info/METADATA,sha256=OyZ1XsGyDwrQ4Rvgk82O5dIUqiNIGsFtm9AzlN4G1Jk,6409
171
- crosshair_tool-0.0.83.dist-info/RECORD,,
172
- crosshair_tool-0.0.83.dist-info/entry_points.txt,sha256=u5FIPVn1jqn4Kzg5K_iNnbP6L4hQw5FWjQ0UMezG2VE,96
173
- crosshair_tool-0.0.83.dist-info/WHEEL,sha256=KX95mXWO9yU-DH_XvDUquyIa_FFzABHabe1FRuK5pIQ,108
169
+ crosshair_tool-0.0.84.dist-info/top_level.txt,sha256=2jLWtM-BWg_ZYNbNfrcds0HFZD62a6J7ZIbcgcQrRk4,29
170
+ crosshair_tool-0.0.84.dist-info/LICENSE,sha256=NVyMvNqn1pH6RSHs6RWRcJyJvORnpgGFBlF73buqYJ0,4459
171
+ crosshair_tool-0.0.84.dist-info/METADATA,sha256=jEA7ZGfuhJljthpk-4vpQlW8aLHfx-aaHA9t26eAnGw,6457
172
+ crosshair_tool-0.0.84.dist-info/RECORD,,
173
+ crosshair_tool-0.0.84.dist-info/entry_points.txt,sha256=u5FIPVn1jqn4Kzg5K_iNnbP6L4hQw5FWjQ0UMezG2VE,96
174
+ crosshair_tool-0.0.84.dist-info/WHEEL,sha256=KX95mXWO9yU-DH_XvDUquyIa_FFzABHabe1FRuK5pIQ,108