11"""Repl server main."""
2- from __future__ import annotations
2+ # from __future__ import annotations
33
44import asyncio
55import contextlib
66import json
77import logging
88import sys
99from enum import Enum
10- from pathlib import Path
1110
11+ from typing import List , Optional
12+ from pathlib import Path
1213import typer
14+ from typing_extensions import Annotated
1315from pymodbus import pymodbus_apply_logging_config
1416from pymodbus .framer .socket_framer import ModbusSocketFramer
1517from pymodbus .logging import Log
@@ -50,7 +52,7 @@ class ModbusFramerTypes(str, Enum):
5052 binary = "binary" # pylint: disable=invalid-name
5153
5254
53- def _completer (incomplete : str , valid_values : list [str ]) -> list [str ]:
55+ def _completer (incomplete : str , valid_values : List [str ]) -> List [str ]:
5456 """Complete value."""
5557 completion = []
5658 for name in valid_values :
@@ -59,19 +61,19 @@ def _completer(incomplete: str, valid_values: list[str]) -> list[str]:
5961 return completion
6062
6163
62- def framers (incomplete : str ) -> list [str ]:
64+ def framers (incomplete : str ) -> List [str ]:
6365 """Return an autocompleted list of supported clouds."""
6466 _framers = ["socket" , "rtu" , "tls" , "ascii" , "binary" ]
6567 return _completer (incomplete , _framers )
6668
6769
68- def servers (incomplete : str ) -> list [str ]:
70+ def servers (incomplete : str ) -> List [str ]:
6971 """Return an autocompleted list of supported clouds."""
7072 _servers = ["tcp" , "serial" , "tls" , "udp" ]
7173 return _completer (incomplete , _servers )
7274
7375
74- def process_extra_args (extra_args : list [str ], modbus_config : dict ) -> dict :
76+ def process_extra_args (extra_args : List [str ], modbus_config : dict ) -> dict :
7577 """Process extra args passed to server."""
7678 options_stripped = [x .strip ().replace ("--" , "" ) for x in extra_args [::2 ]]
7779 extra_args_dict = dict (list (zip (options_stripped , extra_args [1 ::2 ])))
@@ -139,12 +141,12 @@ def run(
139141 help = "Modbus framer to use" ,
140142 ),
141143 modbus_port : str = typer .Option ("5020" , "--modbus-port" , "-p" , help = "Modbus port" ),
142- modbus_slave_id : list [ int ] = typer .Option (
143- [ 1 ], "--slave -id" , "-u" , help = "Supported Modbus slave id's"
144- ),
145- modbus_config_path : Path = typer .Option (
146- None , help = "Path to additional modbus server config"
147- ),
144+ modbus_slave_id : Annotated [ Optional [ List [ int ]], typer .Option (
145+ "--unit -id" , "-u" , help = "Supported Modbus slave id's"
146+ )] = [ 1 ] ,
147+ modbus_config_path : Annotated [ Path , typer .Option (
148+ help = "Path to additional modbus server config"
149+ )] = None ,
148150 randomize : int = typer .Option (
149151 0 ,
150152 "--random" ,
0 commit comments