• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python urllib_parse.urlsplit函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中six.moves.urllib_parse.urlsplit函数的典型用法代码示例。如果您正苦于以下问题:Python urlsplit函数的具体用法?Python urlsplit怎么用?Python urlsplit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了urlsplit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: getProxiedURIT

def getProxiedURIT(uriT):
    tmurl = list(urlsplit(uriT))
    if app.proxy is not None:
        # urlsplit put domain in path for "example.com"
        tmurl[1] = app.proxy  # Set replay host/port if no scheme
        proxyuri = urlsplit(app.proxy)
        if proxyuri.scheme != '':
            tmurl[0] = proxyuri.scheme
            tmurl[1] = proxyuri.netloc + proxyuri.path

    return tmurl
开发者ID:oduwsdl,项目名称:ipwb,代码行数:11,代码来源:replay.py


示例2: remove_user_from_uri

def remove_user_from_uri(apps, schema_editor):
    Formula = apps.get_model('formulas', 'Formula')

    for formula in Formula.objects.all():
        url_bits = urlsplit(formula.uri)

        # don't do it if it's an ssh formula
        if 'ssh' in url_bits.scheme:
            continue

        if url_bits.username:
            formula.git_username = url_bits.username

            if url_bits.port:
                new_netloc = '{}:{}'.format(url_bits.hostname, url_bits.port)
            else:
                new_netloc = url_bits.hostname

            formula.uri = urljoin((
                url_bits.scheme,
                new_netloc,
                url_bits.path,
                url_bits.query,
                url_bits.fragment,
            ))

            formula.save()
开发者ID:clarkperkins,项目名称:stackdio,代码行数:27,代码来源:0002_0_8_0_migrations.py


示例3: update_archive

def update_archive(thermoml_path=None):
    """Use RSS feeds to find and download any missing ThermoML XML files
    from the ThermoML archive.  
    
    Parameters
    ----------
    thermoml_path : str, optional, default=None
        If specified, use this path to store ThermoML XML files.  If None,
        use the THERMOML_PATH environment variable.
    """
    if thermoml_path is None:
        if "THERMOML_PATH" in os.environ:
            thermoml_path = os.environ["THERMOML_PATH"]
        else:
            raise(KeyError("You must either specify thermoml_path or the THERMOML_PATH environment variable."))

    for key, url in THERMOML_FEEDS.items():
        feed = feedparser.parse(url)
        for entry in feed["entries"]:
            link = entry["link"]
            base_filename = urllib_parse.urlsplit(link).path
            base_filename = base_filename[1:]  # Strip off preceeding backslash character so os.path.join will work
            filename = os.path.join(thermoml_path, base_filename)
            make_path(filename)
            if os.path.exists(filename):
                print("Already downloaded %s from %s" % (filename, link))
            else:
                print("Fetching %s from %s" % (filename, link))
                urllib.request.urlretrieve (link, filename)
开发者ID:kyleabeauchamp,项目名称:ThermoPyL,代码行数:29,代码来源:archivetools.py


示例4: collect_hosts

def collect_hosts(hosts):
    """
       Collect a set of hosts and an optional chroot from
       a string or a list of strings.
    """
    if isinstance(hosts, list):
        if hosts[-1].strip().startswith('/'):
            host_ports, chroot = hosts[:-1], hosts[-1]
        else:
            host_ports, chroot = hosts, None
    else:
        host_ports, chroot = hosts.partition("/")[::2]
        host_ports = host_ports.split(",")
        chroot = "/" + chroot if chroot else None

    result = []
    for host_port in host_ports:
        # put all complexity of dealing with
        # IPv4 & IPv6 address:port on the urlsplit
        res = urllib_parse.urlsplit("xxx://" + host_port)
        host = res.hostname
        if host is None:
            raise ValueError("bad hostname")
        port = int(res.port) if res.port else 2181
        result.append((host.strip(), port))

    return result, chroot
开发者ID:python-zk,项目名称:kazoo,代码行数:27,代码来源:hosts.py


示例5: get_connection

