Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Yet another URL library

License

NotificationsYou must be signed in to change notification settings

aio-libs/yarl

The module provides handy URL class for URL parsing and changing.

Codecov coverage for the pytest-driven measurementshttps://img.shields.io/endpoint?url=https://codspeed.io/badge.jsonhttps://readthedocs.org/projects/yarl/badge/?version=latestMatrix Room — #aio-libs:matrix.orgMatrix Space — #aio-libs-space:matrix.org

Introduction

Url is constructed fromstr:

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

All url parts:scheme,user,password,host,port,path,query andfragment 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 produce a new url object:

>>> url= URL('https://www.python.org')>>> url/'foo'/'bar'URL('https://www.python.org/foo/bar')>>> url/'foo'% {'bar':'baz'}URL('https://www.python.org/foo?bar=baz')

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

>>> url= URL('https://www.python.org/шлях')>>> urlURL('https://www.python.org/%D1%88%D0%BB%D1%8F%D1%85')

Regular properties arepercent-decoded, useraw_ versions forgettingencoded strings:

>>> url.path'/шлях'>>> url.raw_path'/%D1%88%D0%BB%D1%8F%D1%85'

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

>>> url.human_repr()'https://www.python.org/шлях'

For full documentation please readhttps://yarl.aio-libs.org.

Installation

$ pip install yarl

The library is Python 3 only!

PyPI contains binary wheels for Linux, Windows and MacOS. If you want to installyarl on another operating system where wheels are not provided,the tarball will be used to compile the library fromthe source code. It requires a C compiler and and Python headers installed.

To skip the compilation you must explicitly opt-in by using a PEP 517configuration settingpure-python, or setting theYARL_NO_EXTENSIONSenvironment variable to a non-empty value, e.g.:

$pip install yarl --config-settings=pure-python=false

Please note that the pure-Python (uncompiled) version is much slower. However,PyPy always uses a pure-Python implementation, and, as such, it is unaffectedby this variable.

Dependencies

YARL requiresmultidict andpropcache libraries.

API documentation

The documentation is located athttps://yarl.aio-libs.org.

Why isn't boolean supported by the URL query API?

There is no standard for boolean representation of boolean values.

Some systems prefertrue/false, others likeyes/no,on/off,Y/N,1/0, etc.

yarl cannot make an unambiguous decision on how to serializebool values becauseit is specific to how the end-user's application is built and would be different fordifferent apps. The library doesn't accept booleans in the API; a user should convertbools into strings using own preferred translation protocol.

Comparison with other URL libraries

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

    The library has rich functionality but thefurl object is mutable.

    I'm afraid to pass this object into foreign code: who knows if thecode will modify my url in a terrible way while I just want to send URLwith handy helpers for accessing URL properties.

    furl has other non-obvious tricky things but the main objectionis 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 do any decode/encode transformations leaving theend user to cope with these gory details.

Source code

The project is hosted onGitHub

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

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

Theyarl package is written by Andrew Svetlov.

It'sApache 2 licensed and freely available.


[8]ページ先頭

©2009-2025 Movatter.jp