'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.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3352b390613c8e4227664f8554dac92556f93bb4055dc15d51a1d62b355305a6 |
|
MD5 | 5fd4203e35f2a3d21ff26cfc59e4e9b5 |
|
BLAKE2b-256 | a5cd80039bab12367b13b27182a4990640e16ed72a899806fd365bfb80b6f62c |
Hashes for ada_url-1.5.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86da84975c28f30a04df04ff324ef6e85b554f92c9e2ec42fdab2736b7c485f4 |
|
MD5 | a8ac8617ab56ed09bfbbbc2b2a14c207 |
|
BLAKE2b-256 | 97779adadc15d66dadd0940fb33ffcf5611fe484b830b8b3eaf2e3a10f2cff61 |
Hashes for ada_url-1.5.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a1d3a974dbc373b03a4999fa5b5b8e922307fd202881f22cb75f7fa0cb5a4bb |
|
MD5 | 172494021ddc8fe13f25bbfc595f1f23 |
|
BLAKE2b-256 | 5cf32bd72b9804d8445c155f10a548f5c09bb8c366591d89934b699be21597b7 |
Hashes for ada_url-1.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f9da9742c53ea94191cf55d5ac35ccac61c92385449084d7de2fe53b9f52dc7 |
|
MD5 | 0abc80d6f680a91ece3848d7bf130276 |
|
BLAKE2b-256 | 4655647f0eb3c54c80cf6a4869eba57bb6fa992c5660dead180c29872e9a4897 |
Hashes for ada_url-1.5.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ed7cc4b5e4790393d561d6149d3d7d9a2cb5a5601abe765110ded080611590c |
|
MD5 | d44450252edff4ce88623abac3e98e2d |
|
BLAKE2b-256 | 640183cf6307ee684f3063cc0a1d518a64c58f5c4b04ae58fe113e2c64cf076d |
Hashes for ada_url-1.5.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c74291331211210af05d8218c4a38de1621c0c5e777419be88ac9da7eb652f8d |
|
MD5 | 9bdeca73803fde01c8f10cf5403a9bd5 |
|
BLAKE2b-256 | 1f178096e299694eaae762d2149fd73e9e272c26e17fbde2ef92c5d6c1970e52 |
Hashes for ada_url-1.5.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a95f35fbb1beb1997415127f5e21c8f28dabbdeaaa32b737e886665ec9a7021d |
|
MD5 | ce8f3518bdd5e31f2aa2e43f8e404c61 |
|
BLAKE2b-256 | 7b4b29cc395f15b0d4feb633ad335bf722c88e9228696a607798bc52fdef42ba |
Hashes for ada_url-1.5.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6c634af993326c17f65ed8c49a271ddab8f22e2175e1f91c8d800e522cb4722 |
|
MD5 | 4f9dc2a31a70bbeddb20c13655f5511d |
|
BLAKE2b-256 | 27032a9c75f34b630c0245872550c94e459753621c760ac2838338c26462d319 |
Hashes for ada_url-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c498952e9fe434a0889b0e2ef38f7eb2cdcd1c753e4a132acbcdb3e3eb5cadf6 |
|
MD5 | 990410805188f784f8b53c9f7e9ec9a0 |
|
BLAKE2b-256 | dd40cda7b9ec54470623458375f0902454ad5b77f9fd77bb24667aa856b49d58 |
Hashes for ada_url-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24559397e6d72bf156333238a78e261732de99ed2535bd50f352f15b8ac4b377 |
|
MD5 | 3240632b2db606093e231b713e550735 |
|
BLAKE2b-256 | d78ce70da370215e25b58217bf67834d42809d47ed1ea871123f934d6652529a |
Hashes for ada_url-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f9fb7a0d8d9826b0b20ca6df75f166e395551da6263db20de3024e10bfcd533 |
|
MD5 | c64cf4d00ebc15f8117094bbaca0fa3b |
|
BLAKE2b-256 | b25d2813ddb8c8890074762554d0547ea1ed6e0b3156769ed11d918db1733500 |
Hashes for ada_url-1.5.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01d8549aa4386c13d264ff35202cf4a0884b6303f223777752681cfc5c35eeff |
|
MD5 | f2279d33036bf09ca71adc54bd83af45 |
|
BLAKE2b-256 | b8504c35835ac4704379ef5f910f3b446d4093148c8042f891650e157c362088 |
Hashes for ada_url-1.5.0-cp312-cp312-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e500826db70bb2d73b888fa946d067104ca576389ee92997277c84ba4c5e8718 |
|
MD5 | d0067cc51418e72c94eaad5b8aac3ed5 |
|
BLAKE2b-256 | a51df37187cfc8761b826aec1f2a231aa47fec466fbe13913e6f70d3662b4f2c |
Hashes for ada_url-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c75ba77ce08107a5d2af5e31711015ddf86204dcfe7eb2c7bc3795ab1f19ead6 |
|
MD5 | a2fcf581bc3066f1b872b666317f5e2b |
|
BLAKE2b-256 | 0df8878a3da40f25e9a5ce1f5f85248bb8e0871f309a3703d9ee13179051ca20 |
Hashes for ada_url-1.5.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b9190d0539532deb2443daabf42189cf82e356a0e159a4c8014bb7b78e704bb |
|
MD5 | f8171f5802b99e81491862a81f7f2f76 |
|
BLAKE2b-256 | f97d52e597c7bd7d9b4efdde91b85c58e7a1ec61d2269cb1a2ba86a196957ec4 |
Hashes for ada_url-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39bd7e2e857f127f37671d1cc00334b9d6be1b7ac5cd41c2c4f00fc375beefdd |
|
MD5 | 3c3c231993780ab15be286fa61073d93 |
|
BLAKE2b-256 | d3a3fce5b3323ee8936ecba0d59a8fcc0737e89db652ed038fa5cddfec56d748 |
Hashes for ada_url-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94821c5d796b920c1d6e75e661066f4f3fc8c2c71d931ea500f36266241f16bd |
|
MD5 | ddcd086c7618c8996274b8e9f7e89ed0 |
|
BLAKE2b-256 | 1af04e34da5f6fdda338163e6041b80c1aaefed222e8b524fd4164f8bc9bd235 |
Hashes for ada_url-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3b1516d80d60652ef5471cd8aa3d8d045d2e6b473fb769dea97eab922b86b00 |
|
MD5 | 099b7d6347f1a5ba67024f46b2e36c6f |
|
BLAKE2b-256 | eb52cb8d4cd8c47fd2474f53aaf08abf84a6df3e88803ec2fdc6e9b4638df5d9 |
Hashes for ada_url-1.5.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ebf12672bb51424dfdf3cf507914870d20f55855531fd36be42fccb4e2fd88f |
|
MD5 | 9377c97e4d47d23f49ec7a09de8d69db |
|
BLAKE2b-256 | 9985af75b14490d6625081d4a0803554aa211ffbe13a6414244aadb3abaa82d3 |
Hashes for ada_url-1.5.0-cp311-cp311-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42e198f8a7f666d7a6eaa45f7725ecd6bc801a2bdf35d246e8651e0cd1703dca |
|
MD5 | 4457980f31e5aededa9a32388217eb49 |
|
BLAKE2b-256 | b434f8f8462e0000a2763d5fd73fcdaa9245b7d2a36ddc4b4f18b0837784f882 |
Hashes for ada_url-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12baa963a8d2e8c8db0f66a3cf3a7c058f1a3e3c6d256996d9bde4c264019069 |
|
MD5 | 77e27e8d98585aa53df4a778071849cd |
|
BLAKE2b-256 | 402a4855432dc6cc3faead7d57efe3c8d2f26fd043977e3d557d2248a6a6ffae |
Hashes for ada_url-1.5.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 947319c169552991d4dcd813174199d5c5368c24776718bbd5561cf3839d4639 |
|
MD5 | b13b4b3c2b98ceb2df7d531ed49f188e |
|
BLAKE2b-256 | 1250087f47d353711ef1b2e18068e789f6ffde166eddc667c55e1481a1672db0 |
Hashes for ada_url-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a32b5414929e602574d6ec73d22c2b659c0d17817983fcc704776db60fed051 |
|
MD5 | 0cc867f9895d6e2178cfac1996b16f23 |
|
BLAKE2b-256 | 2c48f8e65e35aa6e21bbdd6e2b78b3ab1abc2331a2afaeec4ef4e24094dfbc02 |
Hashes for ada_url-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52841bb16124140f02090785eee6f34217e0f00ef0def61833c7a2566c54af4d |
|
MD5 | 9b9e104e1532eb41e125322090eb5921 |
|
BLAKE2b-256 | bcb91bd3b8653aeb64c672e06ee38a3056c80da21688bc454eb02800e8724cb8 |
Hashes for ada_url-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5478a7fcccfbb6e3cdac539e45a0a9c88ae7c3c177dfd97c717379d9e00bda5 |
|
MD5 | 15550c9715c2b36f07c65c604e22cc4d |
|
BLAKE2b-256 | 4a735bef90ed29823c3cfb197458ca073d3f3128bb028b7b9d9d997f952c9a37 |
Hashes for ada_url-1.5.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a926a7926f3d7e29c8a719383bcc8e0c5b80500d71c7165aea24e2af63712779 |
|
MD5 | 87dc18b2a6550c33b01ee966505d7448 |
|
BLAKE2b-256 | db05d5832acac1e0d9c0466b8aada01b1bfcce7e4907839011aad1a52b5429b8 |
Hashes for ada_url-1.5.0-cp310-cp310-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78ea43ff3784226df48a4629271f87af97ff5e9bbb079f81b4e40c8221cd95a4 |
|
MD5 | 5d8019a004020794a84913f68d7e8e4c |
|
BLAKE2b-256 | 10beaa53905dfa87d9281681a01852981872181c9fdcaa7de5a3b574462bd2c9 |
Hashes for ada_url-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a037466f79b42eae961c02c761d82981e23b4a714bb8ea2915170c910b8746e |
|
MD5 | e3fe447172e0ede23b069108829f8dd3 |
|
BLAKE2b-256 | 0cecde70773c6b336586ba58e7d8a8258497df845bfde7a08f76f7027ca68bd1 |
Hashes for ada_url-1.5.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d72401e95e35c371a84719ae6c1a7b095ebfb40313e7a3cb411a75cf5f6a6a20 |
|
MD5 | 899ca6be3b0bec2470b52391466af309 |
|
BLAKE2b-256 | ade6a082618898629a8716eb0d664429152f555fe917e943c5e16e259d850be2 |
Hashes for ada_url-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a4c71e742e493f92c431f1df0f0d28f1657eae036730bf7757a287e189a4170 |
|
MD5 | fdc39466ff27cbc47dc4f99d4aeb775e |
|
BLAKE2b-256 | 578235ca2d4e65695c16340be649b95a8be49d568a7de410c44741030bc5baf2 |
Hashes for ada_url-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e9165af4e92e896b0fde7b2e7d015409d070849891ada4bf24c65974fb9df1a |
|
MD5 | d6afb72d880b5817101c20cbfe15a7f0 |
|
BLAKE2b-256 | 4403ab3e3c6adc425f8d9092ed65608338ac0f53adb8c8e949a973f103d13473 |
Hashes for ada_url-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b61803ca8ab4d48e5b280fb49e16e1c253671e08f6d706cb5a274d49d12b5d63 |
|
MD5 | d04d66606e0a69052c6c814d3d2d77da |
|
BLAKE2b-256 | 3fb9f2777a72f67feb4b9be4c0ae1a160ef182b0f3ecde4230300f92fcc7f623 |
Hashes for ada_url-1.5.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aefaa403200c450aa57116fbe01f90704aeb65dbce81d028f9274c3376ebed05 |
|
MD5 | f2d5e626c103c93eedf796c7d6450da4 |
|
BLAKE2b-256 | f0665d163c3ff7ff6fb806d235d04514feb33c387d99877a5c498b03adc168c2 |
Hashes for ada_url-1.5.0-cp39-cp39-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fd208213f0d00e039fa0bdf0911eabd762cf68faa21f584d3dde1d918b1da19 |
|
MD5 | 227bc72a73e7da5cd3371ae1bb7603bc |
|
BLAKE2b-256 | 769eb33396573c57a04c6557d6f42f63b813bf36c854ba3153c6cc48ec465ef4 |
Hashes for ada_url-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a458103de141d01a577349c053a6a178ad3394d2b499b0135b77e5cf4b09f548 |
|
MD5 | 84f37ea66980c0137c4c6b19c612ab0c |
|
BLAKE2b-256 | d696022f9f8d1629975c7eb470305e8b4da581c2d130c6402e43e3e7e2d0845e |
Hashes for ada_url-1.5.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de1b06aacdfbd865566f9eb61de4eb232d87ef1171abfe6d1e44f88810183323 |
|
MD5 | 80ed1e6425ef06d6ce6bc3cbdb205028 |
|
BLAKE2b-256 | 19d8823e969ccca53241d9054b09afebcba09b4febe031eaebf58316ff56acc0 |
Hashes for ada_url-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1174efce9b1589479765216bdf84249d6166637e776d4295dc5dfce390744ad3 |
|
MD5 | 72864918b329fd4f3c08ef68ce1aecc6 |
|
BLAKE2b-256 | 81b3159face26891791b492e7983ae947aa9696251f68b0afd890da5ebf81f82 |
Hashes for ada_url-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8d183718fa3af051811ec373bae0eaf6700fbd5e4309110a1d7e88f39b3dc87 |
|
MD5 | d597b07bd72679c0f54d20e172653a97 |
|
BLAKE2b-256 | 4d93365903482d552095f8a9989a4f22f06a7788e0809f73fe740a50d8acbc31 |
Hashes for ada_url-1.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca428738abab373cbcb02815bf2304d66c59e7b1ed3444b020f2bcb49a2b7eda |
|
MD5 | 84ac1d5921de2a90a88baa247c194ed5 |
|
BLAKE2b-256 | 06d54f116cca0e8fc792081d4d5763996bae25e242c91fdfc71338b8008768dc |
Hashes for ada_url-1.5.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a584372fe8ebed10fce85d5312d6859e324c23f2138ed200f8acc746d1b6214 |
|
MD5 | 56a3ea2d69756c11aa61ded7726657a1 |
|
BLAKE2b-256 | e6d46e722e042064a9df8d2c40efe72a78358ec2e3f60a81beee5ab48be93489 |
Hashes for ada_url-1.5.0-cp38-cp38-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cc9af3a9f66524aec0506e9a09539f603ad1a324f88381e3d88034a15f62a51 |
|
MD5 | 269228bcb2c60afc4d0aaef083ee1168 |
|
BLAKE2b-256 | 966547b5fa4c269a0c2b35c648f4d378fa0b3b12773bc661c1d67ac7f1c79cbb |