From 712dd3f956492c3c7f68c79f513a3daf04c10c8d Mon Sep 17 00:00:00 2001 From: fselmo Date: Mon, 21 Nov 2022 17:10:53 -0700 Subject: [PATCH] Remove version module and related tests --- newsfragments/2729.removal.rst | 1 + .../version-module/test_version_module.py | 58 --------------- web3/main.py | 4 -- web3/version.py | 72 ------------------- 4 files changed, 1 insertion(+), 134 deletions(-) create mode 100644 newsfragments/2729.removal.rst delete mode 100644 tests/core/version-module/test_version_module.py delete mode 100644 web3/version.py diff --git a/newsfragments/2729.removal.rst b/newsfragments/2729.removal.rst new file mode 100644 index 0000000000..b3a8fd967e --- /dev/null +++ b/newsfragments/2729.removal.rst @@ -0,0 +1 @@ +Removal of ``version`` module. diff --git a/tests/core/version-module/test_version_module.py b/tests/core/version-module/test_version_module.py deleted file mode 100644 index 096a6d53b5..0000000000 --- a/tests/core/version-module/test_version_module.py +++ /dev/null @@ -1,58 +0,0 @@ -import pytest - -from web3 import ( - EthereumTesterProvider, - Web3, -) -from web3.eth import ( - Eth, -) -from web3.providers.eth_tester.main import ( - AsyncEthereumTesterProvider, -) -from web3.version import ( - AsyncVersion, - BlockingVersion, - Version, -) - -# This file is being left in since the Version module is -# being experimented on for async behavior. But, this file -# along with web3/version.py should be removed eventually. - - -@pytest.fixture -def blocking_w3(): - return Web3( - EthereumTesterProvider(), - modules={ - "blocking_version": (BlockingVersion,), - "legacy_version": (Version,), - "eth": (Eth,), - }, - ) - - -@pytest.fixture -def async_w3(): - return Web3( - AsyncEthereumTesterProvider(), - middlewares=[], - modules={ - "async_version": (AsyncVersion,), - }, - ) - - -def test_legacy_version_deprecation(blocking_w3): - with pytest.raises(DeprecationWarning): - blocking_w3.legacy_version.node - with pytest.raises(DeprecationWarning): - blocking_w3.legacy_version.ethereum - - -@pytest.mark.asyncio -async def test_async_blocking_version(async_w3, blocking_w3): - assert async_w3.async_version.api == blocking_w3.api - - assert await async_w3.async_version.node == blocking_w3.client_version diff --git a/web3/main.py b/web3/main.py index f38c321b9c..d6f988952b 100644 --- a/web3/main.py +++ b/web3/main.py @@ -120,9 +120,6 @@ MiddlewareOnion, Wei, ) -from web3.version import ( - Version, -) if TYPE_CHECKING: from web3.pm import PM # noqa: F401 @@ -133,7 +130,6 @@ def get_default_modules() -> Dict[str, Union[Type[Module], Sequence[Any]]]: return { "eth": Eth, "net": Net, - "version": Version, "geth": ( Geth, { diff --git a/web3/version.py b/web3/version.py deleted file mode 100644 index 1874700485..0000000000 --- a/web3/version.py +++ /dev/null @@ -1,72 +0,0 @@ -from typing import ( - Callable, - NoReturn, -) - -from web3._utils.rpc_abi import ( - RPC, -) -from web3.method import ( - Method, -) -from web3.module import ( - Module, -) - - -class BaseVersion(Module): - retrieve_caller_fn = None - - _get_node_version: Method[Callable[[], str]] = Method(RPC.web3_clientVersion) - _get_protocol_version: Method[Callable[[], str]] = Method(RPC.eth_protocolVersion) - - @property - def api(self) -> str: - from web3 import __version__ - - return __version__ - - -class AsyncVersion(BaseVersion): - is_async = True - - @property - async def node(self) -> str: - # types ignored b/c mypy conflict with BlockingVersion properties - return await self._get_node_version() # type: ignore - - @property - async def ethereum(self) -> int: - return await self._get_protocol_version() # type: ignore - - -class BlockingVersion(BaseVersion): - @property - def node(self) -> str: - return self._get_node_version() - - @property - def ethereum(self) -> str: - return self._get_protocol_version() - - -class Version(Module): - @property - def api(self) -> NoReturn: - raise DeprecationWarning( - "This method has been deprecated ... Please use web3.api instead." - ) - - @property - def node(self) -> NoReturn: - raise DeprecationWarning( - "This method has been deprecated ... " - "Please use web3.client_version instead." - ) - - @property - def ethereum(self) -> NoReturn: - raise DeprecationWarning( - "This method has been deprecated ... " - "Please use web3.eth.protocol_version instead." - )