Skip to main content

Yet another URL library

Project description

yarl

https://travis-ci.org/aio-libs/yarl.svg?branch=master https://codecov.io/gh/aio-libs/yarl/branch/master/graph/badge.svg https://badge.fury.io/py/yarl.svg https://readthedocs.org/projects/yarl/badge/?version=latest

Introduction

Url is constructed from str:

>>> from yarl import URL
>>> url = URL('https://www.python.org/~guido?arg=1#frag')
>>> url
URL('https://www.python.org/~guido?arg=1#frag')

All url parts: scheme, user, passsword, host, port, path, query and fragment are accessible by properties:

>>> url.scheme
'https'
>>> url.host
'www.python.org'
>>> url.path
'/~guido'
>>> url.query_string
'arg=1'
>>> url.query
<MultiDictProxy('arg': '1')>
>>> url.fragment
'frag'

All url manipulations produces a new url object:

>>> url.parent / 'downloads/source'
URL('https://www.python.org/downloads/source')

Strings passed to constructor and modification methods are automatically encoded giving canonical representation as result:

>>> url = URL('https://www.python.org/путь')
>>> url
URL('https://www.python.org/%D0%BF%D1%83%D1%82%D1%8C')

Regular properties are percent-decoded, use raw_ versions for getting encoded strings:

>>> url.path
'/путь'

>>> url.raw_path
'/%D0%BF%D1%83%D1%82%D1%8C'

Human readable representation of URL is available as .human_repr():

>>> url.human_repr()
'https://www.python.org/путь'

For full documentation please read https://yarl.readthedocs.org.

Installation

$ pip install yarl

The library is Python 3 only!

Dependencies

YARL requires multidict library.

API documentation

The documentation is located at https://yarl.readthedocs.org

