Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
943 commits
Select commit Hold shift + click to select a range
e88c21b
docs: fix the installation package (#243)
matrixise Feb 14, 2025
ab5dd6a
feat: use faster-eth-utils
BobTheBuidler Aug 8, 2025
27afe9d
chore: extract from_type_str stuff to new module
BobTheBuidler Aug 8, 2025
3844308
chore: extract ContextFramesBytesIO to new io module
BobTheBuidler Aug 8, 2025
d3cb3c0
feat: compile grammar.py
BobTheBuidler Aug 8, 2025
188cbe2
feat: compile constants, from_type_str, io modules
BobTheBuidler Aug 8, 2025
78408a2
chore: use tuple for encoders/decoders
BobTheBuidler Aug 8, 2025
c4a67e7
feat: compile utils
BobTheBuidler Aug 8, 2025
35cc43a
chore: black .
BobTheBuidler Aug 8, 2025
de0e64b
chore: rename to `faster-eth-abi` and compile
BobTheBuidler Aug 8, 2025
ab5f32b
feat: compile abi, packed, tools
BobTheBuidler Aug 8, 2025
398b5dc
feat(cicd): compile C files for source control
BobTheBuidler Aug 8, 2025
eed2b76
feat(cicd): compile C files for source control (#1)
BobTheBuidler Aug 8, 2025
8c2f51d
feat(cicd): pypi release workflow
BobTheBuidler Aug 8, 2025
705f7fe
feat(cicd): tox workflow (#2)
BobTheBuidler Aug 8, 2025
5cdab82
chore: drop support for python3.14 (#5)
BobTheBuidler Aug 8, 2025
d318cd3
chore: drop support for 32-bit musllinux (#6)
BobTheBuidler Aug 8, 2025
651d69e
chore: drop support for 32bit musllinux
BobTheBuidler Aug 8, 2025
2b94317
Merge branch 'master' of https://github.com/BobTheBuidler/eth-abi
BobTheBuidler Aug 8, 2025
d3c1069
fix: replace `eth-abi` with `faster-eth-abi` (#7)
BobTheBuidler Aug 8, 2025
53763f6
fix(cicd): fix sdist action
BobTheBuidler Aug 8, 2025
860ea8b
chore: bump version to 5.2.1
BobTheBuidler Aug 8, 2025
6b54b6a
fix: loosen cchecksum pin (#8)
BobTheBuidler Aug 8, 2025
8a19dbb
chore: bump version to 5.2.2
BobTheBuidler Aug 8, 2025
177487b
feat: support python3.14 (#9)
BobTheBuidler Aug 9, 2025
931da55
chore: bump version to 5.2.3
BobTheBuidler Aug 9, 2025
e66e2dc
fix(cicd): build workflow on python3.14
BobTheBuidler Aug 9, 2025
b1157e3
fix(cicd): build workflow on python3.14
BobTheBuidler Aug 9, 2025
6550e92
fix(cicd): build workflow on python3.14 (#10)
BobTheBuidler Aug 9, 2025
f8e0e28
fix(cicd): build workflow on python3.14
BobTheBuidler Aug 9, 2025
d6dfb79
fix(cicd): build workflow on python3.14
BobTheBuidler Aug 9, 2025
ac0f3c0
chore: fix mypy err
BobTheBuidler Aug 9, 2025
0a50d5a
chore: fix mypy err
BobTheBuidler Aug 9, 2025
bd13393
feat: support future pythons<4 (#11)
BobTheBuidler Aug 9, 2025
0b6618d
chore: bump version to 5.2.4
BobTheBuidler Aug 9, 2025
d9a7839
feat: cache TupleEncoder and TupleDecoder instead of creating every t…
BobTheBuidler Aug 11, 2025
54b7439
feat: microoptimize validate_bytes_param (#18)
BobTheBuidler Aug 11, 2025
cc12d70
feat: compile codec methods (#19)
BobTheBuidler Aug 11, 2025
3745ee7
feat: compile encoding methods (#20)
BobTheBuidler Aug 11, 2025
925256c
chore: bump version to 5.2.5
BobTheBuidler Aug 11, 2025
d0e6f18
fix(cicd): mypy err on Python3.14
BobTheBuidler Aug 11, 2025
069be4f
chore: add badges to readme (#22)
BobTheBuidler Aug 27, 2025
e818bbe
fix: urls in readme
BobTheBuidler Aug 27, 2025
a4a4915
feat(benchmark): benchmark grammar and registry (#23)
BobTheBuidler Sep 7, 2025
07d699b
Update benchmark results [skip ci]
github-actions[bot] Sep 7, 2025
178099b
feat(benchmark): add benchmarks (#24)
BobTheBuidler Sep 7, 2025
a72605b
Update benchmark results [skip ci]
github-actions[bot] Sep 7, 2025
6ebad05
feat(benchmark): add more benchmark cases (#25)
BobTheBuidler Sep 7, 2025
5de6159
Update benchmark results [skip ci]
github-actions[bot] Sep 7, 2025
ab6a46a
feat: optimize normalize (#27)
BobTheBuidler Sep 8, 2025
a3bdf46
Update benchmark results [skip ci]
github-actions[bot] Sep 8, 2025
4c4bcde
fix(mypy): fix mypy err (#26)
BobTheBuidler Sep 8, 2025
c376b8c
Update benchmark results [skip ci]
github-actions[bot] Sep 8, 2025
2035ac4
chore: add Python3.14 classifier to setup.py
BobTheBuidler Sep 8, 2025
6f105e6
chore: add codspeed badge to readme
BobTheBuidler Sep 8, 2025
90b9029
chore: update readme with fork info
BobTheBuidler Sep 8, 2025
aa83624
chore: update pypi description
BobTheBuidler Sep 8, 2025
24e5715
Update benchmark results [skip ci]
github-actions[bot] Sep 8, 2025
8e97ff3
fix(cicd): separate benchmarks into 2 workflows (#28)
BobTheBuidler Sep 12, 2025
f64d334
Update benchmark results [skip ci]
github-actions[bot] Sep 12, 2025
d8cb072
Run benchmarks with latest `faster-eth-utils` (#29)
BobTheBuidler Sep 12, 2025
6d5a7f1
Update benchmark results [skip ci]
github-actions[bot] Sep 12, 2025
0e0606d
feat: bump compiler version (#30)
BobTheBuidler Sep 12, 2025
2e90630
chore: bump version to 5.2.6
BobTheBuidler Sep 12, 2025
17f84e0
Update benchmark results [skip ci]
github-actions[bot] Sep 12, 2025
4fe0483
fix: TypeError: 'type' object is not subscriptable on Python3.8 (#32)
BobTheBuidler Sep 13, 2025
004081e
chore: bump version to 5.2.7
BobTheBuidler Sep 13, 2025
a590bc5
Update benchmark results [skip ci]
github-actions[bot] Sep 13, 2025
b0b2a47
feat: cache TupleDecoder.len_of_head (#34)
BobTheBuidler Sep 18, 2025
4866f4c
feat(benchmark): benchmark io submodule (#33)
BobTheBuidler Sep 18, 2025
f198e6d
fix: description in setup.py (#38)
BobTheBuidler Sep 18, 2025
047727b
fix: fail build if mypy not found (#36)
BobTheBuidler Sep 18, 2025
9be3d00
fix: py_modules in setup.py (#37)
BobTheBuidler Sep 18, 2025
10c00d8
Update benchmark results [skip ci]
github-actions[bot] Sep 18, 2025
65a9299
fix(benchmark): build extension modules (#39)
BobTheBuidler Sep 18, 2025
df5f079
Update benchmark results [skip ci]
github-actions[bot] Sep 18, 2025
bc34f06
feat: compile some decoding stuff (#35)
BobTheBuidler Sep 18, 2025
0dbfe32
Update benchmark results [skip ci]
github-actions[bot] Sep 18, 2025
80e931f
feat: compile decode dynamic array (#40)
BobTheBuidler Sep 19, 2025
dba0ec7
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
7285645
chore: refactor out noop validation call in StringDecoder (#43)
BobTheBuidler Sep 19, 2025
d07ea13
feat(mypy): type hints in decoding.py (#42)
BobTheBuidler Sep 19, 2025
65182d1
feat: compile decode sized array (#41)
BobTheBuidler Sep 19, 2025
5ef4df6
feat: compile FixedByteSizeDecoder.read_data_from_stream (#46)
BobTheBuidler Sep 19, 2025
56da41b
feat: alias encode and decode as [En/De]Coder.__call__` (#45)
BobTheBuidler Sep 19, 2025
8b0c65b
fix(benchmark): reduce benchmark variance for normalize module (#48)
BobTheBuidler Sep 19, 2025
a3d9586
feat: microoptimize Encoder attribute lookups (#47)
BobTheBuidler Sep 19, 2025
9b049ba
chore: bump version to 5.2.8
BobTheBuidler Sep 19, 2025
1e4041a
fix(benchmark): reduce frequency of benchmark action (#49)
BobTheBuidler Sep 19, 2025
8e97cec
fix(mypy): fix mypy errs (#50)
BobTheBuidler Sep 19, 2025
52ab473
chore: bump mypy (#51)
BobTheBuidler Sep 19, 2025
a25e53d
feat: microoptimize decode_uint_256 (#52)
BobTheBuidler Sep 19, 2025
5fbd263
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
af45929
feat: microoptimize Decoder attribute lookups (#44)
BobTheBuidler Sep 19, 2025
f414109
fix: conflict with downstream dank-mids (#53)
BobTheBuidler Sep 19, 2025
6de9e19
chore: bump version to 5.2.9
BobTheBuidler Sep 19, 2025
228b9d2
fix(mypy): fix mypy error
BobTheBuidler Sep 19, 2025
5932655
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
2ee5a91
chore(cicd): bump python to 3.13 on gh action runners (#54)
BobTheBuidler Sep 19, 2025
0c2e52a
feat: compile `FixedByteSizeDecoder._get_value_byte_size` (#56)
BobTheBuidler Sep 19, 2025
00355f1
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
9673197
feat: compile FixedByteSizeDecoder methods (#58)
BobTheBuidler Sep 19, 2025
adc9df7
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
437f123
feat: compile BooleanDecoder.decode_fn (#59)
BobTheBuidler Sep 19, 2025
3c2f705
Update benchmark results [skip ci]
github-actions[bot] Sep 19, 2025
3bb39f7
feat: compile exceptions.py (#60)
BobTheBuidler Sep 20, 2025
898f473
Update benchmark results [skip ci]
github-actions[bot] Sep 20, 2025
1eca2f5
feat: microoptimize encoding `tail_offsets` (#62)
BobTheBuidler Sep 29, 2025
553f0d4
feat: microoptimize utils/numeric.py functions (#55)
BobTheBuidler Sep 29, 2025
aa64bd2
feat: cache utils/numeric.py function results (#63)
BobTheBuidler Sep 29, 2025
9d9aaaa
chore: bump version to 5.2.10
BobTheBuidler Sep 29, 2025
a278337
Update benchmark results [skip ci]
github-actions[bot] Sep 29, 2025
c8bd66e
Revert "feat: compile exceptions.py (#60)" (#64)
BobTheBuidler Sep 29, 2025
d3553d5
feat: microoptimize ceil32 (#67)
BobTheBuidler Sep 29, 2025
ced9095
fix: bug in numeric.py optimizations (#68)
BobTheBuidler Sep 29, 2025
1c588d9
Update benchmark results [skip ci]
github-actions[bot] Sep 29, 2025
f1d55f2
fix: clear tuple en/de coder cache when (de)registering (#69)
BobTheBuidler Oct 1, 2025
366893d
feat: reduce repetitive validation of type args (#70)
BobTheBuidler Oct 1, 2025
aa88406
Update benchmark results [skip ci]
github-actions[bot] Oct 1, 2025
27ce6e6
feat(cicd): normalize C files for diffchecking (#71)
BobTheBuidler Oct 7, 2025
2ea50ac
feat(test): only run tests on code changes (#73)
BobTheBuidler Oct 7, 2025
a219d8a
feat(test): run tox workflow daily (#72)
BobTheBuidler Oct 7, 2025
2ba7e15
feat(test): split up tox jobs to multiple runners (#74)
BobTheBuidler Oct 7, 2025
56fb425
feat(test): add workflow_dispatch trigger to test runner (#78)
BobTheBuidler Oct 8, 2025
8ae4d1d
feat: optimize `ABIEncoder.is_encodable` (#79)
BobTheBuidler Oct 8, 2025
1b7e875
fix(cicd): limit certain workflows to code changes only (#82)
BobTheBuidler Oct 8, 2025
3bf5f25
fix(test): adapt TypeError text matching tests to compiled eth-abi (#81)
BobTheBuidler Oct 8, 2025
d47f74d
feat(cicd): use caching in github actions workflows (#83)
BobTheBuidler Oct 8, 2025
8ac1a6e
Create _grammar.py
BobTheBuidler Oct 8, 2025
8d7f674
Update benchmark results [skip ci]
github-actions[bot] Oct 8, 2025
c482e12
fix(test): expected exc types in test_abi_encode_raises_for_non_list_…
BobTheBuidler Oct 8, 2025
c0a2778
feat: compile most of grammar module (#85)
BobTheBuidler Oct 8, 2025
83881ce
Update benchmark results [skip ci]
github-actions[bot] Oct 8, 2025
8698162
fix(test): expected exc types in test_abi_decode_wrong_types_param_ty…
BobTheBuidler Oct 8, 2025
a7d5fac
feat(mypy): proper typing for PredicateMapping (#89)
BobTheBuidler Oct 8, 2025
9e3808d
Update benchmark results [skip ci]
github-actions[bot] Oct 8, 2025
8f0ece8
feat(test): test on Python3.14, 3.13t, 3.14t (#90)
BobTheBuidler Oct 8, 2025
4f5d9f3
feat(cicd): build C files for source control on py3.14 (#92)
BobTheBuidler Oct 8, 2025
46cd6e2
fix(test): run cronjob daily
BobTheBuidler Oct 8, 2025
e45d09c
feat(cicd): release workflow dry-run option (#93)
BobTheBuidler Oct 9, 2025
35b1e20
feat: include faster-eth-utils as build dep on py3.14 (#94)
BobTheBuidler Oct 9, 2025
deec9cc
chore: bump version to 5.2.11
BobTheBuidler Oct 9, 2025
137f0c0
fix: exclude pydantic build dep on py3.14 on 32-bit Linux (#95)
BobTheBuidler Oct 9, 2025
52da80b
feat(test): test on 32-bit systems (#96)
BobTheBuidler Oct 10, 2025
658ca26
fix(test): fix runners on free-threaded py3.13 and 3.14 (#97)
BobTheBuidler Oct 10, 2025
8092b49
chore: skip mypycify cmd in setup.py if not installing (#99)
BobTheBuidler Oct 11, 2025
1ae8e6b
feat(cicd): cache .mypy_cache for runners (#100)
BobTheBuidler Oct 14, 2025
93dcb53
feat(test): limit cronjob to 4 runners (#101)
BobTheBuidler Oct 14, 2025
926c9ab
feat: set mypyc flag strict_dunder_typing=True (#103)
BobTheBuidler Oct 15, 2025
f737587
chore: set mypyc group name (#102)
BobTheBuidler Oct 15, 2025
7a5cfd9
Create renovate.json
BobTheBuidler Oct 16, 2025
b3bc8cf
chore(deps): update actions/github-script action to v8 (#111)
renovate[bot] Oct 17, 2025
4c22f2a
chore(deps): update actions/checkout action to v5 (#109)
renovate[bot] Oct 17, 2025
2e49226
chore(deps): update actions/download-artifact action to v5 (#110)
renovate[bot] Oct 17, 2025
633bbef
chore(deps): update actions/setup-python action to v6 (#112)
renovate[bot] Oct 17, 2025
2c647fc
chore(deps): update dependency towncrier to v25 (#114)
renovate[bot] Oct 17, 2025
6f93ee8
chore(deps): update codspeedhq/action action to v4 (#113)
renovate[bot] Oct 17, 2025
2a54df5
chore(deps): update dependency mypy to v1.18.2 (#107)
renovate[bot] Oct 17, 2025
da0a810
fix(cicd): wheel on Python3.8
BobTheBuidler Oct 18, 2025
56f6cdb
feat: inherit from eth-abi exceptions (#116)
BobTheBuidler Oct 18, 2025
7162815
Update benchmark results [skip ci]
github-actions[bot] Oct 18, 2025
7bc61d3
Update README.md
BobTheBuidler Oct 18, 2025
e95ae6d
fix(cicd): wheel on 32-bit Python3.14t (#117)
BobTheBuidler Oct 18, 2025
865a125
chore: bump version to 5.2.12
BobTheBuidler Oct 18, 2025
32365d4
chore: bump version to 5.2.12
BobTheBuidler Oct 18, 2025
90f4709
fix(cicd): don't over limit runner parallelism (#120)
BobTheBuidler Oct 20, 2025
e33c158
fix(test): reorganize grouping of tox runners (#121)
BobTheBuidler Oct 20, 2025
9b26750
chore: add project_urls to setup.py (#118)
BobTheBuidler Oct 20, 2025
439fd35
chore: add benchmarks url to setup.py (#122)
BobTheBuidler Oct 21, 2025
e8c3ccf
fix(benchmark): dont cancel codspeed runs on master
BobTheBuidler Oct 22, 2025
6571d9e
fix(benchmark): dont cancel codspeed runs on master
BobTheBuidler Oct 22, 2025
5f69ec6
Update codspeed.yaml
BobTheBuidler Oct 22, 2025
ac4b3ed
feat: compile BaseArrayDecoder.validate_pointers_array (#126)
BobTheBuidler Oct 22, 2025
fb5c378
chore(deps): update dependency win to v5.1.1 (#123)
renovate[bot] Oct 22, 2025
384ccbf
feat: compile TupleDecoder.validate_pointers (#128)
BobTheBuidler Oct 22, 2025
1e16262
feat(benchmark): shard benchmark runners (#130)
BobTheBuidler Oct 22, 2025
e0fad77
feat: optimize decode_tuple (#129)
BobTheBuidler Oct 22, 2025
5fea2c5
feat(benchmark): one shard if triggered by push (#131)
BobTheBuidler Oct 22, 2025
01b84cd
feat: compile SignedIntegerDecoder.validate_padding_bytes (#124)
BobTheBuidler Oct 22, 2025
9a25dcc
Update benchmark results [skip ci]
github-actions[bot] Oct 22, 2025
3bf646b
feat: cache get_expected_padding_bytes (#125)
BobTheBuidler Oct 22, 2025
0e8cf15
fix: cache key bug in get_expected_padding_bytes (#133)
BobTheBuidler Oct 22, 2025
400296d
Update benchmark results [skip ci]
github-actions[bot] Oct 22, 2025
50a7a99
feat(mypy): add decoder return types (#134)
BobTheBuidler Oct 22, 2025
080af74
feat: SignedIntegerDecoder cached properties (#132)
BobTheBuidler Oct 22, 2025
89233ae
Update benchmark results [skip ci]
github-actions[bot] Oct 22, 2025
d0d6352
feat: alias compiled decoder funcs as methods (#127)
BobTheBuidler Oct 22, 2025
f9b618c
Update pyproject.toml
BobTheBuidler Oct 22, 2025
d86de64
chore: bump version to 5.2.13 (#136)
BobTheBuidler Oct 22, 2025
2d83e66
fix: wheel on 32-bit linux
BobTheBuidler Oct 22, 2025
aa9d781
fix(benchmark): run pytest-benchmark when setup.py changes
BobTheBuidler Oct 22, 2025
6d5d60c
Update benchmark results [skip ci]
github-actions[bot] Oct 22, 2025
c1f7a5c
feat: use more cached_property in decoders (#138)
BobTheBuidler Oct 22, 2025
d176a09
feat: use cached_property in encoders (#140)
BobTheBuidler Oct 22, 2025
841d5c4
feat: alias compiled func as method (#137)
BobTheBuidler Oct 22, 2025
64b299e
feat: compile TupleEncoder.validate_value (#139)
BobTheBuidler Oct 22, 2025
0f1f2ab
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
37692a9
feat: TupleEncoder._is_dynamic attr (#141)
BobTheBuidler Oct 23, 2025
c164cbc
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
d9be6ef
fix: specializer check in TupleEncoder init
BobTheBuidler Oct 23, 2025
33f5a1d
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
ce7a151
feat: optimize encode_tuple head_length (#143)
BobTheBuidler Oct 23, 2025
125c6f7
feat: one less py call per encode (#142)
BobTheBuidler Oct 23, 2025
bc5909c
feat(benchmark): increase # of runners on push
BobTheBuidler Oct 23, 2025
dfbbf0e
feat: length-specific TupleEncoders (#144)
BobTheBuidler Oct 23, 2025
d42077c
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
242d259
feat(mypy): proper typing for ABIRegistry methods (#146)
BobTheBuidler Oct 23, 2025
71311e9
fix(benchmark): increase iterations for registry benchmarks
BobTheBuidler Oct 23, 2025
67df721
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
7f5422b
chore: refactor out __encode_tuple_chunks (#147)
BobTheBuidler Oct 23, 2025
e7bcfe9
chore: bump version to 5.2.14
BobTheBuidler Oct 23, 2025
385b85c
chore: bump version to 5.2.14
BobTheBuidler Oct 23, 2025
b727d31
Update README.md
BobTheBuidler Oct 23, 2025
d116b26
chore: update description
BobTheBuidler Oct 23, 2025
96d54f9
Update benchmark results [skip ci]
github-actions[bot] Oct 23, 2025
c75f071
chore(deps): update github artifact actions (#148)
renovate[bot] Oct 26, 2025
fa3b8ce
Update benchmark results [skip ci]
github-actions[bot] Oct 26, 2025
937c29e
feat(mypy): proper typing for decode, lots of overloads (#150)
BobTheBuidler Oct 26, 2025
af71070
feat(mypy): BoolTypeStr (#153)
BobTheBuidler Oct 26, 2025
f8bea10
chore: pin pytest-codspeed (#154)
BobTheBuidler Oct 26, 2025
4e1639f
Update benchmark results [skip ci]
github-actions[bot] Oct 26, 2025
d2ec064
feat(mypy): make BasicType generic (#151)
BobTheBuidler Oct 26, 2025
edf6567
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
1718c84
feat(mypy): fallback type for decoder overloads (#156)
BobTheBuidler Oct 27, 2025
d755c98
chore: bump version to 5.2.15
BobTheBuidler Oct 27, 2025
28e8f7f
chore: bump version to 5.2.15
BobTheBuidler Oct 27, 2025
9831c83
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
e35b3a1
feat(mypy): autogenerate new Literal types in typing.py (#157)
BobTheBuidler Oct 27, 2025
d27f9aa
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
5aa7b0b
fix(mypy): fix mypy errs (#160)
BobTheBuidler Oct 27, 2025
5ccc9fa
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
0806cda
fix: pin build dependencies (#161)
BobTheBuidler Oct 27, 2025
6b85d00
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
e0097a9
feat(mypy): make decoder classes generic (#152)
BobTheBuidler Oct 27, 2025
3161fe6
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
ba6d635
feat(mypy): generate bytes type literals (#164)
BobTheBuidler Oct 27, 2025
38dde44
feat(benchmark): upgrade benchmark runner to py3.14 (#91)
BobTheBuidler Oct 27, 2025
b40618f
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
0680e00
feat: cache `Predicate.__hash__` (#166)
BobTheBuidler Oct 27, 2025
afc2fe0
feat(mypy): proper typing for registry Predicate classes (#165)
BobTheBuidler Oct 27, 2025
9ea5bbf
Update benchmark results [skip ci]
github-actions[bot] Oct 27, 2025
0a8e260
feat(benchmark): benchmark the rest of registry submodule (#167)
BobTheBuidler Oct 28, 2025
7257677
feat(benchmark): finish benchmarking ABIRegistry
BobTheBuidler Oct 28, 2025
b9be27f
Update type_strings.py
BobTheBuidler Oct 28, 2025
c511de7
Update benchmark results [skip ci]
github-actions[bot] Oct 28, 2025
2f0e591
feat: microoptimize `Predicate.__iter__` (#169)
BobTheBuidler Oct 28, 2025
e413d62
Update type_strings.py
BobTheBuidler Oct 28, 2025
b2c63ac
fix(mypy): `decode` return types for Decoder subclasses (#170)
BobTheBuidler Oct 28, 2025
ac39af3
Update benchmark results [skip ci]
github-actions[bot] Oct 28, 2025
3532455
Merge branch 'master' into gettuple
BobTheBuidler Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
313 changes: 313 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,313 @@
version: 2.1

# heavily inspired by https://raw.githubusercontent.com/pinax/pinax-wiki/6bd2a99ab6f702e300d708532a6d1d9aa638b9f8/.circleci/config.yml

common: &common
working_directory: ~/repo
steps:
- checkout
- run:
name: merge pull request base
command: ./.circleci/merge_pr.sh
- run:
name: merge pull request base (2nd try)
command: ./.circleci/merge_pr.sh
when: on_fail
- run:
name: merge pull request base (3rd try)
command: ./.circleci/merge_pr.sh
when: on_fail
- restore_cache:
keys:
- cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
- run:
name: install dependencies
command: |
python -m pip install --upgrade pip
python -m pip install tox
- run:
name: run tox
command: python -m tox run -r
- save_cache:
paths:
- .hypothesis
- .tox
- ~/.cache/pip
- ~/.local
key: cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}

orbs:
win: circleci/[email protected]

windows-wheel-steps:
windows-wheel-setup: &windows-wheel-setup
executor:
name: win/default
shell: bash.exe
working_directory: C:\Users\circleci\project\faster-eth-abi
environment:
TOXENV: windows-wheel
restore-cache-step: &restore-cache-step
restore_cache:
keys:
- cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
install-pyenv-step: &install-pyenv-step
run:
name: install pyenv
command: |
pip install pyenv-win --target $HOME/.pyenv
echo 'export PYENV="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
echo 'export PYENV_ROOT="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
echo 'export PYENV_USERPROFILE="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
echo 'export PATH="$PATH:$HOME/.pyenv/pyenv-win/bin"' >> $BASH_ENV
echo 'export PATH="$PATH:$HOME/.pyenv/pyenv-win/shims"' >> $BASH_ENV
source $BASH_ENV
pyenv update
install-latest-python-step: &install-latest-python-step
run:
name: install latest python version and tox
command: |
LATEST_VERSION=$(pyenv install --list | grep -E "${MINOR_VERSION}\.[0-9]+$" | tail -1)
echo "installing python version $LATEST_VERSION"
pyenv install $LATEST_VERSION
pyenv global $LATEST_VERSION
python3 -m pip install --upgrade pip
python3 -m pip install tox
run-tox-step: &run-tox-step
run:
name: run tox
command: |
echo 'running tox with' $(python3 --version)
python3 -m tox run -r
save-cache-step: &save-cache-step
save_cache:
paths:
- .tox
key: cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}

docs: &docs
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
- run:
name: install dependencies
command: |
python -m pip install --upgrade pip
python -m pip install tox
- run:
name: install latexpdf dependencies
command: |
sudo apt-get update
sudo apt-get install latexmk tex-gyre texlive-fonts-extra texlive-xetex xindy
- run:
name: run tox
command: python -m tox run -r
- store_artifacts:
path: /home/circleci/repo/docs/_build
- save_cache:
paths:
- .tox
- ~/.cache/pip
- ~/.local
key: cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
resource_class: xlarge

jobs:
docs:
<<: *docs
docker:
- image: cimg/python:3.10
environment:
TOXENV: docs

py38-core:
<<: *common
docker:
- image: cimg/python:3.8
environment:
TOXENV: py38-core
py39-core:
<<: *common
docker:
- image: cimg/python:3.9
environment:
TOXENV: py39-core
py310-core:
<<: *common
docker:
- image: cimg/python:3.10
environment:
TOXENV: py310-core
py311-core:
<<: *common
docker:
- image: cimg/python:3.11
environment:
TOXENV: py311-core
py312-core:
<<: *common
docker:
- image: cimg/python:3.12
environment:
TOXENV: py312-core
py313-core:
<<: *common
docker:
- image: cimg/python:3.13
environment:
TOXENV: py313-core

py38-lint:
<<: *common
docker:
- image: cimg/python:3.8
environment:
TOXENV: py38-lint
py39-lint:
<<: *common
docker:
- image: cimg/python:3.9
environment:
TOXENV: py39-lint
py310-lint:
<<: *common
docker:
- image: cimg/python:3.10
environment:
TOXENV: py310-lint
py311-lint:
<<: *common
docker:
- image: cimg/python:3.11
environment:
TOXENV: py311-lint
py312-lint:
<<: *common
docker:
- image: cimg/python:3.12
environment:
TOXENV: py312-lint
py313-lint:
<<: *common
docker:
- image: cimg/python:3.13
environment:
TOXENV: py313-lint

py38-wheel:
<<: *common
docker:
- image: cimg/python:3.8
environment:
TOXENV: py38-wheel
py39-wheel:
<<: *common
docker:
- image: cimg/python:3.9
environment:
TOXENV: py39-wheel
py310-wheel:
<<: *common
docker:
- image: cimg/python:3.10
environment:
TOXENV: py310-wheel
py311-wheel:
<<: *common
docker:
- image: cimg/python:3.11
environment:
TOXENV: py311-wheel
py312-wheel:
<<: *common
docker:
- image: cimg/python:3.12
environment:
TOXENV: py312-wheel
py313-wheel:
<<: *common
docker:
- image: cimg/python:3.13
environment:
TOXENV: py313-wheel

py311-windows-wheel:
<<: *windows-wheel-setup
steps:
- checkout
- <<: *restore-cache-step
- <<: *install-pyenv-step
- run:
name: set minor version
command: echo "export MINOR_VERSION='3.11'" >> $BASH_ENV
- <<: *install-latest-python-step
- <<: *run-tox-step
- <<: *save-cache-step

py312-windows-wheel:
<<: *windows-wheel-setup
steps:
- checkout
- <<: *restore-cache-step
- <<: *install-pyenv-step
- run:
name: set minor version
command: echo "export MINOR_VERSION='3.12'" >> $BASH_ENV
- <<: *install-latest-python-step
- <<: *run-tox-step
- <<: *save-cache-step

py313-windows-wheel:
<<: *windows-wheel-setup
steps:
- checkout
- <<: *restore-cache-step
- <<: *install-pyenv-step
- run:
name: set minor version
command: echo "export MINOR_VERSION='3.13'" >> $BASH_ENV
- <<: *install-latest-python-step
- <<: *run-tox-step
- <<: *save-cache-step

define: &all_jobs
- docs
- py38-core
- py39-core
- py310-core
- py311-core
- py312-core
- py313-core
- py38-lint
- py39-lint
- py310-lint
- py311-lint
- py312-lint
- py313-lint
- py38-wheel
- py39-wheel
- py310-wheel
- py311-wheel
- py312-wheel
- py313-wheel
- py311-windows-wheel
- py312-windows-wheel
- py313-windows-wheel

workflows:
version: 2
test:
jobs: *all_jobs
nightly:
triggers:
- schedule:
# Weekdays 12:00p UTC
cron: "0 12 * * 1,2,3,4,5"
filters:
branches:
only:
- main
jobs: *all_jobs
12 changes: 12 additions & 0 deletions .circleci/merge_pr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash

if [[ -n "${CIRCLE_PR_NUMBER}" ]]; then
PR_INFO_URL=https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pulls/$CIRCLE_PR_NUMBER
PR_BASE_BRANCH=$(curl -L "$PR_INFO_URL" | python -c 'import json, sys; obj = json.load(sys.stdin); sys.stdout.write(obj["base"]["ref"])')
git fetch origin +"$PR_BASE_BRANCH":circleci/pr-base
# We need these config values or git complains when creating the
# merge commit
git config --global user.name "Circle CI"
git config --global user.email "[email protected]"
git merge --no-edit circleci/pr-base
fi
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ignore SHAs that added black
cfb3711ac242c33ec229ffb0255555d7de696425
Loading
Loading