'URL parser and manipulator based on the WHAT WG URL standard'
Project description
This is ada_url, a Python library for parsing and joining URLs.
Installation
Install from PyPI:
pip install boto3-helpers
Usage examples
This package exposes a URL class that is intended to match the one described in the WHATWG URL spec.
>>> from ada_url import URL
>>> URL('https://example.org/path/../file.txt') as urlobj:
>>> urlobj.host = 'example.com'
>>> new_url = urlobj.href
>>> new_url
'https://example.com/file.txt'
It also provides high level functions for parsing and manipulating URLs. Validating a URL:
>>> from ada_url import check_url
>>> check_url('https://example.org')
True
>>> check_url('http://example:bougus')
False
Parsing a URL:
>>> from ada_url import parse_url
>>> parse_url('https://user:pass@example.org:80/api?q=1#2')
{
'href': 'https://user:pass@example.org:80/api?q=1#2',
'username': 'user',
'password': 'pass',
'protocol': 'https:',
'port': '80',
'hostname': 'example.org',
'host': 'example.org:80',
'pathname': '/api',
'search': '?q=1',
'hash': '#2',
'origin': 'https://example.org:80',
'host_type': <HostType.DEFAULT: 0>,
'scheme_type': <SchemeType.HTTPS: 2>
}
Replacing URL components:
>>> from ada_url import replace_url
>>> ada_url.replace_url('http://example.org:80', protocol='https:')
'https://example.org/'
Joining a URL with a relative fragment:
>>> from ada_url import join_url >>> join_url('https://example.org/dir/child.txt', '../parent.txt') 'https://example.org/parent.txt'
WHATWG URL compliance
This library is compliant with the WHATWG URL spec. This means, among other things, that it properly encodes IDNs and resolves paths:
>>> from ada_url import URL
>>> parsed_url = URL('https://www.GOoglé.com/./path/../path2/')
>>> parsed_url.hostname
'www.xn--googl-fsa.com'
>>> parsed_url.pathname
'/path2/'
Contrast that with the Python standard library’s urlib.parse module:
>>> from urllib.parse import urlparse
>>> parsed_url = urlparse()
>>> parsed_url.hostname
'www.googlé.com'
>>> parsed_url.path
'/./path/../path2/'
More information
ada-url is based on the Ada project.
A full API reference is available at Read the Docs.
Source code is available at GitHub.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ada_url-1.4.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adcabb2efb6e2f303e67f361e4ed943401cce6c711867769913b535e5e596aa4 |
|
MD5 | d721e42e81b0e40ec2e146c17ecc08d9 |
|
BLAKE2b-256 | 2c82ecb195402e0310f1e2c6a8716e460fa1c4613da41751732394b08918a2c6 |
Hashes for ada_url-1.4.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 629eb58c41035769907202a1d763fa7fedfe54e84500d0cb93f7ef6a1a9ab8bb |
|
MD5 | f50a85951542569b5dd8085d7bcad889 |
|
BLAKE2b-256 | b7d1918fa697971fb157b3627407254d1e9047b628f2d328eee455ded4107fba |
Hashes for ada_url-1.4.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 293042b2466fb06499e715502785a5f0b312a21860dd610d6d77bf73a4e21a1a |
|
MD5 | c21d6b08ef3bc7393f470f7be5aaa560 |
|
BLAKE2b-256 | ba771e1528bd19da7e9c76ac78d9e0b9b2eebe5be681f881860cf7a809139023 |
Hashes for ada_url-1.4.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dde3504079fb7c38c06257dbeb12f22aa5c3ab63c4988576aaf9e2cbeb08253 |
|
MD5 | ac2185287580c2d9780d4b8e3c61e727 |
|
BLAKE2b-256 | 0be6b426d43d45b62c8ff4cb912ef188760370a49c57476c55abdf18ed27f017 |
Hashes for ada_url-1.4.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db50b9de94c3ead339cc5d6e1ea2e1c666d95474bbcb90f6d27a616eb7848609 |
|
MD5 | 147aa0a72bfdb4fc4746b72ce94f45af |
|
BLAKE2b-256 | d8bffe5d630c18844d9ef29f9e20a691f8121a233ae9efd6ad489a18f9a93d86 |
Hashes for ada_url-1.4.1-pp38-pypy38_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 472c742a2087b60712b3fe837d28df9204f2aa0b75f5c3705cfddca901f27176 |
|
MD5 | e964627bac55c50c4c460aaed9f8fede |
|
BLAKE2b-256 | 07b1155a1c81576cffebe90cebc72c910205250b7144420a68a08ff1d032d608 |
Hashes for ada_url-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7cafbd3f0e5a730549b242d55d8611c6436aca8dd5bcf6ac0eedefd6a1be37b |
|
MD5 | ec3cbedf22fdb9027054971665122a14 |
|
BLAKE2b-256 | 0c25c10db238951075241d9df3b1b7932a3597204aa8c271bfb36b56737570b4 |
Hashes for ada_url-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | babd79fe4c14a492cfd8c1e2f45696e68269fe27ccb9cc604cef14aa9aef1f02 |
|
MD5 | c9503ef0246988ba288554a127a19ef9 |
|
BLAKE2b-256 | 089c1a24fd613c2cdcb5d8b194ff0f4ea358f9472a4735997963da53549fc33e |
Hashes for ada_url-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 716d4c3788bb0bb7f2011517567dc33a35a85afededcf6292417131d84135f7f |
|
MD5 | bb3bfe20af178b3fd531f7c07865bab8 |
|
BLAKE2b-256 | 1e21fbb5ff6f9f32eff51295bca0b55e92d2c5fc9481900246f7d79160178661 |
Hashes for ada_url-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4fc52af11762ac7fd5dfb1529c14abf9af151b80069407378eaf73c9eadec34 |
|
MD5 | 23599c369560ac46ee416d0c337c05cd |
|
BLAKE2b-256 | d5b468a61d369f3c97e68e353f6bc54db40717228c5c9bcfaef2edfe6877e27d |
Hashes for ada_url-1.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b73210dd947ade040bbebba624f4212e78cd977d4e506fba09109a4ed565a1f4 |
|
MD5 | 3f51a6f4da98125a82faa8a33f1f021b |
|
BLAKE2b-256 | 5e975fbcdd7d18a9c784c8d520ff3f6e534efc6a11368ddaa92ae465d1dbda3b |
Hashes for ada_url-1.4.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4caadebe454b7d0877a8e57d6714bc504f2a7a1ce072f8176e71bf8104e466 |
|
MD5 | 1ae6b63f9092de27739633d6736d7bb6 |
|
BLAKE2b-256 | 38e2d64c465ca5aafbb844b8c021b7dd09f0be9a359f982da562c00564264115 |
Hashes for ada_url-1.4.1-cp311-cp311-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6dd08069be2ea07483a3121d8373d47abbc4feb0d1eb90bb1a6eaf456ecc0bba |
|
MD5 | bfcb922140871eb747b49e874a1d218e |
|
BLAKE2b-256 | ddf8347a156d45c98654e12e11299a128dedb40b6ccd319d3c0dc22793cebb7f |
Hashes for ada_url-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85214913740fcf277b891cd7420077d1d5eeb3690a96194be0f1bf600bb4dedb |
|
MD5 | 53e5403f8134d9fe536125ada471176c |
|
BLAKE2b-256 | 8d56d94fc2d95ce3f3450919b2a4e0466494cce5b3cc633a5a744fc414c03403 |
Hashes for ada_url-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b676e9c0904b9eb936128ce9c77f02143961d867e598699c03fc619eec91738 |
|
MD5 | 65c729876568cb13ea5817c4a3ee6e9c |
|
BLAKE2b-256 | 88bfcee794cd66000fa5c1c08f936315a356f11d8a7914b17d8eba7b1457498a |
Hashes for ada_url-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e465027ff53107c8ff0011849bb0070b8bb10da83681d0474210bcb3e7317fc3 |
|
MD5 | 4cb9c47e213ad1fbf55412c946f46331 |
|
BLAKE2b-256 | 522dc783cdd037aa97082d2074331cee406b55a9e3d0211288272955127b3c35 |
Hashes for ada_url-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb12e28ef037569e9c41fc5c6ed6f778828f8d62d82b7ba73982cc7861f9fb5c |
|
MD5 | e97c0559aa5c5c1aedd3a7d1cd55d794 |
|
BLAKE2b-256 | 78754ef0536c66fd22fc1e446ad42c0f8abffdf943b47273f1456800624799c4 |
Hashes for ada_url-1.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 198582b23eea2d9a13d0ac2df51e4b7962eb4c26c6dd83965d1bd6c50d4b4522 |
|
MD5 | 1e4ca8b55c929e7591c6bb55bc1c2c76 |
|
BLAKE2b-256 | 4f001c6ab99824231df748d659ede4a14debdbbbbd70dd01f41d0a7c8b935518 |
Hashes for ada_url-1.4.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f73297b76291f7b9e4a6168c2c46d42f654756ce41571e13df13a19072ef4e1b |
|
MD5 | 415d51b6480607892c3e0eb4ee1775bb |
|
BLAKE2b-256 | fde11a0dbd459a7b7f2e6d39a7462aa06709904f51f1cc3e073e9079eb6c0c39 |
Hashes for ada_url-1.4.1-cp310-cp310-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6740cf857adace67053a3e5cbc84fcf11037e79f5894d1b31de8d14d151b1eb7 |
|
MD5 | bc28e5eee6ba3cf391de61bd81026d86 |
|
BLAKE2b-256 | 467001d52599d2fd7ab9b299cd9b6926a165d5a1fc08e91d1aafd9e7a7d9eb45 |
Hashes for ada_url-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4712e1fd44b2d2ded1934c7e2b47605b7b64dcb31d21f6ba4f6f5e856636afb1 |
|
MD5 | e450a18bd90713c39f21b6c2520c7507 |
|
BLAKE2b-256 | d59ed841a9e85ea03a6a3c1d026af07adf577755cf34d58b8eb989c2db988f7e |
Hashes for ada_url-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d597941604ab5c0c9709862d5083aac062c83fbf1d1b15632548adc67f7d3b1 |
|
MD5 | 25943026566e3c8d2244f3a6368f47b1 |
|
BLAKE2b-256 | 60db488725e47f7556e323f66006cbbc26dc64367de6d2af19d94c945acfc019 |
Hashes for ada_url-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c203dd2857bb51d319c555887fb8b7a8723cabaf044d43d11d16611a6ec9a8f |
|
MD5 | d029292e7ddc4e0559a33033e011b5db |
|
BLAKE2b-256 | 4d4eb596cbb0b787126fe75c910bf74d16c75d2de02690ff71881593cb8afdde |
Hashes for ada_url-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a5ed7004916a0e7aa7f82de32f5391f032c6fec60c39120dca97979fed7c85e |
|
MD5 | a7632b2d99e04fa9d8a079eff165678a |
|
BLAKE2b-256 | 41f63eed78116280b6d01470153e3c97741a22fb2b9b2db4107cfc1039004fce |
Hashes for ada_url-1.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22654d4130749003d46f51147a0c80925d0e0aaedf6dc42f49327e2ee4712a96 |
|
MD5 | 270e7cc4b3cae09914e504361be092ba |
|
BLAKE2b-256 | 70b9e68814b4ccbcd810bab7326a1804fc832ba713d174457a1da29ab62e9da1 |
Hashes for ada_url-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 862e0e7435066c3ef2fa38d3eb6a8df985feb2b232c52975fa638534b0615148 |
|
MD5 | f7c48b3c51bef3517d0c28604579009a |
|
BLAKE2b-256 | e6c711113a8e740c7bcea606ec8230dac78fdca18bc3a32f788ca46cdd9b868d |
Hashes for ada_url-1.4.1-cp39-cp39-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94a1fecdb7c43c0b314701f7c1cb90fe1ba7e6aca8ef31b1a4348a928e913924 |
|
MD5 | 4b9cbd98f6d27ff519f3cd504107e8ec |
|
BLAKE2b-256 | d35d9694ff21ae5c0a3d12c3a8e3d2ad551d8c8db8a3959f7d8fab5df4c74c40 |
Hashes for ada_url-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21cb3b2a467cede3dce5675ecdead2a215910a628f331f4cbec1ab84917f2433 |
|
MD5 | 5f280b416d052934809846f1ea218ee5 |
|
BLAKE2b-256 | 1bea552b0e064ded70cf34df9d279f420559eca6e3c91ae795d100d630ef13e8 |
Hashes for ada_url-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfaeb6348240ace86a126e3f33512b2c17d3780f172d9fcfed0c175be470e668 |
|
MD5 | 2bbe9964e209e7271ad1ea746807173c |
|
BLAKE2b-256 | c84e8d099fdceed9769d7ce467d13265640cd29f874de1a202f34a0834ade6b3 |
Hashes for ada_url-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e623cf0de833e16a9c1ef879cb04ba93be38c4de3511631188c07288875abcb3 |
|
MD5 | bcdd03faed15009a20dbf01f02f81697 |
|
BLAKE2b-256 | d156eea5ee41c5d645e1a429f6adbb92860c383fa321eda55210fb87213312b7 |
Hashes for ada_url-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90c10e4e7f07798cd6dc7e6ede239109a3e2c589355a4d9ec7a71427bdc418bd |
|
MD5 | a5d6043ea81db2ba0c1b513c2fbd503c |
|
BLAKE2b-256 | db0abd2e6a8036263e629d659ac144b6f3e3e0539d154421dabc986fc5c93b68 |
Hashes for ada_url-1.4.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6503086cff0cb1f20ee498d5c087d0f104e258947fed1ef00be39ca85cccda27 |
|
MD5 | 1665e2ef6f9e0905941572d70b305510 |
|
BLAKE2b-256 | 61c9b7d1535daf374f13371c49056c523716776059f9e274c48a8835abc6b064 |
Hashes for ada_url-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc132496de4a546119bc6d8af4664d695ad919f010a44e03319cd240595099e9 |
|
MD5 | 943ff305b72f6a25e5baf28f883c3ede |
|
BLAKE2b-256 | 9e17ea12a9c4c1fe836b6f2260b623be0197ddf57eded5bd1b78b8a6bbebeaef |
Hashes for ada_url-1.4.1-cp38-cp38-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9bc1e901de34252e27cd024d06000559b6895e48caacfb816fab6ce6b2b8374 |
|
MD5 | 4d156ab946aa264c6b6beee385842be2 |
|
BLAKE2b-256 | 2d4a3856afbf27ace50cd766ad84c54b5ec4247cf28ae1aca7c33586bbf270f1 |