Skip to main content

url-normalize

Build Status Coverage Status

URI Normalization function:

  • Take care of IDN domains.
  • Always provide the URI scheme in lowercase characters.
  • Always provide the host, if any, in lowercase characters.
  • Only perform percent-encoding where it is essential.
  • Always use uppercase A-through-F characters when percent-encoding.
  • Prevent dot-segments appearing in non-relative URI paths.
  • For schemes that define a default authority, use an empty authority if the default is desired.
  • For schemes that define an empty path to be equivalent to a path of "/", use "/".
  • For schemes that define a port, use an empty port if the default is desired
  • All portions of the URI must be utf-8 encoded NFC from Unicode strings

Inspired by Sam Ruby's urlnorm.py: http://intertwingly.net/blog/2004/08/04/Urlnorm

Example:

$ pip install url-normalize
Collecting url-normalize
...
Successfully installed future-0.16.0 url-normalize-1.3.3
$ python
Python 3.6.1 (default, Jul  8 2017, 05:00:20)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
> from url_normalize import url_normalize
> print(url_normalize('www.foo.com:80/foo'))
> https://www.foo.com/foo

History:

  • 1.4.0: A bit of code refactoring and cleanup
  • 1.3.2: Support empty string and double slash urls (//domain.tld)
  • 1.3.1: Same code support both Python 3 and Python 2.
  • 1.3: Python 3 compatibility
  • 1.2: PEP8, setup.py
  • 1.1.2: support for shebang (#!) urls
  • 1.1.1: using 'http' schema by default when appropriate
  • 1.1: added handling of IDN domains
  • 1.0: code pep8-zation
  • 0.1: forked from Sam Ruby's urlnorm.py

License: "Python" (PSF) License

Metadata

Release files for url-normalize 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for url-normalize 1.4.0
File Size Uploaded
url-normalize-1.4.0.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for url-normalize 1.4.0
File Interpreter ABI Platform
url_normalize-1.4.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 17.4 kB

Release files / url-normalize-1.4.0.tar.gz

Download URL url-normalize-1.4.0.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0ed30fb5fb5bdf16f9321b43fac13ab507e75a1caed2c0e21de8c27714ecdca3
BLAKE2b-256 checksum
How to use checksums
15a0f45fea8189984f3e3aec83473e8f3516b729efb68b9e546c206f929bca1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.6 CPython/3.7.1 Darwin/18.2.0

Release files / url_normalize-1.4.0-py2.py3-none-any.whl

Download URL url_normalize-1.4.0-py2.py3-none-any.whl
Size 12.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
61a28f7aa7ed7825764c57b64d977eba04a9da7ec5e3564dea6671acd61e4ac3
BLAKE2b-256 checksum
How to use checksums
8226389f2d3424f52fb3e858235f7a35d8ebcc9ebefab449078f9ab4e996c795
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.6 CPython/3.7.1 Darwin/18.2.0

Release history Release notifications | RSS feed

3.0.1

2 release files

3.0.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

This release

1.4.0 This release

2 release files

1.3.3

2 release files

1.3.1

2 release files

1.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page