Skip to content

Commit

Permalink
clear unused casts, clear B008 ignore where possible
Browse files Browse the repository at this point in the history
  • Loading branch information
pacrob committed Mar 27, 2024
1 parent 12d3043 commit c9d5284
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 62 deletions.
9 changes: 5 additions & 4 deletions ens/async_ens.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# flake8: noqa: B008
from copy import (
deepcopy,
)
Expand Down Expand Up @@ -99,7 +98,7 @@ class AsyncENS(BaseENS):

def __init__(
self,
provider: "AsyncBaseProvider" = cast("AsyncBaseProvider", default),
provider: "AsyncBaseProvider" = None,
addr: ChecksumAddress = None,
middleware: Optional[Sequence[Tuple["Middleware", str]]] = None,
) -> None:
Expand All @@ -109,6 +108,7 @@ def __init__(
:param hex-string addr: the address of the ENS registry on-chain.
If not provided, ENS.py will default to the mainnet ENS registry address.
"""
provider = provider or cast("AsyncBaseProvider", default)
self.w3 = init_async_web3(provider, middleware)

ens_addr = addr if addr else ENS_MAINNET_ADDR
Expand Down Expand Up @@ -168,7 +168,7 @@ async def address(
async def setup_address(
self,
name: str,
address: Union[Address, ChecksumAddress, HexAddress] = cast(
address: Union[Address, ChecksumAddress, HexAddress] = cast( # noqa: B008
ChecksumAddress, default
),
coin_type: Optional[int] = None,
Expand Down Expand Up @@ -306,7 +306,7 @@ async def owner(self, name: str) -> ChecksumAddress:
async def setup_owner(
self,
name: str,
new_owner: ChecksumAddress = cast(ChecksumAddress, default),
new_owner: ChecksumAddress = None,
transact: Optional["TxParams"] = None,
) -> Optional[ChecksumAddress]:
"""
Expand All @@ -333,6 +333,7 @@ async def setup_owner(
:raises UnauthorizedError: if ``'from'`` in `transact` does not own `name`
:returns: the new owner's address
"""
new_owner = new_owner or cast(ChecksumAddress, default)
if not transact:
transact = {}
transact = deepcopy(transact)
Expand Down
15 changes: 7 additions & 8 deletions ens/ens.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# flake8: noqa: B008
from copy import (
deepcopy,
)
Expand Down Expand Up @@ -98,7 +97,7 @@ class ENS(BaseENS):

def __init__(
self,
provider: "BaseProvider" = cast("BaseProvider", default),
provider: "BaseProvider" = None,
addr: ChecksumAddress = None,
middleware: Optional[Sequence[Tuple["Middleware", str]]] = None,
) -> None:
Expand All @@ -109,6 +108,7 @@ def __init__(
If not provided, ENS.py will default to the mainnet ENS
registry address.
"""
provider = provider or cast("BaseProvider", default)
self.w3 = init_web3(provider, middleware)

ens_addr = addr if addr else ENS_MAINNET_ADDR
Expand Down Expand Up @@ -171,7 +171,7 @@ def address(
def setup_address(
self,
name: str,
address: Union[Address, ChecksumAddress, HexAddress] = cast(
address: Union[Address, ChecksumAddress, HexAddress] = cast( # noqa: B008
ChecksumAddress, default
),
coin_type: Optional[int] = None,
Expand Down Expand Up @@ -308,7 +308,7 @@ def owner(self, name: str) -> ChecksumAddress:
def setup_owner(
self,
name: str,
new_owner: ChecksumAddress = cast(ChecksumAddress, default),
new_owner: ChecksumAddress = None,
transact: Optional["TxParams"] = None,
) -> Optional[ChecksumAddress]:
"""
Expand All @@ -335,6 +335,7 @@ def setup_owner(
:raises UnauthorizedError: if ``'from'`` in `transact` does not own `name`
:returns: the new owner's address
"""
new_owner = new_owner or cast(ChecksumAddress, default)
if not transact:
transact = {}

Expand Down Expand Up @@ -389,7 +390,7 @@ def get_text(self, name: str, key: str) -> str:

r = self.resolver(name)
_validate_resolver_and_interface_id(name, r, ENS_TEXT_INTERFACE_ID, "text")
return cast(str, r.caller.text(node, key))
return r.caller.text(node, key)

def set_text(
self,
Expand Down Expand Up @@ -560,9 +561,7 @@ def _setup_reverse(

def _reverse_registrar(self) -> "Contract":
addr = self.ens.caller.owner(normal_name_to_hash(REVERSE_REGISTRAR_DOMAIN))
return cast(
"Contract", self.w3.eth.contract(address=addr, abi=abis.REVERSE_REGISTRAR)
)
return self.w3.eth.contract(address=addr, abi=abis.REVERSE_REGISTRAR)

def _set_property(
self,
Expand Down
7 changes: 4 additions & 3 deletions ens/utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# flake8: noqa: B008
from datetime import (
datetime,
timezone,
Expand Down Expand Up @@ -78,7 +77,7 @@ def Web3() -> Type["_Web3"]:


def init_web3(
provider: "BaseProvider" = cast("BaseProvider", default),
provider: "BaseProvider" = None,
middleware: Optional[Sequence[Tuple["Middleware", str]]] = None,
) -> "_Web3":
from web3 import (
Expand All @@ -88,6 +87,7 @@ def init_web3(
Eth as EthMain,
)

provider = provider or cast("BaseProvider", default)
if provider is default:
w3 = Web3Main(ens=None, modules={"eth": (EthMain)})
else:
Expand Down Expand Up @@ -301,7 +301,7 @@ def get_abi_output_types(abi: "ABIFunction") -> List[str]:


def init_async_web3(
provider: "AsyncBaseProvider" = cast("AsyncBaseProvider", default),
provider: "AsyncBaseProvider" = None,
middleware: Optional[Sequence[Tuple["Middleware", str]]] = (),
) -> "AsyncWeb3":
from web3 import (
Expand All @@ -314,6 +314,7 @@ def init_async_web3(
StalecheckMiddlewareBuilder,
)

provider = provider or cast("AsyncBaseProvider", default)
middleware = list(middleware)
for i, (_mw, name) in enumerate(middleware):
if name == "ens_name_to_address":
Expand Down
2 changes: 1 addition & 1 deletion newsfragments/3293.bugfix.rst
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Fix ``process_log`` for ``HexStr`` inputs. Explicit type coercion of entry ``topics`` and ``data`` values.
Fix ``process_log`` for ``HexStr`` inputs. Explicit type coercion of entry ``topics`` and ``data`` values.
2 changes: 1 addition & 1 deletion web3/_utils/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def wrapper(*args: Any, **kwargs: Any) -> Callable[..., Any]:
category=DeprecationWarning,
stacklevel=2,
)
return cast(Callable[..., Any], to_wrap(*args, **kwargs))
return to_wrap(*args, **kwargs)

return cast(TFunc, wrapper)

Expand Down
18 changes: 7 additions & 11 deletions web3/_utils/formatters.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
Iterable,
Tuple,
TypeVar,
cast,
)

from eth_typing import (
Expand Down Expand Up @@ -47,14 +46,11 @@ def hex_to_integer(value: HexStr) -> int:
def apply_formatters_to_args(
*formatters: Callable[[TValue], TReturn]
) -> Callable[..., TReturn]:
return cast(
Callable[..., TReturn],
compose(
*(
apply_formatter_at_index(formatter, index)
for index, formatter in enumerate(formatters)
)
),
return compose(
*(
apply_formatter_at_index(formatter, index)
for index, formatter in enumerate(formatters)
)
)


Expand Down Expand Up @@ -83,7 +79,7 @@ def recursive_map(func: Callable[..., TReturn], data: Any) -> TReturn:
"""

def recurse(item: Any) -> TReturn:
return cast(TReturn, recursive_map(func, item))
return recursive_map(func, item)

items_mapped = map_collection(recurse, data)
return func(items_mapped)
Expand Down Expand Up @@ -132,6 +128,6 @@ def remove_key_if(
key: Any, remove_if: Callable[[Dict[Any, Any]], bool], input_dict: Dict[Any, Any]
) -> Dict[Any, Any]:
if key in input_dict and remove_if(input_dict):
return cast(Dict[Any, Any], dissoc(input_dict, key))
return dissoc(input_dict, key)
else:
return input_dict
15 changes: 6 additions & 9 deletions web3/_utils/module_testing/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,12 +160,11 @@ def _mock_request_handler(
# If the original make_request was decorated, we need to re-apply
# the decorator to the mocked make_request. This is necessary for
# the request caching decorator to work properly.
return cast(
"RPCResponse",
decorator(lambda *_: mocked_response)(self.w3.provider, method, params),
return decorator(lambda *_: mocked_response)(
self.w3.provider, method, params
)
else:
return cast("RPCResponse", mocked_response)
return mocked_response

# -- async -- #
async def __aenter__(self) -> "Self":
Expand Down Expand Up @@ -246,13 +245,11 @@ async def _async_mock_request_handler(
async def _coro(
_provider: Any, _method: "RPCEndpoint", _params: Any
) -> "RPCResponse":
return cast("RPCResponse", mocked_result)
return mocked_result

return cast(
"RPCResponse", await decorator(_coro)(self.w3.provider, method, params)
)
return await decorator(_coro)(self.w3.provider, method, params)
else:
return cast("RPCResponse", mocked_result)
return mocked_result

@staticmethod
def _create_error_object(error: Dict[str, Any]) -> Dict[str, Any]:
Expand Down
4 changes: 2 additions & 2 deletions web3/datastructures.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ def replace(self, old: TKey, new: TKey) -> TValue:
self._replace_with_new_name(old, new)
else:
self._queue[old_name] = new
return cast(TValue, to_be_replaced)
return to_be_replaced

def _repr_if_not_hashable(self, value: TKey) -> TKey:
try:
Expand Down Expand Up @@ -291,7 +291,7 @@ def __contains__(self, element: Any) -> bool:

def __getitem__(self, element: TKey) -> TValue:
element_name = self._repr_if_not_hashable(element)
return cast(TValue, self._queue[element_name])
return self._queue[element_name]

def __len__(self) -> int:
return len(self._queue)
Expand Down
2 changes: 1 addition & 1 deletion web3/gas_strategies/time_based.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def _get_avg_block_time(w3: Web3, sample_size: int) -> float:
raise Web3ValidationError("Constrained sample size is 0")

oldest = w3.eth.get_block(BlockNumber(latest["number"] - constrained_sample_size))
return float((latest["timestamp"] - oldest["timestamp"]) / constrained_sample_size)
return (latest["timestamp"] - oldest["timestamp"]) / constrained_sample_size


def _get_weighted_avg_block_time(w3: Web3, sample_size: int) -> float:
Expand Down
24 changes: 12 additions & 12 deletions web3/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,14 +198,14 @@ def middleware_onion(self) -> MiddlewareOnion:
def to_bytes(
primitive: Primitives = None, hexstr: HexStr = None, text: str = None
) -> bytes:
return cast(bytes, to_bytes(primitive, hexstr, text))
return to_bytes(primitive, hexstr, text)

@staticmethod
@wraps(to_int)
def to_int(
primitive: Primitives = None, hexstr: HexStr = None, text: str = None
) -> int:
return cast(int, to_int(primitive, hexstr, text))
return to_int(primitive, hexstr, text)

@staticmethod
@wraps(to_hex)
Expand All @@ -219,7 +219,7 @@ def to_hex(
def to_text(
primitive: Primitives = None, hexstr: HexStr = None, text: str = None
) -> str:
return cast(str, to_text(primitive, hexstr, text))
return to_text(primitive, hexstr, text)

@staticmethod
@wraps(to_json)
Expand All @@ -235,18 +235,18 @@ def to_wei(number: Union[int, float, str, decimal.Decimal], unit: str) -> Wei:
@staticmethod
@wraps(from_wei)
def from_wei(number: int, unit: str) -> Union[int, decimal.Decimal]:
return cast(Union[int, decimal.Decimal], from_wei(number, unit))
return from_wei(number, unit)

# Address Utility
@staticmethod
@wraps(is_address)
def is_address(value: Any) -> bool:
return cast(bool, is_address(value))
return is_address(value)

@staticmethod
@wraps(is_checksum_address)
def is_checksum_address(value: Any) -> bool:
return cast(bool, is_checksum_address(value))
return is_checksum_address(value)

@staticmethod
@wraps(to_checksum_address)
Expand Down Expand Up @@ -281,7 +281,7 @@ def keccak(
) -> bytes:
if isinstance(primitive, (bytes, int, type(None))):
input_bytes = to_bytes(primitive, hexstr=hexstr, text=text)
return cast(bytes, eth_utils_keccak(input_bytes))
return eth_utils_keccak(input_bytes)

raise TypeError(
f"You called keccak with first arg {primitive!r} and keywords "
Expand All @@ -294,7 +294,7 @@ def keccak(
def normalize_values(
cls, w3: "BaseWeb3", abi_types: List[TypeStr], values: List[Any]
) -> List[Any]:
return cast(List[Any], map_abi_data([abi_ens_resolver(w3)], abi_types, values))
return map_abi_data([abi_ens_resolver(w3)], abi_types, values)

@combomethod
def solidity_keccak(cls, abi_types: List[TypeStr], values: List[Any]) -> bytes:
Expand Down Expand Up @@ -323,7 +323,7 @@ def solidity_keccak(cls, abi_types: List[TypeStr], values: List[Any]) -> bytes:
)
)
)
return cast(bytes, cls.keccak(hexstr=hex_string))
return cls.keccak(hexstr=hex_string)

def attach_modules(
self, modules: Optional[Dict[str, Union[Type[Module], Sequence[Any]]]]
Expand All @@ -334,7 +334,7 @@ def attach_modules(
_attach_modules(self, modules)

def is_encodable(self, _type: TypeStr, value: Any) -> bool:
return cast(bool, self.codec.is_encodable(_type, value))
return self.codec.is_encodable(_type, value)


class Web3(BaseWeb3):
Expand Down Expand Up @@ -385,7 +385,7 @@ def provider(self, provider: BaseProvider) -> None:

@property
def client_version(self) -> str:
return cast(str, self.manager.request_blocking(RPC.web3_clientVersion, []))
return self.manager.request_blocking(RPC.web3_clientVersion, [])

@property
def ens(self) -> Union[ENS, "Empty"]:
Expand Down Expand Up @@ -452,7 +452,7 @@ def provider(self, provider: AsyncBaseProvider) -> None:

@property
async def client_version(self) -> str:
return cast(str, await self.manager.coro_request(RPC.web3_clientVersion, []))
return await self.manager.coro_request(RPC.web3_clientVersion, [])

@property
def ens(self) -> Union[AsyncENS, "Empty"]:
Expand Down

0 comments on commit c9d5284

Please sign in to comment.