docs: def main():
      """ Main function of this example. """
      parser = argparse.ArgumentParser()
      parser.add_argument(
          '--digest', default="md5", help="Digest to use",
          choices=sorted(
              getattr(hashlib, 'algorithms', None)
              or hashlib.algorithms_available))
      parser.add_argument(
          '--url', default="http://example.org", help="URL to load")
      parser.add_argument(
          '-o', '--output', type=argparse.FileType('wb'), metavar='FILE',
          default='-', help="Where to write the retrieved conentent")
      opts = parser.parse_args()
      request = requestlib.Request(opts.url)
      reader = requestlib.urlopen(request)
      stream = written_hash_proxy(
          opts.output.buffer if hasattr(opts.output, 'buffer') else opts.output,
          name=opts.digest)
      for chunk in reader:
          stream.write(chunk)
      stream.flush()
      print("{} of {} is {}".format(
          proxy.state(stream).digest.name, opts.url,
          proxy.state(stream).digest.hexdigest()))