code: def get_client(self, cls, purge_cache=False, *args, **kwds):
          
          key = str(cls) + str(args) + str(kwds)
          instance = self._clients.get(key)
          if purge_cache or not instance:
              instance = cls(*args, **kwds)
          self._clients[key] = instance
          return instance
docs: This is a general method for getting a client: if present, it is pulled
          from the cache; if not, a new one is instantiated and then put into the
          cache. This method should not be called directly, but rather by other
          client-specific methods (e.g., get_ec2_client).