code: def _get_loader_for_url(self, url):
          
          parts = url.split('://', 1)
          if len(parts) < 2:
              type_ = 'file'
          else:
              type_ = parts[0]
  
          if '+' in type_:
              profile_name, scheme = type_.split('+', 1)
              if len(parts) == 2:
                  url = scheme + '://' + parts[1]
          else:
              profile_name = ''
              scheme = type_
  
          loader = self.cached.get(type_)
          if loader:
              return loader, url
  
          loader_cls = self._get_loader_class_for_type(scheme)
  
          if not loader_cls:
              raise IOError('No Loader for type: ' + scheme)
  
          profile = self.kwargs
  
          if self.profile_loader:
              profile = self.profile_loader(profile_name, scheme)
  
          loader = loader_cls(**profile)
  
          self.cached[type_] = loader
          return loader, url
docs: Determine loading method based on uri