'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.6.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be21641514ffe9b6333669a1e8db30ba8e8b7cfbdbbd1cb8e886b033ad5fe614 |
|
MD5 | 8088e760cf37cdf4f605f7e0feb685ff |
|
BLAKE2b-256 | 5971b28c9df732630d224ca9ac0e95bd85741406c2eced566c20f6dc82249bf8 |
Hashes for ada_url-1.6.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2ae77943a95da021651cd0132b2b7060501a9c077d6061ce20f6e137388e133 |
|
MD5 | 52fcb05453e7887b733d660f6100da9d |
|
BLAKE2b-256 | 367c2aa636d6a73a5acef8a56fcbb5a5dc3e7a97abd5820cf22d93c6b5a9a3d3 |
Hashes for ada_url-1.6.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f8c0a8d995ac499733373dc5faa995ea38fb965d090230d06fcee1cb04f2eb6 |
|
MD5 | 31d0b6bbb7a1954d685109980037f192 |
|
BLAKE2b-256 | 4f7ac5032880edb3a489f7001ee277b778660ddaafbfce770ee488a26393c892 |
Hashes for ada_url-1.6.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8283162faccc6a54bfc4e2ca880cfc9372a068a18f5c0c31b5ddee737d4a90ef |
|
MD5 | 83091945071e1ed8c65f847fab3eaa19 |
|
BLAKE2b-256 | ef74dd46f4cff04c8a105188f05fb4b7224afdce04e8d9eb053bef56603d1128 |
Hashes for ada_url-1.6.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2315e7c502036b1bdb09bdf434d754ee36b5881bbffb9fbe45b439c205eb552d |
|
MD5 | 2214756bcc2932ee3032a5a4459b3837 |
|
BLAKE2b-256 | 5390a545e9861a2de4ab80859dd1bbd928588e22da6c54c5cc22e8ec4eacafe3 |
Hashes for ada_url-1.6.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4101affa486fdf280d283bfd1cf6f729a5277056ea10a658c319aef983b2c11 |
|
MD5 | 9446d6acb17d25c5ba0cae09bc00c12f |
|
BLAKE2b-256 | 15323f5a23d9430d0e7579ddafd5cbc3e051bdda618b7712b5fb222e82ace9e5 |
Hashes for ada_url-1.6.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 397434a5916c6f57cceee4aded4e8c5259cc02a677e14f6cbe61fa37c02d24bf |
|
MD5 | 143e7acb5ac020a1afcbbbf7b00eec9d |
|
BLAKE2b-256 | 13237bcd050a50a0d19f40969f67fc05080d73383662028205fcfb8d8188d7f8 |
Hashes for ada_url-1.6.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3612ef30205b47056049d7e0b88a241c27f51287bc576076d5aa4cac831a0e5 |
|
MD5 | 252d28f782c11ca5e614e8d56687b62c |
|
BLAKE2b-256 | e6531f5919cdab6076dec4a85903ce58129de74a962f8f539ab8c52e6e0d3a0c |
Hashes for ada_url-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3c708a5e0a4fd34fc7e9ea8d78533ae1df3a595ea46b659aa24e35a9c51245 |
|
MD5 | 0dc6ac8a363f87eb188d6716506d6617 |
|
BLAKE2b-256 | 6b6e57be1af637660d402ff3e7b99deb7cad88535afff12b9911a133388b84a8 |
Hashes for ada_url-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3508e41d368d3006a126746f1740a7757c3a44aafb553e2e3aa605655e4130d |
|
MD5 | 7a0d6460a7a4fb25e12a5534078479da |
|
BLAKE2b-256 | b190a48b932388873c65a5e4e2da8787c2d572e9ac6cbf26633a594af6d005b8 |
Hashes for ada_url-1.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8ac9cf9df3c4f02315c3051c39fabd736549c18a3bac9c0c34c4cc948c83255 |
|
MD5 | 670239b891505584933192fff03ad792 |
|
BLAKE2b-256 | defab002d1d8149cd922b43651d72b17a7ec3f9f6a31916bb66183fd0018d9cc |
Hashes for ada_url-1.6.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c876c3ca7d57d7d429a53b6dd782cbb3b343ff5d0b4d0aee49d244caf8996763 |
|
MD5 | 932b654d77af4772a03fdf381c3f9f6b |
|
BLAKE2b-256 | 2b028ccf795e822ba3cbc12e9fcf81c512a56165b2cc71f44b49e5ef38252c2f |
Hashes for ada_url-1.6.0-cp312-cp312-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50bf105a63e4d9258a2427de17ef715e0aa508a7e5bccf5133f142776d27f318 |
|
MD5 | 0287824dcb0ccee7be62a2b6d8152081 |
|
BLAKE2b-256 | dbc8fbd18277c7b3c0f8895754d9f9bae43fd2691d7be3919a09d94bb05ee91b |
Hashes for ada_url-1.6.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 463700131469545ec38f172a507f659250eba45cd417b7f1c06c7b7986e39c26 |
|
MD5 | 00c1a8f989a37f7cd3f66a376408ec13 |
|
BLAKE2b-256 | 93d9a5c8c9dbf05964dfcd0be27c37cd00642bb7f0b5161d4a4aeced83ea3ee0 |
Hashes for ada_url-1.6.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d64782e4d63d953f0e7b36d7cbea102574f5e043417feaa3e3f9c2b5d7aa6bb7 |
|
MD5 | 2bc7a895960d943acb083d5001c0b85c |
|
BLAKE2b-256 | dbcf7983efc9f0df866b1760bbc37683b563ad0caf7ea900132512a38b880a9f |
Hashes for ada_url-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98077fe5e7c2f354a5b303ddf20146c71dd57f15b519614c4c9e39977a203e36 |
|
MD5 | 9a8c363acf363b1f10902132ad8dce09 |
|
BLAKE2b-256 | 1bdd5e512594472c6c1ee0e1318b83b88744ee686231fc103ae955a9c4888944 |
Hashes for ada_url-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ee30dfc635623dbae43d177d38119077621bdc17787df8d2b2ffefd56b84445 |
|
MD5 | a2946df0d05c39594d5be360cbed709f |
|
BLAKE2b-256 | b0ae643308002c1bb0c31e786eb37f7b2e57d69928e0013650ec21d0a3a12823 |
Hashes for ada_url-1.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d955538e81a844e78fc5a837dc5e525c1fc78034daa2ae2c61258bd418a6d51 |
|
MD5 | e194c7e67e47de42eb3e490c9ce527f5 |
|
BLAKE2b-256 | 90268ce1b348b079ec514b7d52c2d893420d126a8e27624e8c40276beac1e1e2 |
Hashes for ada_url-1.6.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21172213388f2ae3a1266dbcb9dea62e7a6d6997dc213bbf26f073a0fc3cdd9c |
|
MD5 | 32bec19fa5af4b230de97b589105c83f |
|
BLAKE2b-256 | a3d35e47e99a7653f4652645bf3f6b98a301a6c69388b6c99a5ddf3f4e62db83 |
Hashes for ada_url-1.6.0-cp311-cp311-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 025916e64110fd147850d03cf36a1509e367768ff2c866bdd479eed9bd074250 |
|
MD5 | bfd9b243dc4fbf1cb0fe03d552756132 |
|
BLAKE2b-256 | ad696b9f937250b752172d4fc80b7b38522fdbf7eb0db7fdb083f9c5ef2cde5f |
Hashes for ada_url-1.6.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8ce63869fd8ff1c6e1e546f7aeecfb1e0858460f997a807b305370be5a387b7 |
|
MD5 | 1536e179165eb5e23165f98545eaffb8 |
|
BLAKE2b-256 | ea5caaeed06a9984a356bf13614947833c88b3a31955161f00d24560a01be6b9 |
Hashes for ada_url-1.6.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f84f3197e7b7f8bc5f1f2947c89fcb27e58bc80e7b12966f4c67be61104f2863 |
|
MD5 | 014a929141cde467d223d7a876c479de |
|
BLAKE2b-256 | e7c2770294edb56fb9032ee534ba3da37848b899f08ddff2f0e8f8e12f259abf |
Hashes for ada_url-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59c34913f4a0d5609384b2b653e805c63a344a4d292f3ace11fe27c0ff3bf1b2 |
|
MD5 | 1f3202b2379399e70740329750ac89dc |
|
BLAKE2b-256 | d4281462644b7c99354dd6b1e80e31a9ee2dbbe40c018149409eef535973a76d |
Hashes for ada_url-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a91bf8dd118f4b11dd4260027dddfda501bb04010ee41976d8248f7bcf46482 |
|
MD5 | 882b68be8b56cfcfc76f119215951338 |
|
BLAKE2b-256 | 200fd415241c46b6e6720fcf69872c33a3bbb60198b49a398f06e94885a64a8c |
Hashes for ada_url-1.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21bfc9b97cebf781d3aa704c6049278af4ccc1b14ceecbebe9f9c2a737447ad9 |
|
MD5 | 45a25c0b104178dc4236026b4b35fe5d |
|
BLAKE2b-256 | cc50da3c0a8009bf404ecc2246c3bb008bef673907778f94879403867efaf4e6 |
Hashes for ada_url-1.6.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4fb25dcf820b0a9242212ca5d70587e7f20486ea8b954a773ca7d31fa475052 |
|
MD5 | 445497e7077475dcddb99edcddb09a5f |
|
BLAKE2b-256 | 372251ead729bf54059183f8d48b3e49964f70528cd1f28efc6c3c687e242a16 |
Hashes for ada_url-1.6.0-cp310-cp310-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2998630f76be0bdaef8c5975b49cd7a570e705ebfa9132eb725f463208452a63 |
|
MD5 | 581ddaa07437b06027718cbc9be94bbc |
|
BLAKE2b-256 | 111fb51d343d594e1e574ac21fa8905e7a8658f1413026f2f5852e713db9e9b1 |
Hashes for ada_url-1.6.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03bf98fb64ae5acc3e03a3534aa3e9065f3b3504e3ae9abf291a856cfd48d915 |
|
MD5 | d2c7b1a1d0f2f4afc0aaa736e005da74 |
|
BLAKE2b-256 | c8d2ab25003fc4bd17d3bb8064b4db1221b074849ee2d44a1386f43bff78ecae |
Hashes for ada_url-1.6.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 153c96a43f84724a84b18ee87935657f948646bff53d1171034b568425524ae1 |
|
MD5 | b20a275cc74c0fe3cb745244be975287 |
|
BLAKE2b-256 | 4df7df04d842cb320049e0e7ac2d7c884a71379f31c9e40304fce6dac2b88133 |
Hashes for ada_url-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f30dea5fdf83dee8c2daecd87c70e5d9303686cbfc3687fe4aa6fae00ab9eb0 |
|
MD5 | 5a859d609bd87f3104d18131e5cfb832 |
|
BLAKE2b-256 | 65ab9c6247e10d755fcc64e70f88117ec1dc8108859019b0f694f6e648efd4ca |
Hashes for ada_url-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 814d17aeb5386d3d43da3d45a9c121292aea14b2f9bab52a5c4b57c28ae4caf0 |
|
MD5 | d8db61425688db63269336351a3c4eef |
|
BLAKE2b-256 | d927bf188a6ba6fae1d5c8abcd53578cf74c101be8d3a1d44a94bd5002cb1a11 |
Hashes for ada_url-1.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c1b42376531d69f4fe9afabe2272eb16f0d8a99ff9d40314839e620136df6c3 |
|
MD5 | d316458f89c1a42cf636324ccaadc83a |
|
BLAKE2b-256 | ae593744b2a7f58465997cc48691d480789f88268bbbb8e75c9893ecfa0bff62 |
Hashes for ada_url-1.6.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8e8fe78cbab2eb87f3dc16327c652ef1b9f04e290cd7fa8a41525d04b12093a |
|
MD5 | a658494006c959b8870a80f2b195c407 |
|
BLAKE2b-256 | 7f8859c747143a6b426bc633545d7001df01fae762ea1f75445babc3479b96a5 |
Hashes for ada_url-1.6.0-cp39-cp39-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c380910caf678fa115588205851b45f8ac2cb5cd8b206608308a290d1bec7464 |
|
MD5 | 8a69ef9498dcdf06294e4e262d3aed1b |
|
BLAKE2b-256 | c4ed4d51af6c0a3024bb491e699e8068e6188ee40c85b0deef0415c3e64f01e7 |
Hashes for ada_url-1.6.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73b8bfd8c6bc58cffd488edfc280f276aeacb81794f09eb7f9ebdcb679ac17eb |
|
MD5 | 22a1ed66b1d10f50b629e10c1f3ab770 |
|
BLAKE2b-256 | ee38de200f49cec0fee2cc96572c59b00c1d10ebe26138ee10352610bbfb4070 |
Hashes for ada_url-1.6.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5453b6875ebbf178942bcd3ab07582cfaf841efa903ed93f26ea6dfa191c721 |
|
MD5 | 9c398277490c47fb4273ab1927a34e34 |
|
BLAKE2b-256 | d8d5fe5be332b984b16af895c7e9a72f4fcbb6c2a6242285510588b9ed7ee303 |
Hashes for ada_url-1.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb1107a3e2bcb219d20a351336adb1e23d8bf911aa7d81200ae48e19322ae88f |
|
MD5 | 5ee5efd1b0002c2b4a1972958c0ae842 |
|
BLAKE2b-256 | ce023713ec71fcfe3ac8d06dc8294188a98c85bb97a657f88ebeccbb7da2cdb4 |
Hashes for ada_url-1.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 335c7f254fd75d8f7c792d2380d13446862dacf8251461c6b735f62010ed03c1 |
|
MD5 | 9638605338b5d2ee35607aabc668d794 |
|
BLAKE2b-256 | e186d715ea672a032de62788d7bc9e0fbd581aa5aac0f0146a7009cfa9a3c303 |
Hashes for ada_url-1.6.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 680fdf9701eafcc43796c9c7459e173c8682c8874196a6db6088e18e632233f7 |
|
MD5 | ff394a8dd3fc0dfca0b1311556aa4f1c |
|
BLAKE2b-256 | a5f295ac48aa1af564fe9cd9fa4fb1695b77a5303bcb1ba71167754490f88bbf |
Hashes for ada_url-1.6.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f1d411a90e94e78fced502e685d59d1fb41dcdf5c6d321fd49790ea9ea00c22 |
|
MD5 | 02f839a52ffdd0008594dc35403f1472 |
|
BLAKE2b-256 | 9113e7cb39ad83626af0b0273600ab83181162f987709aac25abb4735d804804 |
Hashes for ada_url-1.6.0-cp38-cp38-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af9775a5271e97380584d739914215472459a3f28626d2951318a88d6440a53a |
|
MD5 | c734d0c618a8c94c4ce6602793634441 |
|
BLAKE2b-256 | bd695f3a58aea1ddfd413f4a198bac9d939729405d7a03947982d9eb79a14457 |