Skip to content

Commit 65dfbbb

Browse files
authored
add Service type variables for each combination (#16970)
1 parent 6a937ae commit 65dfbbb

25 files changed

+150
-184
lines changed

chia/seeder/start_crawler.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from chia.seeder.crawler_api import CrawlerAPI
1414
from chia.server.outbound_message import NodeType
1515
from chia.server.start_service import RpcInfo, Service, async_run
16+
from chia.types.aliases import CrawlerService
1617
from chia.util.chia_logging import initialize_service_logging
1718
from chia.util.config import load_config, load_config_cli
1819
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -30,7 +31,7 @@ def create_full_node_crawler_service(
3031
config: Dict[str, Any],
3132
consensus_constants: ConsensusConstants,
3233
connect_to_daemon: bool = True,
33-
) -> Service[Crawler, CrawlerAPI]:
34+
) -> CrawlerService:
3435
service_config = config[SERVICE_NAME]
3536
crawler_config = service_config["crawler"]
3637

chia/server/start_data_layer.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,12 @@
1313
from chia.server.outbound_message import NodeType
1414
from chia.server.start_service import RpcInfo, Service, async_run
1515
from chia.ssl.create_ssl import create_all_ssl
16+
from chia.types.aliases import DataLayerService, WalletService
1617
from chia.util.chia_logging import initialize_logging
1718
from chia.util.config import load_config, load_config_cli
1819
from chia.util.default_root import DEFAULT_ROOT_PATH
1920
from chia.util.ints import uint16
2021
from chia.util.misc import SignalHandlers
21-
from chia.wallet.wallet_node import WalletNode
22-
from chia.wallet.wallet_node_api import WalletNodeAPI
2322

2423
# See: https://bugs.python.org/issue29288
2524
"".encode("idna")
@@ -34,9 +33,9 @@ def create_data_layer_service(
3433
config: Dict[str, Any],
3534
downloaders: List[PluginRemote],
3635
uploaders: List[PluginRemote], # dont add FilesystemUploader to this, it is the default uploader
37-
wallet_service: Optional[Service[WalletNode, WalletNodeAPI]] = None,
36+
wallet_service: Optional[WalletService] = None,
3837
connect_to_daemon: bool = True,
39-
) -> Service[DataLayer, DataLayerAPI]:
38+
) -> DataLayerService:
4039
if uploaders is None:
4140
uploaders = []
4241
if downloaders is None:

chia/server/start_farmer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from chia.rpc.farmer_rpc_api import FarmerRpcApi
1212
from chia.server.outbound_message import NodeType
1313
from chia.server.start_service import RpcInfo, Service, async_run
14+
from chia.types.aliases import FarmerService
1415
from chia.util.chia_logging import initialize_service_logging
1516
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
1617
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -30,7 +31,7 @@ def create_farmer_service(
3031
consensus_constants: ConsensusConstants,
3132
keychain: Optional[Keychain] = None,
3233
connect_to_daemon: bool = True,
33-
) -> Service[Farmer, FarmerAPI]:
34+
) -> FarmerService:
3435
service_config = config[SERVICE_NAME]
3536

3637
network_id = service_config["selected_network"]

chia/server/start_full_node.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from chia.rpc.full_node_rpc_api import FullNodeRpcApi
1515
from chia.server.outbound_message import NodeType
1616
from chia.server.start_service import RpcInfo, Service, async_run
17+
from chia.types.aliases import FullNodeService
1718
from chia.util.chia_logging import initialize_service_logging
1819
from chia.util.config import load_config, load_config_cli
1920
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -34,7 +35,7 @@ async def create_full_node_service(
3435
consensus_constants: ConsensusConstants,
3536
connect_to_daemon: bool = True,
3637
override_capabilities: Optional[List[Tuple[uint16, str]]] = None,
37-
) -> Service[FullNode, FullNodeAPI]:
38+
) -> FullNodeService:
3839
service_config = config[SERVICE_NAME]
3940

