code: def retrieve_key(cls, **kwargs):
      # get key with traditionnal mechanism
      key = kwargs.get("key")
      canadapost_key = os.environ.get("CANADAPOST_API_KEY")
      if key or canadapost_key:
          return key if key else canadapost_key
  
      # fallback
      try:
          url = "http://www.canadapost.ca/cpo/mc/personal/postalcode/fpc.jsf"
          timeout = kwargs.get("timeout", 5.0)
          proxies = kwargs.get("proxies", "")
          r = requests.get(url, timeout=timeout, proxies=proxies)
          match = cls.CANADAPOST_KEY_REGEX.search(r.text)
          if match:
              return match.group(1)
          else:
              raise ValueError("No API Key found")
      except Exception as err:
          raise ValueError("Could not retrieve API Key: %s" % err)
  
imports: import os
  import re
  import requests
label_desc: Use image node_id 3 for calling the CanadapostKeyLazySingleton obj's underlying member method code with example usage: obj.retrieve_key(cls) and returns: unknown, match