Comparison with other URL libraries

  • furl (https://pypi.python.org/pypi/furl)

    The libray has a rich functionality but furl object is mutable.

    I afraid to pass this object into foreign code: who knows if the code will modifiy my url in a terrible way while I just want to send URL with handy helpers for accessing URL properies.

    furl has other non obvious tricky things but the main objection is mutability.

  • URLObject (https://pypi.python.org/pypi/URLObject)

    URLObject is immutable, that’s pretty good.

    Every URL change generates a new URL object.

    But the library doesn’t any decode/encode transormations leaving end user to cope with these gory details.

Source code

The project is hosted on GitHub

Please file an issue on the bug tracker if you have found a bug or have some suggestion in order to improve the library.

The library uses Travis for Continuous Integration.

Discussion list

aio-libs google group: https://groups.google.com/forum/#!forum/aio-libs

Feel free to post your questions and ideas here.

Authors and License

The yarl package is written by Andrew Svetlov.

It’s Apache 2 licensed and freely available.

CHANGES

0.5.3 (2016-11-02)

  • Don’t use namedtuple fields but indexes on URL construction

0.5.2 (2016-11-02)

  • Inline _encode class method

0.5.1 (2016-11-02)

  • Make URL counstruction faster by removing extra classmethod calls

0.5.0 (2016-11-02)

  • Add cython optimization for quoting/unquoting

  • Provide binary wheels

0.4.3 (2016-09-29)

  • Fix typing stubs

0.4.2 (2016-09-29)

  • Expose quote() and unquote() as public API

0.4.1 (2016-09-28)

  • Support empty values in query (‘/path?arg’)

0.4.0 (2016-09-27)

  • Introduce relative() #16

0.3.2 (2016-09-27)

  • Typo fixes #15

0.3.1 (2016-09-26)

  • Support sequience of pairs as with_query() parameter

0.3.0 (2016-09-26)

  • Introduce is_default_port()

0.2.1 (2016-09-26)

0.2.0 (2016-09-18)

  • Avoid doubling slashes when joining paths #13

  • Appending path starting from slash is forbidden #12

0.1.4 (2016-09-09)

  • Add kwargs support for with_query() #10

0.1.3 (2016-09-07)

  • Document with_query(), with_fragment() and origin()

  • Allow None for with_query() and with_fragment()

0.1.2 (2016-09-07)

  • Fix links, tune docs theme.

0.1.1 (2016-09-06)

  • Update REAMDE, old version used obsolete AIP

0.1.0 (2016-09-06)

  • The library was deeply refactored, bytes are gone away but all accepted strings are encoded if needed.

0.0.1 (2016-08-30)

  • The first release.

Project details


Release history Release notifications | RSS feed

This version

0.5.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yarl-0.5.3.tar.gz (115.5 kB view details)

Uploaded Source

Built Distributions

yarl-0.5.3-cp35-cp35m-win_amd64.whl (67.6 kB view details)

Uploaded CPython 3.5m Windows x86-64

yarl-0.5.3-cp35-cp35m-win32.whl (65.2 kB view details)

Uploaded CPython 3.5m Windows x86

yarl-0.5.3-cp35-cp35m-manylinux1_x86_64.whl (123.1 kB view details)

Uploaded CPython 3.5m

yarl-0.5.3-cp35-cp35m-manylinux1_i686.whl (117.9 kB view details)

Uploaded CPython 3.5m

yarl-0.5.3-cp34-cp34m-win_amd64.whl (66.5 kB view details)

Uploaded CPython 3.4m Windows x86-64

yarl-0.5.3-cp34-cp34m-win32.whl (65.1 kB view details)

Uploaded CPython 3.4m Windows x86

yarl-0.5.3-cp34-cp34m-manylinux1_x86_64.whl (125.0 kB view details)

Uploaded CPython 3.4m

yarl-0.5.3-cp34-cp34m-manylinux1_i686.whl (119.7 kB view details)

Uploaded CPython 3.4m

File details

Details for the file yarl-0.5.3.tar.gz.

File metadata

  • Download URL: yarl-0.5.3.tar.gz
  • Upload date:
  • Size: 115.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for yarl-0.5.3.tar.gz
Algorithm Hash digest
SHA256 63f2a335a5372176a757de03d9f018d5696b96bf57da1b80b8d9c3cfcd9b32f3
MD5 90c14c67c1854c3d9581de4d50c6edce
BLAKE2b-256 21095f2fd78c8cc363ccba00bc99183a523151d1ad76a6de86be53836d843996

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 a07b68cd0b362a1a7d0ec035906905b259058e223ae4c6d261a77f1bf43d8be6
MD5 43387a64ca24660454afa674ed3795f0
BLAKE2b-256 07d2e42a49a74f136c6821b28ea2bfd5ca4a72b9e45edd6ac11fa87912a3282c

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 4626437c6748762e58c3ab7ced733f787a9a6e4bbb666a0ddf109bfdf3aa5f4c
MD5 32b249d686e13bc77ad37e2c3eacaafc
BLAKE2b-256 39eba20d61d45a1c271ebddc8bfb040ec0451040e6508f87d0acb0aa9d7341b0

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e3cb94071b27706cef6d5cdcbce5ea1cb467db37348ca47bcffd1bfd33adec85
MD5 9293222e8556bac5491f99ed45b88e1b
BLAKE2b-256 d782dee9772e680806a1305f1fc34fb928b77953d34a4629b3035ecd5c10cf81

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp35-cp35m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 dd8894939aea04dd5e58fb25946cb04b50fabc5c16a09b55dd667184b698e9da
MD5 2a2ac20b2f25406e5ef31223d03274c0
BLAKE2b-256 21a07d263b50a073d6337ef14c966f32180f17cb7f7b4d202a69891afe7f63b3

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 33d65a5ef997714fb6356bc9df48e10923cfeebe5cbe716160747f73d8651bfd
MD5 fba50ab6af9ed9b2cbf851941275ab37
BLAKE2b-256 166a3c5b5b7ef170e72d1d4605e7b85d3acb4cd5687519e2ee803cee6401d14c

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 2849d701f4bab3354bb5707c8e073ef6c695b24e83508e033f28337454e3605f
MD5 135166c180032d75291386a4e2f3f175
BLAKE2b-256 1c48e7f385a80f89319e15c5cbb28bcb74c3150950eeddf71f21f51d9c1ac82e

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e68b32ccac8c427b214e3d628927db189026e2e8c2d6c5abde732a449906934d
MD5 e49e5768a53a995e18f09666d0632c2e
BLAKE2b-256 a47ab7c10932797e73e5862ab16e943ae7a3ba175d4ee41fef006df5f83d7541

See more details on using hashes here.

File details

Details for the file yarl-0.5.3-cp34-cp34m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for yarl-0.5.3-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 7699354e3d7acd387341c39d76a6571f2fd30cdef8a18cab7efc1db957697d98
MD5 3b1bf50abc8e7d680de12595e1cbb81e
BLAKE2b-256 f30d0ab42a723c9a9812f1d11b8ed6f8bf508d6ad6a207dd02176e504cfc05ea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page