docs: def get_arguments():
      """Get parsed arguments."""
      parser = argparse.ArgumentParser("AbodePy: Command Line Utility")
  
      parser.add_argument(
          '-u', '--username',
          help='Username',
          required=False)
  
      parser.add_argument(
          '-p', '--password',
          help='Password',
          required=False)
  
      parser.add_argument(
          '--cache',
          metavar='pickle_file',
          help='Create/update/use a pickle cache for the username and password.',
          required=False)
  
      parser.add_argument(
          '--mode',
          help='Output current alarm mode',
          required=False, default=False,
          action="store_true")
  
      parser.add_argument(
          '--arm',
          metavar='mode',
          help='Arm alarm to mode',
          required=False)
  
      parser.add_argument(
          '--set',
          metavar='setting=value',
          help='Set setting to a value',
          required=False, action='append')
  
      parser.add_argument(
          '--devices',
          help='Output all devices',
          required=False, default=False, action="store_true")
  
      parser.add_argument(
          '--device',
          metavar='device_id',
          help='Output one device for device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--json',
          metavar='device_id',
          help='Output the json for device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--on',
          metavar='device_id',
          help='Switch on a given device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--off',
          metavar='device_id',
          help='Switch off a given device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--lock',
          metavar='device_id',
          help='Lock a given device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--unlock',
          metavar='device_id',
          help='Unlock a given device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--automations',
          help='Output all automations',
          required=False, default=False, action="store_true")
  
      parser.add_argument(
          '--activate',
          metavar='automation_id',
          help='Activate (enable) an automation by automation_id',
          required=False, action='append')
  
      parser.add_argument(
          '--deactivate',
          metavar='automation_id',
          help='Deactivate (disable) an automation by automation_id',
          required=False, action='append')
  
      parser.add_argument(
          '--trigger',
          metavar='automation_id',
          help='Trigger (apply) a manual (quick) automation by automation_id',
          required=False, action='append')
  
      parser.add_argument(
          '--capture',
          metavar='device_id',
          help='Trigger a new image capture for the given device_id',
          required=False, action='append')
  
      parser.add_argument(
          '--image',
          metavar='device_id=location/image.jpg',
          help='Save an image from a camera (if available) to the given path',
          required=False, action='append')
  
      parser.add_argument(
          '--listen',
          help='Block and listen for device_id',
          required=False, default=False, action="store_true")
  
      parser.add_argument(
          '--debug',
          help='Enable debug logging',
          required=False, default=False, action="store_true")
  
      parser.add_argument(
          '--quiet',
          help='Output only warnings and errors',
          required=False, default=False, action="store_true")
  
      return parser.parse_args()