Source code for pytoolbox.network.url

from urllib.parse import urlsplit, urlunsplit

from pytoolbox import string

__all__ = ['with_subdomain']


[docs]def with_subdomain(url, subdomain=None): """ Return the ``url`` with the sub-domain replaced with ``subdomain``. **Example usage** >>> from pytoolbox.unittest import asserts >>> eq = asserts.equal >>> asserts.equal( ... with_subdomain('http://app.website.com/page'), ... 'http://website.com/page') >>> asserts.equal( ... with_subdomain('http://app.website.com/page', 'help'), ... 'http://help.website.com/page') >>> asserts.equal( ... with_subdomain('https://app.website.com#d?page=1', 'help'), ... 'https://help.website.com#d?page=1') """ import tldextract components = list(urlsplit(url)) components[1] = string.filterjoin((subdomain, ) + tldextract.extract(components[1])[1:], '.') return urlunsplit(components)