All classes:
- urlextract.cachefile.CacheFileError
- urlextract.cachefile.CacheFile
- urlextract.urlextract_core.URLExtract
- urlextract.urlextract_core.URLExtractError
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: -1
    functionName: '...fuzz_find_urls'
    functionSourceFile: '...fuzz_find_urls'
    functionUses: 0
    functionsReached:
    - re.compile
    - os.path.join
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - platformdirs.user_cache_dir
    - idna.decode
    - set_of_tlds.add
    - tempfile.gettempdir
    - <builtin>.zip
    - <builtin>.sorted
    - atheris.instrument_all
    - <builtin>.set
    - os.access
    - tlds.append
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.super
    - <builtin>.str
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - '...fuzz_find_urls.main'
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - <builtin>.open
    - atheris.Fuzz
    - re.escape
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - filelock.FileLock
    - os.path.exists
    - os.makedirs
    - urlextract.urlextract_core.URLExtract.__init__
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - line.strip
    - atheris.Setup
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7ff286134640>
    - <ast.Constant object at 0x7ff286134610>
    - <ast.Constant object at 0x7ff2861345e0>
    - <ast.Name object at 0x7ff2861345b0>
    - <ast.Constant object at 0x7ff286134580>
    argNames:
    - self
    - extract_email
    - cache_dns
    - extract_localhost
    - limit
    - allow_mixed_case_hostname
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 77
    functionName: urlextract.urlextract_core.URLExtract.__init__
    functionSourceFile: urlextract.urlextract_core
    functionUses: 4
    functionsReached:
    - re.compile
    - os.path.join
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - platformdirs.user_cache_dir
    - idna.decode
    - set_of_tlds.add
    - tempfile.gettempdir
    - <builtin>.zip
    - <builtin>.sorted
    - <builtin>.set
    - os.access
    - tlds.append
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.str
    - <builtin>.super
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - <builtin>.open
    - re.escape
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - filelock.FileLock
    - os.path.exists
    - os.makedirs
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - line.strip
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 28
    functionName: '...fuzz_find_urls.TestOneInput'
    functionSourceFile: '...fuzz_find_urls'
    functionUses: 0
    functionsReached:
    - matched_tlds.pop
    - tld.lower
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.find
    - host_tld.lower
    - host.rfind
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.isinstance
    - <builtin>.next
    - url_parts.getquery
    - urlextract.urlextract_core.URLExtract._split_markdown
    - url_parts.getfragment
    - <builtin>.range
    - result_urls.append
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - text_url.rfind
    - <builtin>.str
    - s.isalpha
    - dns.resolver.Resolver
    - collections.OrderedDict.fromkeys
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - enclosure_map.values
    - socket.gethostbyname
    - <builtin>.len
    - url_parts.getuserinfo
    - urlextract.urlextract_core.URLExtract.find_urls
    - tmp_text.find
    - url.lower
    - complete_url.strip
    - <builtin>.list
    - urlextract.urlextract_core.URLExtract.gen_urls
    - url_parts.getport
    - uritools.urisplit
    - s.isupper
    - urlextract.urlextract_core.URLExtract._complete_url
    - url_parts.authority.startswith
    - dns.resolver.LRUCache
    - extended_tld.endswith
    - host.split
    - rest_url.find
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - url_parts.gethost
    - <builtin>.any
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.min
    - url.find
    - atheris.FuzzedDataProvider
    - <builtin>.max
    - s.islower
    - fdp.ConsumeUnicodeNoSurrogates
    - fdp.ConsumeIntInRange
    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: 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: fdp.ConsumeIntInRange
    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: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7ff2860d3a90>
    - <ast.Constant object at 0x7ff2860d3ac0>
    - <ast.Constant object at 0x7ff2860d3b20>
    - <ast.Constant object at 0x7ff2860d3b80>
    argNames:
    - self
    - text
    - only_unique
    - check_dns
    - get_indices
    - with_schema_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 900
    functionName: urlextract.urlextract_core.URLExtract.find_urls
    functionSourceFile: urlextract.urlextract_core
    functionUses: 4
    functionsReached:
    - matched_tlds.pop
    - tld.lower
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.find
    - host_tld.lower
    - host.rfind
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.isinstance
    - <builtin>.next
    - url_parts.getquery
    - urlextract.urlextract_core.URLExtract._split_markdown
    - url_parts.getfragment
    - <builtin>.range
    - result_urls.append
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - text_url.rfind
    - <builtin>.str
    - s.isalpha
    - dns.resolver.Resolver
    - collections.OrderedDict.fromkeys
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - enclosure_map.values
    - socket.gethostbyname
    - <builtin>.len
    - url_parts.getuserinfo
    - url_parts.getport
    - tmp_text.find
    - complete_url.strip
    - url.lower
    - urlextract.urlextract_core.URLExtract.gen_urls
    - <builtin>.list
    - s.isupper
    - uritools.urisplit
    - urlextract.urlextract_core.URLExtract._complete_url
    - url_parts.authority.startswith
    - dns.resolver.LRUCache
    - extended_tld.endswith
    - host.split
    - rest_url.find
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - url_parts.gethost
    - <builtin>.any
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.min
    - url.find
    - <builtin>.max
    - s.islower
    linkageType: pythonLinkage
    raised:
    - URLExtractError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 41
    functionName: '...fuzz_find_urls.main'
    functionSourceFile: '...fuzz_find_urls'
    functionUses: 1
    functionsReached:
    - atheris.instrument_all
    - atheris.Setup
    - atheris.Fuzz
    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: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urlextract
    functionSourceFile: urlextract
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: urlextract.urlextract_core
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - matched_tlds.pop
    - platformdirs.user_cache_dir
    - enclosure_map.get
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - host.rfind
    - idna.decode
    - <builtin>.isinstance
    - <builtin>.next
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.range
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - s.isalpha
    - urlextract.urlextract_core.URLExtract.get_version
    - logging.getLogger
    - dns.resolver.override_system_resolver
    - <builtin>.len
    - socket.gethostbyname
    - f.read
    - urlextract.urlextract_core.URLExtract.find_urls
    - s.isupper
    - complete_url.strip
    - extended_tld.endswith
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - re.escape
    - <builtin>.any
    - <builtin>.min
    - url.find
    - args.input_file.close
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._download_tlds_list
    - urlextract.urlextract_core.URLExtract.load_ignore_list
    - os.path.join
    - text_url.find
    - re.compile
    - <builtin>.zip
    - os.access
    - <builtin>.set
    - ftld.write
    - result_urls.append
    - <builtin>.str
    - datetime.datetime.now
    - urlextract.urlextract_core.report_issue
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - url_parts.getpath
    - urlextract.urlextract_core.URLExtract.load_permit_list
    - enclosure_map.values
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - logger.error
    - tmp_text.find
    - sys.exit
    - <builtin>.list
    - <builtin>.open
    - urlextract.urlextract_core.URLExtract._complete_url
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - filelock.FileLock
    - url_parts.gethost
    - urllib.request.Request
    - os.makedirs
    - datetime.timedelta
    - urlextract.urlextract_core._urlextract_cli
    - line.strip
    - <builtin>.max
    - s.islower
    - urlextract.cachefile.CacheFile._get_last_cachefile_modification
    - enclosure_map.keys
    - set_of_tlds.add
    - <builtin>.sorted
    - urlextract.urlextract_core.URLExtract._split_markdown
    - urlextract.urlextract_core.URLExtract.update_when_older
    - text_url.rfind
    - <builtin>.super
    - args.input_file.read
    - os.path.getmtime
    - urlextract.urlextract_core._urlextract_cli.get_args
    - url_parts.getuserinfo
    - logging.basicConfig
    - url.lower
    - urlextract.urlextract_core.URLExtract.gen_urls
    - functools.wraps
    - argparse.FileType
    - url_parts.authority.startswith
    - urlextract.urlextract_core.URLExtract.update
    - parser.parse_args
    - <builtin>.print
    - os.path.exists
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - tld.lower
    - host_tld.lower
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - parser.add_argument
    - tempfile.gettempdir
    - url_parts.getquery
    - url_parts.getfragment
    - tlds.append
    - dns.resolver.Resolver
    - collections.OrderedDict.fromkeys
    - dns_cache.resolver.ExceptionCachingResolver
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - url_parts.getport
    - req.add_header
    - uritools.urisplit
    - dns.resolver.LRUCache
    - host.split
    - rest_url.find
    - datetime.datetime.fromtimestamp
    - urlextract.urlextract_core.URLExtract.__init__
    - urlextract.urlextract_core.dns_cache_install
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.all
    - os.path.dirname
    - argparse.ArgumentParser
    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: 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: 1
    functionLinenumber: -1
    functionName: urlextract.urlextract_core.URLExtract
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - <builtin>.range
    - re.compile
    - <builtin>.reversed
    - <builtin>.set
    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: 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>.reversed
    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>.set
    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: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 143
    functionName: urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    functionSourceFile: urlextract.urlextract_core
    functionUses: 7
    functionsReached:
    - re.compile
    - os.path.join
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - platformdirs.user_cache_dir
    - idna.decode
    - set_of_tlds.add
    - tempfile.gettempdir
    - <builtin>.sorted
    - <builtin>.set
    - os.access
    - tlds.append
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.str
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - <builtin>.open
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - re.escape
    - filelock.FileLock
    - os.path.exists
    - os.makedirs
    - line.strip
    - os.path.dirname
    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: 131
    functionName: urlextract.urlextract_core.URLExtract._get_after_tld_chars
    functionSourceFile: urlextract.urlextract_core
    functionUses: 7
    functionsReached:
    - <builtin>.set
    - <builtin>.zip
    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: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 220
    functionName: urlextract.cachefile.CacheFile._load_cached_tlds
    functionSourceFile: urlextract.cachefile
    functionUses: 8
    functionsReached:
    - filelock.FileLock
    - os.path.join
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - platformdirs.user_cache_dir
    - os.path.exists
    - <builtin>.set
    - os.makedirs
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - idna.decode
    - <builtin>.open
    - set_of_tlds.add
    - line.strip
    - tempfile.gettempdir
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - os.path.dirname
    - os.access
    linkageType: pythonLinkage
    raised:
    - CacheFileError
    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: 8
    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: tlds.append
    functionSourceFile: <builtin>
    functionUses: 8
    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: 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: re.escape
    functionSourceFile: re
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - extract
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 166
    functionName: urlextract.urlextract_core.URLExtract.extract_email
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - allow_mixed_case
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: urlextract.urlextract_core.URLExtract.allow_mixed_case_hostname
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - enable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 202
    functionName: urlextract.urlextract_core.URLExtract.extract_localhost
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - ignore_list
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 222
    functionName: urlextract.urlextract_core.URLExtract.ignore_list
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 230
    functionName: urlextract.urlextract_core.URLExtract.load_ignore_list
    functionSourceFile: urlextract.urlextract_core
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - line.strip
    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>.open
    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: line.strip
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - permit_list
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 254
    functionName: urlextract.urlextract_core.URLExtract.permit_list
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - file_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: urlextract.urlextract_core.URLExtract.load_permit_list
    functionSourceFile: urlextract.urlextract_core
    functionUses: 3
    functionsReached:
    - <builtin>.open
    - line.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 275
    functionName: urlextract.urlextract_core.URLExtract.update
    functionSourceFile: urlextract.urlextract_core
    functionUses: 4
    functionsReached:
    - re.compile
    - urlextract.cachefile.CacheFile._download_tlds_list
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - os.path.join
    - platformdirs.user_cache_dir
    - idna.decode
    - set_of_tlds.add
    - tempfile.gettempdir
    - <builtin>.sorted
    - <builtin>.set
    - os.access
    - tlds.append
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - ftld.write
    - <builtin>.str
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - f.read
    - req.add_header
    - <builtin>.open
    - re.escape
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - filelock.FileLock
    - urllib.request.Request
    - os.path.exists
    - os.makedirs
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - line.strip
    - os.path.dirname
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 163
    functionName: urlextract.cachefile.CacheFile._download_tlds_list
    functionSourceFile: urlextract.cachefile
    functionUses: 5
    functionsReached:
    - filelock.FileLock
    - ftld.write
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - os.path.join
    - urllib.request.Request
    - f.read
    - platformdirs.user_cache_dir
    - os.path.exists
    - os.makedirs
    - req.add_header
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - <builtin>.open
    - tempfile.gettempdir
    - os.path.dirname
    - os.access
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - days
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 289
    functionName: urlextract.urlextract_core.URLExtract.update_when_older
    functionSourceFile: urlextract.urlextract_core
    functionUses: 3
    functionsReached:
    - urlextract.cachefile.CacheFile._get_last_cachefile_modification
    - re.compile
    - urlextract.cachefile.CacheFile._download_tlds_list
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - os.path.join
    - platformdirs.user_cache_dir
    - idna.decode
    - set_of_tlds.add
    - tempfile.gettempdir
    - <builtin>.sorted
    - <builtin>.set
    - os.access
    - tlds.append
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - ftld.write
    - datetime.datetime.now
    - <builtin>.str
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - os.path.getmtime
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - f.read
    - req.add_header
    - <builtin>.open
    - urlextract.urlextract_core.URLExtract.update
    - re.escape
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - datetime.datetime.fromtimestamp
    - filelock.FileLock
    - urllib.request.Request
    - os.path.exists
    - os.makedirs
    - datetime.timedelta
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - line.strip
    - os.path.dirname
    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: 254
    functionName: urlextract.cachefile.CacheFile._get_last_cachefile_modification
    functionSourceFile: urlextract.cachefile
    functionUses: 4
    functionsReached:
    - os.path.getmtime
    - datetime.datetime.fromtimestamp
    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: datetime.timedelta
    functionSourceFile: datetime
    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: datetime.datetime.now
    functionSourceFile: datetime
    functionUses: 4
    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: 311
    functionName: urlextract.urlextract_core.URLExtract.get_version
    functionSourceFile: urlextract.urlextract_core
    functionUses: 4
    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: 1
    functionLinenumber: 321
    functionName: urlextract.urlextract_core.URLExtract.get_after_tld_chars
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - <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: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - after_tld_chars
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 331
    functionName: urlextract.urlextract_core.URLExtract.set_after_tld_chars
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    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: 340
    functionName: urlextract.urlextract_core.URLExtract.get_stop_chars_left
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stop_chars
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 349
    functionName: urlextract.urlextract_core.URLExtract.set_stop_chars_left
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    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>.isinstance
    functionSourceFile: <builtin>
    functionUses: 12
    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: 365
    functionName: urlextract.urlextract_core.URLExtract.get_stop_chars_left_from_scheme
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stop_chars
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 374
    functionName: urlextract.urlextract_core.URLExtract.set_stop_chars_left_from_scheme
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    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: 390
    functionName: urlextract.urlextract_core.URLExtract.get_stop_chars_right
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stop_chars
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 399
    functionName: urlextract.urlextract_core.URLExtract.set_stop_chars_right
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    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: 415
    functionName: urlextract.urlextract_core.URLExtract.get_enclosures
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - left_char
    - right_char
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 425
    functionName: urlextract.urlextract_core.URLExtract.add_enclosure
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - <builtin>.len
    - <builtin>.set
    - <builtin>.zip
    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: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - left_char
    - right_char
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 439
    functionName: urlextract.urlextract_core.URLExtract.remove_enclosure
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - <builtin>.len
    - <builtin>.set
    - <builtin>.zip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 1
    IfCount: 18
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7ff28627fc40>
    - <ast.Constant object at 0x7ff28627f160>
    argNames:
    - self
    - text
    - tld_pos
    - tld
    - check_dns
    - with_schema_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 454
    functionName: urlextract.urlextract_core.URLExtract._complete_url
    functionSourceFile: urlextract.urlextract_core
    functionUses: 7
    functionsReached:
    - tld.lower
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.find
    - host_tld.lower
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.isinstance
    - url_parts.getquery
    - urlextract.urlextract_core.URLExtract._split_markdown
    - url_parts.getfragment
    - <builtin>.range
    - text_url.rfind
    - s.isalpha
    - dns.resolver.Resolver
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - enclosure_map.values
    - socket.gethostbyname
    - <builtin>.len
    - url_parts.getuserinfo
    - url_parts.getport
    - complete_url.strip
    - s.isupper
    - uritools.urisplit
    - url_parts.authority.startswith
    - dns.resolver.LRUCache
    - extended_tld.endswith
    - host.split
    - complete_url.startswith
    - url_parts.gethost
    - <builtin>.any
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.min
    - url.find
    - <builtin>.max
    - s.islower
    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: extended_tld.endswith
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - text_url
    - tld_pos
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 789
    functionName: urlextract.urlextract_core.URLExtract._split_markdown
    functionSourceFile: urlextract.urlextract_core
    functionUses: 8
    functionsReached:
    - text_url.find
    - text_url.rfind
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - text_url
    - tld_pos
    - tld
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 735
    functionName: urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    functionSourceFile: urlextract.urlextract_core
    functionUses: 8
    functionsReached:
    - <builtin>.range
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.rfind
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.min
    - <builtin>.max
    - enclosure_map.values
    - <builtin>.len
    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: enclosure_map.values
    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: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 8
    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: enclosure_map.keys
    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: complete_url.strip
    functionSourceFile: <builtin>
    functionUses: 8
    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: complete_url.startswith
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 7
    IfCount: 20
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7ff2862c4eb0>
    - <ast.Constant object at 0x7ff2862c4640>
    argNames:
    - self
    - url
    - tld
    - check_dns
    - with_schema_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 587
    functionName: urlextract.urlextract_core.URLExtract._is_domain_valid
    functionSourceFile: urlextract.urlextract_core
    functionUses: 8
    functionsReached:
    - tld.lower
    - host_tld.lower
    - <builtin>.isinstance
    - url_parts.getquery
    - url_parts.getfragment
    - s.isalpha
    - dns.resolver.Resolver
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - <builtin>.len
    - socket.gethostbyname
    - url_parts.getuserinfo
    - url_parts.getport
    - s.isupper
    - uritools.urisplit
    - dns.resolver.LRUCache
    - url_parts.authority.startswith
    - host.split
    - url_parts.gethost
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - url.find
    - s.islower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - text
    - matched_tld
    - tld_pos
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 563
    functionName: urlextract.urlextract_core.URLExtract._validate_tld_match
    functionSourceFile: urlextract.urlextract_core
    functionUses: 7
    functionsReached:
    - <builtin>.len
    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: url.find
    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: uritools.urisplit
    functionSourceFile: uritools
    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: url_parts.authority.startswith
    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: url_parts.getuserinfo
    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: url_parts.getport
    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: url_parts.getpath
    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: url_parts.getquery
    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: url_parts.getfragment
    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: url_parts.gethost
    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: s.islower
    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: s.isalpha
    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: <builtin>.all
    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: s.isupper
    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: host.split
    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: host_tld.lower
    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: tld.lower
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1135
    functionName: urlextract.urlextract_core.dns_cache_install
    functionSourceFile: urlextract.urlextract_core
    functionUses: 9
    functionsReached:
    - dns.resolver.Resolver
    - dns.resolver.override_system_resolver
    - dns_cache.resolver.ExceptionCachingResolver
    - dns.resolver.LRUCache
    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: socket.gethostbyname
    functionSourceFile: socket
    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: text_url.rfind
    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: <builtin>.max
    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: enclosure_map.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: <builtin>.min
    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: text_url.find
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - url
    - tld
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 819
    functionName: urlextract.urlextract_core.URLExtract._get_tld_pos
    functionSourceFile: urlextract.urlextract_core
    functionUses: 7
    functionsReached:
    - tld.lower
    - url_parts.gethost
    - <builtin>.str
    - url.lower
    - host.rfind
    - uritools.urisplit
    - url.find
    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: url.lower
    functionSourceFile: <builtin>
    functionUses: 8
    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.rfind
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7ff2860b2a00>
    - <ast.Constant object at 0x7ff2860b29d0>
    - <ast.Constant object at 0x7ff2860b29a0>
    argNames:
    - self
    - text
    - check_dns
    - get_indices
    - with_schema_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 839
    functionName: urlextract.urlextract_core.URLExtract.gen_urls
    functionSourceFile: urlextract.urlextract_core
    functionUses: 6
    functionsReached:
    - matched_tlds.pop
    - tld.lower
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.find
    - host_tld.lower
    - host.rfind
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.isinstance
    - url_parts.getquery
    - urlextract.urlextract_core.URLExtract._split_markdown
    - url_parts.getfragment
    - <builtin>.range
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - text_url.rfind
    - <builtin>.str
    - s.isalpha
    - dns.resolver.Resolver
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - enclosure_map.values
    - socket.gethostbyname
    - <builtin>.len
    - url_parts.getuserinfo
    - url_parts.getport
    - tmp_text.find
    - complete_url.strip
    - url.lower
    - s.isupper
    - uritools.urisplit
    - urlextract.urlextract_core.URLExtract._complete_url
    - url_parts.authority.startswith
    - dns.resolver.LRUCache
    - extended_tld.endswith
    - host.split
    - rest_url.find
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - url_parts.gethost
    - <builtin>.any
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.min
    - url.find
    - <builtin>.max
    - s.islower
    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: matched_tlds.pop
    functionSourceFile: <builtin>
    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: tmp_text.find
    functionSourceFile: <builtin>
    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: rest_url.find
    functionSourceFile: <builtin>
    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: collections.OrderedDict.fromkeys
    functionSourceFile: collections
    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>.next
    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: result_urls.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7ff2860a19d0>
    - <ast.Constant object at 0x7ff2860a19a0>
    argNames:
    - self
    - text
    - check_dns
    - with_schema_only
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 955
    functionName: urlextract.urlextract_core.URLExtract.has_urls
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - matched_tlds.pop
    - tld.lower
    - enclosure_map.keys
    - enclosure_map.get
    - text_url.find
    - host_tld.lower
    - host.rfind
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - <builtin>.isinstance
    - url_parts.getquery
    - urlextract.urlextract_core.URLExtract._split_markdown
    - url_parts.getfragment
    - <builtin>.range
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - text_url.rfind
    - <builtin>.str
    - s.isalpha
    - dns.resolver.Resolver
    - dns.resolver.override_system_resolver
    - url_parts.getpath
    - dns_cache.resolver.ExceptionCachingResolver
    - enclosure_map.values
    - socket.gethostbyname
    - <builtin>.len
    - url_parts.getuserinfo
    - url_parts.getport
    - tmp_text.find
    - complete_url.strip
    - url.lower
    - urlextract.urlextract_core.URLExtract.gen_urls
    - s.isupper
    - uritools.urisplit
    - urlextract.urlextract_core.URLExtract._complete_url
    - url_parts.authority.startswith
    - dns.resolver.LRUCache
    - extended_tld.endswith
    - host.split
    - rest_url.find
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - url_parts.gethost
    - <builtin>.any
    - urlextract.urlextract_core.dns_cache_install
    - <builtin>.all
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.min
    - url.find
    - <builtin>.max
    - s.islower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 981
    functionName: urlextract.urlextract_core.URLExtractError.__init__
    functionSourceFile: urlextract.urlextract_core
    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:
    - func
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 986
    functionName: urlextract.urlextract_core.report_issue
    functionSourceFile: urlextract.urlextract_core
    functionUses: 1
    functionsReached:
    - functools.wraps
    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: functools.wraps
    functionSourceFile: functools
    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:
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 990
    functionName: urlextract.urlextract_core.report_issue.wrapper_urlextract_cli
    functionSourceFile: urlextract.urlextract_core
    functionUses: 0
    functionsReached:
    - matched_tlds.pop
    - platformdirs.user_cache_dir
    - enclosure_map.get
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - host.rfind
    - idna.decode
    - <builtin>.isinstance
    - <builtin>.next
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.range
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - s.isalpha
    - urlextract.urlextract_core.URLExtract.get_version
    - logging.getLogger
    - dns.resolver.override_system_resolver
    - <builtin>.len
    - socket.gethostbyname
    - f.read
    - urlextract.urlextract_core.URLExtract.find_urls
    - s.isupper
    - complete_url.strip
    - extended_tld.endswith
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - re.escape
    - <builtin>.any
    - <builtin>.min
    - url.find
    - args.input_file.close
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._download_tlds_list
    - urlextract.urlextract_core.URLExtract.load_ignore_list
    - os.path.join
    - text_url.find
    - re.compile
    - <builtin>.zip
    - os.access
    - <builtin>.set
    - ftld.write
    - result_urls.append
    - <builtin>.str
    - datetime.datetime.now
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - url_parts.getpath
    - urlextract.urlextract_core.URLExtract.load_permit_list
    - enclosure_map.values
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - logger.error
    - tmp_text.find
    - sys.exit
    - <builtin>.list
    - <builtin>.open
    - urlextract.urlextract_core.URLExtract._complete_url
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - filelock.FileLock
    - url_parts.gethost
    - urllib.request.Request
    - os.makedirs
    - datetime.timedelta
    - urlextract.urlextract_core._urlextract_cli
    - line.strip
    - <builtin>.max
    - s.islower
    - urlextract.cachefile.CacheFile._get_last_cachefile_modification
    - enclosure_map.keys
    - set_of_tlds.add
    - <builtin>.sorted
    - urlextract.urlextract_core.URLExtract._split_markdown
    - urlextract.urlextract_core.URLExtract.update_when_older
    - text_url.rfind
    - <builtin>.super
    - args.input_file.read
    - os.path.getmtime
    - urlextract.urlextract_core._urlextract_cli.get_args
    - url_parts.getuserinfo
    - logging.basicConfig
    - url.lower
    - urlextract.urlextract_core.URLExtract.gen_urls
    - argparse.FileType
    - url_parts.authority.startswith
    - urlextract.urlextract_core.URLExtract.update
    - parser.parse_args
    - <builtin>.print
    - os.path.exists
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - tld.lower
    - host_tld.lower
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - parser.add_argument
    - tempfile.gettempdir
    - url_parts.getquery
    - url_parts.getfragment
    - tlds.append
    - dns.resolver.Resolver
    - collections.OrderedDict.fromkeys
    - dns_cache.resolver.ExceptionCachingResolver
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - url_parts.getport
    - req.add_header
    - uritools.urisplit
    - dns.resolver.LRUCache
    - host.split
    - rest_url.find
    - datetime.datetime.fromtimestamp
    - urlextract.urlextract_core.URLExtract.__init__
    - urlextract.urlextract_core.dns_cache_install
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.all
    - os.path.dirname
    - argparse.ArgumentParser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 11
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1007
    functionName: urlextract.urlextract_core._urlextract_cli
    functionSourceFile: urlextract.urlextract_core
    functionUses: 2
    functionsReached:
    - matched_tlds.pop
    - platformdirs.user_cache_dir
    - enclosure_map.get
    - urlextract.cachefile.CacheFile._get_cache_lock_file_path
    - host.rfind
    - idna.decode
    - <builtin>.isinstance
    - <builtin>.next
    - urlextract.cachefile.CacheFile._load_cached_tlds
    - <builtin>.range
    - urlextract.urlextract_core.URLExtract._get_tld_pos
    - s.isalpha
    - urlextract.urlextract_core.URLExtract.get_version
    - logging.getLogger
    - dns.resolver.override_system_resolver
    - <builtin>.len
    - socket.gethostbyname
    - f.read
    - urlextract.urlextract_core.URLExtract.find_urls
    - s.isupper
    - complete_url.strip
    - extended_tld.endswith
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - re.escape
    - <builtin>.any
    - <builtin>.min
    - url.find
    - args.input_file.close
    - urllib.request.urlopen
    - urlextract.cachefile.CacheFile._download_tlds_list
    - urlextract.urlextract_core.URLExtract.load_ignore_list
    - os.path.join
    - text_url.find
    - re.compile
    - <builtin>.zip
    - os.access
    - <builtin>.set
    - ftld.write
    - result_urls.append
    - <builtin>.str
    - datetime.datetime.now
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - url_parts.getpath
    - urlextract.urlextract_core.URLExtract.load_permit_list
    - enclosure_map.values
    - urlextract.urlextract_core.URLExtract._get_after_tld_chars
    - logger.error
    - tmp_text.find
    - sys.exit
    - <builtin>.list
    - <builtin>.open
    - urlextract.urlextract_core.URLExtract._complete_url
    - urlextract.urlextract_core.URLExtract._validate_tld_match
    - complete_url.startswith
    - filelock.FileLock
    - url_parts.gethost
    - urllib.request.Request
    - os.makedirs
    - datetime.timedelta
    - line.strip
    - <builtin>.max
    - s.islower
    - urlextract.cachefile.CacheFile._get_last_cachefile_modification
    - enclosure_map.keys
    - set_of_tlds.add
    - <builtin>.sorted
    - urlextract.urlextract_core.URLExtract._split_markdown
    - urlextract.urlextract_core.URLExtract.update_when_older
    - text_url.rfind
    - <builtin>.super
    - args.input_file.read
    - os.path.getmtime
    - urlextract.urlextract_core._urlextract_cli.get_args
    - url_parts.getuserinfo
    - logging.basicConfig
    - url.lower
    - urlextract.urlextract_core.URLExtract.gen_urls
    - argparse.FileType
    - url_parts.authority.startswith
    - urlextract.urlextract_core.URLExtract.update
    - parser.parse_args
    - <builtin>.print
    - os.path.exists
    - urlextract.urlextract_core.URLExtract._reload_tlds_from_file
    - tld.lower
    - host_tld.lower
    - urlextract.urlextract_core.URLExtract._remove_enclosure_from_url
    - parser.add_argument
    - tempfile.gettempdir
    - url_parts.getquery
    - url_parts.getfragment
    - tlds.append
    - dns.resolver.Resolver
    - collections.OrderedDict.fromkeys
    - dns_cache.resolver.ExceptionCachingResolver
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - url_parts.getport
    - req.add_header
    - uritools.urisplit
    - dns.resolver.LRUCache
    - host.split
    - rest_url.find
    - datetime.datetime.fromtimestamp
    - urlextract.urlextract_core.URLExtract.__init__
    - urlextract.urlextract_core.dns_cache_install
    - urlextract.urlextract_core.URLExtract._is_domain_valid
    - <builtin>.all
    - os.path.dirname
    - argparse.ArgumentParser
    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>.print
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 9
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1017
    functionName: urlextract.urlextract_core._urlextract_cli.get_args
    functionSourceFile: urlextract.urlextract_core
    functionUses: 3
    functionsReached:
    - parser.parse_args
    - urlextract.urlextract_core.URLExtract.get_version
    - parser.add_argument
    - argparse.FileType
    - argparse.ArgumentParser
    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: argparse.ArgumentParser
    functionSourceFile: argparse
    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: parser.add_argument
    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: argparse.FileType
    functionSourceFile: argparse
    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: parser.parse_args
    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: logging.basicConfig
    functionSourceFile: logging
    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: logging.getLogger
    functionSourceFile: logging
    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: args.input_file.read
    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: logger.error
    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: sys.exit
    functionSourceFile: sys
    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: args.input_file.close
    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: dns_cache.resolver.ExceptionCachingResolver
    functionSourceFile: dns_cache
    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: dns.resolver.LRUCache
    functionSourceFile: dns
    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: dns.resolver.Resolver
    functionSourceFile: dns
    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: dns.resolver.override_system_resolver
    functionSourceFile: dns
    functionUses: 10
    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: urlextract.cachefile
    functionSourceFile: urlextract.cachefile
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff286120cd0>
    argNames:
    - self
    - cache_dir
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 41
    functionName: urlextract.cachefile.CacheFile.__init__
    functionSourceFile: urlextract.cachefile
    functionUses: 0
    functionsReached:
    - os.path.join
    - platformdirs.user_cache_dir
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - os.path.exists
    - urlextract.cachefile.CacheFile._get_default_cache_file_path
    - os.makedirs
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - logging.getLogger
    - tempfile.gettempdir
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    - os.path.dirname
    - os.access
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 129
    functionName: urlextract.cachefile.CacheFile._get_cache_file_path
    functionSourceFile: urlextract.cachefile
    functionUses: 12
    functionsReached:
    - platformdirs.user_cache_dir
    - os.path.join
    - os.path.exists
    - os.makedirs
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - tempfile.gettempdir
    - os.path.dirname
    - os.access
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    linkageType: pythonLinkage
    raised:
    - CacheFileError
    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: os.access
    functionSourceFile: os
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 77
    functionName: urlextract.cachefile.CacheFile._get_default_cache_file_path
    functionSourceFile: urlextract.cachefile
    functionUses: 1
    functionsReached:
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - os.path.dirname
    - os.path.join
    - os.access
    linkageType: pythonLinkage
    raised:
    - CacheFileError
    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: 66
    functionName: urlextract.cachefile.CacheFile._get_default_cache_dir
    functionSourceFile: urlextract.cachefile
    functionUses: 15
    functionsReached:
    - os.path.dirname
    - os.path.join
    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: os.path.dirname
    functionSourceFile: os
    functionUses: 16
    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: os.path.join
    functionSourceFile: os
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 96
    functionName: urlextract.cachefile.CacheFile._get_writable_cache_dir
    functionSourceFile: urlextract.cachefile
    functionUses: 13
    functionsReached:
    - platformdirs.user_cache_dir
    - os.path.join
    - os.path.exists
    - os.makedirs
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - tempfile.gettempdir
    - os.path.dirname
    - os.access
    linkageType: pythonLinkage
    raised:
    - CacheFileError
    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: platformdirs.user_cache_dir
    functionSourceFile: platformdirs
    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: os.path.exists
    functionSourceFile: os
    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: os.makedirs
    functionSourceFile: os
    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: tempfile.gettempdir
    functionSourceFile: tempfile
    functionUses: 14
    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: 4
    functionLinenumber: 153
    functionName: urlextract.cachefile.CacheFile._get_cache_lock_file_path
    functionSourceFile: urlextract.cachefile
    functionUses: 10
    functionsReached:
    - os.path.join
    - platformdirs.user_cache_dir
    - urlextract.cachefile.CacheFile._get_cache_file_path
    - os.path.exists
    - os.makedirs
    - urlextract.cachefile.CacheFile._get_default_cache_dir
    - tempfile.gettempdir
    - os.path.dirname
    - os.access
    - urlextract.cachefile.CacheFile._get_writable_cache_dir
    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.request.Request
    functionSourceFile: <builtin>
    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: req.add_header
    functionSourceFile: <builtin>
    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: urllib.request.urlopen
    functionSourceFile: <builtin>
    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: f.read
    functionSourceFile: <builtin>
    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: filelock.FileLock
    functionSourceFile: filelock
    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: ftld.write
    functionSourceFile: <builtin>
    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: set_of_tlds.add
    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: idna.decode
    functionSourceFile: idna
    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: os.path.getmtime
    functionSourceFile: os
    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: datetime.datetime.fromtimestamp
    functionSourceFile: datetime
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_find_urls':
  - 48
  - 25
  - 47
  '...fuzz_find_urls.TestOneInput':
  - 33
  - 29
  - 30
  '...fuzz_find_urls.main':
  - 42
  - 43
  - 44
  urlextract.cachefile:
  - 3
  urlextract.cachefile.CacheFile:
  - 32
  urlextract.cachefile.CacheFile.__init__:
  - 42
  - 47
  - 53
  - 54
  - 55
  - 60
  - 63
  urlextract.cachefile.CacheFile._download_tlds_list:
  - 164
  - 175
  - 176
  - 177
  - 178
  - 180
  - 181
  - 182
  - 183
  - 185
  - 186
  - 191
  - 192
  - 199
  - 200
  - 202
  - 203
  - 208
  - 209
  - 214
  - 215
  - 216
  urlextract.cachefile.CacheFile._get_cache_file_path:
  - 130
  - 137
  - 140
  - 143
  - 151
  urlextract.cachefile.CacheFile._get_cache_lock_file_path:
  - 161
  - 154
  urlextract.cachefile.CacheFile._get_default_cache_dir:
  - 75
  - 67
  urlextract.cachefile.CacheFile._get_default_cache_file_path:
  - 89
  - 86
  - 85
  - 78
  urlextract.cachefile.CacheFile._get_last_cachefile_modification:
  - 264
  - 268
  - 255
  urlextract.cachefile.CacheFile._get_writable_cache_dir:
  - 97
  - 105
  - 107
  - 111
  - 112
  - 114
  - 120
  - 123
  - 124
  urlextract.cachefile.CacheFile._load_cached_tlds:
  - 229
  - 230
  - 231
  - 236
  - 238
  - 239
  - 240
  - 241
  - 243
  - 246
  - 249
  - 250
  - 221
  urlextract.cachefile.CacheFileError:
  - 26
  urlextract.urlextract_core:
  - 1169
  - 1170
  - 3
  urlextract.urlextract_core.URLExtract:
  - 35
  - 71
  - 72
  - 73
  - 58
  urlextract.urlextract_core.URLExtract.__init__:
  - 129
  - 105
  - 113
  - 118
  - 86
  - 122
  - 125
  urlextract.urlextract_core.URLExtract._complete_url:
  - 514
  - 515
  - 524
  - 526
  - 532
  - 534
  - 536
  - 542
  - 545
  - 549
  - 551
  - 554
  - 556
  - 457
  - 473
  - 478
  - 479
  - 482
  - 487
  - 491
  - 492
  - 495
  - 500
  - 503
  - 508
  - 509
  - 511
  urlextract.urlextract_core.URLExtract._get_after_tld_chars:
  - 136
  - 139
  - 132
  - 133
  urlextract.urlextract_core.URLExtract._get_tld_pos:
  - 834
  - 835
  - 820
  - 827
  - 829
  - 830
  urlextract.urlextract_core.URLExtract._is_domain_valid:
  - 643
  - 648
  - 650
  - 655
  - 656
  - 657
  - 658
  - 659
  - 664
  - 666
  - 671
  - 674
  - 676
  - 677
  - 680
  - 683
  - 687
  - 688
  - 692
  - 695
  - 697
  - 700
  - 704
  - 709
  - 712
  - 713
  - 714
  - 590
  - 718
  - 720
  - 721
  - 722
  - 725
  - 728
  - 729
  - 627
  - 630
  - 631
  - 632
  - 639
  urlextract.urlextract_core.URLExtract._reload_tlds_from_file:
  - 144
  - 149
  - 151
  - 152
  - 153
  - 154
  urlextract.urlextract_core.URLExtract._remove_enclosure_from_url:
  - 736
  - 768
  - 769
  - 771
  - 772
  - 780
  - 781
  - 782
  - 752
  - 784
  - 754
  - 755
  - 759
  - 761
  - 762
  - 764
  - 766
  urlextract.urlextract_core.URLExtract._split_markdown:
  - 803
  - 805
  - 808
  - 809
  - 812
  - 813
  - 790
  urlextract.urlextract_core.URLExtract._validate_tld_match:
  - 576
  - 577
  - 578
  - 579
  - 582
  - 564
  - 573
  urlextract.urlextract_core.URLExtract.add_enclosure:
  - 426
  - 433
  - 434
  - 435
  - 437
  urlextract.urlextract_core.URLExtract.allow_mixed_case_hostname:
  - 176
  - 185
  urlextract.urlextract_core.URLExtract.extract_email:
  - 158
  - 167
  urlextract.urlextract_core.URLExtract.extract_localhost:
  - 194
  - 203
  urlextract.urlextract_core.URLExtract.find_urls:
  - 930
  - 931
  - 932
  - 933
  - 936
  - 939
  - 908
  - 940
  - 943
  - 947
  - 948
  - 951
  - 952
  - 924
  urlextract.urlextract_core.URLExtract.gen_urls:
  - 898
  - 842
  - 854
  - 857
  - 860
  - 861
  - 862
  - 863
  - 871
  - 873
  - 875
  - 877
  - 878
  - 884
  - 885
  - 887
  - 888
  - 890
  - 891
  - 893
  urlextract.urlextract_core.URLExtract.get_after_tld_chars:
  - 329
  - 322
  urlextract.urlextract_core.URLExtract.get_enclosures:
  - 416
  urlextract.urlextract_core.URLExtract.get_stop_chars_left:
  - 341
  urlextract.urlextract_core.URLExtract.get_stop_chars_left_from_scheme:
  - 366
  urlextract.urlextract_core.URLExtract.get_stop_chars_right:
  - 391
  urlextract.urlextract_core.URLExtract.get_version:
  - 312
  urlextract.urlextract_core.URLExtract.has_urls:
  - 968
  - 956
  - 967
  urlextract.urlextract_core.URLExtract.ignore_list:
  - 213
  - 223
  urlextract.urlextract_core.URLExtract.load_ignore_list:
  - 231
  - 236
  - 237
  - 238
  - 239
  - 241
  urlextract.urlextract_core.URLExtract.load_permit_list:
  - 263
  - 268
  - 269
  - 270
  - 271
  - 273
  urlextract.urlextract_core.URLExtract.permit_list:
  - 245
  - 255
  urlextract.urlextract_core.URLExtract.remove_enclosure:
  - 449
  - 450
  - 452
  - 440
  - 446
  - 447
  urlextract.urlextract_core.URLExtract.set_after_tld_chars:
  - 338
  - 332
  urlextract.urlextract_core.URLExtract.set_stop_chars_left:
  - 357
  - 350
  urlextract.urlextract_core.URLExtract.set_stop_chars_left_from_scheme:
  - 382
  - 375
  urlextract.urlextract_core.URLExtract.set_stop_chars_right:
  - 400
  - 407
  urlextract.urlextract_core.URLExtract.update:
  - 282
  - 276
  - 285
  urlextract.urlextract_core.URLExtract.update_when_older:
  - 290
  - 299
  - 300
  - 301
  - 303
  - 305
  - 306
  urlextract.urlextract_core.URLExtractError:
  - 973
  urlextract.urlextract_core._urlextract_cli:
  - 1098
  - 1099
  - 1104
  - 1108
  - 1109
  - 1111
  - 1112
  - 1113
  - 1114
  - 1115
  - 1116
  - 1118
  - 1119
  - 1121
  - 1125
  - 1126
  - 1129
  - 1130
  - 1132
  - 1008
  urlextract.urlextract_core._urlextract_cli.get_args:
  - 1025
  - 1026
  - 1057
  - 1090
  - 1030
  - 1095
  - 1033
  - 1066
  - 1041
  - 1075
  - 1049
  - 1018
  - 1019
  - 1086
  - 1081
  urlextract.urlextract_core.dns_cache_install:
  - 1157
  - 1158
  - 1159
  - 1161
  - 1164
  - 1165
  - 1166
  - 1140
  - 1141
  urlextract.urlextract_core.report_issue:
  - 987
  - 989
  urlextract.urlextract_core.report_issue.wrapper_urlextract_cli:
  - 992
  - 994
Fuzzer filename: /src/fuzz_find_urls.py
Inheritance:
  urlextract.cachefile.CacheFile: []
  urlextract.cachefile.CacheFileError:
  - Exception
  urlextract.urlextract_core.URLExtract:
  - CacheFile
  urlextract.urlextract_core.URLExtractError:
  - Exception
ep:
  func_name: TestOneInput
  module: '...fuzz_find_urls'