4041
full_node = await FullNode.create(

chia/server/start_harvester.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from chia.rpc.harvester_rpc_api import HarvesterRpcApi
1212
from chia.server.outbound_message import NodeType
1313
from chia.server.start_service import RpcInfo, Service, async_run
14+
from chia.types.aliases import HarvesterService
1415
from chia.types.peer_info import UnresolvedPeerInfo
1516
from chia.util.chia_logging import initialize_service_logging
1617
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
@@ -29,7 +30,7 @@ def create_harvester_service(
2930
consensus_constants: ConsensusConstants,
3031
farmer_peers: Set[UnresolvedPeerInfo],
3132
connect_to_daemon: bool = True,
32-
) -> Service[Harvester, HarvesterAPI]:
33+
) -> HarvesterService:
3334
service_config = config[SERVICE_NAME]
3435

3536
overrides = service_config["network_overrides"]["constants"][service_config["selected_network"]]

chia/server/start_introducer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from chia.introducer.introducer_api import IntroducerAPI
99
from chia.server.outbound_message import NodeType
1010
from chia.server.start_service import Service, async_run
11+
from chia.types.aliases import IntroducerService
1112
from chia.util.chia_logging import initialize_service_logging
1213
from chia.util.config import load_config, load_config_cli
1314
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -24,7 +25,7 @@ def create_introducer_service(
2425
config: Dict[str, Any],
2526
advertised_port: Optional[int] = None,
2627
connect_to_daemon: bool = True,
27-
) -> Service[Introducer, IntroducerAPI]:
28+
) -> IntroducerService:
2829
service_config = config[SERVICE_NAME]
2930

3031
if advertised_port is None:

chia/server/start_timelord.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from chia.server.start_service import RpcInfo, Service, async_run
1313
from chia.timelord.timelord import Timelord
1414
from chia.timelord.timelord_api import TimelordAPI
15+
from chia.types.aliases import TimelordService
1516
from chia.util.chia_logging import initialize_service_logging
1617
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
1718
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -31,7 +32,7 @@ def create_timelord_service(
3132
config: Dict[str, Any],
3233
constants: ConsensusConstants,
3334
connect_to_daemon: bool = True,
34-
) -> Service[Timelord, TimelordAPI]:
35+
) -> TimelordService:
3536
service_config = config[SERVICE_NAME]
3637
overrides = service_config["network_overrides"]["constants"][service_config["selected_network"]]
3738
updated_constants = constants.replace_str_to_bytes(**overrides)

chia/server/start_wallet.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from chia.rpc.wallet_rpc_api import WalletRpcApi
1212
from chia.server.outbound_message import NodeType
1313
from chia.server.start_service import RpcInfo, Service, async_run
14+
from chia.types.aliases import WalletService
1415
from chia.util.chia_logging import initialize_service_logging
1516
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
1617
from chia.util.default_root import DEFAULT_ROOT_PATH
@@ -33,7 +34,7 @@ def create_wallet_service(
3334
consensus_constants: ConsensusConstants,
3435
keychain: Optional[Keychain] = None,
3536
connect_to_daemon: bool = True,
36-
) -> Service[WalletNode, WalletNodeAPI]:
37+
) -> WalletService:
3738
service_config = config[SERVICE_NAME]
3839

3940
overrides = service_config["network_overrides"]["constants"][service_config["selected_network"]]

