faster-eth-abi 5.2.15__cp314-cp314t-win32.whl → 5.2.16__cp314-cp314t-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.

Potentially problematic release.


This version of faster-eth-abi might be problematic. Click here for more details.

Files changed (48) hide show
  1. faster_eth_abi/_codec.cp314t-win32.pyd +0 -0
  2. faster_eth_abi/_codec.py +6 -0
  3. faster_eth_abi/_decoding.cp314t-win32.pyd +0 -0
  4. faster_eth_abi/_decoding.py +28 -15
  5. faster_eth_abi/_encoding.cp314t-win32.pyd +0 -0
  6. faster_eth_abi/_encoding.py +7 -1
  7. faster_eth_abi/_grammar.cp314t-win32.pyd +0 -0
  8. faster_eth_abi/_grammar.py +5 -0
  9. faster_eth_abi/abi.cp314t-win32.pyd +0 -0
  10. faster_eth_abi/base.py +4 -0
  11. faster_eth_abi/codec.py +1261 -144
  12. faster_eth_abi/constants.cp314t-win32.pyd +0 -0
  13. faster_eth_abi/decoding.py +91 -47
  14. faster_eth_abi/encoding.py +51 -3
  15. faster_eth_abi/exceptions.py +5 -2
  16. faster_eth_abi/from_type_str.cp314t-win32.pyd +0 -0
  17. faster_eth_abi/from_type_str.py +4 -0
  18. faster_eth_abi/grammar.py +17 -19
  19. faster_eth_abi/io.py +4 -0
  20. faster_eth_abi/packed.cp314t-win32.pyd +0 -0
  21. faster_eth_abi/packed.py +4 -0
  22. faster_eth_abi/registry.py +98 -33
  23. faster_eth_abi/tools/__init__.cp314t-win32.pyd +0 -0
  24. faster_eth_abi/tools/_strategies.cp314t-win32.pyd +0 -0
  25. faster_eth_abi/typing.py +94 -10
  26. faster_eth_abi/utils/__init__.cp314t-win32.pyd +0 -0
  27. faster_eth_abi/utils/numeric.cp314t-win32.pyd +0 -0
  28. faster_eth_abi/utils/padding.cp314t-win32.pyd +0 -0
  29. faster_eth_abi/utils/string.cp314t-win32.pyd +0 -0
  30. faster_eth_abi/utils/validation.cp314t-win32.pyd +0 -0
  31. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/METADATA +13 -8
  32. faster_eth_abi-5.2.16.dist-info/RECORD +47 -0
  33. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/top_level.txt +0 -1
  34. faster_eth_abi__mypyc.cp314t-win32.pyd +0 -0
  35. benchmarks/__init__.py +0 -1
  36. benchmarks/batch.py +0 -9
  37. benchmarks/data.py +0 -313
  38. benchmarks/test_abi_benchmarks.py +0 -82
  39. benchmarks/test_decoding_benchmarks.py +0 -109
  40. benchmarks/test_encoding_benchmarks.py +0 -99
  41. benchmarks/test_grammar_benchmarks.py +0 -38
  42. benchmarks/test_io_benchmarks.py +0 -99
  43. benchmarks/test_packed_benchmarks.py +0 -41
  44. benchmarks/test_registry_benchmarks.py +0 -45
  45. benchmarks/type_strings.py +0 -26
  46. faster_eth_abi-5.2.15.dist-info/RECORD +0 -58
  47. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/WHEEL +0 -0
  48. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/licenses/LICENSE +0 -0
