def __new__(cls, root_uri, config, file_cache=None):
    '''
    Perform automatic instantiation of the appropriate store type, based on the URI prefix.
    '''
    (prefix, path) = split_uri(root_uri)
    for subclass in Store.__subclasses__():
      if subclass.prefix == prefix:
        return super(cls, subclass).__new__(subclass, root_uri, config, file_cache=file_cache)
    raise InvalidArgument("unsupported store type: %s" % prefix)
dataset/ETHPy150Open bloomreach/zinc/zinc.py/Store.__new__/original