(keys: Any, args: Iterable[Any] | None)
| 16 | |
| 17 | |
| 18 | def list_or_args(keys: Any, args: Iterable[Any] | None) -> List[Any]: |
| 19 | # returns a single new list combining keys and args |
| 20 | try: |
| 21 | iter(keys) |
| 22 | # a string or bytes-like instance can be iterated, but indicates |
| 23 | # keys wasn't passed as a list |
| 24 | if isinstance(keys, (bytes, str, bytearray, memoryview)): |
| 25 | keys = [keys] |
| 26 | else: |
| 27 | keys = list(keys) |
| 28 | except TypeError: |
| 29 | keys = [keys] |
| 30 | if args: |
| 31 | keys.extend(args) |
| 32 | return keys |
| 33 | |
| 34 | |
| 35 | def parse_pubsub_subscriptions( |