chia/simulator/setup_services.py

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,32 @@
1414
from chia.cmds.init_funcs import init
1515
from chia.consensus.constants import ConsensusConstants
1616
from chia.daemon.server import WebSocketServer, daemon_launch_lock_path
17-
from chia.farmer.farmer import Farmer
18-
from chia.farmer.farmer_api import FarmerAPI
19-
from chia.full_node.full_node import FullNode
20-
from chia.full_node.full_node_api import FullNodeAPI
21-
from chia.harvester.harvester import Harvester
22-
from chia.harvester.harvester_api import HarvesterAPI
23-
from chia.introducer.introducer import Introducer
24-
from chia.introducer.introducer_api import IntroducerAPI
2517
from chia.protocols.shared_protocol import Capability, capabilities
26-
from chia.seeder.crawler import Crawler
27-
from chia.seeder.crawler_api import CrawlerAPI
2818
from chia.seeder.dns_server import DNSServer, create_dns_server_service
2919
from chia.seeder.start_crawler import create_full_node_crawler_service
3020
from chia.server.outbound_message import NodeType
3121
from chia.server.start_farmer import create_farmer_service
3222
from chia.server.start_full_node import create_full_node_service
3323
from chia.server.start_harvester import create_harvester_service
3424
from chia.server.start_introducer import create_introducer_service
35-
from chia.server.start_service import Service
3625
from chia.server.start_timelord import create_timelord_service
3726
from chia.server.start_wallet import create_wallet_service
3827
from chia.simulator.block_tools import BlockTools, test_constants
39-
from chia.simulator.full_node_simulator import FullNodeSimulator
4028
from chia.simulator.keyring import TempKeyring
4129
from chia.simulator.ssl_certs import get_next_nodes_certs_and_keys, get_next_private_ca_cert_and_key
4230
from chia.simulator.start_simulator import create_full_node_simulator_service
4331
from chia.ssl.create_ssl import create_all_ssl
44-
from chia.timelord.timelord import Timelord
45-
from chia.timelord.timelord_api import TimelordAPI
4632
from chia.timelord.timelord_launcher import VDFClientProcessMgr, find_vdf_client, spawn_process
33+
from chia.types.aliases import (
34+
CrawlerService,
35+
FarmerService,
36+
FullNodeService,
37+
HarvesterService,
38+
IntroducerService,
39+
SimulatorFullNodeService,
40+
TimelordService,
41+
WalletService,
42+
)
4743
from chia.types.blockchain_format.sized_bytes import bytes32
4844
from chia.types.peer_info import UnresolvedPeerInfo
4945
from chia.util.bech32m import encode_puzzle_hash
@@ -53,8 +49,6 @@
5349
from chia.util.keychain import bytes_to_mnemonic
5450
from chia.util.lock import Lockfile
5551
from chia.util.misc import SignalHandlers
56-
from chia.wallet.wallet_node import WalletNode
57-
from chia.wallet.wallet_node_api import WalletNodeAPI
5852

5953
log = logging.getLogger(__name__)
6054

