URI Submodule

class rfc3986.uri.URIReference

Immutable object representing a parsed URI Reference.

Note

This class is not intended to be directly instantiated by the user.

This object exposes attributes for the following components of a URI:

  • scheme
  • authority
  • path
  • query
  • fragment
scheme

The scheme that was parsed for the URI Reference. For example, http, https, smtp, imap, etc.

authority

Component of the URI that contains the user information, host, and port sub-components. For example, google.com, 127.0.0.1:5000, username@[::1], username:password@example.com:443, etc.

path

The path that was parsed for the given URI Reference. For example, /, /index.php, etc.

query

The query component for a given URI Reference. For example, a=b, a=b%20c, a=b+c, a=b,c=d,e=%20f, etc.

fragment

The fragment component of a URI. For example, section-3.1.

This class also provides extra attributes for easier access to information like the subcomponents of the authority component.

userinfo

The user information parsed from the authority.

host

The hostname, IPv4, or IPv6 address parsed from the authority.

port

The port parsed from the authority.

classmethod URIReference.from_string(uri_string, encoding='utf-8')

Parse a URI reference from the given unicode URI string.

Parameters:
  • uri_string (str) – Unicode URI to be parsed into a reference.
  • encoding (str) – The encoding of the string provided
Returns:

URIReference or subclass thereof

URIReference.unsplit()

Create a URI string from the components.

Returns:The URI Reference reconstituted as a string.
Return type:str
URIReference.resolve_with(base_uri, strict=False)

Use an absolute URI Reference to resolve this relative reference.

Assuming this is a relative reference that you would like to resolve, use the provided base URI to resolve it.

See http://tools.ietf.org/html/rfc3986#section-5 for more information.

Parameters:base_uri – Either a string or URIReference. It must be an absolute URI or it will raise an exception.
Returns:A new URIReference which is the result of resolving this reference using base_uri.
Return type:URIReference
Raises:rfc3986.exceptions.ResolutionError – If the base_uri does not at least have a scheme.
URIReference.copy_with(scheme=<object object>, authority=<object object>, path=<object object>, query=<object object>, fragment=<object object>)

Create a copy of this reference with the new components.

Parameters:
  • scheme (str) – (optional) The scheme to use for the new reference.
  • authority (str) – (optional) The authority to use for the new reference.
  • path (str) – (optional) The path to use for the new reference.
  • query (str) – (optional) The query to use for the new reference.
  • fragment (str) – (optional) The fragment to use for the new reference.
Returns:

New URIReference with provided components.

Return type:

URIReference

URIReference.normalize()

Normalize this reference as described in Section 6.2.2.

This is not an in-place normalization. Instead this creates a new URIReference.

Returns:A new reference object with normalized components.
Return type:URIReference
URIReference.is_absolute()

Determine if this URI Reference is an absolute URI.

See http://tools.ietf.org/html/rfc3986#section-4.3 for explanation.

Returns:True if it is an absolute URI, False otherwise.
Return type:bool
URIReference.authority_info()

Return a dictionary with the userinfo, host, and port.

If the authority is not valid, it will raise a InvalidAuthority Exception.

Returns:{'userinfo': 'username:password', 'host': 'www.example.com', 'port': '80'}
Return type:dict
Raises:rfc3986.exceptions.InvalidAuthority – If the authority is not None and can not be parsed.

Deprecated Methods

URIReference.is_valid(**kwargs)

Determine if the URI is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:
  • require_scheme (bool) – Set to True if you wish to require the presence of the scheme component.
  • require_authority (bool) – Set to True if you wish to require the presence of the authority component.
  • require_path (bool) – Set to True if you wish to require the presence of the path component.
  • require_query (bool) – Set to True if you wish to require the presence of the query component.
  • require_fragment (bool) – Set to True if you wish to require the presence of the fragment component.
Returns:

True if the URI is valid. False otherwise.

Return type:

bool

URIReference.authority_is_valid(require=False)

Determine if the authority component is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:require (bool) – Set to True to require the presence of this component.
Returns:True if the authority is valid. False otherwise.
Return type:bool
URIReference.scheme_is_valid(require=False)

Determine if the scheme component is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:require (str) – Set to True to require the presence of this component.
Returns:True if the scheme is valid. False otherwise.
Return type:bool
URIReference.path_is_valid(require=False)

Determine if the path component is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:require (str) – Set to True to require the presence of this component.
Returns:True if the path is valid. False otherwise.
Return type:bool
URIReference.query_is_valid(require=False)

Determine if the query component is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:require (str) – Set to True to require the presence of this component.
Returns:True if the query is valid. False otherwise.
Return type:bool
URIReference.fragment_is_valid(require=False)

Determine if the fragment component is valid.

Deprecated since version 1.1.0: Use the Validator object instead.

Parameters:require (str) – Set to True to require the presence of this component.
Returns:True if the fragment is valid. False otherwise.
Return type:bool