#
# SPDX-FileCopyrightText: <text>Copyright 2025 Arm Limited
# and/or its affiliates <open-source-office@arm.com></text>
#
# SPDX-License-Identifier: MIT
#
import logging
[docs]
logger = logging.getLogger(__name__)
[docs]
def get_factory(kind):
"""
Fetch a registered platform factory by kind.
:param kind: Platform kind (case-insensitive).
:returns: Registered factory callable, or ``None`` if not found.
"""
return PLATFORM_REGISTRY.get(str(kind).lower().strip())
[docs]
class DriverBundle:
"""
Container for a platform instance.
:param driver: Platform driver instance with ``start()``, ``wait_ready()``,
``stop()`` (and optionally ``init()``).
:param manager: Optional session/console manager
(e.g., telnet, ssh, serial).
:param login_primary: Optional callable for logging into the primary.
:param export_env: Optional callable for exporting environment variables.
:ivar driver: Platform driver instance.
:ivar manager: Session/console manager object.
:ivar login_primary: Callable for primary console login.
:ivar export_env: Callable for exporting environment variables.
"""
def __init__(
self, driver, manager=None, login_primary=None, export_env=None
) -> None:
[docs]
self.login_primary = login_primary
[docs]
self.export_env = export_env