def get_connection(url, tls=None):
    """This convenience functions returns a :class:`HTTPConnection` or
    :class:`HTTPSConnection` based on the information contained in URL.

    :param url: URL string to create a connection for. Alternatively, passing
                in the results of :py:func:`urlparse.urlsplit` works as well.
    :param tls: When the URL scheme is ``https``, this is passed in as the
                ``tls`` parameter to :class:`HTTPSConnection`.

    """
    if isinstance(url, six.string_types):
        url = urllib_parse.urlsplit(url, 'http')
    host = url.netloc or 'localhost'
    host = host.rsplit(':', 1)[0]
    port = url.port
    kwargs = {}

    if six.PY2:
        # strict is deprecated on Python3
        # https://docs.python.org/3.2/library/http.client.html#httpconnection-objects
        kwargs['strict'] = True

    if url.scheme == 'https':
        conn = HTTPSConnection(host, tls=tls, **kwargs)
    else:
        conn = HTTPConnection(host, **kwargs)
    return conn
开发者ID:sk1p,项目名称:python-slimta,代码行数:27,代码来源:__init__.py


示例6: authorize

def authorize(user):
    if user.orcid is None:
        proofing_state = current_app.proofing_statedb.get_state_by_eppn(user.eppn, raise_on_missing=False)
        if not proofing_state:
            current_app.logger.debug('No proofing state found for user {!s}. Initializing new proofing state.'.format(
                user))
            proofing_state = OrcidProofingState({'eduPersonPrincipalName': user.eppn, 'state': get_unique_hash(),
                                                 'nonce': get_unique_hash()})
            current_app.proofing_statedb.save(proofing_state)

        claims_request = ClaimsRequest(userinfo=Claims(id=None))
        oidc_args = {
            'client_id': current_app.oidc_client.client_id,
            'response_type': 'code',
            'scope': 'openid',
            'claims': claims_request.to_json(),
            'redirect_uri': url_for('orcid.authorization_response', _external=True),
            'state': proofing_state.state,
            'nonce': proofing_state.nonce,
        }
        authorization_url = '{}?{}'.format(current_app.oidc_client.authorization_endpoint, urlencode(oidc_args))
        current_app.logger.debug('Authorization url: {!s}'.format(authorization_url))
        current_app.stats.count(name='authn_request')
        return redirect(authorization_url)
    # Orcid already connected to user
    url = urlappend(current_app.config['DASHBOARD_URL'], 'accountlinking')
    scheme, netloc, path, query_string, fragment = urlsplit(url)
    new_query_string = urlencode({'msg': ':ERROR:orc.already_connected'})
    url = urlunsplit((scheme, netloc, path, new_query_string, fragment))
    return redirect(url)
开发者ID:SUNET,项目名称:eduid-webapp,代码行数:30,代码来源:views.py


示例7: _build_url

 def _build_url(self):
     url = list(urlsplit(self._path))
     qs = parse_qs(url[3])
     qs["count"] = self._count
     qs["page"] = self._page
     url[3] = urlencode(qs, doseq=True)
     return urlunsplit(url)
开发者ID:P-EB,项目名称:mailman3-client,代码行数:7,代码来源:_client.py


示例8: on_headers_complete

 def on_headers_complete(parser):
     # http-parser callback: the HTTP header is complete. This is the point
     # where we hand off the message to our consumer. Going forward,
     # on_body() will continue to write chunks of the body to message.body.
     self = ffi.from_handle(parser.data)
     self._complete_header_value(b'')
     m = self._message
     m.message_type = lib.http_message_type(parser)
     m.version = '{}.{}'.format(parser.http_major, parser.http_minor)
     if self._server_side:
         m.method = _http_methods.get(parser.method, '<unknown>')
         m.url = _ba2s(self._url)
         try:
             m.parsed_url = urlsplit(m.url)
         except ValueError as e:
             self._error = HttpError('urlsplit(): {!s}'.format(e))
             return 2  # error
         m.is_upgrade = lib.http_is_upgrade(parser)
     else:
         m.status_code = parser.status_code
     m.should_keep_alive = lib.http_should_keep_alive(parser)
     m.body = StreamReader(self._update_body_size)
     # Make the message available. There is no need to call
     # read_buffer_size_change() here as the changes sum up to 0.
     self._queue.put_nowait(m, self._header_size)
     self._header_size = 0
     # Return 1 if this is a HEAD request, 0 otherwise. This instructs the
     # parser whether or not a body follows.
     if not self._requests:
         return 0
     return 1 if self._requests.pop(0) == 'HEAD' else 0
开发者ID:Ed-von-Schleck,项目名称:gruvi,代码行数:31,代码来源:http.py


