Python future.utils.as_native_str() Examples

The following are 1 code examples of future.utils.as_native_str(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module future.utils , or try the search function .
Example #1
Source File: base_handler.py    From clusterfuzz with Apache License 2.0 5 votes vote down vote up
def dispatch(self):
    """Dispatch a request and postprocess."""
    # TODO(mbarbella): Delete this once the Python 3 migration is complete.
    @future_utils.as_native_str()
    def to_native_str(text):
      """Convert from future's newstr to a native str."""
      return text

    if environment.get_value('PY_UNITTESTS'):
      # Unit tests may not have NDB available.
      super(Handler, self).dispatch()
    else:
      with ndb_init.context():
        super(Handler, self).dispatch()

      # App Engine Python 2 does not like it when there are threads still alive
      # at the end of a request. In particular, NDB and gRPC may create threads
      # which aren't automatically stopped at this point due to reference
      # cycles. Garbage collect here to get rid of them.
      # TODO(ochang): Check if this is still needed for Python 3 GAE.
      gc.collect()

    # Replace header values with Python 2-style strings after dispatching. There
    # is an explicit type check against str that causes issues with newstr here.
    for key, value in self.response.headers.items():
      self.response.headers[key] = to_native_str(value)