Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ benchmark:
poetry run brownie run examples/benchmark

mypyc:
mypyc dank_mids/_demo_mode.py dank_mids/_eth_utils.py dank_mids/_uid.py dank_mids/brownie_patch/__init__.py dank_mids/brownie_patch/_abi.py dank_mids/brownie_patch/call.py dank_mids/brownie_patch/overloaded.py dank_mids/brownie_patch/types.py dank_mids/helpers/_codec.py dank_mids/helpers/lru_cache.py dank_mids/helpers/_weaklist.py dank_mids/constants.py dank_mids/ENVIRONMENT_VARIABLES.py --strict --pretty --disable-error-code unused-ignore
mypyc dank_mids/_demo_mode.py dank_mids/_eth_utils.py dank_mids/_mode.py dank_mids/_uid.py dank_mids/brownie_patch/__init__.py dank_mids/brownie_patch/_abi.py dank_mids/brownie_patch/call.py dank_mids/brownie_patch/overloaded.py dank_mids/brownie_patch/types.py dank_mids/helpers/_codec.py dank_mids/helpers/lru_cache.py dank_mids/helpers/_weaklist.py dank_mids/constants.py dank_mids/ENVIRONMENT_VARIABLES.py --strict --pretty --disable-error-code unused-ignore

mypyc-3-8:
mypyc dank_mids/_demo_mode.py dank_mids/_eth_utils.py dank_mids/_uid.py dank_mids/brownie_patch/__init__.py dank_mids/brownie_patch/_abi.py dank_mids/brownie_patch/call.py dank_mids/brownie_patch/overloaded.py dank_mids/brownie_patch/types.py dank_mids/helpers/_codec.py dank_mids/helpers/_weaklist.py dank_mids/constants.py dank_mids/ENVIRONMENT_VARIABLES.py --strict --pretty --disable-error-code unused-ignore
mypyc dank_mids/_demo_mode.py dank_mids/_eth_utils.py dank_mids/_mode.py dank_mids/_uid.py dank_mids/brownie_patch/__init__.py dank_mids/brownie_patch/_abi.py dank_mids/brownie_patch/call.py dank_mids/brownie_patch/overloaded.py dank_mids/brownie_patch/types.py dank_mids/helpers/_codec.py dank_mids/helpers/_weaklist.py dank_mids/constants.py dank_mids/ENVIRONMENT_VARIABLES.py --strict --pretty --disable-error-code unused-ignore

25 changes: 11 additions & 14 deletions dank_mids/_mode.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from a_sync.functools import cached_property_unsafe as cached_property
from typing import Final

from typing_extensions import Self


MODES = "default", "application", "infura"
MODES: Final = "default", "application", "infura"


class OperationMode(str):
Expand All @@ -14,31 +14,28 @@ class OperationMode(str):
with different Ethereum node providers.
"""

@cached_property
def application(self):
def __init__(self) -> None:
super().__init__()

self.application: Final = self.mode == "application"
"""
Checks if the current mode is 'application'.
True if the current mode is 'application'.

The 'application' mode keeps the event loop as unblocked as possible
so an asyncio application can run as designed.
"""
return self.mode == "application"

@cached_property
def default(self):
self.default: Final = self.mode == "default"
"""
Checks if the current mode is 'default'.
True if the current mode is 'default'.
"""
return self.mode == "default"

@cached_property
def infura(self):
self.infura: Final = self.mode == "infura"
"""
Checks if the current mode is 'infura'.
True if the current mode is 'infura'.

The 'infura' mode minimizes the total number of calls sent to the node.
"""
return self.mode == "infura"

@property
def mode(self) -> Self:
Expand Down