@@ -1,99 +0,0 @@
1
- """
2
- Benchmarks for faster_eth_abi.decoding.ContextFramesBytesIO
3
-
4
- This file benchmarks the performance of ContextFramesBytesIO, a subclass of BytesIO
5
- that supports contextual frame management for nested ABI decoding.
6
- """
7
-
8
- import pytest
9
-
10
- import eth_abi.decoding
11
- from pytest_codspeed import (
12
- BenchmarkFixture,
13
- )
14
-
15
- from benchmarks.batch import (
16
- batch,
17
- )
18
- import faster_eth_abi.decoding
19
-
20
- # Test parameters
21
- BUFFER_SIZES = [0, 32, 1024, 4096, 65536]
22
- FRAME_DEPTHS = [1, 5, 10, 50]
23
-
24
-
25
- @pytest.mark.benchmark(group="ContextFramesBytesIO-init")
26
- @pytest.mark.parametrize("size", BUFFER_SIZES)
27
- def test_contextframesbytesio_init(benchmark: BenchmarkFixture, size):
28
- data = b"\x01" * size
29
- benchmark(batch, 1000, eth_abi.decoding.ContextFramesBytesIO, data)
30
-
31
-
32
- @pytest.mark.benchmark(group="ContextFramesBytesIO-init")
33
- @pytest.mark.parametrize("size", BUFFER_SIZES)
34
- def test_faster_contextframesbytesio_init(benchmark: BenchmarkFixture, size):
35
- data = b"\x01" * size
36
- benchmark(batch, 1000, faster_eth_abi.decoding.ContextFramesBytesIO, data)
37
-
38
-
39
- @pytest.mark.benchmark(group="ContextFramesBytesIO-push-pop")
40
- @pytest.mark.parametrize("depth", FRAME_DEPTHS)
41
- def test_contextframesbytesio_push_pop(benchmark: BenchmarkFixture, depth):
42
- data = b"\x01" * 1024
43
- stream = eth_abi.decoding.ContextFramesBytesIO(data)
44
-
45
- def push_pop():
46
- for i in range(depth):
47
- stream.push_frame(i * 10)
48
- for _ in range(depth):
49
- stream.pop_frame()
50
-
51
- benchmark(batch, 100, push_pop)
52
-
53
-
54
- @pytest.mark.benchmark(group="ContextFramesBytesIO-push-pop")
55
- @pytest.mark.parametrize("depth", FRAME_DEPTHS)
56
- def test_faster_contextframesbytesio_push_pop(benchmark: BenchmarkFixture, depth):
57
- data = b"\x01" * 1024
58
- stream = faster_eth_abi.decoding.ContextFramesBytesIO(data)
59
- ints = list(range(depth))
60
-
61
- def push_pop():
62
- for i in ints:
63
- stream.push_frame(i * 10)
64
- for _ in ints:
65
- stream.pop_frame()
66
-
67
- benchmark(batch, 100, push_pop)
68
-
69
-
70
- @pytest.mark.benchmark(group="ContextFramesBytesIO-seek-in-frame")
71
- @pytest.mark.parametrize("depth", FRAME_DEPTHS)
72
- def test_contextframesbytesio_seek_in_frame(benchmark: BenchmarkFixture, depth):
73
- data = b"\x01" * 1024
74
- stream = eth_abi.decoding.ContextFramesBytesIO(data)
75
- # Set up the frame stack before timing
76
- for i in range(depth):
77
- stream.push_frame(i * 10)
78
-
79
- def seek_in_frame_ops():
80
- for i in range(depth):
81
- stream.seek_in_frame(i)
82
-
83
- benchmark(batch, 100, seek_in_frame_ops)
84
-
85
-
86
- @pytest.mark.benchmark(group="ContextFramesBytesIO-seek-in-frame")
87
- @pytest.mark.parametrize("depth", FRAME_DEPTHS)
88
- def test_faster_contextframesbytesio_seek_in_frame(benchmark: BenchmarkFixture, depth):
89
- data = b"\x01" * 1024
90
- stream = faster_eth_abi.decoding.ContextFramesBytesIO(data)
91
- # Set up the frame stack before timing
92
- for i in range(depth):
93
- stream.push_frame(i * 10)
94
-
95
- def seek_in_frame_ops():
96
- for i in range(depth):
97
- stream.seek_in_frame(i)
98
-
99
- benchmark(batch, 100, seek_in_frame_ops)
@@ -1,41 +0,0 @@
1
- import pytest
2
-
3
- import eth_abi.packed
4
- from pytest_codspeed import (
5
- BenchmarkFixture,
6
- )
7
-
8
- from benchmarks.batch import (
9
- batch,
10
- )
11
- from benchmarks.data import (
12
- packed_cases,
13
- packed_ids,
14
- )
15
- import faster_eth_abi.packed
16
-
17
-
18
- # Packed encoding
19
- @pytest.mark.benchmark(group="PackedEncoder")
20
- @pytest.mark.parametrize("abi_type,value", packed_cases, ids=packed_ids)
21
- def test_encode_packed(benchmark: BenchmarkFixture, abi_type, value):
22
- benchmark(batch, 100, eth_abi.packed.encode_packed, [abi_type], [value])
23
-
24
-
25
- @pytest.mark.benchmark(group="PackedEncoder")
26
- @pytest.mark.parametrize("abi_type,value", packed_cases, ids=packed_ids)
27
- def test_faster_encode_packed(benchmark: BenchmarkFixture, abi_type, value):
28
- benchmark(batch, 100, faster_eth_abi.packed.encode_packed, [abi_type], [value])
29
-
30
-
31
- # Packed is_encodable
32
- @pytest.mark.benchmark(group="PackedIsEncodable")
33
- @pytest.mark.parametrize("abi_type,value", packed_cases, ids=packed_ids)
34
- def test_is_encodable_packed(benchmark: BenchmarkFixture, abi_type, value):
35
- benchmark(batch, 100, eth_abi.packed.is_encodable_packed, abi_type, value)
36
-
37
-
38
- @pytest.mark.benchmark(group="PackedIsEncodable")
39
- @pytest.mark.parametrize("abi_type,value", packed_cases, ids=packed_ids)
40
- def test_faster_is_encodable_packed(benchmark: BenchmarkFixture, abi_type, value):
41
- benchmark(batch, 100, faster_eth_abi.packed.is_encodable_packed, abi_type, value)
@@ -1,45 +0,0 @@
1
- import pytest
2
-
3
- from eth_abi.registry import (
4
- registry,
5
- )
6
- from pytest_codspeed import (
7
- BenchmarkFixture,
8
- )
9
-
10
- from benchmarks.batch import (
11
- batch,
12
- )
13
- from benchmarks.type_strings import (
14
- type_strings,
15
- )
16
- from faster_eth_abi.registry import (
17
- registry as faster_registry,
18
- )
19
-
20
-
21
- ITERATIONS = 50_000
22
-
23
-
24
- @pytest.mark.benchmark(group="RegistryGetEncoder")
25
- @pytest.mark.parametrize("type_str", type_strings)
26
- def test_get_encoder(benchmark: BenchmarkFixture, type_str):
27
- benchmark(batch, ITERATIONS, registry.get_encoder, type_str)
28
-
29
-
30
- @pytest.mark.benchmark(group="RegistryGetEncoder")
31
- @pytest.mark.parametrize("type_str", type_strings)
32
- def test_faster_get_encoder(benchmark: BenchmarkFixture, type_str):
33
- benchmark(batch, ITERATIONS, faster_registry.get_encoder, type_str)
34
-
35
-
36
- @pytest.mark.benchmark(group="RegistryGetDecoder")
37
- @pytest.mark.parametrize("type_str", type_strings)
38
- def test_get_decoder(benchmark: BenchmarkFixture, type_str):
39
- benchmark(batch, ITERATIONS, registry.get_decoder, type_str)
40
-
41
-
42
- @pytest.mark.benchmark(group="RegistryGetDecoder")
43
- @pytest.mark.parametrize("type_str", type_strings)
44
- def test_faster_get_decoder(benchmark: BenchmarkFixture, type_str):
45
- benchmark(batch, ITERATIONS, faster_registry.get_decoder, type_str)
@@ -1,26 +0,0 @@
1
- # Shared list of all ABI type strings used in benchmarks
2
-
3
- type_strings = [
4
- "uint256",
5
- "int8",
6
- "address",
7
- "bytes32",
8
- "string",
9
- "bool",
10
- "uint256[2]",
11
- "string[]",
12
- "(uint256,bool)",
13
- "(address,uint8)",
14
- "(string,bytes)",
15
- "(uint256[2],string)",
16
- "(uint8,(bool,string))",
17
- "((uint8,uint8),uint8)",
18
- "(uint8[2],(string,bool[2]))",
19
- "(uint256[],(string[],bool))",
20
- "((uint8[2],(string,bool)),bytes32)",
21
- "(uint8[2][2],(string[2],bool[2]))",
22
- "uint8[]",
23
- "bytes",
24
- "fixed128x18",
25
- "ufixed128x18",
26
- ]
@@ -1,58 +0,0 @@
1
- faster_eth_abi__mypyc.cp314t-win32.pyd,sha256=wTSpY8hI5PIn8dCsmKo8acs-kdTtfPFvHmghl6qB7PI,249856
2
- benchmarks/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
3
- benchmarks/batch.py,sha256=8Va6LrNWIpn_Ssvjt4FlaM4SAS0yfGeg_yepBrOnJpE,208
4
- benchmarks/data.py,sha256=iistViDoK6kYW5YUAsd6RVtoLYHsI8_mgATAm0DFwUQ,9518
5
- benchmarks/test_abi_benchmarks.py,sha256=Dc1GmpAqfLRyf_ZoV48kXQOwkezj7-uUhVDaPIObHbc,2579
6
- benchmarks/test_decoding_benchmarks.py,sha256=0IHC87DQBccNO0tyCYg4SFrBcZBs_kMlhePLmWYxQqA,4013
7
- benchmarks/test_encoding_benchmarks.py,sha256=QwRazu9VERrTZ0JvF6SjZ6UVoWVNEZF3wwYPGSLnTF4,3311
8
- benchmarks/test_grammar_benchmarks.py,sha256=Z8XP1sVU0ds_KCMalgSLcsfaNKVuF4o80CJe5F0a-6M,1167
9
- benchmarks/test_io_benchmarks.py,sha256=SNCfk_Yt3u76OjCj7_-1fQYq-jTucc2HFOlVXsEdsWs,3164
10
- benchmarks/test_packed_benchmarks.py,sha256=PPjhMmr9bZvu57ESLURD1QBGvjDYr_YgIVweC07H48E,1436
11
- benchmarks/test_registry_benchmarks.py,sha256=8XqwdVH6JgnkqBVLY9Ptiqy1Ck2714QjVV6A2UM9AQ4,1307
12
- benchmarks/type_strings.py,sha256=q2Mwk2EwZCcI2ajQKac9zs76_yuMN9gXRbG8NqOrMrA,592
13
- faster_eth_abi/__init__.py,sha256=JpTfPTiusUGMmX8sEsGAxvILxFbvhh3MEyfiKOd5o9g,217
14
- faster_eth_abi/_codec.cp314t-win32.pyd,sha256=DM4K0_iVQUr8nMSOXVuUAH0IN7d7ZpHwSXBWFknmegU,9216
15
- faster_eth_abi/_codec.py,sha256=1r9MEBi21sg9MW765LRM5XdSmNif8tO9-CR8PPFJgnE,2348
16
- faster_eth_abi/_decoding.cp314t-win32.pyd,sha256=zrLqIdwY_Up269_yY7ThDVMBaZ15Upfy5fXFjdydO64,9216
17
- faster_eth_abi/_decoding.py,sha256=NLY4Jpny7mfUHqMWSvh_xxywlTanO_6z5jw8mldJMbc,9899
18
- faster_eth_abi/_encoding.cp314t-win32.pyd,sha256=vlTc-VEh8_xM1Gu3sP_9WdMmspuvzG0qNZGg38io6Rw,9216
19
- faster_eth_abi/_encoding.py,sha256=QJgfNDbszNgf_pGYvhdzeV6hL8u6DslzGE2sLT8hijQ,8785
20
- faster_eth_abi/_grammar.cp314t-win32.pyd,sha256=FUSmG9kdgSJqTRNfD7G_JUVYOA4UEgCLKfQGG3FWCVA,9216
21
- faster_eth_abi/_grammar.py,sha256=EV4QLeB93ZjsPDXjKKxfQcGn4d8bPhisAHF0YIuKqio,10670
22
- faster_eth_abi/abi.cp314t-win32.pyd,sha256=8r73WwTvjizziN0cf0TGE68heQkOGerrPPARiH35iY8,9216
23
- faster_eth_abi/abi.py,sha256=-t9OVBSCxy6SuWpCu3cxHrCqkx8_svPIRb0MSFXEl5Q,383
24
- faster_eth_abi/base.py,sha256=y4IXpQJWGfUISl3xjCO420Grxido3tE2ebPV2rK-DvM,1229
25
- faster_eth_abi/codec.py,sha256=sIeJ9Fqx32vPSIaObPE6xWdLSA0i2ZasNwqCCd5q8e8,41404
26
- faster_eth_abi/constants.cp314t-win32.pyd,sha256=V7_KGq6mZz3d419kqr3Q-NWmYw8vziYaYRwYo6fZDT0,9216
27
- faster_eth_abi/constants.py,sha256=q3FGynS-Eb78cnrL6mBoAvTDz16PF3tW2OylTMd6ajs,114
28
- faster_eth_abi/decoding.py,sha256=nSEdsjc38jix4EeEyA6GngkBPDuWZCRYDxDB2UCM0rI,16768
29
- faster_eth_abi/encoding.py,sha256=7Z65tihtDFbdFEkn70zHBRvRiJV1QZexiHubeQWzEEY,20383
30
- faster_eth_abi/exceptions.py,sha256=r4O6bmcxRzw44lNNgz_QdhukQfrnRfTm10xK2wPuba4,3701
31
- faster_eth_abi/from_type_str.cp314t-win32.pyd,sha256=lFvwQzOu5mst8sG46PROFVU_QFfrG1YOodlovHDfrfU,9216
32
- faster_eth_abi/from_type_str.py,sha256=PV697XdxjhwHYCBbaA-H_9I2CrfkQ5vsSkSxpCOt8eg,4474
33
- faster_eth_abi/grammar.py,sha256=a2FopTc3TtRvjYVHlOPo18IPEXueuD8IqDdCyiuFStM,4681
34
- faster_eth_abi/io.py,sha256=E_QX7aYAjGYnkNAZmJMmSmx1lqvl_FDNmMFruTi9UX4,3831
35
- faster_eth_abi/packed.cp314t-win32.pyd,sha256=wNB60GK-1LpCiscQl_5lTCkAzxZH6ffabfw5J528Bc4,9216
36
- faster_eth_abi/packed.py,sha256=RZ2chvsx9_AL9OxY1ixHTsaUJHaR_tmrNdViOIp-xSg,316
37
- faster_eth_abi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- faster_eth_abi/registry.py,sha256=Mx0w-Ahxpbmof_lcK7GIRktkGFm6FuVptfoEiYDY-R0,22246
39
- faster_eth_abi/typing.py,sha256=ZDVSJKboPeCn1CLGI4rbDmVtajDEpGi2383AyJ6mSF4,108266
40
- faster_eth_abi/tools/__init__.cp314t-win32.pyd,sha256=BPTmg2T4j9WCKBx3e0pj1_-1mv0DQagO47e0j2Wwkd4,9216
41
- faster_eth_abi/tools/__init__.py,sha256=jxyQnb34ldRjCTYi3Ajb5h5QlFQ6ODfKQNhOCVwR7Ao,54
42
- faster_eth_abi/tools/_strategies.cp314t-win32.pyd,sha256=iGSp5qxic7P6Ozgs6W7B8NDp1j9TJLJJzDApDPDT40M,9216
43
- faster_eth_abi/tools/_strategies.py,sha256=02wmJpj336nOFu7pBVaH4ucj3FORweKkiGqlaRgy-8c,6330
44
- faster_eth_abi/utils/__init__.cp314t-win32.pyd,sha256=wEcmdoUHfYqbSjCZKNV2Rjtqqx820815dh-3qZk4XFg,9216
45
- faster_eth_abi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- faster_eth_abi/utils/numeric.cp314t-win32.pyd,sha256=oQLZQy2kCkc2jmIN02yhDRKta1vRSGTLg0pQRJrhWJw,9216
47
- faster_eth_abi/utils/numeric.py,sha256=saAVL12dfDrMXZeao3u2jar-U2y57YKVUqF6VOzoLxs,3395
48
- faster_eth_abi/utils/padding.cp314t-win32.pyd,sha256=dsIOEv76jhSCOTaMAxhLtT3k4aYncAYYyyyAGK0Rwks,9216
49
- faster_eth_abi/utils/padding.py,sha256=k6dkOiQ3k0OhQUZ6blCiL1VOQVYGyynucafbySjcFfY,515
50
- faster_eth_abi/utils/string.cp314t-win32.pyd,sha256=ALzy227KLsVkPMvelBGHsfiOq4W8r3MnKbNVB2b4o04,9216
51
- faster_eth_abi/utils/string.py,sha256=wYcvWof4kuitrGGSe_NOduQaxE4HHYmpraCPXKcZxMs,455
52
- faster_eth_abi/utils/validation.cp314t-win32.pyd,sha256=tfFmdlWaSKn6ILwOXGQlIMi6gAvmRzkkDKQnfMwrubQ,9216
53
- faster_eth_abi/utils/validation.py,sha256=9veO7wyQsmcFgeaGrsKdSifjV1gaXfTDDKAt1EbKHYY,539
54
- faster_eth_abi-5.2.15.dist-info/licenses/LICENSE,sha256=Q1lDDWXR057JL2Y7HTAwclCF32_LCloN4sGUkXO1YeI,1127
55
- faster_eth_abi-5.2.15.dist-info/METADATA,sha256=Mzr6plUz3RIjzbPhOIVj_gySmSthLv8i_G2yyir_yHQ,7129
56
- faster_eth_abi-5.2.15.dist-info/WHEEL,sha256=QZj5mezaA5oNm6LDNW4xgYLgBYwS1DTKsN1RAjQk9mo,98
57
- faster_eth_abi-5.2.15.dist-info/top_level.txt,sha256=z3gorxabz8D2eg5A3YX2M3p3JMFRLLX3DRp0jAwNZOY,48
58
- faster_eth_abi-5.2.15.dist-info/RECORD,,