@@ -120,7 +114,7 @@ async def setup_full_node(
120114
disable_capabilities: Optional[List[Capability]] = None,
121115
*,
122116
reuse_db: bool = False,
123-
) -> AsyncGenerator[Union[Service[FullNode, FullNodeAPI], Service[FullNode, FullNodeSimulator]], None]:
117+
) -> AsyncGenerator[Union[FullNodeService, SimulatorFullNodeService], None]:
124118
if reuse_db:
125119
db_path: Union[str, Path] = local_bt.root_path / f"{db_name}"
126120
uri = False
@@ -158,7 +152,7 @@ async def setup_full_node(
158152
updated_constants = consensus_constants.replace_str_to_bytes(**overrides)
159153
local_bt.change_config(config)
160154
override_capabilities = None if disable_capabilities is None else get_capabilities(disable_capabilities)
161-
service: Union[Service[FullNode, FullNodeAPI], Service[FullNode, FullNodeSimulator]]
155+
service: Union[FullNodeService, SimulatorFullNodeService]
162156
if simulator:
163157
service = await create_full_node_simulator_service(
164158
local_bt.root_path,
@@ -183,7 +177,7 @@ async def setup_full_node(
183177
@asynccontextmanager
184178
async def setup_crawler(
185179
root_path_populated_with_config: Path, database_uri: str
186-
) -> AsyncGenerator[Service[Crawler, CrawlerAPI], None]:
180+
) -> AsyncGenerator[CrawlerService, None]:
187181
create_all_ssl(
188182
root_path=root_path_populated_with_config,
189183
private_ca_crt_and_key=get_next_private_ca_cert_and_key().collateral.cert_and_key,
@@ -246,7 +240,7 @@ async def setup_wallet_node(
246240
introducer_port: Optional[uint16] = None,
247241
key_seed: Optional[bytes] = None,
248242
initial_num_public_keys: int = 5,
249-
) -> AsyncGenerator[Service[WalletNode, WalletNodeAPI], None]:
243+
) -> AsyncGenerator[WalletService, None]:
250244
with TempKeyring(populate=True) as keychain:
251245
config = local_bt.config
252246
service_config = config["wallet"]
@@ -336,7 +330,7 @@ async def setup_harvester(
336330
farmer_peer: Optional[UnresolvedPeerInfo],
337331
consensus_constants: ConsensusConstants,
338332
start_service: bool = True,
339-
) -> AsyncGenerator[Service[Harvester, HarvesterAPI], None]:
333+
) -> AsyncGenerator[HarvesterService, None]:
340334
with create_lock_and_load_config(b_tools.root_path / "config" / "ssl" / "ca", root_path) as config:
341335
config["logging"]["log_stdout"] = True
342336
config["selected_network"] = "testnet0"
@@ -368,7 +362,7 @@ async def setup_farmer(
368362
full_node_port: Optional[uint16] = None,
369363
start_service: bool = True,
370364
port: uint16 = uint16(0),
371-
) -> AsyncGenerator[Service[Farmer, FarmerAPI], None]:
365+
) -> AsyncGenerator[FarmerService, None]:
372366
with create_lock_and_load_config(b_tools.root_path / "config" / "ssl" / "ca", root_path) as root_config:
373367
root_config["logging"]["log_stdout"] = True
374368
root_config["selected_network"] = "testnet0"
@@ -409,7 +403,7 @@ async def setup_farmer(
409403

410404

411405
@asynccontextmanager
412-
async def setup_introducer(bt: BlockTools, port: int) -> AsyncGenerator[Service[Introducer, IntroducerAPI], None]:
406+
async def setup_introducer(bt: BlockTools, port: int) -> AsyncGenerator[IntroducerService, None]:
413407
service = create_introducer_service(
414408
bt.root_path,
415409
bt.config,
@@ -497,7 +491,7 @@ async def setup_timelord(
497491
config: Dict[str, Any],
498492
root_path: Path,
499493
vdf_port: uint16 = uint16(0),
500-
) -> AsyncGenerator[Service[Timelord, TimelordAPI], None]:
494+
) -> AsyncGenerator[TimelordService, None]:
501495
service_config = config["timelord"]
502496
set_peer_info(service_config, peer_type=NodeType.FULL_NODE, peer_port=full_node_port)
503497
service_config["bluebox_mode"] = sanitizer

chia/simulator/start_simulator.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from chia.simulator.block_tools import BlockTools, test_constants
1414
from chia.simulator.full_node_simulator import FullNodeSimulator
1515
from chia.simulator.simulator_full_node_rpc_api import SimulatorFullNodeRpcApi
16+
from chia.types.aliases import SimulatorFullNodeService
1617
from chia.types.blockchain_format.sized_bytes import bytes32
1718
from chia.util.bech32m import decode_puzzle_hash
1819
from chia.util.chia_logging import initialize_logging
@@ -36,7 +37,7 @@ async def create_full_node_simulator_service(
3637
bt: BlockTools,
3738
connect_to_daemon: bool = True,
3839
override_capabilities: Optional[List[Tuple[uint16, str]]] = None,
39-
) -> Service[FullNode, FullNodeSimulator]:
40+
) -> SimulatorFullNodeService:
4041
service_config = config[SERVICE_NAME]
4142
constants = bt.constants
4243

@@ -66,7 +67,7 @@ async def create_full_node_simulator_service(
6667

6768
@dataclass
6869
class StartedSimulator:
69-
service: Service[FullNode, FullNodeSimulator]
70+
service: SimulatorFullNodeService
7071
exit_code: int
7172

7273

0 commit comments

Comments
 (0)