text: import argparse
  import code
  
  import pykube
  
  # import readline to support line editing within console session.
  try:
      import readline  # noqa
  except ImportError:
      pass
  
  
  def main(argv=None):
      '''
      Run the interactive Pykube console (usually invoked via python3 -m pykube)
      '''
      parser = argparse.ArgumentParser()
      parser.add_argument('--kubeconfig', help='Path to the kubeconfig file to use', metavar='PATH')
      parser.add_argument('--context', help='The name of the kubeconfig context to used', metavar='NAME')
      parser.add_argument('-c', help='Python program passed in as string', metavar='SCRIPT')
      args = parser.parse_args(argv)
  
      config = pykube.KubeConfig.from_file(args.kubeconfig)
  
      if args.context:
          config.set_current_context(args.context)
  
      api = pykube.HTTPClient(config)
  
      context = {
          '__name__': '__console__',
          'pykube': pykube,
          'config': config,
          'api': api
      }
      for k, v in vars(pykube).items():
          if k[0] != '_' and k[0] == k[0].upper():
              context[k] = v
  
      banner = f'''Pykube v{pykube.__version__}, loaded "{config.filename}" with context "{config.current_context}".
  
      Example commands:
        [d.name for d in Deployment.objects(api)]              # get names of deployments in default namespace
        list(DaemonSet.objects(api, namespace='kube-system'))  # list daemonsets in "kube-system"
        Pod.objects(api).get_by_name('mypod').labels           # labels of pod "mypod"
  
      Use Ctrl-D to exit'''
  
      console = code.InteractiveConsole(locals=context)
      if args.c:
          console.runsource(args.c)
      else:
          console.interact(banner)
  