mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-29 02:24:35 -05:00
* manual python 3.8 removals * poetry * pyupgrade * black * isort * manually tidy imports * work around shadowed type * catch up build network protocol files for pyupgrade changes * placate pylint * re-enable 20.04 * placate flake8
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from typing import TYPE_CHECKING, ClassVar, cast
|
|
|
|
from chia._tests.environments.common import ServiceEnvironment
|
|
from chia.full_node.full_node import FullNode
|
|
from chia.rpc.rpc_server import RpcServer
|
|
from chia.server.server import ChiaServer
|
|
from chia.server.start_service import Service
|
|
from chia.simulator.full_node_simulator import FullNodeSimulator
|
|
from chia.simulator.simulator_full_node_rpc_api import SimulatorFullNodeRpcApi
|
|
|
|
|
|
@dataclass
|
|
class FullNodeEnvironment:
|
|
if TYPE_CHECKING:
|
|
_protocol_check: ClassVar[ServiceEnvironment[FullNode, SimulatorFullNodeRpcApi, FullNodeSimulator]] = cast(
|
|
"FullNodeEnvironment",
|
|
None,
|
|
)
|
|
|
|
__match_args__: ClassVar[tuple[str, ...]] = ()
|
|
|
|
service: Service[FullNode, FullNodeSimulator, SimulatorFullNodeRpcApi]
|
|
|
|
@property
|
|
def node(self) -> FullNode:
|
|
return self.service._node
|
|
|
|
@property
|
|
def rpc_api(self) -> SimulatorFullNodeRpcApi:
|
|
assert self.service.rpc_server is not None
|
|
return self.service.rpc_server.rpc_api
|
|
|
|
@property
|
|
def rpc_server(self) -> RpcServer[SimulatorFullNodeRpcApi]:
|
|
assert self.service.rpc_server is not None
|
|
return self.service.rpc_server
|
|
|
|
@property
|
|
def peer_api(self) -> FullNodeSimulator:
|
|
return self.service._api
|
|
|
|
@property
|
|
def peer_server(self) -> ChiaServer:
|
|
return self.service._server
|