code: def caesar_app(parser, cmd, args):  # pragma: no cover
      
  
      parser.add_argument('shift', type=int, help='the shift to apply')
      parser.add_argument('value', help='the value to caesar crypt, read from stdin if omitted', nargs='?')
      parser.add_argument(
          '-s', '--shift-range',
          dest='shift_ranges',
          action='append',
          help='specify a character range to shift (defaults to a-z, A-Z)'
      )
  
      args = parser.parse_args(args)
      if not args.shift_ranges:
          args.shift_ranges = ['az', 'AZ']
  
      return caesar(args.shift, pwnypack.main.string_value_or_stdin(args.value), args.shift_ranges)
docs: Caesar crypt a value with a key.