All classes:
- rfc3986.misc.URIReferenceBase
- rfc3986._typing_compat._PlaceholderMeta
- rfc3986._typing_compat.Self
- rfc3986.validators.Validator
- rfc3986._mixin._AuthorityInfo
- rfc3986._mixin.URIMixin
- rfc3986.uri.URIReference
- rfc3986.exceptions.RFC3986Exception
- rfc3986.exceptions.InvalidAuthority
- rfc3986.exceptions.InvalidPort
- rfc3986.exceptions.ResolutionError
- rfc3986.exceptions.ValidationError
- rfc3986.exceptions.MissingComponentError
- rfc3986.exceptions.UnpermittedComponentError
- rfc3986.exceptions.PasswordForbidden
- rfc3986.exceptions.InvalidComponentsError
- rfc3986.exceptions.MissingDependencyError
- rfc3986.iri.IRIReference
- rfc3986.parseresult.ParseResultMixin
- rfc3986.parseresult.ParseResult
- rfc3986.parseresult.ParseResultBytes
- rfc3986.builder.URIBuilder
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_rfc3986'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 0
    functionsReached:
    - atheris.Fuzz
    - atheris.instrument_all
    - atheris.Setup
    - '...fuzz_rfc3986.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 21
    functionName: '...fuzz_rfc3986.fuzz_parseresult'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - port.isdigit
    - rfc3986.parseresult.ParseResult.from_string
    - rfc3986.compat.to_bytes
    - misc.IPv4_MATCHER.match
    - byte.decode
    - reference.normalize
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - rfc3986.normalizers.encode_component
    - collections.namedtuple.__init__
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - atheris.FuzzedDataProvider
    - rfc3986.parseresult.authority_from
    - encoded_uri.decode
    - subauthority.get
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - rfc3986.uri.URIReference.from_string
    - misc.SUBAUTHORITY_MATCHER.match
    - <builtin>.bytearray
    - fdp.ConsumeUnicodeNoSurrogates
    - typing.NamedTuple.authority.rsplit
    - rfc3986.parseresult.ParseResultBytes.from_string
    - match.groupdict
    - <builtin>.len
    - rfc3986.iri.IRIReference._match_subauthority
    - b.decode
    - <builtin>.range
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - rfc3986._mixin.URIMixin.authority_info
    - <builtin>.isinstance
    - rfc3986.compat.to_str
    - misc.URI_MATCHER.match
    - port.isascii
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b6ad30>
    - <ast.Constant object at 0x7f1dd1b6a3d0>
    - <ast.Constant object at 0x7f1dd1b6aa90>
    argNames:
    - cls
    - uri_string
    - encoding
    - strict
    - lazy_normalize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 180
    functionName: rfc3986.parseresult.ParseResult.from_string
    functionSourceFile: rfc3986.parseresult
    functionUses: 4
    functionsReached:
    - port.isdigit
    - rfc3986.compat.to_bytes
    - misc.IPv4_MATCHER.match
    - byte.decode
    - reference.normalize
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - rfc3986.normalizers.encode_component
    - collections.namedtuple.__init__
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - rfc3986.parseresult.authority_from
    - encoded_uri.decode
    - subauthority.get
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - rfc3986.uri.URIReference.from_string
    - misc.SUBAUTHORITY_MATCHER.match
    - <builtin>.bytearray
    - typing.NamedTuple.authority.rsplit
    - match.groupdict
    - <builtin>.len
    - rfc3986.iri.IRIReference._match_subauthority
    - b.decode
    - <builtin>.range
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - port.isascii
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1bea970>
    - <ast.Constant object at 0x7f1dd1beac10>
    - <ast.Constant object at 0x7f1dd1bea400>
    argNames:
    - cls
    - uri_string
    - encoding
    - strict
    - lazy_normalize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 370
    functionName: rfc3986.parseresult.ParseResultBytes.from_string
    functionSourceFile: rfc3986.parseresult
    functionUses: 2
    functionsReached:
    - rfc3986.compat.to_bytes
    - port.isdigit
    - misc.IPv4_MATCHER.match
    - byte.decode
    - PERCENT_MATCHER.findall
    - reference.normalize
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - rfc3986.normalizers.encode_component
    - collections.namedtuple.__init__
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - rfc3986.parseresult.authority_from
    - encoded_uri.decode
    - subauthority.get
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - rfc3986.uri.URIReference.from_string
    - misc.SUBAUTHORITY_MATCHER.match
    - <builtin>.bytearray
    - typing.NamedTuple.authority.rsplit
    - match.groupdict
    - <builtin>.len
    - rfc3986.iri.IRIReference._match_subauthority
    - b.decode
    - <builtin>.range
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - <builtin>.isinstance
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.compat.to_str
    - misc.URI_MATCHER.match
    - port.isascii
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 35
    functionName: '...fuzz_rfc3986.fuzz_normalizers'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - host.replace
    - scheme.lower
    - fdp.ConsumeUnicodeNoSurrogates
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - <builtin>.set
    - misc.IPv6_MATCHER.match
    - m.upper
    - atheris.FuzzedDataProvider
    - rfc3986.normalizers.normalize_host
    - rfc3986.normalizers.normalize_scheme
    - host.find
    - host.lower
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: rfc3986.normalizers.normalize_host
    functionSourceFile: rfc3986.normalizers
    functionUses: 14
    functionsReached:
    - <builtin>.len
    - host.replace
    - misc.IPv6_MATCHER.match
    - host.find
    - host.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: rfc3986.normalizers.normalize_percent_characters
    functionSourceFile: rfc3986.normalizers
    functionUses: 21
    functionsReached:
    - urllib.parse.urlencode.replace
    - m.upper
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - scheme
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: rfc3986.normalizers.normalize_scheme
    functionSourceFile: rfc3986.normalizers
    functionUses: 10
    functionsReached:
    - scheme.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 43
    functionName: '...fuzz_rfc3986.fuzz_uri'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - rfc3986.compat.to_bytes
    - uri.is_absolute
    - byte.decode
    - rfc3986.normalizers.encode_component
    - <builtin>.hasattr
    - atheris.FuzzedDataProvider
    - uri.is_valid
    - encoded_uri.decode
    - rfc3986.uri.URIReference.from_string
    - <builtin>.bytearray
    - fdp.ConsumeUnicodeNoSurrogates
    - <builtin>.len
    - b.decode
    - <builtin>.range
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd28fbaf0>
    argNames:
    - cls
    - uri_string
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 151
    functionName: rfc3986.uri.URIReference.from_string
    functionSourceFile: rfc3986.uri
    functionUses: 12
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - <builtin>.hasattr
    - b.decode
    - <builtin>.range
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.is_valid
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.is_absolute
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 51
    functionName: '...fuzz_rfc3986.fuzz_iri'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - rfc3986.compat.to_bytes
    - byte.decode
    - rfc3986.normalizers.encode_component
    - <builtin>.hasattr
    - atheris.FuzzedDataProvider
    - encoded_uri.decode
    - rfc3986.iri.IRIReference.from_string
    - <builtin>.bytearray
    - fdp.ConsumeUnicodeNoSurrogates
    - <builtin>.len
    - b.decode
    - <builtin>.range
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.IRI_MATCHER.match
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1bf0250>
    argNames:
    - cls
    - iri_string
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 90
    functionName: rfc3986.iri.IRIReference.from_string
    functionSourceFile: rfc3986.iri
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - b.decode
    - <builtin>.range
    - typing.NamedTuple.__init__
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.IRI_MATCHER.match
    - PERCENT_MATCHER.findall
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 57
    functionName: '...fuzz_rfc3986.fuzz_api'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - port.isdigit
    - rfc3986.parseresult.ParseResult.from_string
    - rfc3986.compat.to_bytes
    - misc.IPv4_MATCHER.match
    - normalized_reference.unsplit
    - byte.decode
    - reference.normalize
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - rfc3986.normalizers.encode_component
    - matches.get
    - collections.namedtuple.__init__
    - rfc3986.api.normalize_uri
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - atheris.FuzzedDataProvider
    - rfc3986.parseresult.authority_from
    - encoded_uri.decode
    - rfc3986.iri.IRIReference.from_string
    - subauthority.get
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - rfc3986.uri.URIReference.from_string
    - misc.SUBAUTHORITY_MATCHER.match
    - <builtin>.bytearray
    - fdp.ConsumeUnicodeNoSurrogates
    - typing.NamedTuple.authority.rsplit
    - rfc3986.api.uri_reference
    - rfc3986.api.is_valid_uri
    - rfc3986.api.urlparse
    - match.groupdict
    - <builtin>.len
    - rfc3986.iri.IRIReference._match_subauthority
    - b.decode
    - <builtin>.range
    - rfc3986._mixin.URIMixin._match_subauthority
    - rfc3986.api.iri_reference
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - misc.IRI_MATCHER.match
    - port.isascii
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b32160>
    argNames:
    - uri
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 27
    functionName: rfc3986.api.uri_reference
    functionSourceFile: rfc3986.api
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - <builtin>.hasattr
    - b.decode
    - <builtin>.range
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - rfc3986.uri.URIReference.from_string
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1ba5f70>
    argNames:
    - iri
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 44
    functionName: rfc3986.api.iri_reference
    functionSourceFile: rfc3986.api
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - rfc3986.iri.IRIReference.from_string
    - b.decode
    - <builtin>.range
    - typing.NamedTuple.__init__
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.IRI_MATCHER.match
    - PERCENT_MATCHER.findall
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1ba5f40>
    argNames:
    - uri
    - encoding
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 61
    functionName: rfc3986.api.is_valid_uri
    functionSourceFile: rfc3986.api
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - <builtin>.hasattr
    - b.decode
    - <builtin>.range
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - rfc3986.uri.URIReference.from_string
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1ba5640>
    argNames:
    - uri
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 90
    functionName: rfc3986.api.normalize_uri
    functionSourceFile: rfc3986.api
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - normalized_reference.unsplit
    - b.decode
    - <builtin>.range
    - typing.NamedTuple.__init__
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.normalizers.encode_component
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - rfc3986.uri.URIReference.from_string
    - PERCENT_MATCHER.findall
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2329760>
    argNames:
    - uri
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 106
    functionName: rfc3986.api.urlparse
    functionSourceFile: rfc3986.api
    functionUses: 2
    functionsReached:
    - port.isdigit
    - rfc3986.parseresult.ParseResult.from_string
    - rfc3986.compat.to_bytes
    - misc.IPv4_MATCHER.match
    - byte.decode
    - reference.normalize
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - rfc3986.normalizers.encode_component
    - collections.namedtuple.__init__
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - rfc3986.parseresult.authority_from
    - encoded_uri.decode
    - subauthority.get
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - rfc3986.uri.URIReference.from_string
    - misc.SUBAUTHORITY_MATCHER.match
    - <builtin>.bytearray
    - typing.NamedTuple.authority.rsplit
    - match.groupdict
    - <builtin>.len
    - rfc3986.iri.IRIReference._match_subauthority
    - b.decode
    - <builtin>.range
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - misc.URI_MATCHER.match
    - port.isascii
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 8
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 66
    functionName: '...fuzz_rfc3986.fuzz_validators'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - port.isdigit
    - rfc3986.validators.is_valid
    - rfc3986.validators.Validator.allow_ports
    - rfc3986.compat.to_bytes
    - misc.IPv4_MATCHER.match
    - rfc3986.validators.ensure_required_components_exist
    - invalid_components.add
    - <builtin>.str
    - byte.decode
    - rfc3986.normalizers.encode_component
    - rfc3986.validators.subauthority_component_is_valid
    - rfc3986.normalizers.normalize_scheme
    - rfc3986.validators.check_password
    - <builtin>.bool
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.sorted
    - matcher.match
    - atheris.FuzzedDataProvider
    - uri.is_valid
    - rfc3986.validators.Validator.__init__
    - <builtin>.tuple
    - host.replace
    - c.lower
    - <builtin>.getattr
    - encoded_uri.decode
    - <builtin>.hasattr
    - fdp.ConsumeIntInRange
    - <builtin>.all
    - rfc3986.validators.Validator.validate
    - rfc3986.uri.URIReference.from_string
    - rfc3986.validators.Validator.allow_hosts
    - scheme.lower
    - <builtin>.bytearray
    - fdp.ConsumeUnicodeNoSurrogates
    - userinfo.split
    - rfc3986.validators.Validator.require_presence_of
    - rfc3986.validators.ensure_components_are_valid
    - misc.IPv6_MATCHER.match
    - rfc3986.validators.Validator.check_validity_of
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - host.lower
    - <builtin>.len
    - rfc3986.validators.host_is_valid
    - rfc3986.validators.Validator.allow_schemes
    - b.decode
    - <builtin>.range
    - rfc3986.validators.Validator.forbid_use_of_password
    - <builtin>.ord
    - <builtin>.int
    - encoded_uri.extend
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - rfc3986.normalizers.normalize_host
    - rfc3986.validators.ensure_one_of
    - misc.URI_MATCHER.match
    - host.find
    - uri.authority_info
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: rfc3986.validators.Validator.__init__
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: rfc3986.validators.Validator.forbid_use_of_password
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 196
    functionName: rfc3986.validators.Validator.validate
    functionSourceFile: rfc3986.validators
    functionUses: 2
    functionsReached:
    - port.isdigit
    - rfc3986.validators.is_valid
    - misc.IPv4_MATCHER.match
    - rfc3986.validators.ensure_required_components_exist
    - invalid_components.add
    - rfc3986.validators.subauthority_component_is_valid
    - rfc3986.validators.check_password
    - <builtin>.bool
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    - <builtin>.sorted
    - <builtin>.getattr
    - <builtin>.all
    - userinfo.split
    - rfc3986.validators.ensure_components_are_valid
    - misc.IPv6_MATCHER.match
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - <builtin>.len
    - rfc3986.validators.host_is_valid
    - <builtin>.int
    - rfc3986.validators.ensure_one_of
    - uri.authority_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - schemes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 74
    functionName: rfc3986.validators.Validator.allow_schemes
    functionSourceFile: rfc3986.validators
    functionUses: 2
    functionsReached:
    - scheme.lower
    - rfc3986.normalizers.normalize_scheme
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hosts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 90
    functionName: rfc3986.validators.Validator.allow_hosts
    functionSourceFile: rfc3986.validators
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - host.replace
    - misc.IPv6_MATCHER.match
    - rfc3986.normalizers.normalize_host
    - host.find
    - host.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeIntInRange
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ports
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 106
    functionName: rfc3986.validators.Validator.allow_ports
    functionSourceFile: rfc3986.validators
    functionUses: 2
    functionsReached:
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - components
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 173
    functionName: rfc3986.validators.Validator.require_presence_of
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - c.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - components
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 150
    functionName: rfc3986.validators.Validator.check_validity_of
    functionSourceFile: rfc3986.validators
    functionUses: 2
    functionsReached:
    - <builtin>.tuple
    - c.lower
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 101
    functionName: '...fuzz_rfc3986.TestOneInput'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 0
    functionsReached:
    - rfc3986.validators.subauthority_component_is_valid
    - collections.namedtuple.__init__
    - rfc3986.validators.check_password
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    - <builtin>.sorted
    - host.replace
    - <builtin>.tuple
    - rfc3986.parseresult.authority_from
    - <builtin>.getattr
    - typing.NamedTuple.authority.startswith
    - rfc3986.parseresult.ParseResultBytes.from_string
    - misc.IPv6_MATCHER.match
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - host.lower
    - rfc3986.validators.Validator.forbid_use_of_password
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.isinstance
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.api.normalize_uri
    - typing.NamedTuple.__init__
    - rfc3986.compat.to_bytes
    - rfc3986.parseresult.ParseResult.from_string
    - <builtin>.str
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - rfc3986.normalizers.normalize_scheme
    - uri.is_valid
    - '...fuzz_rfc3986.fuzz_api'
    - rfc3986.validators.Validator.__init__
    - subauthority.get
    - m.upper
    - <builtin>.all
    - rfc3986.validators.Validator.allow_hosts
    - '...fuzz_rfc3986.fuzz_iri'
    - <builtin>.bytearray
    - typing.NamedTuple.authority.rsplit
    - rfc3986.normalizers.normalize_percent_characters
    - match.groupdict
    - b.decode
    - <builtin>.range
    - <builtin>.ord
    - rfc3986.compat.to_str
    - rfc3986.validators.ensure_one_of
    - host.find
    - uri.authority_info
    - port.isascii
    - rfc3986.validators.Validator.allow_ports
    - normalized_reference.unsplit
    - misc.IPv4_MATCHER.match
    - rfc3986.validators.ensure_required_components_exist
    - reference.normalize
    - '...fuzz_rfc3986.fuzz_validators'
    - rfc3986.normalizers.encode_component
    - <builtin>.bool
    - atheris.FuzzedDataProvider
    - rfc3986.iri.IRIReference.from_string
    - rfc3986.uri.URIReference.from_string
    - fdp.ConsumeUnicodeNoSurrogates
    - rfc3986.api.uri_reference
    - rfc3986.api.is_valid_uri
    - rfc3986.api.urlparse
    - '...fuzz_rfc3986.fuzz_parseresult'
    - m.isupper
    - rfc3986.validators.host_is_valid
    - '...fuzz_rfc3986.fuzz_normalizers'
    - misc.URI_MATCHER.match
    - rfc3986.normalizers.normalize_host
    - misc.IRI_MATCHER.match
    - PERCENT_MATCHER.findall
    - encoded_uri.extend
    - port.isdigit
    - rfc3986.validators.is_valid
    - uri.is_absolute
    - invalid_components.add
    - byte.decode
    - misc.ISUBAUTHORITY_MATCHER.match
    - <builtin>.hasattr
    - encoded_uri.decode
    - c.lower
    - fdp.ConsumeIntInRange
    - rfc3986.validators.Validator.validate
    - misc.SUBAUTHORITY_MATCHER.match
    - scheme.lower
    - userinfo.split
    - rfc3986.validators.Validator.require_presence_of
    - rfc3986.validators.ensure_components_are_valid
    - rfc3986.validators.Validator.check_validity_of
    - <builtin>.len
    - '...fuzz_rfc3986.fuzz_uri'
    - rfc3986.iri.IRIReference._match_subauthority
    - urllib.parse.urlencode.replace
    - rfc3986.validators.Validator.allow_schemes
    - rfc3986.api.iri_reference
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: '...fuzz_rfc3986.main'
    functionSourceFile: '...fuzz_rfc3986'
    functionUses: 1
    functionsReached:
    - atheris.Fuzz
    - atheris.Setup
    - atheris.instrument_all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986
    functionSourceFile: rfc3986
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.api
    functionSourceFile: rfc3986.api
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: normalized_reference.unsplit
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.parseresult
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 47
    functionName: rfc3986.parseresult.ParseResultMixin.authority
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - attributes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 49
    functionName: rfc3986.parseresult.ParseResultMixin._generate_authority
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - host.replace
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - b.decode
    - <builtin>.set
    - misc.IPv6_MATCHER.match
    - m.upper
    - <builtin>.isinstance
    - rfc3986.compat.to_str
    - rfc3986.normalizers.normalize_host
    - m.isupper
    - host.find
    - host.lower
    - PERCENT_MATCHER.findall
    - <builtin>.hasattr
    - rfc3986.normalizers.normalize_authority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2345cd0>
    argNames:
    - b
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: rfc3986.compat.to_str
    functionSourceFile: rfc3986.compat
    functionUses: 23
    functionsReached:
    - b.decode
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - authority
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 28
    functionName: rfc3986.normalizers.normalize_authority
    functionSourceFile: rfc3986.normalizers
    functionUses: 8
    functionsReached:
    - <builtin>.len
    - host.replace
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - <builtin>.set
    - misc.IPv6_MATCHER.match
    - m.upper
    - rfc3986.normalizers.normalize_host
    - host.find
    - host.lower
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 72
    functionName: rfc3986.parseresult.ParseResultMixin.geturl
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: rfc3986.parseresult.ParseResultMixin.hostname
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 82
    functionName: rfc3986.parseresult.ParseResultMixin.netloc
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: rfc3986.parseresult.ParseResultMixin.params
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd20d2d60>
    argNames:
    - cls
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    - uri_ref
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: rfc3986.parseresult.ParseResult.__new__
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 9
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1d1c220>
    - <ast.Constant object at 0x7f1dd1d1c2e0>
    - <ast.Constant object at 0x7f1dd1d1c3d0>
    - <ast.Constant object at 0x7f1dd1d1c730>
    - <ast.Constant object at 0x7f1dd1d1c820>
    - <ast.Constant object at 0x7f1dd1d1c310>
    - <ast.Constant object at 0x7f1dd1d1c940>
    - <ast.Constant object at 0x7f1dd1d1c670>
    argNames:
    - cls
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 139
    functionName: rfc3986.parseresult.ParseResult.from_parts
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - port.isdigit
    - misc.IPv4_MATCHER.match
    - output.append
    - PERCENT_MATCHER.findall
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - collections.namedtuple.__init__
    - rfc3986.normalizers.normalize_scheme
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - rfc3986.normalizers.normalize_authority
    - host.replace
    - rfc3986.parseresult.authority_from
    - output.insert
    - urllib.parse.urlencode.startswith
    - subauthority.get
    - m.upper
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - misc.SUBAUTHORITY_MATCHER.match
    - scheme.lower
    - rfc3986.normalizers.normalize_percent_characters
    - typing.NamedTuple.authority.rsplit
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - misc.IPv6_MATCHER.match
    - rfc3986.uri.URIReference.normalize
    - match.groupdict
    - host.lower
    - m.isupper
    - <builtin>.len
    - rfc3986.normalizers.normalize_fragment
    - rfc3986.iri.IRIReference._match_subauthority
    - urllib.parse.urlencode.replace
    - urllib.parse.urlencode.split
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.int
    - rfc3986.normalizers.normalize_query
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.normalizers.normalize_host
    - urllib.parse.urlencode.endswith
    - host.find
    - output.pop
    - port.isascii
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.__init__
    functionSourceFile: ''
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 128
    functionName: rfc3986.uri.URIReference.normalize
    functionSourceFile: rfc3986.uri
    functionUses: 4
    functionsReached:
    - output.append
    - rfc3986.normalizers.normalize_scheme
    - <builtin>.set
    - rfc3986.normalizers.normalize_authority
    - host.replace
    - output.insert
    - urllib.parse.urlencode.startswith
    - m.upper
    - scheme.lower
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - misc.IPv6_MATCHER.match
    - host.lower
    - m.isupper
    - <builtin>.len
    - rfc3986.normalizers.normalize_fragment
    - urllib.parse.urlencode.replace
    - urllib.parse.urlencode.split
    - rfc3986.normalizers.normalize_query
    - rfc3986.normalizers.normalize_host
    - urllib.parse.urlencode.endswith
    - host.find
    - output.pop
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - reference
    - strict
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 503
    functionName: rfc3986.parseresult.authority_from
    functionSourceFile: rfc3986.parseresult
    functionUses: 8
    functionsReached:
    - port.isdigit
    - typing.NamedTuple.authority.rsplit
    - rfc3986.iri.IRIReference._match_subauthority
    - misc.IPv4_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    - subauthority.get
    - rfc3986._mixin.URIMixin._match_subauthority
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - <builtin>.int
    - rfc3986._mixin.URIMixin.authority_info
    - matches.get
    - match.groupdict
    - typing.NamedTuple.authority.startswith
    - <builtin>.all
    - misc.SUBAUTHORITY_MATCHER.match
    - port.isascii
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.__init__
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reference.normalize
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 214
    functionName: rfc3986.parseresult.ParseResult.authority
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Attribute object at 0x7f1dd2351220>
    - <ast.Attribute object at 0x7f1dd23517c0>
    - <ast.Attribute object at 0x7f1dd2351b20>
    - <ast.Attribute object at 0x7f1dd2351490>
    - <ast.Attribute object at 0x7f1dd23515e0>
    - <ast.Attribute object at 0x7f1dd2351880>
    - <ast.Attribute object at 0x7f1dd2351a30>
    argNames:
    - self
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 218
    functionName: rfc3986.parseresult.ParseResult.copy_with
    functionSourceFile: rfc3986.parseresult
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - <builtin>.zip
    - collections.namedtuple.reference.copy_with
    - collections.namedtuple.__init__
    - collections.namedtuple._generate_authority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.zip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple._generate_authority
    functionSourceFile: collections
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.reference.copy_with
    functionSourceFile: collections
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1c69ca0>
    argNames:
    - self
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 248
    functionName: rfc3986.parseresult.ParseResult.encode
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - attr.encode
    - <builtin>.zip
    - <builtin>.dict
    - collections.namedtuple.__init__
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attr.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2345f10>
    argNames:
    - self
    - use_idna
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 264
    functionName: rfc3986.parseresult.ParseResult.unsplit
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - collections.namedtuple.host.encode
    - <builtin>.zip
    - collections.namedtuple.reference.unsplit
    - collections.namedtuple.reference.copy_with
    - rfc3986.parseresult.ParseResult.copy_with
    - collections.namedtuple.__init__
    - collections.namedtuple._generate_authority
    - hostbytes.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.host.encode
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostbytes.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.reference.unsplit
    functionSourceFile: collections
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 11
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1be9b80>
    - <ast.Constant object at 0x7f1dd1be9f40>
    argNames:
    - cls
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    - uri_ref
    - encoding
    - lazy_normalize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 294
    functionName: rfc3986.parseresult.ParseResultBytes.__new__
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 10
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2338730>
    - <ast.Constant object at 0x7f1dd23388b0>
    - <ast.Constant object at 0x7f1dd2338e80>
    - <ast.Constant object at 0x7f1dd23389a0>
    - <ast.Constant object at 0x7f1dd2338400>
    - <ast.Constant object at 0x7f1dd2338640>
    - <ast.Constant object at 0x7f1dd23388e0>
    - <ast.Constant object at 0x7f1dd2338070>
    - <ast.Constant object at 0x7f1dd2338bb0>
    argNames:
    - cls
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    - encoding
    - lazy_normalize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 324
    functionName: rfc3986.parseresult.ParseResultBytes.from_parts
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - rfc3986.compat.to_bytes
    - port.isdigit
    - misc.IPv4_MATCHER.match
    - output.append
    - PERCENT_MATCHER.findall
    - misc.ISUBAUTHORITY_MATCHER.match
    - typing.NamedTuple.authority.split
    - rfc3986.parseresult.split_authority
    - matches.get
    - collections.namedtuple.__init__
    - rfc3986.normalizers.normalize_scheme
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - <builtin>.hasattr
    - rfc3986.normalizers.normalize_authority
    - host.replace
    - rfc3986.parseresult.authority_from
    - output.insert
    - urllib.parse.urlencode.startswith
    - subauthority.get
    - m.upper
    - <builtin>.all
    - typing.NamedTuple.authority.startswith
    - misc.SUBAUTHORITY_MATCHER.match
    - scheme.lower
    - rfc3986.normalizers.normalize_percent_characters
    - typing.NamedTuple.authority.rsplit
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - misc.IPv6_MATCHER.match
    - rfc3986.uri.URIReference.normalize
    - match.groupdict
    - host.lower
    - m.isupper
    - <builtin>.len
    - rfc3986.normalizers.normalize_fragment
    - rfc3986.iri.IRIReference._match_subauthority
    - urllib.parse.urlencode.replace
    - urllib.parse.urlencode.split
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.int
    - <builtin>.isinstance
    - rfc3986._mixin.URIMixin.authority_info
    - rfc3986.normalizers.normalize_query
    - rfc3986.normalizers.normalize_host
    - urllib.parse.urlencode.endswith
    - host.find
    - output.pop
    - port.isascii
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1cfc430>
    argNames:
    - s
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: rfc3986.compat.to_bytes
    functionSourceFile: rfc3986.compat
    functionUses: 20
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 406
    functionName: rfc3986.parseresult.ParseResultBytes.authority
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - collections.namedtuple.reference.authority.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.reference.authority.encode
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 9
    argDefaultValues:
    - <ast.Attribute object at 0x7f1dd1cfc3d0>
    - <ast.Attribute object at 0x7f1dd1cfcd90>
    - <ast.Attribute object at 0x7f1dd1cfce20>
    - <ast.Attribute object at 0x7f1dd1cfc430>
    - <ast.Attribute object at 0x7f1dd21dce80>
    - <ast.Attribute object at 0x7f1dd21dca30>
    - <ast.Attribute object at 0x7f1dd20ced00>
    - <ast.Constant object at 0x7f1dd20cedf0>
    argNames:
    - self
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    - lazy_normalize
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 410
    functionName: rfc3986.parseresult.ParseResultBytes.copy_with
    functionSourceFile: rfc3986.parseresult
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - <builtin>.zip
    - b.decode
    - collections.namedtuple.reference.copy_with
    - <builtin>.isinstance
    - rfc3986.compat.to_str
    - collections.namedtuple.__init__
    - typing.cast
    - ref.normalize
    - collections.namedtuple._generate_authority
    - value.encode
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.cast
    functionSourceFile: typing
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ref.normalize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd20e8dc0>
    argNames:
    - self
    - use_idna
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 455
    functionName: rfc3986.parseresult.ParseResultBytes.unsplit
    functionSourceFile: rfc3986.parseresult
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - host.encode
    - collections.namedtuple._generate_authority
    - <builtin>.zip
    - b.decode
    - collections.namedtuple.reference.unsplit
    - collections.namedtuple.reference.copy_with
    - <builtin>.isinstance
    - rfc3986.compat.to_str
    - collections.namedtuple.__init__
    - typing.cast
    - rfc3986.parseresult.ParseResultBytes.copy_with
    - ref.normalize
    - uri.encode
    - value.encode
    - collections.namedtuple.host.decode
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.namedtuple.host.decode
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - authority
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 474
    functionName: rfc3986.parseresult.split_authority
    functionSourceFile: rfc3986.parseresult
    functionUses: 9
    functionsReached:
    - typing.NamedTuple.authority.split
    - typing.NamedTuple.authority.rsplit
    - typing.NamedTuple.authority.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.authority.rsplit
    functionSourceFile: typing
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.authority.startswith
    functionSourceFile: typing
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.NamedTuple.authority.split
    functionSourceFile: typing
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 33
    functionName: rfc3986._mixin.URIMixin.authority_info
    functionSourceFile: rfc3986._mixin
    functionUses: 13
    functionsReached:
    - rfc3986.iri.IRIReference._match_subauthority
    - misc.IPv4_MATCHER.match
    - rfc3986._mixin.URIMixin._match_subauthority
    - misc.ISUBAUTHORITY_MATCHER.match
    - <builtin>.int
    - matches.get
    - <builtin>.all
    - match.groupdict
    - misc.SUBAUTHORITY_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subauthority.get
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: port.isascii
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: port.isdigit
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.iri
    functionSourceFile: rfc3986.iri
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd20ce610>
    argNames:
    - cls
    - scheme
    - authority
    - path
    - query
    - fragment
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: rfc3986.iri.IRIReference.__new__
    functionSourceFile: rfc3986.iri
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 68
    functionName: rfc3986.iri.IRIReference.__eq__
    functionSourceFile: rfc3986.iri
    functionUses: 0
    functionsReached:
    - rfc3986.compat.to_bytes
    - byte.decode
    - rfc3986.normalizers.encode_component
    - <builtin>.hasattr
    - <builtin>.tuple
    - encoded_uri.decode
    - rfc3986.iri.IRIReference.from_string
    - <builtin>.bytearray
    - <builtin>.len
    - <builtin>.type
    - b.decode
    - <builtin>.range
    - <builtin>.ord
    - encoded_uri.extend
    - <builtin>.isinstance
    - rfc3986.compat.to_str
    - misc.IRI_MATCHER.match
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.type
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: rfc3986.iri.IRIReference._match_subauthority
    functionSourceFile: rfc3986.iri
    functionUses: 14
    functionsReached:
    - misc.ISUBAUTHORITY_MATCHER.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.ISUBAUTHORITY_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.IRI_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - uri_component
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 178
    functionName: rfc3986.normalizers.encode_component
    functionSourceFile: rfc3986.normalizers
    functionUses: 18
    functionsReached:
    - <builtin>.len
    - rfc3986.compat.to_bytes
    - <builtin>.bytearray
    - encoded_uri.decode
    - b.decode
    - <builtin>.range
    - byte.decode
    - <builtin>.ord
    - encoded_uri.extend
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - PERCENT_MATCHER.findall
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1beae80>
    argNames:
    - self
    - idna_encoder
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 113
    functionName: rfc3986.iri.IRIReference.encode
    functionSourceFile: rfc3986.iri
    functionUses: 0
    functionsReached:
    - rfc3986.compat.to_bytes
    - byte.decode
    - <builtin>.str
    - rfc3986.normalizers.encode_component
    - <builtin>.hasattr
    - encoded_uri.decode
    - <builtin>.bytearray
    - rfc3986.iri.IRIReference.encode.idna_encoder
    - typing.NamedTuple.__init__
    - <builtin>.any
    - <builtin>.len
    - b.decode
    - <builtin>.range
    - <builtin>.ord
    - idna.encode
    - name.lower
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - PERCENT_MATCHER.findall
    - encoded_uri.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: rfc3986.iri.IRIReference.encode.idna_encoder
    functionSourceFile: rfc3986.iri
    functionUses: 1
    functionsReached:
    - <builtin>.ord
    - idna.encode
    - name.lower
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.ord
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: idna.encode
    functionSourceFile: idna
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: rfc3986.compat
    functionSourceFile: rfc3986.compat
    functionUses: 0
    functionsReached:
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: typing.overload
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: b.decode
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.exceptions
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - authority
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 18
    functionName: rfc3986.exceptions.InvalidAuthority.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - b.decode
    - rfc3986.compat.to_str
    - <builtin>.isinstance
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - port
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: rfc3986.exceptions.InvalidPort.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: rfc3986.exceptions.ResolutionError.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - uri.unsplit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.unsplit
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - uri
    - component_names
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: rfc3986.exceptions.MissingComponentError.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.super
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - component_name
    - component_value
    - allowed_values
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: rfc3986.exceptions.UnpermittedComponentError.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.sorted
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - uri
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 98
    functionName: rfc3986.exceptions.PasswordForbidden.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.exceptions.PasswordForbidden.__init__.<lambda1>
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - uri
    - component_names
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 112
    functionName: rfc3986.exceptions.InvalidComponentsError.__init__
    functionSourceFile: rfc3986.exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - <builtin>.super
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.uri
    functionSourceFile: rfc3986.uri
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b2fee0>
    argNames:
    - cls
    - scheme
    - authority
    - path
    - query
    - fragment
    - encoding
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: rfc3986.uri.URIReference.__new__
    functionSourceFile: rfc3986.uri
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 109
    functionName: rfc3986.uri.URIReference.__eq__
    functionSourceFile: rfc3986.uri
    functionUses: 0
    functionsReached:
    - rfc3986.compat.to_bytes
    - other_ref.normalize
    - output.append
    - byte.decode
    - rfc3986.normalizers.encode_component
    - rfc3986.normalizers.normalize_scheme
    - <builtin>.set
    - <builtin>.hasattr
    - rfc3986.normalizers.normalize_authority
    - host.replace
    - <builtin>.tuple
    - encoded_uri.decode
    - output.insert
    - urllib.parse.urlencode.startswith
    - m.upper
    - rfc3986.uri.URIReference.from_string
    - scheme.lower
    - <builtin>.bytearray
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - misc.IPv6_MATCHER.match
    - rfc3986.uri.URIReference.normalize
    - host.lower
    - m.isupper
    - <builtin>.len
    - rfc3986.normalizers.normalize_fragment
    - urllib.parse.urlencode.replace
    - <builtin>.type
    - rfc3986._mixin.URIMixin.normalized_equality
    - urllib.parse.urlencode.split
    - <builtin>.range
    - b.decode
    - <builtin>.ord
    - encoded_uri.extend
    - <builtin>.isinstance
    - rfc3986.normalizers.normalize_query
    - rfc3986.normalizers.normalize_host
    - rfc3986.compat.to_str
    - urllib.parse.urlencode.endswith
    - host.find
    - misc.URI_MATCHER.match
    - output.pop
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other_ref
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 264
    functionName: rfc3986._mixin.URIMixin.normalized_equality
    functionSourceFile: rfc3986._mixin
    functionUses: 1
    functionsReached:
    - other_ref.normalize
    - output.append
    - rfc3986.normalizers.normalize_scheme
    - <builtin>.set
    - rfc3986.normalizers.normalize_authority
    - host.replace
    - <builtin>.tuple
    - output.insert
    - urllib.parse.urlencode.startswith
    - m.upper
    - scheme.lower
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - misc.IPv6_MATCHER.match
    - rfc3986.uri.URIReference.normalize
    - host.lower
    - m.isupper
    - <builtin>.len
    - rfc3986.normalizers.normalize_fragment
    - urllib.parse.urlencode.replace
    - urllib.parse.urlencode.split
    - rfc3986.normalizers.normalize_query
    - rfc3986.normalizers.normalize_host
    - urllib.parse.urlencode.endswith
    - host.find
    - output.pop
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 76
    functionName: rfc3986.normalizers.normalize_path
    functionSourceFile: rfc3986.normalizers
    functionUses: 8
    functionsReached:
    - output.insert
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.startswith
    - urllib.parse.urlencode.split
    - urllib.parse.urlencode.replace
    - output.append
    - rfc3986.normalizers.remove_dot_segments
    - m.upper
    - urllib.parse.urlencode.endswith
    - <builtin>.set
    - output.pop
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - query
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: rfc3986.normalizers.normalize_query
    functionSourceFile: rfc3986.normalizers
    functionUses: 8
    functionsReached:
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - m.upper
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - fragment
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 112
    functionName: rfc3986.normalizers.normalize_fragment
    functionSourceFile: rfc3986.normalizers
    functionUses: 6
    functionsReached:
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - m.upper
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.URI_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: rfc3986.misc
    functionSourceFile: rfc3986.misc
    functionUses: 0
    functionsReached:
    - re.compile
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - base_uri
    - relative_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: rfc3986.misc.merge_paths
    functionSourceFile: rfc3986.misc
    functionUses: 1
    functionsReached:
    - path.rfind
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.rfind
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.object
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: rfc3986.abnf_regexp
    functionSourceFile: rfc3986.abnf_regexp
    functionUses: 0
    functionsReached:
    - IPCHAR.replace
    - GENERIC_DELIMITERS_SET.union
    - RESERVED_CHARS_SET.union
    - <builtin>.set
    - PCHAR.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.set
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: GENERIC_DELIMITERS_SET.union
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: RESERVED_CHARS_SET.union
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PCHAR.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: IPCHAR.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: rfc3986.normalizers
    functionSourceFile: rfc3986.normalizers
    functionUses: 0
    functionsReached:
    - re.compile
    - typing.overload
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: scheme.lower
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - username
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: rfc3986.normalizers.normalize_username
    functionSourceFile: rfc3986.normalizers
    functionUses: 1
    functionsReached:
    - urllib.parse.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.quote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - password
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: rfc3986.normalizers.normalize_password
    functionSourceFile: rfc3986.normalizers
    functionUses: 1
    functionsReached:
    - urllib.parse.quote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.IPv6_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.find
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.replace
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - s
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: rfc3986.normalizers.remove_dot_segments
    functionSourceFile: rfc3986.normalizers
    functionUses: 9
    functionsReached:
    - output.insert
    - urllib.parse.urlencode.startswith
    - urllib.parse.urlencode.split
    - output.append
    - urllib.parse.urlencode.endswith
    - output.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PERCENT_MATCHER.findall
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.isupper
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: m.upper
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.replace
    functionSourceFile: urllib
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.split
    functionSourceFile: urllib
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.pop
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.startswith
    functionSourceFile: urllib
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: output.insert
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode.endswith
    functionSourceFile: urllib
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytearray
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: byte.decode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_uri.extend
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoded_uri.decode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986._mixin
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 74
    functionName: rfc3986._mixin.URIMixin._match_subauthority
    functionSourceFile: rfc3986._mixin
    functionUses: 14
    functionsReached:
    - misc.SUBAUTHORITY_MATCHER.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.groupdict
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matches.get
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.IPv4_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - host
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 406
    functionName: rfc3986.validators.valid_ipv4_host_address
    functionSourceFile: rfc3986.validators
    functionUses: 20
    functionsReached:
    - <builtin>.int
    - <builtin>.all
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.SUBAUTHORITY_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: rfc3986._mixin.URIMixin._validator
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.Validator.__init__
    - <builtin>.tuple
    - <builtin>.getattr
    - c.lower
    - rfc3986.validators.Validator.require_presence_of
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 88
    functionName: rfc3986._mixin.URIMixin.host
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.iri.IRIReference._match_subauthority
    - misc.IPv4_MATCHER.match
    - rfc3986._mixin.URIMixin._match_subauthority
    - misc.ISUBAUTHORITY_MATCHER.match
    - <builtin>.int
    - matches.get
    - rfc3986._mixin.URIMixin.authority_info
    - match.groupdict
    - <builtin>.all
    - misc.SUBAUTHORITY_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 97
    functionName: rfc3986._mixin.URIMixin.port
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.iri.IRIReference._match_subauthority
    - misc.IPv4_MATCHER.match
    - rfc3986._mixin.URIMixin._match_subauthority
    - misc.ISUBAUTHORITY_MATCHER.match
    - <builtin>.int
    - matches.get
    - rfc3986._mixin.URIMixin.authority_info
    - match.groupdict
    - <builtin>.all
    - misc.SUBAUTHORITY_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 106
    functionName: rfc3986._mixin.URIMixin.userinfo
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.iri.IRIReference._match_subauthority
    - misc.IPv4_MATCHER.match
    - rfc3986._mixin.URIMixin._match_subauthority
    - misc.ISUBAUTHORITY_MATCHER.match
    - <builtin>.int
    - matches.get
    - rfc3986._mixin.URIMixin.authority_info
    - match.groupdict
    - <builtin>.all
    - misc.SUBAUTHORITY_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 114
    functionName: rfc3986._mixin.URIMixin.is_absolute
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - result_list.append
    - result_list.extend
    - misc.ABSOLUTE_URI_MATCHER.match
    - rfc3986._mixin.URIMixin.unsplit
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 353
    functionName: rfc3986._mixin.URIMixin.unsplit
    functionSourceFile: rfc3986._mixin
    functionUses: 2
    functionsReached:
    - result_list.append
    - result_list.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.ABSOLUTE_URI_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: rfc3986._mixin.URIMixin.is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.all
    - kwargs.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.all
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2317340>
    argNames:
    - self
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 158
    functionName: rfc3986._mixin.URIMixin.authority_is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.is_valid
    - misc.IPv4_MATCHER.match
    - misc.ISUBAUTHORITY_MATCHER.match
    - matches.get
    - <builtin>.bool
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    - <builtin>.all
    - misc.SUBAUTHORITY_MATCHER.match
    - misc.IPv6_MATCHER.match
    - match.groupdict
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - warnings.warn
    - rfc3986.validators.authority_is_valid
    - rfc3986.validators.host_is_valid
    - rfc3986.iri.IRIReference._match_subauthority
    - rfc3986._mixin.URIMixin._match_subauthority
    - <builtin>.int
    - rfc3986._mixin.URIMixin.authority_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd26d6e20>
    - <ast.Constant object at 0x7f1dd26d66d0>
    argNames:
    - authority
    - host
    - require
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 299
    functionName: rfc3986.validators.authority_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 1
    functionsReached:
    - rfc3986.validators.is_valid
    - rfc3986.validators.host_is_valid
    - misc.IPv4_MATCHER.match
    - misc.IPv6_MATCHER.match
    - <builtin>.int
    - <builtin>.all
    - <builtin>.bool
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd21e1490>
    argNames:
    - self
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 188
    functionName: rfc3986._mixin.URIMixin.scheme_is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.is_valid
    - rfc3986.validators.scheme_is_valid
    - <builtin>.bool
    - warnings.warn
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd220c070>
    argNames:
    - scheme
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 343
    functionName: rfc3986.validators.scheme_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 1
    functionsReached:
    - rfc3986.validators.is_valid
    - matcher.match
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2160310>
    argNames:
    - self
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 207
    functionName: rfc3986._mixin.URIMixin.path_is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.is_valid
    - rfc3986.validators.path_is_valid
    - <builtin>.bool
    - warnings.warn
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd220c6a0>
    argNames:
    - path
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 358
    functionName: rfc3986.validators.path_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 1
    functionsReached:
    - rfc3986.validators.is_valid
    - matcher.match
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b7ac40>
    argNames:
    - self
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 226
    functionName: rfc3986._mixin.URIMixin.query_is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.is_valid
    - rfc3986.validators.query_is_valid
    - <builtin>.bool
    - warnings.warn
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1c690a0>
    argNames:
    - query
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 373
    functionName: rfc3986.validators.query_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 1
    functionsReached:
    - rfc3986.validators.is_valid
    - matcher.match
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b7a850>
    argNames:
    - self
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 245
    functionName: rfc3986._mixin.URIMixin.fragment_is_valid
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - rfc3986.validators.fragment_is_valid
    - rfc3986.validators.is_valid
    - <builtin>.bool
    - warnings.warn
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1c69d30>
    argNames:
    - fragment
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 388
    functionName: rfc3986.validators.fragment_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 1
    functionsReached:
    - rfc3986.validators.is_valid
    - matcher.match
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: other_ref.normalize
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1c522e0>
    argNames:
    - self
    - base_uri
    - strict
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 274
    functionName: rfc3986._mixin.URIMixin.resolve_with
    functionSourceFile: rfc3986._mixin
    functionUses: 0
    functionsReached:
    - output.append
    - rfc3986._mixin.URIMixin.copy_with
    - <builtin>.set
    - resolving.path.startswith
    - output.insert
    - urllib.parse.urlencode.startswith
    - m.upper
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - attributes.items
    - m.isupper
    - path.rfind
    - base_uri.normalize
    - urllib.parse.urlencode.replace
    - <builtin>.type
    - urllib.parse.urlencode.split
    - rfc3986.misc.merge_paths
    - <builtin>.isinstance
    - typing.cast
    - urllib.parse.urlencode.endswith
    - output.pop
    - PERCENT_MATCHER.findall
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base_uri.normalize
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 6
    argDefaultValues:
    - <ast.Attribute object at 0x7f1dd20dcca0>
    - <ast.Attribute object at 0x7f1dd20dc850>
    - <ast.Attribute object at 0x7f1dd20dcbe0>
    - <ast.Attribute object at 0x7f1dd20dcfd0>
    - <ast.Attribute object at 0x7f1dd20dc640>
    argNames:
    - self
    - scheme
    - authority
    - path
    - query
    - fragment
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 373
    functionName: rfc3986._mixin.URIMixin.copy_with
    functionSourceFile: rfc3986._mixin
    functionUses: 1
    functionsReached:
    - attributes.items
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resolving.path.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_list.extend
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result_list.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attributes.items
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.validators
    functionSourceFile: rfc3986.validators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.frozenset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: rfc3986.validators.Validator
    functionSourceFile: rfc3986.validators
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 124
    functionName: rfc3986.validators.Validator.allow_use_of_password
    functionSourceFile: rfc3986.validators
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: c.lower
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 238
    functionName: rfc3986.validators.check_password
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - userinfo.split
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - uri
    - required_components
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 264
    functionName: rfc3986.validators.ensure_required_components_exist
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - uri
    - validated_components
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 456
    functionName: rfc3986.validators.ensure_components_are_valid
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - <builtin>.len
    - port.isdigit
    - rfc3986.validators.host_is_valid
    - <builtin>.getattr
    - rfc3986.validators.is_valid
    - misc.IPv4_MATCHER.match
    - invalid_components.add
    - misc.IPv6_MATCHER.match
    - <builtin>.int
    - rfc3986.validators.subauthority_component_is_valid
    - <builtin>.all
    - <builtin>.bool
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - <builtin>.set
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    - uri.authority_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - allowed_values
    - uri
    - attribute
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 249
    functionName: rfc3986.validators.ensure_one_of
    functionSourceFile: rfc3986.validators
    functionUses: 3
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: userinfo.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - value
    - matcher
    - require
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: rfc3986.validators.is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 16
    functionsReached:
    - matcher.match
    - <builtin>.bool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: matcher.match
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd2588e50>
    argNames:
    - host
    - require
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 323
    functionName: rfc3986.validators.host_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 7
    functionsReached:
    - rfc3986.validators.is_valid
    - misc.IPv4_MATCHER.match
    - misc.IPv6_MATCHER.match
    - <builtin>.int
    - <builtin>.all
    - <builtin>.bool
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: misc.IPv6_NO_RFC4007_MATCHER.match
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - uri
    - component
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 423
    functionName: rfc3986.validators.subauthority_component_is_valid
    functionSourceFile: rfc3986.validators
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - port.isdigit
    - rfc3986.validators.host_is_valid
    - rfc3986.validators.is_valid
    - misc.IPv4_MATCHER.match
    - misc.IPv6_MATCHER.match
    - <builtin>.int
    - <builtin>.all
    - <builtin>.bool
    - misc.IPv6_NO_RFC4007_MATCHER.match
    - rfc3986.validators.valid_ipv4_host_address
    - matcher.match
    - uri.authority_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.authority_info
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: invalid_components.add
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986._typing_compat
    functionSourceFile: rfc3986._typing_compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: rfc3986._typing_compat._PlaceholderMeta.__repr__
    functionSourceFile: rfc3986._typing_compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: rfc3986.builder
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f1dd1b86370>
    - <ast.Constant object at 0x7f1dd1b862e0>
    - <ast.Constant object at 0x7f1dd1b86850>
    - <ast.Constant object at 0x7f1dd1b868b0>
    - <ast.Constant object at 0x7f1dd1b86910>
    - <ast.Constant object at 0x7f1dd1b869d0>
    - <ast.Constant object at 0x7f1dd1b86430>
    argNames:
    - self
    - scheme
    - userinfo
    - host
    - port
    - path
    - query
    - fragment
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: rfc3986.builder.URIBuilder.__init__
    functionSourceFile: rfc3986.builder
    functionUses: 11
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: rfc3986.builder.URIBuilder.__repr__
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - formatstr.format
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: formatstr.format
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - reference
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: rfc3986.builder.URIBuilder.from_uri
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - rfc3986.builder.URIBuilder.__init__
    - uri_reference
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri_reference
    functionSourceFile: uri_reference
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - scheme
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 110
    functionName: rfc3986.builder.URIBuilder.add_scheme
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - scheme.lower
    - <builtin>.str
    - rfc3986.normalizers.normalize_scheme
    - rfc3986.builder.URIBuilder.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - username
    - password
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 134
    functionName: rfc3986.builder.URIBuilder.add_credentials
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - rfc3986.normalizers.normalize_password
    - rfc3986.builder.URIBuilder.__init__
    - <builtin>.str
    - rfc3986.normalizers.normalize_username
    - urllib.parse.quote
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 171
    functionName: rfc3986.builder.URIBuilder.add_host
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - host.replace
    - rfc3986.builder.URIBuilder.__init__
    - <builtin>.str
    - misc.IPv6_MATCHER.match
    - rfc3986.normalizers.normalize_host
    - host.find
    - host.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - port
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 191
    functionName: rfc3986.builder.URIBuilder.add_port
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - <builtin>.int
    - <builtin>.str
    - rfc3986.builder.URIBuilder.__init__
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 230
    functionName: rfc3986.builder.URIBuilder.add_path
    functionSourceFile: rfc3986.builder
    functionUses: 1
    functionsReached:
    - output.insert
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.startswith
    - urllib.parse.urlencode.split
    - rfc3986.builder.URIBuilder.__init__
    - urllib.parse.urlencode.replace
    - output.append
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - <builtin>.str
    - path.startswith
    - m.upper
    - urllib.parse.urlencode.endswith
    - <builtin>.set
    - output.pop
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 257
    functionName: rfc3986.builder.URIBuilder.extend_path
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - path.lstrip
    - output.append
    - <builtin>.str
    - <builtin>.set
    - output.insert
    - urllib.parse.urlencode.startswith
    - m.upper
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.builder.URIBuilder.__init__
    - rfc3986.normalizers.remove_dot_segments
    - rfc3986.normalizers.normalize_path
    - path.startswith
    - m.isupper
    - urllib.parse.urlencode.split
    - urllib.parse.urlencode.replace
    - rfc3986.builder.URIBuilder.add_path
    - urllib.parse.urlencode.endswith
    - existing_path.rstrip
    - output.pop
    - PERCENT_MATCHER.findall
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: existing_path.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path.lstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - query_items
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 286
    functionName: rfc3986.builder.URIBuilder.add_query_from
    functionSourceFile: rfc3986.builder
    functionUses: 1
    functionsReached:
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - rfc3986.builder.URIBuilder.__init__
    - urllib.parse.urlencode
    - <builtin>.str
    - m.upper
    - rfc3986.normalizers.normalize_query
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlencode
    functionSourceFile: urllib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - query_items
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 312
    functionName: rfc3986.builder.URIBuilder.extend_query_with
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - rfc3986.normalizers.normalize_percent_characters
    - rfc3986.builder.URIBuilder.add_query_from
    - rfc3986.builder.URIBuilder.__init__
    - urllib.parse.urlencode.replace
    - urllib.parse.parse_qsl
    - urllib.parse.urlencode
    - <builtin>.str
    - query_items.items
    - m.upper
    - <builtin>.isinstance
    - rfc3986.normalizers.normalize_query
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - <builtin>.list
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.parse_qsl
    functionSourceFile: urllib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: query_items.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - query
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 333
    functionName: rfc3986.builder.URIBuilder.add_query
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - rfc3986.builder.URIBuilder.__init__
    - <builtin>.str
    - m.upper
    - rfc3986.normalizers.normalize_query
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fragment
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 353
    functionName: rfc3986.builder.URIBuilder.add_fragment
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - rfc3986.normalizers.normalize_fragment
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - rfc3986.builder.URIBuilder.__init__
    - <builtin>.str
    - m.upper
    - <builtin>.set
    - PERCENT_MATCHER.findall
    - m.isupper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 373
    functionName: rfc3986.builder.URIBuilder.finalize
    functionSourceFile: rfc3986.builder
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - host.replace
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - <builtin>.set
    - misc.IPv6_MATCHER.match
    - m.upper
    - rfc3986.normalizers.normalize_host
    - m.isupper
    - host.find
    - host.lower
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    - rfc3986.normalizers.normalize_authority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 398
    functionName: rfc3986.builder.URIBuilder.geturl
    functionSourceFile: rfc3986.builder
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - host.replace
    - rfc3986.normalizers.normalize_percent_characters
    - urllib.parse.urlencode.replace
    - rfc3986.builder.URIBuilder.finalize
    - result_list.append
    - result_list.extend
    - <builtin>.set
    - rfc3986._mixin.URIMixin.unsplit
    - misc.IPv6_MATCHER.match
    - m.upper
    - rfc3986.normalizers.normalize_host
    - m.isupper
    - host.find
    - host.lower
    - PERCENT_MATCHER.findall
    - typing.NamedTuple.__init__
    - rfc3986.normalizers.normalize_authority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_rfc3986':
  - 116
  - 117
  '...fuzz_rfc3986.TestOneInput':
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  '...fuzz_rfc3986.fuzz_api':
  - 58
  - 59
  - 60
  - 61
  - 62
  - 63
  '...fuzz_rfc3986.fuzz_iri':
  - 52
  - 53
  - 54
  '...fuzz_rfc3986.fuzz_normalizers':
  - 36
  - 37
  - 38
  - 39
  - 40
  '...fuzz_rfc3986.fuzz_parseresult':
  - 22
  - 24
  - 25
  - 29
  - 30
  '...fuzz_rfc3986.fuzz_uri':
  - 44
  - 45
  - 46
  - 47
  - 48
  '...fuzz_rfc3986.fuzz_validators':
  - 96
  - 67
  - 68
  - 69
  - 70
  - 71
  - 73
  - 77
  - 79
  - 83
  - 84
  - 85
  - 86
  - 88
  - 92
  '...fuzz_rfc3986.main':
  - 112
  - 113
  - 111
  rfc3986:
  - 14
  rfc3986._mixin:
  - 1
  rfc3986._mixin.URIMixin:
  - 25
  - 23
  rfc3986._mixin.URIMixin._match_subauthority:
  - 75
  rfc3986._mixin.URIMixin._validator:
  - 80
  - 82
  - 79
  rfc3986._mixin.URIMixin.authority_info:
  - 65
  - 34
  - 66
  - 46
  - 49
  - 51
  - 60
  - 61
  - 63
  rfc3986._mixin.URIMixin.authority_is_valid:
  - 178
  - 172
  - 182
  - 159
  rfc3986._mixin.URIMixin.copy_with:
  - 408
  - 406
  - 381
  - 405
  rfc3986._mixin.URIMixin.fragment_is_valid:
  - 257
  - 246
  - 262
  rfc3986._mixin.URIMixin.host:
  - 89
  - 91
  rfc3986._mixin.URIMixin.is_absolute:
  - 122
  - 115
  rfc3986._mixin.URIMixin.is_valid:
  - 144
  - 150
  - 151
  - 152
  - 153
  - 154
  - 156
  - 125
  rfc3986._mixin.URIMixin.normalized_equality:
  - 272
  - 265
  rfc3986._mixin.URIMixin.path_is_valid:
  - 208
  - 224
  - 219
  rfc3986._mixin.URIMixin.port:
  - 98
  - 100
  rfc3986._mixin.URIMixin.query_is_valid:
  - 227
  - 238
  - 243
  rfc3986._mixin.URIMixin.resolve_with:
  - 279
  - 294
  - 295
  - 297
  - 298
  - 301
  - 307
  - 312
  - 313
  - 316
  - 317
  - 318
  - 321
  - 322
  - 324
  - 327
  - 328
  - 332
  - 339
  - 340
  - 342
  - 343
  - 345
  rfc3986._mixin.URIMixin.scheme_is_valid:
  - 200
  - 205
  - 189
  rfc3986._mixin.URIMixin.unsplit:
  - 354
  - 361
  - 362
  - 363
  - 364
  - 365
  - 366
  - 367
  - 368
  - 369
  - 370
  - 371
  rfc3986._mixin.URIMixin.userinfo:
  - 107
  - 109
  rfc3986._mixin._AuthorityInfo:
  - 15
  rfc3986._typing_compat:
  - 8
  - 6
  rfc3986._typing_compat.Self:
  - 19
  rfc3986.abnf_regexp:
  - 128
  - 261
  - 13
  - 269
  - 18
  - 21
  - 149
  - 24
  - 29
  - 158
  - 30
  - 175
  - 184
  - 61
  - 197
  - 74
  - 82
  - 221
  - 228
  - 236
  - 110
  - 240
  - 122
  rfc3986.api:
  - 14
  rfc3986.api.iri_reference:
  - 48
  - 58
  rfc3986.api.is_valid_uri:
  - 66
  - 87
  rfc3986.api.normalize_uri:
  - 91
  - 102
  - 103
  rfc3986.api.uri_reference:
  - 41
  - 31
  rfc3986.api.urlparse:
  - 107
  - 116
  rfc3986.builder:
  - 14
  rfc3986.builder.URIBuilder:
  - 36
  rfc3986.builder.URIBuilder.__init__:
  - 56
  - 76
  rfc3986.builder.URIBuilder.__repr__:
  - 88
  - 82
  rfc3986.builder.URIBuilder.add_credentials:
  - 161
  - 139
  - 151
  - 153
  - 155
  - 156
  - 158
  rfc3986.builder.URIBuilder.add_fragment:
  - 354
  - 363
  - 370
  rfc3986.builder.URIBuilder.add_host:
  - 184
  - 172
  - 181
  rfc3986.builder.URIBuilder.add_path:
  - 247
  - 244
  - 252
  - 231
  rfc3986.builder.URIBuilder.add_port:
  - 192
  - 205
  - 206
  - 212
  - 220
  rfc3986.builder.URIBuilder.add_query:
  - 349
  - 334
  - 343
  rfc3986.builder.URIBuilder.add_query_from:
  - 300
  - 302
  - 287
  rfc3986.builder.URIBuilder.add_scheme:
  - 123
  - 124
  - 111
  rfc3986.builder.URIBuilder.extend_path:
  - 258
  - 282
  - 284
  rfc3986.builder.URIBuilder.extend_query_with:
  - 327
  - 328
  - 329
  - 331
  - 313
  rfc3986.builder.URIBuilder.finalize:
  - 390
  - 388
  - 374
  rfc3986.builder.URIBuilder.from_uri:
  - 100
  - 98
  - 99
  - 92
  rfc3986.builder.URIBuilder.geturl:
  - 406
  - 399
  rfc3986.compat:
  - 14
  rfc3986.compat.to_bytes:
  - 49
  - 54
  - 61
  - 62
  - 63
  rfc3986.compat.to_str:
  - 32
  - 39
  - 40
  - 41
  - 27
  rfc3986.exceptions:
  - 1
  rfc3986.exceptions.InvalidAuthority:
  - 16
  rfc3986.exceptions.InvalidAuthority.__init__:
  - 19
  - 20
  - 21
  rfc3986.exceptions.InvalidComponentsError:
  - 110
  rfc3986.exceptions.InvalidComponentsError.__init__:
  - 113
  - 115
  - 119
  - 120
  - 121
  rfc3986.exceptions.InvalidPort:
  - 26
  rfc3986.exceptions.InvalidPort.__init__:
  - 29
  - 30
  rfc3986.exceptions.MissingComponentError:
  - 52
  rfc3986.exceptions.MissingComponentError.__init__:
  - 55
  - 57
  - 61
  - 62
  - 63
  rfc3986.exceptions.MissingDependencyError:
  - 129
  rfc3986.exceptions.PasswordForbidden:
  - 96
  rfc3986.exceptions.PasswordForbidden.__init__:
  - 99
  - 100
  - 101
  - 102
  - 103
  rfc3986.exceptions.RFC3986Exception:
  - 10
  rfc3986.exceptions.ResolutionError:
  - 34
  rfc3986.exceptions.ResolutionError.__init__:
  - 40
  - 37
  - 38
  - 39
  rfc3986.exceptions.UnpermittedComponentError:
  - 71
  rfc3986.exceptions.UnpermittedComponentError.__init__:
  - 80
  - 81
  - 83
  - 79
  rfc3986.exceptions.ValidationError:
  - 46
  rfc3986.iri:
  - 1
  rfc3986.iri.IRIReference:
  - 33
  rfc3986.iri.IRIReference.__eq__:
  - 69
  - 71
  - 72
  - 73
  - 75
  - 84
  rfc3986.iri.IRIReference.__new__:
  - 54
  - 55
  rfc3986.iri.IRIReference._match_subauthority:
  - 87
  rfc3986.iri.IRIReference.encode:
  - 162
  - 164
  - 133
  - 134
  - 135
  - 169
  - 170
  - 172
  - 119
  - 154
  - 155
  - 157
  - 158
  rfc3986.iri.IRIReference.encode.idna_encoder:
  - 144
  - 146
  - 147
  rfc3986.iri.IRIReference.from_string:
  - 101
  - 103
  - 104
  - 107
  - 108
  - 109
  - 95
  rfc3986.misc:
  - 69
  - 70
  - 71
  - 101
  - 74
  - 91
  - 139
  - 77
  - 14
  - 114
  - 84
  - 116
  - 117
  - 56
  - 89
  - 58
  - 59
  rfc3986.misc.URIReferenceBase:
  - 27
  rfc3986.misc.merge_paths:
  - 130
  - 131
  - 135
  rfc3986.normalizers:
  - 14
  - 119
  rfc3986.normalizers.encode_component:
  - 192
  - 193
  - 195
  - 197
  - 200
  - 201
  - 170
  - 202
  - 204
  - 206
  - 175
  - 208
  - 182
  - 183
  - 188
  - 189
  rfc3986.normalizers.normalize_authority:
  - 34
  - 35
  - 36
  - 37
  - 38
  - 31
  rfc3986.normalizers.normalize_fragment:
  - 104
  - 109
  - 113
  - 114
  - 116
  rfc3986.normalizers.normalize_host:
  - 66
  - 68
  - 71
  - 73
  - 54
  - 55
  - 56
  - 57
  - 58
  - 63
  rfc3986.normalizers.normalize_password:
  - 49
  - 50
  rfc3986.normalizers.normalize_path:
  - 81
  - 82
  - 77
  - 78
  rfc3986.normalizers.normalize_percent_characters:
  - 128
  - 129
  - 130
  - 123
  - 127
  rfc3986.normalizers.normalize_query:
  - 96
  - 97
  - 99
  - 87
  - 92
  rfc3986.normalizers.normalize_scheme:
  - 24
  - 25
  rfc3986.normalizers.normalize_username:
  - 44
  - 45
  rfc3986.normalizers.remove_dot_segments:
  - 162
  - 163
  - 165
  - 135
  - 140
  - 143
  - 145
  - 148
  - 149
  - 152
  - 153
  - 157
  - 158
  rfc3986.parseresult:
  - 14
  rfc3986.parseresult.ParseResult:
  - 95
  rfc3986.parseresult.ParseResult.__new__:
  - 123
  - 124
  rfc3986.parseresult.ParseResult.authority:
  - 215
  rfc3986.parseresult.ParseResult.copy_with:
  - 228
  - 229
  - 234
  - 235
  - 236
  - 238
  - 239
  - 246
  rfc3986.parseresult.ParseResult.encode:
  - 260
  - 249
  - 251
  - 252
  - 255
  rfc3986.parseresult.ParseResult.from_parts:
  - 166
  - 167
  - 150
  - 152
  - 154
  - 156
  - 158
  rfc3986.parseresult.ParseResult.from_string:
  - 196
  - 197
  - 198
  - 199
  - 201
  - 187
  rfc3986.parseresult.ParseResult.unsplit:
  - 265
  - 271
  - 272
  - 273
  - 274
  - 275
  rfc3986.parseresult.ParseResultBytes:
  - 281
  rfc3986.parseresult.ParseResultBytes.__new__:
  - 307
  - 308
  rfc3986.parseresult.ParseResultBytes.authority:
  - 408
  - 407
  rfc3986.parseresult.ParseResultBytes.copy_with:
  - 421
  - 422
  - 427
  - 428
  - 429
  - 430
  - 431
  - 434
  - 435
  - 437
  - 439
  - 440
  - 441
  - 442
  - 443
  - 444
  - 446
  - 447
  - 448
  rfc3986.parseresult.ParseResultBytes.from_parts:
  - 352
  - 353
  - 355
  - 356
  - 357
  - 358
  - 359
  - 361
  - 362
  - 363
  - 336
  - 338
  - 340
  - 342
  - 343
  - 344
  rfc3986.parseresult.ParseResultBytes.from_string:
  - 386
  - 387
  - 388
  - 389
  - 392
  - 393
  - 394
  - 395
  - 397
  - 398
  - 399
  - 377
  rfc3986.parseresult.ParseResultBytes.unsplit:
  - 456
  - 462
  - 465
  - 466
  - 467
  - 468
  - 469
  - 470
  - 471
  rfc3986.parseresult.ParseResultMixin:
  - 39
  rfc3986.parseresult.ParseResultMixin._generate_authority:
  - 64
  - 68
  - 69
  - 58
  - 59
  - 61
  - 63
  rfc3986.parseresult.ParseResultMixin.authority:
  - 47
  rfc3986.parseresult.ParseResultMixin.geturl:
  - 73
  - 74
  rfc3986.parseresult.ParseResultMixin.hostname:
  - 78
  rfc3986.parseresult.ParseResultMixin.netloc:
  - 83
  rfc3986.parseresult.ParseResultMixin.params:
  - 88
  rfc3986.parseresult.authority_from:
  - 512
  - 516
  - 517
  - 518
  - 520
  - 521
  - 522
  - 508
  - 510
  rfc3986.parseresult.split_authority:
  - 484
  - 485
  - 488
  - 489
  - 492
  - 493
  - 494
  - 497
  rfc3986.uri:
  - 1
  rfc3986.uri.URIReference:
  - 27
  rfc3986.uri.URIReference.__eq__:
  - 110
  - 112
  - 113
  - 114
  - 116
  - 125
  - 126
  rfc3986.uri.URIReference.__new__:
  - 96
  - 95
  rfc3986.uri.URIReference.from_string:
  - 162
  - 164
  - 165
  - 168
  - 169
  - 170
  - 156
  rfc3986.uri.URIReference.normalize:
  - 129
  - 139
  - 140
  - 141
  - 144
  - 145
  - 146
  rfc3986.validators:
  - 14
  rfc3986.validators.Validator:
  - 25
  - 51
  rfc3986.validators.Validator.__init__:
  - 71
  - 56
  - 57
  - 58
  - 59
  rfc3986.validators.Validator.allow_hosts:
  - 91
  - 102
  - 103
  rfc3986.validators.Validator.allow_ports:
  - 107
  - 118
  - 119
  - 120
  - 121
  rfc3986.validators.Validator.allow_schemes:
  - 75
  - 86
  - 87
  rfc3986.validators.Validator.allow_use_of_password:
  - 125
  rfc3986.validators.Validator.check_validity_of:
  - 164
  - 165
  - 166
  - 168
  - 151
  rfc3986.validators.Validator.forbid_use_of_password:
  - 138
  rfc3986.validators.Validator.require_presence_of:
  - 174
  - 187
  - 188
  - 189
  - 191
  rfc3986.validators.Validator.validate:
  - 225
  - 228
  - 197
  - 229
  - 230
  - 231
  - 233
  - 234
  - 235
  - 215
  - 216
  - 220
  rfc3986.validators.authority_is_valid:
  - 304
  - 317
  - 318
  - 319
  rfc3986.validators.check_password:
  - 241
  - 243
  - 244
  - 239
  rfc3986.validators.ensure_components_are_valid:
  - 460
  - 461
  - 462
  - 463
  - 464
  - 465
  - 472
  - 473
  - 475
  rfc3986.validators.ensure_one_of:
  - 256
  - 254
  - 255
  rfc3986.validators.ensure_required_components_exist:
  - 272
  - 274
  - 268
  - 269
  rfc3986.validators.fragment_is_valid:
  - 392
  - 403
  rfc3986.validators.host_is_valid:
  - 324
  - 335
  - 336
  - 337
  - 338
  - 339
  rfc3986.validators.is_valid:
  - 296
  - 283
  - 292
  - 293
  rfc3986.validators.path_is_valid:
  - 370
  - 359
  rfc3986.validators.query_is_valid:
  - 385
  - 374
  rfc3986.validators.scheme_is_valid:
  - 344
  - 355
  rfc3986.validators.subauthority_component_is_valid:
  - 453
  - 427
  - 429
  - 435
  - 436
  - 437
  - 442
  - 446
  rfc3986.validators.valid_ipv4_host_address:
  - 410
  - 407
