|
10 | 10 | from shutil import rmtree |
11 | 11 | from typing import IO, TYPE_CHECKING, Any, NoReturn, cast |
12 | 12 |
|
| 13 | +from overrides import overrides |
13 | 14 | from rich import print |
14 | 15 | from typing_extensions import Literal |
15 | 16 |
|
@@ -78,6 +79,18 @@ def install(self) -> None: |
78 | 79 | def uninstall(self) -> None: |
79 | 80 | pass |
80 | 81 |
|
| 82 | + def get_installed_version( |
| 83 | + self, |
| 84 | + *, |
| 85 | + raise_on_error: bool = False, |
| 86 | + recheck: bool = False, |
| 87 | + ) -> str | None: |
| 88 | + """Detect the version of the connector installed.""" |
| 89 | + _ = raise_on_error, recheck # Unused |
| 90 | + raise NotImplementedError( |
| 91 | + f"'{type(self).__name__}' class cannot yet detect connector versions." |
| 92 | + ) |
| 93 | + |
81 | 94 |
|
82 | 95 | @contextmanager |
83 | 96 | def _stream_from_subprocess(args: list[str]) -> Generator[Iterable[str], None, None]: |
@@ -238,15 +251,16 @@ def install(self) -> None: |
238 | 251 | raise exc.AirbyteConnectorInstallationError from ex |
239 | 252 |
|
240 | 253 | # Assuming the installation succeeded, store the installed version |
241 | | - self.reported_version = self._get_installed_version(raise_on_error=False, recheck=True) |
| 254 | + self.reported_version = self.get_installed_version(raise_on_error=False, recheck=True) |
242 | 255 | log_install_state(self.name, state=EventState.SUCCEEDED) |
243 | 256 | print( |
244 | 257 | f"Connector '{self.name}' installed successfully!\n" |
245 | 258 | f"For more information, see the {self.name} documentation:\n" |
246 | 259 | f"{self.docs_url}#reference\n" |
247 | 260 | ) |
248 | 261 |
|
249 | | - def _get_installed_version( |
| 262 | + @overrides |
| 263 | + def get_installed_version( |
250 | 264 | self, |
251 | 265 | *, |
252 | 266 | raise_on_error: bool = False, |
@@ -315,7 +329,7 @@ def ensure_installation( |
315 | 329 | """ |
316 | 330 | # Store the installed version (or None if not installed) |
317 | 331 | if not self.reported_version: |
318 | | - self.reported_version = self._get_installed_version() |
| 332 | + self.reported_version = self.get_installed_version() |
319 | 333 |
|
320 | 334 | original_installed_version = self.reported_version |
321 | 335 |
|
|
0 commit comments