faster-eth-utils 5.3.2__cp312-cp312-musllinux_1_2_i686.whl → 5.3.22__cp312-cp312-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 faster-eth-utils might be problematic. Click here for more details.

Files changed (46) hide show
  1. faster_eth_utils/abi.cpython-312-i386-linux-musl.so +0 -0
  2. faster_eth_utils/abi.py +99 -74
  3. faster_eth_utils/address.cpython-312-i386-linux-musl.so +0 -0
  4. faster_eth_utils/address.py +15 -36
  5. faster_eth_utils/applicators.cpython-312-i386-linux-musl.so +0 -0
  6. faster_eth_utils/applicators.py +79 -59
  7. faster_eth_utils/conversions.cpython-312-i386-linux-musl.so +0 -0
  8. faster_eth_utils/conversions.py +18 -20
  9. faster_eth_utils/crypto.cpython-312-i386-linux-musl.so +0 -0
  10. faster_eth_utils/crypto.py +3 -8
  11. faster_eth_utils/currency.cpython-312-i386-linux-musl.so +0 -0
  12. faster_eth_utils/currency.py +11 -8
  13. faster_eth_utils/curried/__init__.py +65 -65
  14. faster_eth_utils/debug.cpython-312-i386-linux-musl.so +0 -0
  15. faster_eth_utils/decorators.cpython-312-i386-linux-musl.so +0 -0
  16. faster_eth_utils/decorators.py +65 -29
  17. faster_eth_utils/encoding.cpython-312-i386-linux-musl.so +0 -0
  18. faster_eth_utils/encoding.py +1 -1
  19. faster_eth_utils/exceptions.cpython-312-i386-linux-musl.so +0 -0
  20. faster_eth_utils/exceptions.py +8 -1
  21. faster_eth_utils/functional.cpython-312-i386-linux-musl.so +0 -0
  22. faster_eth_utils/functional.py +39 -27
  23. faster_eth_utils/hexadecimal.cpython-312-i386-linux-musl.so +0 -0
  24. faster_eth_utils/hexadecimal.py +8 -12
  25. faster_eth_utils/humanize.cpython-312-i386-linux-musl.so +0 -0
  26. faster_eth_utils/humanize.py +18 -22
  27. faster_eth_utils/logging.py +51 -44
  28. faster_eth_utils/module_loading.cpython-312-i386-linux-musl.so +0 -0
  29. faster_eth_utils/network.cpython-312-i386-linux-musl.so +0 -0
  30. faster_eth_utils/network.py +11 -4
  31. faster_eth_utils/numeric.cpython-312-i386-linux-musl.so +0 -0
  32. faster_eth_utils/pydantic.py +15 -13
  33. faster_eth_utils/toolz.cpython-312-i386-linux-musl.so +0 -0
  34. faster_eth_utils/toolz.py +82 -152
  35. faster_eth_utils/types.cpython-312-i386-linux-musl.so +0 -0
  36. faster_eth_utils/types.py +20 -17
  37. faster_eth_utils/units.cpython-312-i386-linux-musl.so +0 -0
  38. {faster_eth_utils-5.3.2.dist-info → faster_eth_utils-5.3.22.dist-info}/METADATA +46 -17
  39. faster_eth_utils-5.3.22.dist-info/RECORD +53 -0
  40. faster_eth_utils-5.3.22.dist-info/top_level.txt +3 -0
  41. faster_eth_utils__mypyc.cpython-312-i386-linux-musl.so +0 -0
  42. bce0bfc64ce5e845ec4a__mypyc.cpython-312-i386-linux-musl.so +0 -0
  43. faster_eth_utils-5.3.2.dist-info/RECORD +0 -47
  44. faster_eth_utils-5.3.2.dist-info/top_level.txt +0 -3
  45. {faster_eth_utils-5.3.2.dist-info → faster_eth_utils-5.3.22.dist-info}/WHEEL +0 -0
  46. {faster_eth_utils-5.3.2.dist-info → faster_eth_utils-5.3.22.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,6 @@
1
1
  from typing import (
2
2
  Any,
3
- Dict,
4
- Type,
3
+ cast,
5
4
  )
6
5
 
7
6
  from pydantic import (
@@ -21,7 +20,7 @@ from pydantic.json_schema import (
21
20
  )
22
21
 
23
22
 
24
- class OmitJsonSchema(GenerateJsonSchema):
23
+ class OmitJsonSchema(GenerateJsonSchema): # type: ignore[misc]
25
24
  """
26
25
  Custom JSON schema generator that omits the schema generation for fields that are
27
26
  invalid. Excluded fields (``Field(exclude=True)``) are generally useful as
@@ -32,10 +31,10 @@ class OmitJsonSchema(GenerateJsonSchema):
32
31
  # override ``field_is_present`` and omit excluded fields from the schema
33
32
  if field.get("serialization_exclude", False):
34
33
  return False
35
- return super().field_is_present(field)
34
+ return cast(bool, super().field_is_present(field))
36
35
 
37
36
 
38
- class CamelModel(BaseModel):
37
+ class CamelModel(BaseModel): # type: ignore[misc]
39
38
  """
40
39
  Camel-case pydantic model. This model is used to ensure serialization in a
41
40
  consistent manner, aliasing as camelCase serialization. This is useful for models
@@ -81,21 +80,24 @@ class CamelModel(BaseModel):
81
80
  )
82
81
 
83
82
  @classmethod
84
- def model_json_schema(
83
+ def model_json_schema( # type: ignore [override]
85
84
  cls,
86
85
  by_alias: bool = True,
87
86
  ref_template: str = DEFAULT_REF_TEMPLATE,
88
87
  # default to ``OmitJsonSchema`` to prevent errors from excluded fields
89
- schema_generator: Type[GenerateJsonSchema] = OmitJsonSchema,
88
+ schema_generator: type[GenerateJsonSchema] = OmitJsonSchema,
90
89
  mode: JsonSchemaMode = "validation",
91
- ) -> Dict[str, Any]:
90
+ ) -> dict[str, Any]:
92
91
  """
93
92
  Omits excluded fields from the JSON schema, preventing errors that would
94
93
  otherwise be raised by the default schema generator.
95
94
  """
96
- return super().model_json_schema(
97
- by_alias=by_alias,
98
- ref_template=ref_template,
99
- schema_generator=schema_generator,
100
- mode=mode,
95
+ return cast(
96
+ dict[str, Any],
97
+ super().model_json_schema(
98
+ by_alias=by_alias,
99
+ ref_template=ref_template,
100
+ schema_generator=schema_generator,
101
+ mode=mode,
102
+ ),
101
103
  )
faster_eth_utils/toolz.py CHANGED
@@ -1,154 +1,84 @@
1
+ from typing import Final
2
+
1
3
  try:
2
- from cytoolz import (
3
- accumulate,
4
- assoc,
5
- assoc_in,
6
- comp,
7
- complement,
8
- compose,
9
- concat,
10
- concatv,
11
- cons,
12
- count,
13
- countby,
14
- curried,
15
- curry,
16
- dicttoolz,
17
- diff,
18
- dissoc,
19
- do,
20
- drop,
21
- excepts,
22
- filter,
23
- first,
24
- flip,
25
- frequencies,
26
- functoolz,
27
- get,
28
- get_in,
29
- groupby,
30
- identity,
31
- interleave,
32
- interpose,
33
- isdistinct,
34
- isiterable,
35
- itemfilter,
36
- itemmap,
37
- iterate,
38
- itertoolz,
39
- join,
40
- juxt,
41
- keyfilter,
42
- keymap,
43
- last,
44
- map,
45
- mapcat,
46
- memoize,
47
- merge,
48
- merge_sorted,
49
- merge_with,
50
- nth,
51
- partial,
52
- partition,
53
- partition_all,
54
- partitionby,
55
- peek,
56
- pipe,
57
- pluck,
58
- random_sample,
59
- recipes,
60
- reduce,
61
- reduceby,
62
- remove,
63
- second,
64
- sliding_window,
65
- sorted,
66
- tail,
67
- take,
68
- take_nth,
69
- thread_first,
70
- thread_last,
71
- topk,
72
- unique,
73
- update_in,
74
- utils,
75
- valfilter,
76
- valmap,
77
- )
4
+ import cytoolz
5
+ cy = True
78
6
  except ImportError:
79
- from toolz import ( # noqa: F401
80
- accumulate,
81
- assoc,
82
- assoc_in,
83
- comp,
84
- complement,
85
- compose,
86
- concat,
87
- concatv,
88
- cons,
89
- count,
90
- countby,
91
- curried,
92
- curry,
93
- dicttoolz,
94
- diff,
95
- dissoc,
96
- do,
97
- drop,
98
- excepts,
99
- filter,
100
- first,
101
- flip,
102
- frequencies,
103
- functoolz,
104
- get,
105
- get_in,
106
- groupby,
107
- identity,
108
- interleave,
109
- interpose,
110
- isdistinct,
111
- isiterable,
112
- itemfilter,
113
- itemmap,
114
- iterate,
115
- itertoolz,
116
- join,
117
- juxt,
118
- keyfilter,
119
- keymap,
120
- last,
121
- map,
122
- mapcat,
123
- memoize,
124
- merge,
125
- merge_sorted,
126
- merge_with,
127
- nth,
128
- partial,
129
- partition,
130
- partition_all,
131
- partitionby,
132
- peek,
133
- pipe,
134
- pluck,
135
- random_sample,
136
- recipes,
137
- reduce,
138
- reduceby,
139
- remove,
140
- second,
141
- sliding_window,
142
- sorted,
143
- tail,
144
- take,
145
- take_nth,
146
- thread_first,
147
- thread_last,
148
- topk,
149
- unique,
150
- update_in,
151
- utils,
152
- valfilter,
153
- valmap,
154
- )
7
+ import toolz
8
+ cy = False
9
+
10
+
11
+ accumulate: Final = cytoolz.accumulate if cy else toolz.accumulate
12
+ assoc: Final = cytoolz.assoc if cy else toolz.assoc
13
+ assoc_in: Final = cytoolz.assoc_in if cy else toolz.assoc_in
14
+ comp: Final = cytoolz.comp if cy else toolz.comp
15
+ complement: Final = cytoolz.complement if cy else toolz.complement
16
+ compose: Final = cytoolz.compose if cy else toolz.compose
17
+ concat: Final = cytoolz.concat if cy else toolz.concat
18
+ concatv: Final = cytoolz.concatv if cy else toolz.concatv
19
+ cons: Final = cytoolz.cons if cy else toolz.cons
20
+ count: Final = cytoolz.count if cy else toolz.count
21
+ countby: Final = cytoolz.countby if cy else toolz.countby
22
+ curried: Final = cytoolz.curried if cy else toolz.curried
23
+ curry: Final = cytoolz.curry if cy else toolz.curry
24
+ dicttoolz: Final = cytoolz.dicttoolz if cy else toolz.dicttoolz
25
+ diff: Final = cytoolz.diff if cy else toolz.diff
26
+ dissoc: Final = cytoolz.dissoc if cy else toolz.dissoc
27
+ do: Final = cytoolz.do if cy else toolz.do
28
+ drop: Final = cytoolz.drop if cy else toolz.drop
29
+ excepts: Final = cytoolz.excepts if cy else toolz.excepts
30
+ filter: Final = cytoolz.filter if cy else toolz.filter
31
+ first: Final = cytoolz.first if cy else toolz.first
32
+ flip: Final = cytoolz.flip if cy else toolz.flip
33
+ frequencies: Final = cytoolz.frequencies if cy else toolz.frequencies
34
+ functoolz: Final = cytoolz.functoolz if cy else toolz.functoolz
35
+ get: Final = cytoolz.get if cy else toolz.get
36
+ get_in: Final = cytoolz.get_in if cy else toolz.get_in
37
+ groupby: Final = cytoolz.groupby if cy else toolz.groupby
38
+ identity: Final = cytoolz.identity if cy else toolz.identity
39
+ interleave: Final = cytoolz.interleave if cy else toolz.interleave
40
+ interpose: Final = cytoolz.interpose if cy else toolz.interpose
41
+ isdistinct: Final = cytoolz.isdistinct if cy else toolz.isdistinct
42
+ isiterable: Final = cytoolz.isiterable if cy else toolz.isiterable
43
+ itemfilter: Final = cytoolz.itemfilter if cy else toolz.itemfilter
44
+ itemmap: Final = cytoolz.itemmap if cy else toolz.itemmap
45
+ iterate: Final = cytoolz.iterate if cy else toolz.iterate
46
+ itertoolz: Final = cytoolz.itertoolz if cy else toolz.itertoolz
47
+ join: Final = cytoolz.join if cy else toolz.join
48
+ juxt: Final = cytoolz.juxt if cy else toolz.juxt
49
+ keyfilter: Final = cytoolz.keyfilter if cy else toolz.keyfilter
50
+ keymap: Final = cytoolz.keymap if cy else toolz.keymap
51
+ last: Final = cytoolz.last if cy else toolz.last
52
+ map: Final = cytoolz.map if cy else toolz.map
53
+ mapcat: Final = cytoolz.mapcat if cy else toolz.mapcat
54
+ memoize: Final = cytoolz.memoize if cy else toolz.memoize
55
+ merge: Final = cytoolz.merge if cy else toolz.merge
56
+ merge_sorted: Final = cytoolz.merge_sorted if cy else toolz.merge_sorted
57
+ merge_with: Final = cytoolz.merge_with if cy else toolz.merge_with
58
+ nth: Final = cytoolz.nth if cy else toolz.nth
59
+ partial: Final = cytoolz.partial if cy else toolz.partial
60
+ partition: Final = cytoolz.partition if cy else toolz.partition
61
+ partition_all: Final = cytoolz.partition_all if cy else toolz.partition_all
62
+ partitionby: Final = cytoolz.partitionby if cy else toolz.partitionby
63
+ peek: Final = cytoolz.peek if cy else toolz.peek
64
+ pipe: Final = cytoolz.pipe if cy else toolz.pipe
65
+ pluck: Final = cytoolz.pluck if cy else toolz.pluck
66
+ random_sample: Final = cytoolz.random_sample if cy else toolz.random_sample
67
+ recipes: Final = cytoolz.recipes if cy else toolz.recipes
68
+ reduce: Final = cytoolz.reduce if cy else toolz.reduce
69
+ reduceby: Final = cytoolz.reduceby if cy else toolz.reduceby
70
+ remove: Final = cytoolz.remove if cy else toolz.remove
71
+ second: Final = cytoolz.second if cy else toolz.second
72
+ sliding_window: Final = cytoolz.sliding_window if cy else toolz.sliding_window
73
+ sorted: Final = cytoolz.sorted if cy else toolz.sorted
74
+ tail: Final = cytoolz.tail if cy else toolz.tail
75
+ take: Final = cytoolz.take if cy else toolz.take
76
+ take_nth: Final = cytoolz.take_nth if cy else toolz.take_nth
77
+ thread_first: Final = cytoolz.thread_first if cy else toolz.thread_first
78
+ thread_last: Final = cytoolz.thread_last if cy else toolz.thread_last
79
+ topk: Final = cytoolz.topk if cy else toolz.topk
80
+ unique: Final = cytoolz.unique if cy else toolz.unique
81
+ update_in: Final = cytoolz.update_in if cy else toolz.update_in
82
+ utils: Final = cytoolz.utils if cy else toolz.utils
83
+ valfilter: Final = cytoolz.valfilter if cy else toolz.valfilter
84
+ valmap: Final = cytoolz.valmap if cy else toolz.valmap
faster_eth_utils/types.py CHANGED
@@ -2,35 +2,38 @@ import collections.abc
2
2
  import numbers
3
3
  from typing import (
4
4
  Any,
5
- List,
5
+ Final,
6
6
  Literal,
7
- Tuple,
8
- Union,
9
7
  )
10
8
 
11
- from typing_extensions import (
9
+ from typing import (
12
10
  TypeGuard,
13
11
  )
14
12
 
15
- bytes_types = (bytes, bytearray)
16
- integer_types = (int,)
17
- text_types = (str,)
18
- string_types = (bytes, str, bytearray)
13
+ Mapping: Final = collections.abc.Mapping
14
+ Sequence: Final = collections.abc.Sequence
15
+
16
+ Number: Final = numbers.Number
17
+
18
+ bytes_types: Final = (bytes, bytearray)
19
+ integer_types: Final = (int,)
20
+ text_types: Final = (str,)
21
+ string_types: Final = (bytes, str, bytearray)
19
22
 
20
23
 
21
24
  def is_integer(value: Any) -> TypeGuard[int]:
22
- return isinstance(value, integer_types) and not isinstance(value, bool)
25
+ return isinstance(value, int) and not isinstance(value, bool)
23
26
 
24
27
 
25
- def is_bytes(value: Any) -> TypeGuard[Union[bytes, bytearray]]:
28
+ def is_bytes(value: Any) -> TypeGuard[bytes | bytearray]:
26
29
  return isinstance(value, bytes_types)
27
30
 
28
31
 
29
32
  def is_text(value: Any) -> TypeGuard[str]:
30
- return isinstance(value, text_types)
33
+ return isinstance(value, str)
31
34
 
32
35
 
33
- def is_string(value: Any) -> TypeGuard[Union[bytes, str, bytearray]]:
36
+ def is_string(value: Any) -> TypeGuard[bytes | str | bytearray]:
34
37
  return isinstance(value, string_types)
35
38
 
36
39
 
@@ -39,18 +42,18 @@ def is_boolean(value: Any) -> TypeGuard[bool]:
39
42
 
40
43
 
41
44
  def is_dict(obj: Any) -> TypeGuard[collections.abc.Mapping[Any, Any]]:
42
- return isinstance(obj, collections.abc.Mapping)
45
+ return isinstance(obj, dict) or isinstance(obj, Mapping)
43
46
 
44
47
 
45
48
  def is_list_like(obj: Any) -> TypeGuard[collections.abc.Sequence[Any]]:
46
- return not is_string(obj) and isinstance(obj, collections.abc.Sequence)
49
+ return isinstance(obj, (list, tuple)) or not is_string(obj) and isinstance(obj, Sequence)
47
50
 
48
51
 
49
- def is_list(obj: Any) -> TypeGuard[List[Any]]:
52
+ def is_list(obj: Any) -> TypeGuard[list[Any]]:
50
53
  return isinstance(obj, list)
51
54
 
52
55
 
53
- def is_tuple(obj: Any) -> TypeGuard[Tuple[Any, ...]]:
56
+ def is_tuple(obj: Any) -> TypeGuard[tuple[Any, ...]]:
54
57
  return isinstance(obj, tuple)
55
58
 
56
59
 
@@ -59,4 +62,4 @@ def is_null(obj: Any) -> TypeGuard[Literal[None]]:
59
62
 
60
63
 
61
64
  def is_number(obj: Any) -> TypeGuard[numbers.Number]:
62
- return isinstance(obj, numbers.Number)
65
+ return isinstance(obj, Number)
@@ -1,28 +1,36 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: faster-eth-utils
3
- Version: 5.3.2
4
- Summary: A fork of eth-utils: Common utility functions for python code that interacts with Ethereum, implemented in C
5
- Home-page: https://github.com/BobTheBuidler/eth-utils
3
+ Version: 5.3.22
4
+ Summary: A faster fork of eth-utils: Common utility functions for python code that interacts with Ethereum. Implemented in C
5
+ Home-page: https://github.com/BobTheBuidler/faster-eth-utils
6
6
  Author: The Ethereum Foundation
7
7
  Author-email: snakecharmers@ethereum.org
8
8
  License: MIT
9
+ Project-URL: Documentation, https://eth-utils.readthedocs.io/en/stable/
10
+ Project-URL: Release Notes, https://github.com/BobTheBuidler/faster-eth-utils/releases
11
+ Project-URL: Issues, https://github.com/BobTheBuidler/faster-eth-utils/issues
12
+ Project-URL: Source - Precompiled (.py), https://github.com/BobTheBuidler/faster-eth-utils/tree/master/faster_eth_utils
13
+ Project-URL: Source - Compiled (.c), https://github.com/BobTheBuidler/faster-eth-utils/tree/master/build
14
+ Project-URL: Benchmarks, https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks
15
+ Project-URL: Benchmarks - Results, https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks/results
16
+ Project-URL: Original, https://github.com/ethereum/eth-utils
9
17
  Keywords: ethereum
10
18
  Classifier: Intended Audience :: Developers
11
- Classifier: License :: OSI Approved :: MIT License
12
19
  Classifier: Natural Language :: English
13
20
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.8
15
- Classifier: Programming Language :: Python :: 3.9
16
21
  Classifier: Programming Language :: Python :: 3.10
17
22
  Classifier: Programming Language :: Python :: 3.11
18
23
  Classifier: Programming Language :: Python :: 3.12
19
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
20
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
21
- Requires-Python: >=3.8, <4
27
+ Requires-Python: >=3.10, <4
22
28
  Description-Content-Type: text/markdown
23
29
  License-File: LICENSE
30
+ Requires-Dist: cchecksum==0.3.9
24
31
  Requires-Dist: eth-hash>=0.3.1
25
- Requires-Dist: eth-typing>=5.0.0
32
+ Requires-Dist: eth-typing==5.2.1
33
+ Requires-Dist: eth-utils==5.3.1
26
34
  Requires-Dist: toolz>0.8.2; implementation_name == "pypy"
27
35
  Requires-Dist: cytoolz>=0.10.1; implementation_name == "cpython"
28
36
  Requires-Dist: pydantic<3,>=2.0.0
@@ -31,7 +39,7 @@ Requires-Dist: build>=0.9.0; extra == "dev"
31
39
  Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
32
40
  Requires-Dist: eth-hash[pycryptodome]; extra == "dev"
33
41
  Requires-Dist: ipython; extra == "dev"
34
- Requires-Dist: mypy==1.10.0; extra == "dev"
42
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "dev"
35
43
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
36
44
  Requires-Dist: tox>=4.0.0; extra == "dev"
37
45
  Requires-Dist: twine; extra == "dev"
@@ -39,21 +47,31 @@ Requires-Dist: wheel; extra == "dev"
39
47
  Requires-Dist: sphinx>=6.0.0; extra == "dev"
40
48
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
41
49
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
42
- Requires-Dist: towncrier<25,>=24; extra == "dev"
50
+ Requires-Dist: towncrier<26,>=24; extra == "dev"
43
51
  Requires-Dist: hypothesis>=4.43.0; extra == "dev"
44
- Requires-Dist: mypy==1.10.0; extra == "dev"
45
- Requires-Dist: pytest>=7.0.0; extra == "dev"
52
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "dev"
46
53
  Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
54
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
47
55
  Provides-Extra: docs
48
56
  Requires-Dist: sphinx>=6.0.0; extra == "docs"
49
57
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
50
58
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
51
- Requires-Dist: towncrier<25,>=24; extra == "docs"
59
+ Requires-Dist: towncrier<26,>=24; extra == "docs"
52
60
  Provides-Extra: test
53
61
  Requires-Dist: hypothesis>=4.43.0; extra == "test"
54
- Requires-Dist: mypy==1.10.0; extra == "test"
55
- Requires-Dist: pytest>=7.0.0; extra == "test"
62
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "test"
56
63
  Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
64
+ Requires-Dist: pytest>=7.0.0; extra == "test"
65
+ Provides-Extra: codspeed
66
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "codspeed"
67
+ Requires-Dist: pytest-test-groups; extra == "codspeed"
68
+ Requires-Dist: pytest>=7.0.0; extra == "codspeed"
69
+ Provides-Extra: benchmark
70
+ Requires-Dist: eth-utils==5.3.1; extra == "benchmark"
71
+ Requires-Dist: pytest-benchmark<5.3,>=5.2; extra == "benchmark"
72
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "benchmark"
73
+ Requires-Dist: pytest-test-groups; extra == "benchmark"
74
+ Requires-Dist: pytest>=7.0.0; extra == "benchmark"
57
75
  Dynamic: author
58
76
  Dynamic: author-email
59
77
  Dynamic: classifier
@@ -63,6 +81,7 @@ Dynamic: home-page
63
81
  Dynamic: keywords
64
82
  Dynamic: license
65
83
  Dynamic: license-file
84
+ Dynamic: project-url
66
85
  Dynamic: provides-extra
67
86
  Dynamic: requires-dist
68
87
  Dynamic: requires-python
@@ -70,9 +89,19 @@ Dynamic: summary
70
89
 
71
90
  ### I forked eth-utils and compiled it to C. It does the same stuff, now faster
72
91
 
73
- ##### This fork will be kept up-to-date with [eth-utils](https://github.com/ethereum/eth-utils). I will pull updates as they are released and push new faster-eth-utils releases to PyPI.
92
+ [![PyPI](https://img.shields.io/pypi/v/faster-eth-utils.svg?logo=Python&logoColor=white)](https://pypi.org/project/faster-eth-utils)
93
+ [![Monthly Downloads](https://img.shields.io/pypi/dm/faster-eth-utils)](https://pypistats.org/packages/faster-eth-utils)
94
+ [![Codspeed.io Status](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/BobTheBuidler/faster-eth-utils)
95
+
96
+ ##### This fork will be kept up-to-date with [eth-utils](https://github.com/ethereum/eth-utils). I will pull updates as they are released and push new [faster-eth-utils](https://github.com/BobTheBuidler/faster-eth-utils) releases to [PyPI](https://pypi.org/project/faster-eth-utils/).
97
+
98
+ ##### Starting in [v5.3.11](https://github.com/BobTheBuidler/faster-eth-utils/releases/tag/v5.3.11), all `faster-eth-utils` Exception classes inherit from the matching Exception class in `eth-utils`, so porting to `faster-eth-utils` does not require any change to your existing exception handlers. All existing exception handling in your codebase will continue to work as it did when originaly implemented.
99
+
100
+ ##### We benchmark `faster-eth-utils` against the original `eth-utils` for your convenience. [See results](https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks/results).
101
+
102
+ ##### You can find the compiled C code and header files in the [build](https://github.com/BobTheBuidler/eth-utils/tree/master/build) directory.
74
103
 
75
- ##### You can find the compiled C code on faster-eth-utils [master](https://github.com/BobTheBuidler/eth-utils/tree/master) branch
104
+ ###### You may also be interested in: [faster-web3.py](https://github.com/BobTheBuidler/faster-web3.py/), [faster-eth-abi](https://github.com/BobTheBuidler/faster-eth-abi/), and [faster-hexbytes](https://github.com/BobTheBuidler/faster-hexbytes/)
76
105
 
77
106
  ##### The original eth-utils readme is below:
78
107
 
@@ -0,0 +1,53 @@
1
+ faster_eth_utils__mypyc.cpython-312-i386-linux-musl.so,sha256=2B9scEfn0nO9BFBGRiMQ2F3wa4DdoLEgKmAu3NErFI4,1556300
2
+ faster_eth_utils/__init__.py,sha256=hW-A_fjyQ76crTKwuxxSbvNzvPfW27dSlzhtOkseymg,2762
3
+ faster_eth_utils/__main__.py,sha256=mH37e49q7_A0-q1ymqkq1QyYABbQHVmXeuSKIBSahO8,86
4
+ faster_eth_utils/abi.cpython-312-i386-linux-musl.so,sha256=43-pfaXoqQpp8VXGXV2MpZG4JvycqHfOKRpeT-N4vfk,16700
5
+ faster_eth_utils/abi.py,sha256=3y0USCQ_HhRCCPP5GEe8vrw4V6fcaIfm2yZR0C3KDLY,27021
6
+ faster_eth_utils/address.cpython-312-i386-linux-musl.so,sha256=fWUcbGgceoFLyvK5WUIDoLqpX0hLP0TXtYswgtG3DuA,16716
7
+ faster_eth_utils/address.py,sha256=iFtnchlDMwFjvvStfxzPuf_Y104ecGLArOzuH5KV8U8,3572
8
+ faster_eth_utils/applicators.cpython-312-i386-linux-musl.so,sha256=yQWrsBzUdDMGrooupblYzjnN69hYEPAnPUWBjJgyJu0,16732
9
+ faster_eth_utils/applicators.py,sha256=WTbBiD1GqEdnUKYCCuqMOpQgcv_xr0pqO8JsbErs-uA,5844
10
+ faster_eth_utils/conversions.cpython-312-i386-linux-musl.so,sha256=T1Kte9lAg4Sqyj3D7EYH82K8UBmSysDdw_njJOtDzss,16732
11
+ faster_eth_utils/conversions.py,sha256=JT2MrUhRkHitwmdk90vYohNcFJBE6FBpYe2EyL-hHIk,5570
12
+ faster_eth_utils/crypto.cpython-312-i386-linux-musl.so,sha256=MI1q18FrOmugXCtXBY1Y5gdQWKSChTA2SDwSc9_VbR0,16708
13
+ faster_eth_utils/crypto.py,sha256=XTLxW0M1dPYRcbEzdBs0HsDmLtq6DWi9EhW0wiiuOfg,332
14
+ faster_eth_utils/currency.cpython-312-i386-linux-musl.so,sha256=cQlpm50jHESvGxU_XOqW6ktr1wTka7SelsuItcUqr74,16716
15
+ faster_eth_utils/currency.py,sha256=3Fo86byOoB_LHVyQx-sBvGWWLTGRw3ZRMNkhUBGCbkw,4207
16
+ faster_eth_utils/debug.cpython-312-i386-linux-musl.so,sha256=GlsSepP6b0TvMeAhBTUAzwgMe3_SErSYX5yxOy3K3jU,16708
17
+ faster_eth_utils/debug.py,sha256=0Z-tNOqgQJunS4uHeSCCH1LWLoijlH34MBh6NRrrDrk,499
18
+ faster_eth_utils/decorators.cpython-312-i386-linux-musl.so,sha256=ti9drzq8BGHKawyB6ck4jK0NRJ6Fc2kzTHrP6eG1FNg,16724
19
+ faster_eth_utils/decorators.py,sha256=2OhR0LMuUwuXtKebONbC-chpHi-myjX98MF3nReNIiE,3194
20
+ faster_eth_utils/encoding.cpython-312-i386-linux-musl.so,sha256=c9gGuXm18RpRjA2b9uCq-rCsPWvjA6o_9c0K7XlezFg,16716
21
+ faster_eth_utils/encoding.py,sha256=U_eV_sF4NrJUP8Azj0JB6IEH_p926YzrgOONGJ6-vr0,211
22
+ faster_eth_utils/exceptions.cpython-312-i386-linux-musl.so,sha256=7P1e0o5_Sf0CjIxm5GJ90rk_TLy393cBiidnxQbTLaQ,16724
23
+ faster_eth_utils/exceptions.py,sha256=mOS-AZzx7m84AgpZdnvXa5mFY-5mMP1MOPAlbbhxvHI,391
24
+ faster_eth_utils/functional.cpython-312-i386-linux-musl.so,sha256=mdeCslLLGCQS2mIcSafCTkHkZmc7OZkGgEWFBEkKi1E,16724
25
+ faster_eth_utils/functional.py,sha256=WkPEFM3SAFdfOJtqDJG3EvKtrAMwI2qw-m8dtgzee9Q,2458
26
+ faster_eth_utils/hexadecimal.cpython-312-i386-linux-musl.so,sha256=IqbZ64TKKqa9-p29Yo011VjaOMnUxgvnuXr-RNEHSL4,16732
27
+ faster_eth_utils/hexadecimal.py,sha256=aMS-MU_C-SXAAsKdt8ciFrGA1N4WIyZHK04Hzh738iE,2058
28
+ faster_eth_utils/humanize.cpython-312-i386-linux-musl.so,sha256=B7xN4EitHTnXBpz2cSiXoMW8BtCltruSsUmKH9VQQ_E,16716
29
+ faster_eth_utils/humanize.py,sha256=RQiJ2IBeRbyVK942-Q7w9zy2bKVvBkvpCjM9NtMdMwA,4703
30
+ faster_eth_utils/logging.py,sha256=BDfmXJg4Wucb5lASCApxWKVSsVvO6SZMz1N3jys4t9k,4758
31
+ faster_eth_utils/module_loading.cpython-312-i386-linux-musl.so,sha256=nyJLM2nIRMHjOyX4Xbrad6YCmjw3nGpqivRLHWOn3W8,16740
32
+ faster_eth_utils/module_loading.py,sha256=DCLM4dEh1gqr8Ny-FWwD-_pINqeHzbLSupz4ZIpCCAw,842
33
+ faster_eth_utils/network.cpython-312-i386-linux-musl.so,sha256=FncniFN6iZ6nUEz8Nzi6uv1cflYqFxqXsDBl-hD9Tws,16716
34
+ faster_eth_utils/network.py,sha256=hNNjuHyk--R3IZc18sg5CkDhfb_4EVGTp2ol897EPes,2279
35
+ faster_eth_utils/numeric.cpython-312-i386-linux-musl.so,sha256=uHjwPPi13x8hCRPG0ty1J-DcOF_pwISuspJp5iMEbSY,16716
36
+ faster_eth_utils/numeric.py,sha256=RrXdXI-bhhkEsz3aBtxHuGlc_2ZJvUGpvMc47wx408Y,1190
37
+ faster_eth_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ faster_eth_utils/pydantic.py,sha256=uAm57nCoaCt7-MO_50Df1iGwIKXqrkelGupWPX0AnTU,3516
39
+ faster_eth_utils/toolz.cpython-312-i386-linux-musl.so,sha256=hUV37RxqhOKRQvAYU2JVopJEoXEP1vGvqZTVdWwFseY,16708
40
+ faster_eth_utils/toolz.py,sha256=1QQY-aMbZrEgJsuqR0Ajsa32C_cXrQquzViw7OkxNLU,4410
41
+ faster_eth_utils/types.cpython-312-i386-linux-musl.so,sha256=7Wg0zAIZnn6ohqtB3pcYREg7rutZgOUoiJo3sQLrHUo,16708
42
+ faster_eth_utils/types.py,sha256=4NDkKDAqYrVTeWMCfzMr061qK58Hj06xspsDfrHFL64,1524
43
+ faster_eth_utils/units.cpython-312-i386-linux-musl.so,sha256=6Ch9dusg4dB_2MsEnLUurbA7DtegAnxzyZWWlLjA6C0,16708
44
+ faster_eth_utils/units.py,sha256=jRo8p6trxwuISBnT8kfxTNVyd_TSd5vVY5aiKDefB1U,1757
45
+ faster_eth_utils/__json/eth_networks.json,sha256=0S8HoWD6RTR6Hc0uQdQl2VHtopytIYl5NiDAzpuskBs,414773
46
+ faster_eth_utils/curried/__init__.py,sha256=EGV4ClNphP0MlsP5Ag0mw4G5vBBli_2dKrOzcLMjWJ0,7805
47
+ faster_eth_utils/typing/__init__.py,sha256=84PxIxCvEHtBb-Ik6qnGvXH4alaWbamr_zDbtlbJh3A,325
48
+ faster_eth_utils/typing/misc.py,sha256=4N5raYXFAeRGpmch6qgHrtYNCDxCJM5XtAAsJ1FSzzU,190
49
+ faster_eth_utils-5.3.22.dist-info/METADATA,sha256=s16H_pCIB5dTjSrmIYIssYq-zVBD5Te3TMOZgMw79P8,8906
50
+ faster_eth_utils-5.3.22.dist-info/WHEEL,sha256=Vuwis_LWaa45QUuJ2qqSgABfO0elv3qQohyjTF3DnPc,110
51
+ faster_eth_utils-5.3.22.dist-info/top_level.txt,sha256=wTH6UCItCCvEEiJ9EiOrm0Kn4p4xhB7VdmmTHktoo9Y,51
52
+ faster_eth_utils-5.3.22.dist-info/RECORD,,
53
+ faster_eth_utils-5.3.22.dist-info/licenses/LICENSE,sha256=STqznQ6A8OeJylPrTA7dlsMtH0isQQybRlnDZOKGVrM,1095
@@ -0,0 +1,3 @@
1
+ eth_utils
2
+ faster_eth_utils
3
+ faster_eth_utils__mypyc
@@ -1,47 +0,0 @@
1
- bce0bfc64ce5e845ec4a__mypyc.cpython-312-i386-linux-musl.so,sha256=8zytAg6VylUqWcviuL4xBO0cyLDsOwl7ChfGXsggN5w,975532
2
- faster_eth_utils/__init__.py,sha256=hW-A_fjyQ76crTKwuxxSbvNzvPfW27dSlzhtOkseymg,2762
3
- faster_eth_utils/__main__.py,sha256=mH37e49q7_A0-q1ymqkq1QyYABbQHVmXeuSKIBSahO8,86
4
- faster_eth_utils/abi.cpython-312-i386-linux-musl.so,sha256=Ueetv8rEOdWb-r_nGqfRYqDz_i7-Gzt_pt0ExpoS5EA,16700
5
- faster_eth_utils/abi.py,sha256=KFepD4WayZdQBO6BIqPQOhTmx2FpEemUgtEZGQcgZhw,26575
6
- faster_eth_utils/address.cpython-312-i386-linux-musl.so,sha256=IjwgBN68hTdgtGK_ZYALnkdjun_Kn47RC8wYNjAKRpU,16716
7
- faster_eth_utils/address.py,sha256=UeecWb0AsQbMsulznjeEZjd_6Kme0ggm01nrNkTsMBo,4150
8
- faster_eth_utils/applicators.py,sha256=7YkTV70fO2ttTItnQILFyMZV2mC10s_I4gkmT-nv0b8,5166
9
- faster_eth_utils/conversions.cpython-312-i386-linux-musl.so,sha256=FebGi91srl2NeCTJjeoR-FoIoZ8B5dUKa_VPS-nNuyY,16732
10
- faster_eth_utils/conversions.py,sha256=t2TEe0WsffqOFDbyQcERTSbHJYpDBWHKd8XPArhLoEE,5665
11
- faster_eth_utils/crypto.py,sha256=EQgupom_TnURbLNXodwbJoKB-mHyxgOTvo8EjnSzdxw,395
12
- faster_eth_utils/currency.cpython-312-i386-linux-musl.so,sha256=FpzfINqhqxKBffITEO_RYwoiDYBzw4YCjcMcKB52L7Q,16716
13
- faster_eth_utils/currency.py,sha256=01YVV2f2GL4830jfSjnC4XhLQjTNQB-5y7vbGzaMWbM,4150
14
- faster_eth_utils/debug.cpython-312-i386-linux-musl.so,sha256=C8aje8Q1AznNYosnaOA_e1bqjSW_-9pX3qQCdcPOvM0,16708
15
- faster_eth_utils/debug.py,sha256=0Z-tNOqgQJunS4uHeSCCH1LWLoijlH34MBh6NRrrDrk,499
16
- faster_eth_utils/decorators.cpython-312-i386-linux-musl.so,sha256=huEhv0yv846LurSePyAA3OhMurgBkNZUuc4ykVR3LPs,16724
17
- faster_eth_utils/decorators.py,sha256=BdAz-imQIf0TlBm7Di7T05o3IC6ei-xJc7FgIOqqAyE,2145
18
- faster_eth_utils/encoding.cpython-312-i386-linux-musl.so,sha256=3UYvLKAIDfvqws5C6j400keKpB4eyT82z32P_72blP0,16716
19
- faster_eth_utils/encoding.py,sha256=1qfDeuinLZ01XjYgknpm_p9LuWwaYvicYkYI8mS1iMc,199
20
- faster_eth_utils/exceptions.cpython-312-i386-linux-musl.so,sha256=v5u_aEVa2g8RcRTEJ8ZZ6G80FXaS1pwVDZIHwwmPrDg,16724
21
- faster_eth_utils/exceptions.py,sha256=3ndM6zl4QoSc6GupV9T1Klz9TByM8w2zr4ez8UJvzew,110
22
- faster_eth_utils/functional.py,sha256=9EHqNRv39Cu9oH5m6j5YoRiKMZZrlBXJdMSJ6jvPwhM,2100
23
- faster_eth_utils/hexadecimal.cpython-312-i386-linux-musl.so,sha256=nM_y4g1CnDh68pghSJRyk2yA446byCZpTZ6PRXMRkvE,16732
24
- faster_eth_utils/hexadecimal.py,sha256=bPxUdJse6A3j3vF6KpnvSM2h3eRhgWSWeyicwnLdvHY,2082
25
- faster_eth_utils/humanize.cpython-312-i386-linux-musl.so,sha256=ndkVG5Qi2g9sGIimZ6_reaA5tRVAG__5RrMvL-Gxci0,16716
26
- faster_eth_utils/humanize.py,sha256=phQF6T9L4NKMF-Zcdbfl2aoXl4bmebPxcp9tNCf55xo,4736
27
- faster_eth_utils/logging.py,sha256=Gm0B2D7oDPByi-mNCEwLnl3lAU4_TJ4yc6EsOOJA8Rc,4590
28
- faster_eth_utils/module_loading.cpython-312-i386-linux-musl.so,sha256=sgRnO7g8sjAWyt5Q5lL5xMM4kGs0VeIqiOW5uy1OFeU,16740
29
- faster_eth_utils/module_loading.py,sha256=DCLM4dEh1gqr8Ny-FWwD-_pINqeHzbLSupz4ZIpCCAw,842
30
- faster_eth_utils/network.py,sha256=dZmOPNpwItBf9Wh1UhtVeRz5HTgOVV8uEroDIoCpXkM,2103
31
- faster_eth_utils/numeric.py,sha256=RrXdXI-bhhkEsz3aBtxHuGlc_2ZJvUGpvMc47wx408Y,1190
32
- faster_eth_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- faster_eth_utils/pydantic.py,sha256=Bmj9J-Nia0bv5PvaFxxncyW9KrCNtsbDyf2PV4jPmUo,3366
34
- faster_eth_utils/toolz.py,sha256=MmLq2JOaKUP_n1dz2tuWPyX5YUhWlUtSSbAK8nqt9dg,2617
35
- faster_eth_utils/types.cpython-312-i386-linux-musl.so,sha256=O1nDEfmUTBewKYHgg3Rm_FUN1sRbghmZxGQ0fcHt4g8,16708
36
- faster_eth_utils/types.py,sha256=KV36wljucdIz9AMK9R9x26nUdhuZQEH6YaikcVpPPXs,1420
37
- faster_eth_utils/units.cpython-312-i386-linux-musl.so,sha256=oKfdddmB1FgNdm9sQzxdHXJEL53lkcRfj4Mjq5PqpdA,16708
38
- faster_eth_utils/units.py,sha256=jRo8p6trxwuISBnT8kfxTNVyd_TSd5vVY5aiKDefB1U,1757
39
- faster_eth_utils/__json/eth_networks.json,sha256=0S8HoWD6RTR6Hc0uQdQl2VHtopytIYl5NiDAzpuskBs,414773
40
- faster_eth_utils/curried/__init__.py,sha256=m2EFGuJrU6AmyD71szdkXpnom7i_Kex54CUlQv91s5c,7294
41
- faster_eth_utils/typing/__init__.py,sha256=84PxIxCvEHtBb-Ik6qnGvXH4alaWbamr_zDbtlbJh3A,325
42
- faster_eth_utils/typing/misc.py,sha256=4N5raYXFAeRGpmch6qgHrtYNCDxCJM5XtAAsJ1FSzzU,190
43
- faster_eth_utils-5.3.2.dist-info/METADATA,sha256=bZccCCZwOcHBrxuGypAa1-V7VEoFk9YhPx2AX8EHFoo,6265
44
- faster_eth_utils-5.3.2.dist-info/WHEEL,sha256=Vuwis_LWaa45QUuJ2qqSgABfO0elv3qQohyjTF3DnPc,110
45
- faster_eth_utils-5.3.2.dist-info/top_level.txt,sha256=S_L8kl6dn2pcMugOg8hAVuhGnjjvDtXZJ1XwOxuvRbw,55
46
- faster_eth_utils-5.3.2.dist-info/RECORD,,
47
- faster_eth_utils-5.3.2.dist-info/licenses/LICENSE,sha256=STqznQ6A8OeJylPrTA7dlsMtH0isQQybRlnDZOKGVrM,1095
@@ -1,3 +0,0 @@
1
- bce0bfc64ce5e845ec4a__mypyc
2
- eth_utils
3
- faster_eth_utils