uri_parser
– Tools to parse and validate a MongoDB URI¶
Tools to parse and validate a MongoDB URI.
- pymongo.uri_parser.parse_host(entity: str, default_port: Optional[int] = 27017) Tuple[str, Optional[int]] ¶
Validates a host string
Returns a 2-tuple of host followed by port where port is default_port if it wasn’t specified in the string.
- Parameters
- entity: A host or host:port string where host could be a
hostname or IP address.
- default_port: The port number to use when one wasn’t
specified in entity.
- pymongo.uri_parser.parse_ipv6_literal_host(entity: str, default_port: Optional[int]) Tuple[str, Optional[Union[int, str]]] ¶
Validates an IPv6 literal host:port string.
Returns a 2-tuple of IPv6 literal followed by port where port is default_port if it wasn’t specified in entity.
- Parameters
- entity: A string that represents an IPv6 literal enclosed
in braces (e.g. ‘[::1]’ or ‘[::1]:27017’).
- default_port: The port number to use when one wasn’t
specified in entity.
- pymongo.uri_parser.parse_uri(uri: str, default_port: Optional[int] = 27017, validate: bool = True, warn: bool = False, normalize: bool = True, connect_timeout: Optional[float] = None, srv_service_name: Optional[str] = None, srv_max_hosts: Optional[int] = None) Dict[str, Any] ¶
Parse and validate a MongoDB URI.
Returns a dict of the form:
{ 'nodelist': <list of (host, port) tuples>, 'username': <username> or None, 'password': <password> or None, 'database': <database name> or None, 'collection': <collection name> or None, 'options': <dict of MongoDB URI options>, 'fqdn': <fqdn of the MongoDB+SRV URI> or None }
If the URI scheme is “mongodb+srv://” DNS SRV and TXT lookups will be done to build nodelist and options.
- Parameters
uri: The MongoDB URI to parse.
default_port: The port number to use when one wasn’t specified for a host in the URI.
validate (optional): If
True
(the default), validate and normalize all options. Default:True
.warn (optional): When validating, if
True
then will warn the user then ignore any invalid options or values. IfFalse
, validation will error when options are unsupported or values are invalid. Default:False
.normalize (optional): If
True
, convert names of URI options to their internally-used names. Default:True
.connect_timeout (optional): The maximum time in milliseconds to wait for a response from the DNS server.
‘srv_service_name` (optional): A custom SRV service name
Changed in version 4.0: To better follow RFC 3986, unquoted percent signs (“%”) are no longer supported.
Changed in version 3.9: Added the
normalize
parameter.Changed in version 3.6: Added support for mongodb+srv:// URIs.
Changed in version 3.5: Return the original value of the
readPreference
MongoDB URI option instead of the validated read preference mode.Changed in version 3.1:
warn
added so invalid options can be ignored.
- pymongo.uri_parser.parse_userinfo(userinfo: str) Tuple[str, str] ¶
Validates the format of user information in a MongoDB URI. Reserved characters that are gen-delimiters (“:”, “/”, “?”, “#”, “[“, “]”, “@”) as per RFC 3986 must be escaped.
Returns a 2-tuple containing the unescaped username followed by the unescaped password.
- Paramaters
userinfo: A string of the form <username>:<password>
- pymongo.uri_parser.split_hosts(hosts: str, default_port: Optional[int] = 27017) List[Tuple[str, Optional[int]]] ¶
Takes a string of the form host1[:port],host2[:port]… and splits it into (host, port) tuples. If [:port] isn’t present the default_port is used.
Returns a set of 2-tuples containing the host name (or IP) followed by port number.
- Parameters
hosts: A string of the form host1[:port],host2[:port],…
default_port: The port number to use when one wasn’t specified for a host.
- pymongo.uri_parser.split_options(opts: str, validate: bool = True, warn: bool = False, normalize: bool = True) MutableMapping[str, Any] ¶
Takes the options portion of a MongoDB URI, validates each option and returns the options in a dictionary.
- Parameters
opt: A string representing MongoDB URI options.
validate: If
True
(the default), validate and normalize all options.warn: If
False
(the default), suppress all warnings raised during validation of options.normalize: If
True
(the default), renames all options to their internally-used names.
- pymongo.uri_parser.validate_options(opts: Mapping[str, Any], warn: bool = False) MutableMapping[str, Any] ¶
Validates and normalizes options passed in a MongoDB URI.
Returns a new dictionary of validated and normalized options. If warn is False then errors will be thrown for invalid options, otherwise they will be ignored and a warning will be issued.
- Parameters
opts: A dict of MongoDB URI options.
warn (optional): If
True
then warnings will be logged and invalid options will be ignored. Otherwise invalid options will cause errors.