diff --git a/setup.py b/setup.py index 7ee1eb8574..aecf2b496a 100644 --- a/setup.py +++ b/setup.py @@ -212,6 +212,7 @@ 'toposort==1.6', 'www-authenticate==0.9.2', 'xmltodict==0.12.0', + 'lazy-object-proxy', ], setup_requires= [ 'pytest-runner', diff --git a/show/main.py b/show/main.py index 24c4dd7077..12ba5d1c39 100755 --- a/show/main.py +++ b/show/main.py @@ -5,6 +5,7 @@ import re import click +import lazy_object_proxy import utilities_common.cli as clicommon import utilities_common.multi_asic as multi_asic_util from importlib import reload @@ -125,8 +126,8 @@ def run_command(command, display_cmd=False, return_cmd=False): if rc != 0: sys.exit(rc) -# Global class instance for SONiC interface name to alias conversion -iface_alias_converter = clicommon.InterfaceAliasConverter() +# Lazy global class instance for SONiC interface name to alias conversion +iface_alias_converter = lazy_object_proxy.Proxy(lambda: clicommon.InterfaceAliasConverter()) diff --git a/utilities_common/cli.py b/utilities_common/cli.py index 1db99d091c..6aaedcb209 100644 --- a/utilities_common/cli.py +++ b/utilities_common/cli.py @@ -8,6 +8,7 @@ import click import json +import lazy_object_proxy import netaddr from natsort import natsorted @@ -184,8 +185,8 @@ def alias_to_name(self, interface_alias): # interface_alias not in port_dict. Just return interface_alias return interface_alias if sub_intf_sep_idx == -1 else interface_alias + VLAN_SUB_INTERFACE_SEPARATOR + vlan_id -# Global class instance for SONiC interface name to alias conversion -iface_alias_converter = InterfaceAliasConverter() +# Lazy global class instance for SONiC interface name to alias conversion +iface_alias_converter = lazy_object_proxy.Proxy(lambda: InterfaceAliasConverter()) def get_interface_naming_mode(): mode = os.getenv('SONIC_CLI_IFACE_MODE')