class_docstr: Base class for configurable interfaces.
  
  A configurable interface is an (abstract) class whose constructor
  acts as a factory function for one of its implementation subclasses.
  The implementation subclass as well as optional keyword arguments to
  its initializer can be set globally at runtime with `configure`.
  
  By using the constructor as the factory method, the interface
  looks like a normal class, `isinstance` works as usual, etc.  This
  pattern is most useful when the choice of implementation is likely
  to be a global decision (e.g. when `~select.epoll` is available,
  always use it instead of `~select.select`), or when a
  previously-monolithic class has been split into specialized
  subclasses.
  
  Configurable subclasses must define the class methods
  `configurable_base` and `configurable_default`, and use the instance
  method `initialize` instead of ``__init__``.
docstr: Sets the class to use when the base class is instantiated.
  
  Keyword arguments will be saved and added to the arguments passed
  to the constructor.  This can be used to set global defaults for
  some parameters.
docstr_tok: ["Sets","the","class","to","use","when","the","base","class","is","instantiated",".","Keyword","arguments","will","be","saved","and","added","to","the","arguments","passed","to","the","constructor",".","This","can","be","used","to","set","global","defaults","for","some","parameters","."]
code: def configure(cls, impl, **kwargs):
      # type: (Any, **Any) -> None
      """Sets the class to use when the base class is instantiated.
  
      Keyword arguments will be saved and added to the arguments passed
      to the constructor.  This can be used to set global defaults for
      some parameters.
      """
      base = cls.configurable_base()
      if isinstance(impl, (str, unicode_type)):
          impl = import_object(impl)
      if impl is not None and not issubclass(impl, cls):
          raise ValueError("Invalid subclass of %s" % cls)
      base.__impl_class = impl
      base.__impl_kwargs = kwargs
  
imports: from __future__ import absolute_import, division, print_function
  import array
  import atexit
  import os
  import re
  import sys
  import zlib
label_desc: Use image node_id 5 for calling the Configurable obj's underlying member method code with example usage: obj.configure(cls, impl) without return types