示例9: validate_url

    def validate_url(cls, url):
        """
        Return a boolean indicating whether the URL has a protocol and hostname.
        If a port is specified, ensure it is an integer.

        Arguments:
            url (str): The URL to check.

        Returns:
            Boolean indicating whether the URL has a protocol and hostname.
        """
        result = urllib_parse.urlsplit(url)

        # Check that we have a protocol and hostname
        if not result.scheme or not result.netloc:
            return False

        # Check that the port is an integer
        try:
            if result.port is not None:
                int(result.port)
            elif result.netloc.endswith(':'):
                # Valid URLs do not end with colons.
                return False
        except ValueError:
            return False
        else:
            return True
开发者ID:cgoldberg,项目名称:bok-choy,代码行数:28,代码来源:page_object.py


示例10: rename

    def rename(self, new_job_name):
        """Changes the name of this job

        :param str new_job_name:
            new name to assign to this job
        """
        args = {
            "params": {
                "newName": new_job_name
            }
        }
        self._api.post(self._api.url + "doRename", args=args)

        # NOTE: In order to properly support jobs that may contain nested
        #       jobs we have to do some URL manipulations to extrapolate the
        #       REST API endpoint for the parent object to which the cloned
        #       view is to be contained.
        parts = urllib_parse.urlsplit(self._api.url).path.split("/")
        parts = [cur_part for cur_part in parts if cur_part.strip()]
        assert len(parts) >= 2
        assert parts[-2] == "job"
        new_url = urllib_parse.urljoin(
            self._api.url, "/" + "/".join(parts[:-2]))
        new_url += "/job/" + new_job_name
        self._api = self._api.clone(new_url)

        assert self.name == new_job_name
开发者ID:TheFriendlyCoder,项目名称:pyjen,代码行数:27,代码来源:job.py


示例11: get_user_details

 def get_user_details(self, response):
     """Generate username from identity url"""
     values = super(LiveJournalOpenId, self).get_user_details(response)
     values['username'] = values.get('username') or \
                          urlsplit(response.identity_url)\
                             .netloc.split('.', 1)[0]
     return values
开发者ID:BeatrizFerreira,项目名称:EP1DAS,代码行数:7,代码来源:livejournal.py


示例12: __init__

 def __init__(self, url, pool_size=None, tls=None, ehlo_as=None,
              timeout=None, idle_timeout=None):
     super(HttpRelay, self).__init__(pool_size)
     self.url = urllib_parse.urlsplit(url, 'http')
     self.tls = tls
     self.ehlo_as = ehlo_as or getfqdn()
     self.timeout = timeout
     self.idle_timeout = idle_timeout
开发者ID:thestick613,项目名称:python-slimta,代码行数:8,代码来源:http.py


示例13: redirect_action

def redirect_action():
    # Setup a redirect url to action app root
    scheme, netloc, path, query_string, fragment = urlsplit(request.url)
    path = url_for('actions.authn')
    return_url = urlunsplit((scheme, netloc, path, query_string, fragment))
    # TODO: Look in ret to figure out if we need to add a query string with a user message
    ret = _do_action()
    return redirect(return_url)
开发者ID:SUNET,项目名称:eduid-webapp,代码行数:8,代码来源:views.py


示例14: test_url_simple

 def test_url_simple(self):
     connection = Mock()
     connection.call.return_value = (None, {'start': 0, 'total_size': 0})
     page = Page(connection, '/some-path', None)
     built_qs = parse_qs(urlsplit(page._build_url()).query)
     self.assertEqual(built_qs, dict(
         count=[str(DEFAULT_PAGE_ITEM_COUNT)],
         page=["1"]))
开发者ID:P-EB,项目名称:mailman3-client,代码行数:8,代码来源:test_page.py


示例15: build_absolute_uri

    def build_absolute_uri(self, location=None):
        if location is None:
            return None

        bits = urlsplit(location)
        if not (bits.scheme and bits.netloc):
            location = urljoin(self.prod_url, location)
        return iri_to_uri(location)
开发者ID:clarkperkins,项目名称:stackdio,代码行数:8,代码来源:registry.py


示例16: clean_contributions

 def clean_contributions(self):
     if self.cleaned_data['contributions']:
         hostname = urlsplit(self.cleaned_data['contributions']).hostname
         if not hostname.endswith(amo.VALID_CONTRIBUTION_DOMAINS):
             raise forms.ValidationError(ugettext(
                 'URL domain must be one of [%s], or a subdomain.'
             ) % ', '.join(amo.VALID_CONTRIBUTION_DOMAINS))
     return self.cleaned_data['contributions']
