Skip to content

Commit 10edeb1

Browse files
authored
Add Black linting to web3/providers (#2522)
* Run black against web3/providers * Add newsfragment
1 parent f869679 commit 10edeb1

File tree

13 files changed

+457
-458
lines changed

13 files changed

+457
-458
lines changed

newsfragments/2522.misc.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add Black linting to ``web3/providers`` directory

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ basepython=python
6464
extras=linter
6565
commands=
6666
flake8 {toxinidir}/web3 {toxinidir}/ens {toxinidir}/ethpm {toxinidir}/tests --exclude {toxinidir}/ethpm/ethpm-spec
67-
black {toxinidir}/ethpm {toxinidir}/web3/auto {toxinidir}/web3/utils {toxinidir}/web3/_utils {toxinidir}/web3/beacon {toxinidir}/web3/gas_strategies {toxinidir}/web3/scripts --exclude {toxinidir}/ethpm/ethpm-spec --check
67+
black {toxinidir}/ethpm {toxinidir}/web3/auto {toxinidir}/web3/utils {toxinidir}/web3/_utils {toxinidir}/web3/beacon {toxinidir}/web3/gas_strategies {toxinidir}/web3/scripts {toxinidir}/web3/providers --exclude {toxinidir}/ethpm/ethpm-spec --check
6868
isort --recursive --check-only --diff {toxinidir}/web3/ {toxinidir}/ens/ {toxinidir}/ethpm/ {toxinidir}/tests/
6969
mypy -p web3 -p ethpm -p ens --config-file {toxinidir}/mypy.ini
7070

web3/providers/async_base.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,26 @@
3434
class AsyncBaseProvider:
3535
_middlewares: Tuple[Middleware, ...] = ()
3636
# a tuple of (all_middlewares, request_func)
37-
_request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (None, None)
37+
_request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (
38+
None,
39+
None,
40+
)
3841

3942
global_ccip_read_enabled: bool = True
4043
ccip_read_max_redirects: int = 4
4144

4245
def __init__(self) -> None:
4346
warnings.warn(
4447
"Async providers are still being developed and refined. "
45-
"Expect breaking changes in minor releases.")
48+
"Expect breaking changes in minor releases."
49+
)
4650

4751
@property
4852
def middlewares(self) -> Tuple[Middleware, ...]:
4953
return self._middlewares
5054

5155
@middlewares.setter
52-
def middlewares(
53-
self, values: MiddlewareOnion
54-
) -> None:
56+
def middlewares(self, values: MiddlewareOnion) -> None:
5557
# tuple(values) converts to MiddlewareOnion -> Tuple[Middleware, ...]
5658
self._middlewares = tuple(values) # type: ignore
5759

@@ -64,7 +66,7 @@ async def request_func(
6466
if cache_key is None or cache_key != all_middlewares:
6567
self._request_func_cache = (
6668
all_middlewares,
67-
await self._generate_request_func(w3, all_middlewares)
69+
await self._generate_request_func(w3, all_middlewares),
6870
)
6971
return self._request_func_cache[-1]
7072

@@ -104,11 +106,11 @@ def decode_rpc_response(self, raw_response: bytes) -> RPCResponse:
104106

105107
async def isConnected(self) -> bool:
106108
try:
107-
response = await self.make_request(RPCEndpoint('web3_clientVersion'), [])
109+
response = await self.make_request(RPCEndpoint("web3_clientVersion"), [])
108110
except OSError:
109111
return False
110112

111-
assert response['jsonrpc'] == '2.0'
112-
assert 'error' not in response
113+
assert response["jsonrpc"] == "2.0"
114+
assert "error" not in response
113115

114116
return True

web3/providers/async_rpc.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ class AsyncHTTPProvider(AsyncJSONBaseProvider):
4242
_request_kwargs = None
4343

4444
def __init__(
45-
self, endpoint_uri: Optional[Union[URI, str]] = None,
46-
request_kwargs: Optional[Any] = None
45+
self,
46+
endpoint_uri: Optional[Union[URI, str]] = None,
47+
request_kwargs: Optional[Any] = None,
4748
) -> None:
4849
if endpoint_uri is None:
4950
self.endpoint_uri = get_default_http_endpoint()
@@ -62,26 +63,28 @@ def __str__(self) -> str:
6263

6364
@to_dict
6465
def get_request_kwargs(self) -> Iterable[Tuple[str, Any]]:
65-
if 'headers' not in self._request_kwargs:
66-
yield 'headers', self.get_request_headers()
66+
if "headers" not in self._request_kwargs:
67+
yield "headers", self.get_request_headers()
6768
for key, value in self._request_kwargs.items():
6869
yield key, value
6970

7071
def get_request_headers(self) -> Dict[str, str]:
7172
return {
72-
'Content-Type': 'application/json',
73-
'User-Agent': construct_user_agent(str(type(self))),
73+
"Content-Type": "application/json",
74+
"User-Agent": construct_user_agent(str(type(self))),
7475
}
7576

7677
async def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse:
77-
self.logger.debug(f"Making request HTTP. URI: {self.endpoint_uri}, Method: {method}")
78+
self.logger.debug(
79+
f"Making request HTTP. URI: {self.endpoint_uri}, Method: {method}"
80+
)
7881
request_data = self.encode_rpc_request(method, params)
7982
raw_response = await async_make_post_request(
80-
self.endpoint_uri,
81-
request_data,
82-
**self.get_request_kwargs()
83+
self.endpoint_uri, request_data, **self.get_request_kwargs()
8384
)
8485
response = self.decode_rpc_response(raw_response)
85-
self.logger.debug(f"Getting response HTTP. URI: {self.endpoint_uri}, "
86-
f"Method: {method}, Response: {response}")
86+
self.logger.debug(
87+
f"Getting response HTTP. URI: {self.endpoint_uri}, "
88+
f"Method: {method}, Response: {response}"
89+
)
8790
return response

web3/providers/auto.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
RPCResponse,
3232
)
3333

34-
HTTP_SCHEMES = {'http', 'https'}
35-
WS_SCHEMES = {'ws', 'wss'}
34+
HTTP_SCHEMES = {"http", "https"}
35+
WS_SCHEMES = {"ws", "wss"}
3636

3737

3838
def load_provider_from_environment() -> BaseProvider:
39-
uri_string = URI(os.environ.get('WEB3_PROVIDER_URI', ''))
39+
uri_string = URI(os.environ.get("WEB3_PROVIDER_URI", ""))
4040
if not uri_string:
4141
return None
4242

@@ -47,15 +47,15 @@ def load_provider_from_uri(
4747
uri_string: URI, headers: Optional[Dict[str, Tuple[str, str]]] = None
4848
) -> BaseProvider:
4949
uri = urlparse(uri_string)
50-
if uri.scheme == 'file':
50+
if uri.scheme == "file":
5151
return IPCProvider(uri.path)
5252
elif uri.scheme in HTTP_SCHEMES:
5353
return HTTPProvider(uri_string, headers)
5454
elif uri.scheme in WS_SCHEMES:
5555
return WebsocketProvider(uri_string)
5656
else:
5757
raise NotImplementedError(
58-
f'Web3 does not know how to connect to scheme {uri.scheme!r} in {uri_string!r}'
58+
f"Web3 does not know how to connect to scheme {uri.scheme!r} in {uri_string!r}"
5959
)
6060

6161

@@ -71,8 +71,9 @@ class AutoProvider(BaseProvider):
7171

7272
def __init__(
7373
self,
74-
potential_providers: Optional[Sequence[Union[Callable[..., BaseProvider],
75-
Type[BaseProvider]]]] = None
74+
potential_providers: Optional[
75+
Sequence[Union[Callable[..., BaseProvider], Type[BaseProvider]]]
76+
] = None,
7677
) -> None:
7778
"""
7879
:param iterable potential_providers: ordered series of provider classes to attempt with
@@ -96,8 +97,9 @@ def isConnected(self) -> bool:
9697
provider = self._get_active_provider(use_cache=True)
9798
return provider is not None and provider.isConnected()
9899

99-
def _proxy_request(self, method: RPCEndpoint, params: Any,
100-
use_cache: bool = True) -> RPCResponse:
100+
def _proxy_request(
101+
self, method: RPCEndpoint, params: Any, use_cache: bool = True
102+
) -> RPCResponse:
101103
provider = self._get_active_provider(use_cache)
102104
if provider is None:
103105
raise CannotHandleRequest(

web3/providers/base.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@
3333
class BaseProvider:
3434
_middlewares: Tuple[Middleware, ...] = ()
3535
# a tuple of (all_middlewares, request_func)
36-
_request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (None, None)
36+
_request_func_cache: Tuple[Tuple[Middleware, ...], Callable[..., RPCResponse]] = (
37+
None,
38+
None,
39+
)
3740

3841
global_ccip_read_enabled: bool = True
3942
ccip_read_max_redirects: int = 4
@@ -43,9 +46,7 @@ def middlewares(self) -> Tuple[Middleware, ...]:
4346
return self._middlewares
4447

4548
@middlewares.setter
46-
def middlewares(
47-
self, values: MiddlewareOnion
48-
) -> None:
49+
def middlewares(self, values: MiddlewareOnion) -> None:
4950
# tuple(values) converts to MiddlewareOnion -> Tuple[Middleware, ...]
5051
self._middlewares = tuple(values) # type: ignore
5152

@@ -63,7 +64,7 @@ def request_func(
6364
if cache_key is None or cache_key != all_middlewares:
6465
self._request_func_cache = (
6566
all_middlewares,
66-
self._generate_request_func(w3, all_middlewares)
67+
self._generate_request_func(w3, all_middlewares),
6768
)
6869
return self._request_func_cache[-1]
6970

@@ -103,11 +104,11 @@ def encode_rpc_request(self, method: RPCEndpoint, params: Any) -> bytes:
103104

104105
def isConnected(self) -> bool:
105106
try:
106-
response = self.make_request(RPCEndpoint('web3_clientVersion'), [])
107+
response = self.make_request(RPCEndpoint("web3_clientVersion"), [])
107108
except OSError:
108109
return False
109110

110-
assert response['jsonrpc'] == '2.0'
111-
assert 'error' not in response
111+
assert response["jsonrpc"] == "2.0"
112+
assert "error" not in response
112113

113114
return True

web3/providers/eth_tester/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from .main import ( # noqa: F401
32
EthereumTesterProvider,
43
AsyncEthereumTesterProvider,

0 commit comments

Comments
 (0)