'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.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 036a69d3134a6083584c41a72f6c980e2665c77ec4549cc5a9afcc7225c7bb99 |
|
MD5 | ab189414ac34626dac41c2a68177675e |
|
BLAKE2b-256 | c9db401dc5155ecf90327272e35e97016447fc4a26210bd6cd6829cc18f56d82 |
Hashes for ada_url-1.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebe0a02753231149c0a9e79363145c57a6d03811b6ad5d8cbdb8fada3d78cd91 |
|
MD5 | fd709719fef325433e6a8e1e23553926 |
|
BLAKE2b-256 | be5e73c1b1a909b45a99fddb0e37e85f84fd47c60011a4498c225f64dfd636c4 |
Hashes for ada_url-1.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc907f7e93a2e0f06c98a08a3f88f67e0276cef562f89a2f03d53ef0c4857f6d |
|
MD5 | 1dfffade4962ecc0c2b7d612adad16e6 |
|
BLAKE2b-256 | 5b987d74f97cbd84eb2a5460b504192481ec30d77dbb852c04e52529af113d9b |
Hashes for ada_url-1.4.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98ee92faa6ac7338264d97a629c339a97ba6499d4d2844899ef3f78bc4920b37 |
|
MD5 | 123812470216547c7eeb7ab610cae48f |
|
BLAKE2b-256 | e652adb2fa88af8e7624dd93da9a018c08673f773e89a88d5a20607a5375746e |
Hashes for ada_url-1.4.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bfae03e4c6f00af31fbd74f05d771e884e14612b945114a82d18f4fce7f2b3c |
|
MD5 | 4e1ec5d87baa06ca9bbda0d7a6ec0915 |
|
BLAKE2b-256 | 0d46a00876be66b9f963d73be436a6962a66392c243c32b15567a198c4c115c6 |
Hashes for ada_url-1.4.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2588003e2d82f365e00b9927505dbcbea6124846d0a7ed38334b913a467a8fce |
|
MD5 | 64978cf8fb8f551a97ed03e1e8b7763e |
|
BLAKE2b-256 | aeb84e5630c0d9705da9c45228ef2f93de545ee9d2b40ef14ae7ac847869b31c |
Hashes for ada_url-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edc95ebc60c1110235edb093570a52722fa8ed5fe1f574abba2d8d21ae49e6f5 |
|
MD5 | 6e9a40f39480702d113bc97c29a96940 |
|
BLAKE2b-256 | 16d4ed0f20e81a8d334ed7f8b8f59c7288e38b141b8884a3ec070115d85374d2 |
Hashes for ada_url-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07a27c34dd3b3173fbcbae90545e44789cc3a8cdbb872d73d0d62f5d733b7bee |
|
MD5 | 5cd5a2599913f38d8022187a718d3a3c |
|
BLAKE2b-256 | 4be83c1c8216a86c9158353f74cc7d7d68c74ff03b337e09d8fedf9bde15f0da |
Hashes for ada_url-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0d6747b956ae2677d15116cad62d6c66e579364af7c89450a9ec36359d57e16 |
|
MD5 | 914792985424c8e84a17a91b427eca18 |
|
BLAKE2b-256 | 676257187119be148f4f83712e73308005fe3d4b7c0b0559334110f84ad73599 |
Hashes for ada_url-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d21ea311126b7db9ccbe3fa65dbeee4e964b22434dd860214eb5cd7e4212b301 |
|
MD5 | 037c0306bfe7b24bc242cb5ffc951753 |
|
BLAKE2b-256 | 0e72ffab9b190618d23adcda05cdbd9383a66d0cd59fc4c4c4e3ccf70a9f29ea |
Hashes for ada_url-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed38379b1282dda95ccc9aa4fae9b20b2219b5771875c07249bc0c59185ec495 |
|
MD5 | da604ef0552aaccba1520aec2b44e6ec |
|
BLAKE2b-256 | c045f8bba5be9e60cee68883b2f49e1332a0d68908f6cacbf2e5cbd82dc40e98 |
Hashes for ada_url-1.4.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc43bf49251bd175fed728b9b156841a8bd472dea7be6fe46abfab92232757be |
|
MD5 | 6840637d1adc8fd377dfd17e539cdc83 |
|
BLAKE2b-256 | ce1b981bdc02cd6c0cdb237afd3ad87126e22c56bbc8b349bc45230c7ff2a119 |
Hashes for ada_url-1.4.0-cp311-cp311-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2636447e3580ab651ad91f6d8b0d363f3eae12997d2df4a5a1edc991d862e218 |
|
MD5 | 361c960822235311190d71f1c8b26c95 |
|
BLAKE2b-256 | 767f7c717d6e198c2228f01757e9db7f104e319ffc77d8af5ad320b1772d1809 |
Hashes for ada_url-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 622f20a2afa8a92868a1ec3a420d444c28d1b4d18f81c2bbdcf5b8d64cb35aad |
|
MD5 | edc7aa705ffd1fcb5eb4f077959a9399 |
|
BLAKE2b-256 | 77efc9c571743f597733bff93c7cfe74810aac9b2f9a49c98fc38b90d2bc407f |
Hashes for ada_url-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 502288a65287108c6f0247d660782490a7603f5aa922d1d711bc47dbf27c2454 |
|
MD5 | 20d385d75c039cd5d2c8215c31280491 |
|
BLAKE2b-256 | 1ed36e0cdd30dd23d8e85b906715833ad5ab0eadf3200deac5547ce912c8f52c |
Hashes for ada_url-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ab9dacbc7ab4e33fa70bd9ba2b062ffa8b83b5916849cf03770ab3c18e1c948 |
|
MD5 | 9ac7ef37041059fc38233d729e2eeddb |
|
BLAKE2b-256 | 76b7d5d67c685d54c42ecff99cf393d02a09a4413b381b3dcde85179f3ecae15 |
Hashes for ada_url-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5614c229c6bb60576db192eb351eac0a5882a606b1d399b71dce55d4b1b0640 |
|
MD5 | e8dd52e0f25ad554568b257a27511fef |
|
BLAKE2b-256 | 954804c2a3f85f729d1091ed76653fb3c356dc9eb178bbf75632fa20318ac63f |
Hashes for ada_url-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceacccac48cb64efbe63b8f96c65e74a37befaf90f8e8da050e64ba6214411ba |
|
MD5 | dac3ef54c96ddcd26d2d718b0a65fb78 |
|
BLAKE2b-256 | 266e512eb37b208ea2f1c11546b03a94de06adb934147ae341a4889a902c96c7 |
Hashes for ada_url-1.4.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a9b69857459907523e6f0bd5ac58a11f080f53e7d6c437be8390830a1eafde1 |
|
MD5 | 684fdf549e67310bfa479de253c79be0 |
|
BLAKE2b-256 | 8101d0fb5be43806acf224082bed96ce2916c1788d6edba439a0e604c05cbc3b |
Hashes for ada_url-1.4.0-cp310-cp310-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56796df56d71e3919deb07417a82c85331e259703a85cb34835751b7b46dca8d |
|
MD5 | 1ecc5a2b7a38cfe4e3eb132f593438ca |
|
BLAKE2b-256 | e7b7aa559d711bf1631f4a539e1f2f62fa58af332e1fc70f4128c360c9568ddd |
Hashes for ada_url-1.4.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bfdf00674c0e44531b807e9d223d09fad4a60cb1998898ba425dc91edda58d9 |
|
MD5 | 8276da9303863e03da89466fbd0c3e67 |
|
BLAKE2b-256 | 88e88ae323bb1b833e1cf1309a584c49a7d8ad58498b54c4016143351439a354 |
Hashes for ada_url-1.4.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10a29b36294c0f80bd15f09e5ce9a6423dab8ea725dcf9905bbb293574a69995 |
|
MD5 | e76725540cf3421edc4479ebfc7f1f25 |
|
BLAKE2b-256 | 0627a943c71000edd4f9b07bdf57d4ec8936a3ea8f444669cbea24137395c3d9 |
Hashes for ada_url-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c0c260b5740750cfafbc3a26f8eda3de655112f1b9687c40fcaf0ff4797c787 |
|
MD5 | 4067bc3d23fdc667df858ef52c3af54c |
|
BLAKE2b-256 | e1a0fc9efb41da171440b48d1483ed15eb2b426381cc52b2b845ed230a8428bd |
Hashes for ada_url-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dc3692ef4126fb0867e8816946021500e82b4d1fb27773337c64a6282340830 |
|
MD5 | fd4e71340fa94a657bbd65fb404fe640 |
|
BLAKE2b-256 | 5bb4f2e7eca4f47d0edac9cd6870849d27054160da3ef641d8301ca5d98fe8cd |
Hashes for ada_url-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c490a156ad21f50fd2f9b79a323c9f8f48aa034f89acf9b72929d8673ce600c |
|
MD5 | 7df8a7a6c0319def91f1c54fe51c8c60 |
|
BLAKE2b-256 | 475d01a9c1fdf8357440a5ceedd1248bcb2c9b7abc37590f53eecded20ea996c |
Hashes for ada_url-1.4.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d98fe894f7033e353704f5ccb91ccb7642aedf3cdd32803b662c990a554c7c6 |
|
MD5 | a8da38f6e252de82534d990c22713be7 |
|
BLAKE2b-256 | b95a561f2f5cfe1e66619c22dc7d32655ad0fc9acd5fbabbf03b9bf98afc9473 |
Hashes for ada_url-1.4.0-cp39-cp39-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da1c0d9f135e3ee67b8353e406011e06a0cc78c1a48304d092338344989b1877 |
|
MD5 | 7603343fd85ac4b56a2cdee9892a36ef |
|
BLAKE2b-256 | 8f7fc6cc31f8bd42aadef364026aad559abdf7ff15f3c883cdb3eb9f48465667 |
Hashes for ada_url-1.4.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db84fe0fa26d45ab95790d435999975edba5328421b9eecc8d68c3472680d2b5 |
|
MD5 | c75bdb738ccd863f7f02316572b638ec |
|
BLAKE2b-256 | cb562444598bcdf60f6c4a867e937fdb880b1fd56512a4c8224d1571c11de28d |
Hashes for ada_url-1.4.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08ba88d98c9effbe624ec804bb0fe7f7e83f9a0fffff1ddc341ba830db3d3a6d |
|
MD5 | 1f5f750bf8860e53166cb3e5c599d1ea |
|
BLAKE2b-256 | a59b17819069675f54a5b86dab68e5c8e5cc7ee0dbf1fbabdbe52077c08607b9 |
Hashes for ada_url-1.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77c815411e8ec547badbf41b5e68065a70e2aa9a77c31c0cf93c8a3d5af30831 |
|
MD5 | cbb66c6e26a77965f320fc75a4f6ccec |
|
BLAKE2b-256 | 2a7a7c75dd002526b93aa9c2adb48e024408c48f623b707d4fe6fd8f05016027 |
Hashes for ada_url-1.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09905720885997501b7cb85d691c062de3a3cda566e5149af7f2c1c95d72db83 |
|
MD5 | 1b958eac6c859399f4222bd4672e4f82 |
|
BLAKE2b-256 | 9ee445d8d84fc84e29c2ab49159c9cde7c302e7be418bfc5a8c9637d000959aa |
Hashes for ada_url-1.4.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 654354b818f67e3a1a82842d36529cdc5e5a42efa17b02642c8226fc56228cc4 |
|
MD5 | c13b1a04a8027ff601d6d50c07f4947e |
|
BLAKE2b-256 | 1a4e0e0cfc9f40fe5cd73247c36642f084ea14b265906986be8347e4d5ea27a8 |
Hashes for ada_url-1.4.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b051177bb676eb9a4a0e6a6e503fffbb47a124978f72cdff38a5717bfeba11db |
|
MD5 | 1cd9a37e5ca0aafb791b34ab5d79aa91 |
|
BLAKE2b-256 | a4e0cb730df36eb36b96f1350798e5e03e2c0ffc2967a155c1fba02053a76550 |
Hashes for ada_url-1.4.0-cp38-cp38-macosx_10_15_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1f6e04196ff73044a2db4f2626bcc5b0b5726c0930c1141456c4684bffa3a47 |
|
MD5 | effc7a7d69be11eb8a9f074b2121abe0 |
|
BLAKE2b-256 | 3d121c374b03a6d0345bb0cae46904905f9ce1bc99151873b7c71e0bee5747ec |