|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | 3 | import threading |
4 | | -from typing import TYPE_CHECKING, Any, ClassVar, cast |
| 4 | +from typing import TYPE_CHECKING, Any, ClassVar, cast, overload |
5 | 5 |
|
6 | 6 | import Pyro5.api |
7 | 7 | import Pyro5.errors |
@@ -46,11 +46,37 @@ def instance(cls, uri: Pyro5.api.URI | str) -> MMCorePlusProxy: |
46 | 46 | cls._instances[str(uri)] = cls(uri) |
47 | 47 | return cls._instances[str(uri)] |
48 | 48 |
|
| 49 | + @overload |
49 | 50 | def __init__( |
50 | | - self, uri: Pyro5.api.URI | str | None = None, connected_socket: Any = None |
| 51 | + self, |
| 52 | + *, |
| 53 | + port: int, |
| 54 | + object_id: str | None = None, |
| 55 | + host: str | None = None, |
| 56 | + connected_socket: Any = None, |
| 57 | + ) -> None: ... |
| 58 | + @overload |
| 59 | + def __init__( |
| 60 | + self, |
| 61 | + uri: Pyro5.api.URI | str, |
| 62 | + *, |
| 63 | + connected_socket: Any = None, |
| 64 | + ) -> None: ... |
| 65 | + |
| 66 | + def __init__( |
| 67 | + self, |
| 68 | + uri: Pyro5.api.URI | str | None = None, |
| 69 | + *, |
| 70 | + object_id: str | None = None, |
| 71 | + host: str | None = None, |
| 72 | + port: int | None = None, |
| 73 | + connected_socket: Any = None, |
51 | 74 | ) -> None: |
52 | 75 | if uri is None: |
53 | | - uri = f"PYRO:{server.CORE_NAME}@{server.DEFAULT_HOST}:{server.DEFAULT_PORT}" |
| 76 | + object_id = server.CORE_NAME if object_id is None else object_id |
| 77 | + host = server.DEFAULT_HOST if host is None else host |
| 78 | + port = server.DEFAULT_PORT if port is None else port |
| 79 | + uri = f"PYRO:{object_id}@{host}:{port}" |
54 | 80 | register_serializers() |
55 | 81 | super().__init__(uri, connected_socket=connected_socket) |
56 | 82 | self._instances[str(self._pyroUri)] = self |
|
0 commit comments