code: def path2full_uri(path, prefix=None, default_protocol='http', end_with_slash=True):
          
          if path.startswith('http'):
              return path
  
          if prefix:
              if not prefix.startswith('http'):
                  prefix = '%s://%s' % (default_protocol, prefix)
  
              parts = [prefix, path]
              return HelperURI.urljoin(end_with_slash, *parts)
          else:
              if end_with_slash:
                  uri = '%s://%s' % (default_protocol, path)
                  return uri.strip('/') + '/'
              else:
                  uri = '%s://%s' % (default_protocol, path)
                  return uri.strip('/')
docs: >>> HelperURI.path2full_uri(path='127.0.0.1:8000', end_with_slash=False)
          'http://127.0.0.1:8000'
  
          >>> HelperURI.path2full_uri(path='/api', prefix='192.168.1.100', end_with_slash=False)
          'http://192.168.1.100/api'
  
          >>> HelperURI.path2full_uri(path='/api/v1', prefix='192.168.1.100', default_protocol='https', end_with_slash=True)
          'https://192.168.1.100/api/v1/'