Fuzzer filename: /src/fuzz_rfc3986.py
Inheritance:
  rfc3986._mixin.URIMixin: []
  rfc3986._mixin._AuthorityInfo: []
  rfc3986._typing_compat.Self: []
  rfc3986._typing_compat._PlaceholderMeta:
  - type
  rfc3986.builder.URIBuilder: []
  rfc3986.exceptions.InvalidAuthority:
  - RFC3986Exception
  rfc3986.exceptions.InvalidComponentsError:
  - ValidationError
  rfc3986.exceptions.InvalidPort:
  - RFC3986Exception
  rfc3986.exceptions.MissingComponentError:
  - ValidationError
  rfc3986.exceptions.MissingDependencyError:
  - RFC3986Exception
  rfc3986.exceptions.PasswordForbidden:
  - ValidationError
  rfc3986.exceptions.RFC3986Exception:
  - Exception
  rfc3986.exceptions.ResolutionError:
  - RFC3986Exception
  rfc3986.exceptions.UnpermittedComponentError:
  - ValidationError
  rfc3986.exceptions.ValidationError:
  - RFC3986Exception
  rfc3986.iri.IRIReference: []
  rfc3986.misc.URIReferenceBase: []
  rfc3986.parseresult.ParseResult: []
  rfc3986.parseresult.ParseResultBytes: []
  rfc3986.parseresult.ParseResultMixin: []
  rfc3986.uri.URIReference:
  - URIMixin
  rfc3986.validators.Validator: []
ep:
  func_name: TestOneInput
  module: '...fuzz_rfc3986'