开发者ID:diox,项目名称:olympia,代码行数:8,代码来源:forms.py


示例17: get_user_details

 def get_user_details(self, response):
     """Generate username from identity url"""
     values = super(YandexOpenId, self).get_user_details(response)
     values['username'] = values.get('username') or\
                          urlsplit(response.identity_url)\
                                 .path.strip('/')
     values['email'] = values.get('email', '')
     return values
开发者ID:BeatrizFerreira,项目名称:EP1DAS,代码行数:8,代码来源:yandex.py


示例18: forward

def forward(apps, schema_editor):
    FormulaComponent = apps.get_model('formulas', 'FormulaComponent')
    Formula = apps.get_model('formulas', 'Formula')

    formulas = {}

    for formula in Formula.objects.all():
        # Get the username out of the URI if it's a private formula
        if formula.git_username:
            parse_res = urlsplit(formula.uri)
            if '@' in parse_res.netloc:
                new_netloc = parse_res.netloc.split('@')[-1]
                formula.uri = urlunsplit((
                    parse_res.scheme,
                    new_netloc,
                    parse_res.path,
                    parse_res.query,
                    parse_res.fragment
                ))
                formula.save()

        if formula.uri not in formulas:
            formulas[formula.uri] = formula
            continue

        # Otherwise we need to delete the formula and everything associated with it
        for component in FormulaComponent.objects.filter(formula=formula):
            for bhfc in component.blueprinthostformulacomponent_set.all():
                try:
                    bhfc.component = FormulaComponent.objects.get(sls_path=bhfc.component.sls_path,
                                                                  formula=formulas[formula.uri])
                    bhfc.save()
                except FormulaComponent.DoesNotExist:
                    bhfc.component.formula = formulas[formula.uri]
                    bhfc.component.save()

            component.delete()

        formula.delete()

    # re-import all the formulas
    for formula in Formula.objects.all():
        # there's nothing we can do about private repos without having the password :(
        if not formula.git_username:
            try:
                import_formula(formula.id, '')
            except FormulaTaskException as e:
                if 'SPECFILE' in e.message:
                    print('Skipping import of formula: {0}'.format(formula.uri))
                else:
                    raise
        else:
            print('Please manually update this formula via the API: {0}'.format(formula.uri))

    # remove the old ones
    old_formula_dir = os.path.join(settings.STACKDIO_CONFIG['storage_root'], 'user_states')
    if os.path.isdir(old_formula_dir):
        shutil.rmtree(old_formula_dir)
开发者ID:triplekill,项目名称:stackdio,代码行数:58,代码来源:0002_v0_7_migrations.py


示例19: relurl

def relurl(url, starturl):
    """Works like :py:func:`os.path.relpath`, but for urls

    >>> relurl("http://example.org/other/index.html", "http://example.org/main/index.html") == '../other/index.html'
    True
    >>> relurl("http://other.org/foo.html", "http://example.org/bar.html") == 'http://other.org/foo.html'
    True

    """
    urlseg = urlsplit(url)
    startseg = urlsplit(starturl)
    urldomain = urlunsplit(urlseg[:2] + tuple('' for i in range(3)))
    startdomain = urlunsplit(startseg[:2] + tuple('' for i in range(3)))
    if urldomain != startdomain:  # different domain, no relative url possible
        return url

    relpath = posixpath.relpath(urlseg.path, posixpath.dirname(startseg.path))
    res = urlunsplit(('', '', relpath, urlseg.query, urlseg.fragment))
    return res
开发者ID:h4ck3rm1k3,项目名称:ferenda,代码行数:19,代码来源:util.py


示例20: test_url_with_qs

 def test_url_with_qs(self):
     connection = Mock()
     connection.call.return_value = (None, {'start': 0, 'total_size': 0})
     page = Page(connection, '/some-path?with=a&query=string', None)
     built_qs = parse_qs(urlsplit(page._build_url()).query)
     self.assertEqual(built_qs, {
         "with": ["a"],
         "query": ["string"],
         "count": [str(DEFAULT_PAGE_ITEM_COUNT)],
         "page": ["1"],
         })
开发者ID:P-EB,项目名称:mailman3-client,代码行数:11,代码来源:test_page.py



注:本文中的six.moves.urllib_parse.urlsplit函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python urllib_parse.urlunparse函数代码示例发布时间:2022-05-27
下一篇:
Python urllib_parse.urlparse函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap