- Notifications
You must be signed in to change notification settings - Fork 2.6k
Open
Description
PEP484 says
When using the short form, for *args and **kwds, put 1 or 2 stars in front of the corresponding type annotation. (As with Python 3 annotations, the annotation here denotes the type of the individual argument values, not of the tuple/dict that you receive as the special argument value args or kwd
https://peps.python.org/pep-0484/#arbitrary-argument-lists-and-default-argument-values
Example mypy error:
Argument 3 to "blmpop" of "ListCommands" has incompatible type "str"; expected "list[str]"
So I think this change should fix it:
diff --git c/redis/commands/core.py w/redis/commands/core.py index 737b098..4ba6430 100644 --- c/redis/commands/core.py +++ w/redis/commands/core.py @@ -830,7 +830,7 @@ class ManagementCommands(CommandsProtocol): return self.execute_command("COMMAND LIST", *pieces) - def command_getkeysandflags(self, *args: List[str]) -> List[Union[str, List[str]]]: + def command_getkeysandflags(self, *args: str) -> List[Union[str, List[str]]]: """ Returns array of keys from a full Redis command and their usage flags. @@ -848,7 +848,7 @@ class ManagementCommands(CommandsProtocol): ) def config_get( - self, pattern: PatternT = "*", *args: List[PatternT], **kwargs + self, pattern: PatternT = "*", *args: PatternT, **kwargs ) -> ResponseT: """ Return a dictionary of configuration based on the ``pattern`` @@ -861,7 +861,7 @@ class ManagementCommands(CommandsProtocol): self, name: KeyT, value: EncodableT, - *args: List[Union[KeyT, EncodableT]], + *args: Union[KeyT, EncodableT], **kwargs, ) -> ResponseT: """Set config item ``name`` with ``value`` @@ -987,9 +987,7 @@ class ManagementCommands(CommandsProtocol): """ return self.execute_command("SELECT", index, **kwargs) - def info( - self, section: Optional[str] = None, *args: List[str], **kwargs - ) -> ResponseT: + def info(self, section: Optional[str] = None, *args: str, **kwargs) -> ResponseT: """ Returns a dictionary containing information about the Redis server @@ -2599,7 +2597,7 @@ class ListCommands(CommandsProtocol): self, timeout: float, numkeys: int, - *args: List[str], + *args: str, direction: str, count: Optional[int] = 1, ) -> Optional[list]: @@ -2619,7 +2617,7 @@ class ListCommands(CommandsProtocol): def lmpop( self, num_keys: int, - *args: List[str], + *args: str, direction: str, count: Optional[int] = 1, ) -> Union[Awaitable[list], list]: diff --git c/redis/commands/json/commands.py w/redis/commands/json/commands.py index 48849e1..f278daf 100644 --- c/redis/commands/json/commands.py +++ w/redis/commands/json/commands.py @@ -14,7 +14,7 @@ class JSONCommands: """json commands.""" def arrappend( - self, name: str, path: Optional[str] = Path.root_path(), *args: List[JsonType] + self, name: str, path: Optional[str] = Path.root_path(), *args: JsonType ) -> List[Optional[int]]: """Append the objects ``args`` to the array under the ``path` in key ``name``. @@ -52,7 +52,7 @@ class JSONCommands: return self.execute_command("JSON.ARRINDEX", *pieces, keys=[name]) def arrinsert( - self, name: str, path: str, index: int, *args: List[JsonType] + self, name: str, path: str, index: int, *args: JsonType ) -> List[Optional[int]]: """Insert the objects ``args`` to the array at index ``index`` under the ``path` in key ``name``.
Metadata
Metadata
Assignees
Labels
No labels